Imported Upstream version 1.5.4 upstream upstream/1.5.4
authorEduardo Lima (Etrunko) <eduardo.lima@intel.com>
Wed, 16 Oct 2013 20:27:38 +0000 (17:27 -0300)
committerEduardo Lima (Etrunko) <eduardo.lima@intel.com>
Wed, 16 Oct 2013 20:27:38 +0000 (17:27 -0300)
272 files changed:
ChangeLog [new file with mode: 0644]
INSTALL [new file with mode: 0644]
Makefile.in [new file with mode: 0644]
aclocal.m4 [new file with mode: 0644]
bindings/Makefile.in [new file with mode: 0644]
bindings/pygobject/Makefile.in [new file with mode: 0644]
bindings/vala/Makefile.in [new file with mode: 0644]
bindings/vala/ibus-1.0.vapi [new file with mode: 0644]
bindings/vala/test/Makefile [deleted file]
bindings/vala/test/config.vala [deleted file]
bindings/vala/test/enchant.vala [deleted file]
bus/Makefile.in [new file with mode: 0644]
bus/marshalers.c [new file with mode: 0644]
bus/marshalers.h [new file with mode: 0644]
client/Makefile.in [new file with mode: 0644]
client/gtk2/Makefile.in [new file with mode: 0644]
client/gtk3/Makefile.in [new file with mode: 0644]
client/gtk3/ibusim.c [changed from symlink to file mode: 0644]
client/gtk3/ibusimcontext.c [changed from symlink to file mode: 0644]
client/gtk3/ibusimcontext.h [changed from symlink to file mode: 0644]
client/wayland/Makefile.in [new file with mode: 0644]
client/x11/Makefile.in [new file with mode: 0644]
codereview.settings [deleted file]
compile [new file with mode: 0755]
conf/Makefile.in [new file with mode: 0644]
conf/dconf/Makefile.in [new file with mode: 0644]
conf/gconf/Makefile.in [new file with mode: 0644]
conf/memconf/Makefile.in [new file with mode: 0644]
config.guess [new file with mode: 0755]
config.h.in [new file with mode: 0644]
config.sub [new file with mode: 0755]
configure [new file with mode: 0755]
data/Makefile.in [new file with mode: 0644]
data/dconf/00-upstream-settings [new file with mode: 0644]
data/dconf/Makefile.in [new file with mode: 0644]
data/dconf/org.freedesktop.ibus.gschema.xml.in [new file with mode: 0644]
data/icons/Makefile.in [new file with mode: 0644]
data/icons/ibus-help.png [deleted file]
data/icons/ibus-locale.svg [deleted file]
data/icons/ibus-zh.svg [deleted file]
data/keymaps/Makefile.in [new file with mode: 0644]
data/keymaps/ar [deleted file]
data/keymaps/da [deleted file]
data/keymaps/de [deleted file]
data/keymaps/de-ch [deleted file]
data/keymaps/dvorak-common [deleted file]
data/keymaps/en-gb [deleted file]
data/keymaps/es [deleted file]
data/keymaps/et [deleted file]
data/keymaps/fi [deleted file]
data/keymaps/fo [deleted file]
data/keymaps/fr [deleted file]
data/keymaps/fr-be [deleted file]
data/keymaps/fr-ca [deleted file]
data/keymaps/fr-ch [deleted file]
data/keymaps/hr [deleted file]
data/keymaps/hu [deleted file]
data/keymaps/is [deleted file]
data/keymaps/it [deleted file]
data/keymaps/keycode.py [deleted file]
data/keymaps/lt [deleted file]
data/keymaps/lv [deleted file]
data/keymaps/mk [deleted file]
data/keymaps/nl [deleted file]
data/keymaps/nl-be [deleted file]
data/keymaps/no [deleted file]
data/keymaps/pl [deleted file]
data/keymaps/pt [deleted file]
data/keymaps/pt-br [deleted file]
data/keymaps/ru [deleted file]
data/keymaps/sl [deleted file]
data/keymaps/sv [deleted file]
data/keymaps/th [deleted file]
data/keymaps/tr [deleted file]
data/keymaps/us-dvorak [deleted file]
data/keymaps/us-dvorak-classic [deleted file]
data/keymaps/us-dvorak-programmer [deleted file]
debian/README.source [deleted file]
debian/changelog.in [deleted file]
debian/clean [deleted file]
debian/compat [deleted file]
debian/control [deleted file]
debian/copyright [deleted file]
debian/docs [deleted file]
debian/ibus-daemon.1 [deleted file]
debian/ibus-gconf.1 [deleted file]
debian/ibus-gtk2.install [deleted file]
debian/ibus-gtk3.install [deleted file]
debian/ibus-setup.1 [deleted file]
debian/ibus-ui-gtk.1 [deleted file]
debian/ibus-x11.1 [deleted file]
debian/ibus.1 [deleted file]
debian/ibus.install [deleted file]
debian/ibus.manpages [deleted file]
debian/ibus.postinst [deleted file]
debian/ibus.prerm [deleted file]
debian/libibus-1.0-0.install [deleted file]
debian/libibus-1.0-0.symbols [deleted file]
debian/libibus-dev.install [deleted file]
debian/python-ibus.install [deleted file]
debian/pyversions [deleted file]
debian/rules [deleted file]
debian/source/format [deleted file]
debian/watch [deleted file]
debian/xinput/ibus [deleted file]
depcomp [new file with mode: 0755]
docs/Makefile.in [new file with mode: 0644]
docs/reference/Makefile.in [new file with mode: 0644]
docs/reference/ibus/Makefile.in [new file with mode: 0644]
docs/reference/ibus/html/IBusAttrList.html [new file with mode: 0644]
docs/reference/ibus/html/IBusAttribute.html [new file with mode: 0644]
docs/reference/ibus/html/IBusBus.html [new file with mode: 0644]
docs/reference/ibus/html/IBusComponent.html [new file with mode: 0644]
docs/reference/ibus/html/IBusConfig.html [new file with mode: 0644]
docs/reference/ibus/html/IBusConfigService.html [new file with mode: 0644]
docs/reference/ibus/html/IBusEngine.html [new file with mode: 0644]
docs/reference/ibus/html/IBusEngineDesc.html [new file with mode: 0644]
docs/reference/ibus/html/IBusFactory.html [new file with mode: 0644]
docs/reference/ibus/html/IBusHotkeyProfile.html [new file with mode: 0644]
docs/reference/ibus/html/IBusInputContext.html [new file with mode: 0644]
docs/reference/ibus/html/IBusKeymap.html [new file with mode: 0644]
docs/reference/ibus/html/IBusLookupTable.html [new file with mode: 0644]
docs/reference/ibus/html/IBusObject.html [new file with mode: 0644]
docs/reference/ibus/html/IBusObservedPath.html [new file with mode: 0644]
docs/reference/ibus/html/IBusPanelService.html [new file with mode: 0644]
docs/reference/ibus/html/IBusPropList.html [new file with mode: 0644]
docs/reference/ibus/html/IBusProperty.html [new file with mode: 0644]
docs/reference/ibus/html/IBusProxy.html [new file with mode: 0644]
docs/reference/ibus/html/IBusRegistry.html [new file with mode: 0644]
docs/reference/ibus/html/IBusSerializable.html [new file with mode: 0644]
docs/reference/ibus/html/IBusService.html [new file with mode: 0644]
docs/reference/ibus/html/IBusText.html [new file with mode: 0644]
docs/reference/ibus/html/annotation-glossary.html [new file with mode: 0644]
docs/reference/ibus/html/api-index-deprecated.html [new file with mode: 0644]
docs/reference/ibus/html/api-index-full.html [new file with mode: 0644]
docs/reference/ibus/html/ch01.html [new file with mode: 0644]
docs/reference/ibus/html/ch02.html [new file with mode: 0644]
docs/reference/ibus/html/ch03.html [new file with mode: 0644]
docs/reference/ibus/html/ch04.html [new file with mode: 0644]
docs/reference/ibus/html/ch05.html [new file with mode: 0644]
docs/reference/ibus/html/ch06.html [new file with mode: 0644]
docs/reference/ibus/html/home.png [new file with mode: 0644]
docs/reference/ibus/html/ibus-IBusEngineSimple.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-IBusKeysyms.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-ibusdebug.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-ibuserror.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-ibuskeys.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-ibuskeysyms-compat.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-ibusshare.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-ibustypes.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-ibusutil.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-ibusversion.html [new file with mode: 0644]
docs/reference/ibus/html/ibus-ibusxml.html [new file with mode: 0644]
docs/reference/ibus/html/ibus.devhelp2 [new file with mode: 0644]
docs/reference/ibus/html/index.html [new file with mode: 0644]
docs/reference/ibus/html/index.sgml [new file with mode: 0644]
docs/reference/ibus/html/left.png [new file with mode: 0644]
docs/reference/ibus/html/right.png [new file with mode: 0644]
docs/reference/ibus/html/style.css [new file with mode: 0644]
docs/reference/ibus/html/up.png [new file with mode: 0644]
docs/reference/ibus/ibus-docs.sgml [new file with mode: 0644]
docs/reference/ibus/ibus-overrides.txt [moved from debian/patches/00list with 100% similarity]
docs/reference/ibus/tmpl/ibus-unused.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusattribute.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusattrlist.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusbus.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibuscomponent.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusconfig.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusconfigservice.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusdebug.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusengine.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusenginedesc.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusenginesimple.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibuserror.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusfactory.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibushotkey.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusinputcontext.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibuskeymap.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibuskeys.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibuskeysyms-compat.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibuskeysyms.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibuslookuptable.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusobject.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusobservedpath.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibuspanelservice.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusproperty.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusproplist.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusproxy.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusregistry.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusserializable.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusservice.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusshare.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibustext.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibustypes.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusutil.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusversion.sgml [new file with mode: 0644]
docs/reference/ibus/tmpl/ibusxml.sgml [new file with mode: 0644]
docs/specification [deleted file]
engine/Makefile.in [new file with mode: 0644]
engine/gensimple.py [deleted file]
engine/ibus_engine_simple_vala.stamp [new file with mode: 0644]
engine/main.c [new file with mode: 0644]
git.mk [deleted file]
gtk-doc.make [new file with mode: 0644]
ibus/Makefile.in [new file with mode: 0644]
ibus/interface/Makefile.in [new file with mode: 0644]
install-sh [new file with mode: 0755]
ltmain.sh [new file with mode: 0644]
m4/Makefile.in [new file with mode: 0644]
m4/gtk-doc.m4 [new file with mode: 0644]
m4/intltool.m4 [new file with mode: 0644]
m4/libtool.m4 [new file with mode: 0644]
m4/ltoptions.m4 [new file with mode: 0644]
m4/ltsugar.m4 [new file with mode: 0644]
m4/ltversion.m4 [new file with mode: 0644]
m4/lt~obsolete.m4 [new file with mode: 0644]
missing [new file with mode: 0755]
po/Makefile.in.in [new file with mode: 0644]
py-compile [new file with mode: 0755]
setup/Makefile.in [new file with mode: 0644]
setup/i18n.py [changed from symlink to file mode: 0644]
src/IBus-1.0.gir [new file with mode: 0644]
src/Makefile.in [new file with mode: 0644]
src/ibusenumtypes.c [new file with mode: 0644]
src/ibusenumtypes.h [new file with mode: 0644]
src/ibuskeysyms-update.pl [deleted file]
src/ibusmarshalers.c [new file with mode: 0644]
src/ibusversion.h [new file with mode: 0644]
src/python/ibus.py [deleted file]
src/python/test.py [deleted file]
src/tests/Makefile.in [new file with mode: 0644]
src/tests/ibus-engine.c [deleted file]
src/tests/ibus-gi-inputcontext.py [deleted file]
src/tests/ibus-global-engine.c [deleted file]
src/tests/ibus-keymap.c [deleted file]
src/tests/ibus-proxy.c [deleted file]
test-driver [new file with mode: 0755]
test/test_client.py [deleted file]
tools/Makefile.in [new file with mode: 0644]
tools/ibus_vala.stamp [new file with mode: 0644]
tools/main.c [new file with mode: 0644]
ui/Makefile.in [new file with mode: 0644]
ui/gtk2/Makefile.am [deleted file]
ui/gtk2/candidatepanel.py [deleted file]
ui/gtk2/engineabout.py [deleted file]
ui/gtk2/gtkpanel.xml.in [deleted file]
ui/gtk2/handle.py [deleted file]
ui/gtk2/i18n.py [deleted file]
ui/gtk2/ibus-ui-gtk.in [deleted file]
ui/gtk2/icon.py [deleted file]
ui/gtk2/languagebar.py [deleted file]
ui/gtk2/main.py [deleted file]
ui/gtk2/menu.py [deleted file]
ui/gtk2/notifications.py [deleted file]
ui/gtk2/panel.py [deleted file]
ui/gtk2/propitem.py [deleted file]
ui/gtk2/toolitem.py [deleted file]
ui/gtk3/Makefile.in [new file with mode: 0644]
ui/gtk3/application.c [new file with mode: 0644]
ui/gtk3/candidatearea.c [new file with mode: 0644]
ui/gtk3/candidatepanel.c [new file with mode: 0644]
ui/gtk3/handle.c [new file with mode: 0644]
ui/gtk3/ibus_ui_gtk3_vala.stamp [new file with mode: 0644]
ui/gtk3/iconwidget.c [new file with mode: 0644]
ui/gtk3/keybindingmanager.c [new file with mode: 0644]
ui/gtk3/panel.c [new file with mode: 0644]
ui/gtk3/pango.c [new file with mode: 0644]
ui/gtk3/property.c [new file with mode: 0644]
ui/gtk3/separator.c [new file with mode: 0644]
ui/gtk3/switcher.c [new file with mode: 0644]
util/IMdkit/Makefile.in [new file with mode: 0644]
util/Makefile.in [new file with mode: 0644]

diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..7a2520e
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,28119 @@
+commit f4b09140783834cb19e3bd7dcf63671ec304b9dd
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-09-20 11:39:25 +0900
+
+    Release 1.5.4
+    
+    Review URL: https://codereview.appspot.com/13468047
+
+M      configure.ac
+
+commit 98c7bdc5d92d5d2f25eb5f81fe90397664c2d435
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-09-20 10:58:34 +0900
+
+    Fix no output when ibus-daemon is running on another display.
+    
+    Using ssh -X or another display, the hostname and display numbers
+    can be different between the GTK clients and ibus-daemon.
+    This patch fixes the output:
+    "Events queue growing too big, will start to drop."
+    
+    BUG=RH#1004135
+    TEST=clients/gtk*/im-ibus.so
+    
+    Review URL: https://codereview.appspot.com/13707046
+
+M      client/gtk2/ibusimcontext.c
+
+commit 84f3510427398947c2f11bc17f3094ddbaea3598
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-09-17 12:15:17 +0900
+
+    Update translations.
+    
+    Update po/gu.po po/ml.po po/or.po po/pa.po
+    
+    Review URL: https://codereview.appspot.com/13514044
+
+M      po/gu.po
+M      po/ml.po
+M      po/or.po
+M      po/pa.po
+
+commit e91f403a8e099ce26642eb58a105671ec730f277
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-09-06 13:24:34 +0900
+
+    Connect candidate-clicked signal on ibus-ui-gtk3 for mouse click.
+    
+    Review URL: https://codereview.appspot.com/13303049
+
+M      ui/gtk3/panel.vala
+
+commit 10b9225bb3ec9131c827cfad007bad65bc9f0b12
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-09-05 11:41:50 +0900
+
+    Implement show-icon-on-systray in ibus-ui-gtk3.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1635
+    TEST="show icon on system tray" on ibus-setup
+    
+    Review URL: https://codereview.appspot.com/13514043
+
+M      ui/gtk3/panel.vala
+
+commit 729b0aa1febccbba97286f2aceb9044d907f9ffe
+Author: David King <dking@redhat.com>
+Date:   2013-09-02 11:19:06 +0900
+
+    Check for gsettings-schema-convert for dconf support
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1650
+    
+    Review URL: https://codereview.appspot.com/13423043
+    Patch from David King <dking@redhat.com>.
+
+M      configure.ac
+M      data/dconf/Makefile.am
+
+commit 1e40a48cc47f2158d7ef45693158615b5f4ee029
+Author: David King <dking@redhat.com>
+Date:   2013-09-02 11:15:13 +0900
+
+    Avoid compiler error in ibus_engine_dbus_property_changed
+    
+    Do not return a value in a function that returns void.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1650
+    
+    Review URL: https://codereview.appspot.com/13334044
+    Patch from David King <dking@redhat.com>.
+
+M      src/ibusengine.c
+
+commit b24efef988af48cbf7defd8db10a25a77fa646c6
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-08-30 18:25:42 +0900
+
+    Call _set_content_type in _create_input_context_done in im-ibus.so
+    
+    TEST=password dialog in gnome-shell
+    
+    Review URL: https://codereview.appspot.com/13255047
+
+M      client/gtk2/ibusimcontext.c
+
+commit 47fbb130190f31e8a9e385c8b58718f999119b6c
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-08-28 13:10:46 +0900
+
+    Implement IME state per window.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1568
+    TEST=Disable global engine with ibus-setup.
+    
+    Review URL: https://codereview.appspot.com/12957046
+
+M      bus/ibusimpl.c
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+M      data/ibus.schemas.in
+M      setup/setup.ui
+M      src/ibuspanelservice.c
+M      src/ibuspanelservice.h
+M      ui/gtk3/panel.vala
+
+commit b4bb7c2d103170e30e86b55fb61a9344f62252bb
+Author: Julien Humbert <julroy67@gmail.com>
+Date:   2013-08-28 09:53:56 +0900
+
+    Update french translation
+    
+    Review URL: https://codereview.appspot.com/13260043
+    Patch from Julien Humbert <julroy67@gmail.com>.
+
+M      po/fr.po
+
+commit e5ca9e5b4bf2ad2499ccbfad588342a143eba24e
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-08-20 15:01:42 +0900
+
+    Use gsettings instead of ibus-config in ibus-setup and ibus-ui-gtk3.
+    
+    TEST=ibus-setup and ibus-ui-gtk3
+    
+    Review URL: https://codereview.appspot.com/12442044
+
+M      setup/main.py
+M      ui/gtk3/application.vala
+M      ui/gtk3/panel.vala
+
+commit 4adc001208cec701ca8f5fe53154c2c1e93c851e
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-08-15 15:18:21 +0900
+
+    Update translations
+    
+    Update po/LINGUAS po/as.po po/de.po po/es.po po/fr.po po/gu.po
+    po/hi.po po/hu.po po/ia.po po/it.po po/ja.po po/kn.po po/ko.po
+    po/ml.po po/mr.po po/nl.po po/or.po po/pa.po po/pl.po po/pt_BR.po
+    po/ru.po po/uk.po po/ta.po po/te.po po/uk.po po/zh_CN.po po/zh_TW.po
+    
+    Review URL: https://codereview.appspot.com/12583045
+
+M      po/LINGUAS
+M      po/as.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+A      po/ia.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/nl.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/pt_BR.po
+M      po/ru.po
+M      po/ta.po
+M      po/te.po
+M      po/uk.po
+M      po/zh_CN.po
+M      po/zh_TW.po
+
+commit 3b3a7ceccbf75f36dee0df45589d79f7e96131f4
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-08-14 13:29:45 +0200
+
+    Notify engines of the content-type of input context
+    
+    Add a new D-Bus method SetContentType to InputContext and Engine, to
+    notify engines of the content-type (primary purpose and hints) of
+    input context.  This is useful to implement intelligent features in
+    engines, such as automatic input-mode switch and text prediction.
+    
+    The "purpose" and "hints" arguments are compatible with
+    GtkInputPurpose and GtkInputHints:
+    https://developer.gnome.org/gtk3/unstable/GtkEntry.html#GtkInputPurpose
+    https://developer.gnome.org/gtk3/unstable/GtkEntry.html#GtkInputHints
+    
+    and the API is similar to the content_type event in the Wayland Input
+    Method Framework:
+    http://cgit.freedesktop.org/wayland/weston/tree/protocol/input-method.xml#n202
+    
+    BUG=
+    
+    Review URL: https://codereview.appspot.com/11422043
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/inputcontext.c
+M      client/gtk2/ibusimcontext.c
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibustypes.h
+
+commit 5136dbc59fd3048445826c534fd6b5f3f8ca6b1e
+Author: Jan Arne Petersen <jan.petersen@kdab.com>
+Date:   2013-08-13 10:30:52 +0200
+
+    wayland: Add wayland client
+    
+    This patch adds a new client which supports the Wayland input method
+    protocol.  Note that the support is disabled by default until the
+    input method protocol becomes official in the Wayland upstream.
+    Supply --enable-wayland to configure to try it.  Also, you will need
+    to set the executable path of ibus-wayland under the "input-method"
+    section of weston.ini, like this:
+    
+     [input-method]
+     path=.../libexec/ibus-wayland
+    
+    BUG=Issue#1617
+    
+    Review URL: https://codereview.appspot.com/11320043
+    Patch from Jan Arne Petersen <jan.petersen@kdab.com>.
+
+M      client/Makefile.am
+A      client/wayland/Makefile.am
+A      client/wayland/README
+A      client/wayland/input-method-client-protocol.h
+A      client/wayland/input-method-protocol.c
+A      client/wayland/main.c
+M      configure.ac
+
+commit 1bdcf218eeda728391b5b4e33d536d2debfef1bc
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-08-09 13:48:17 +0900
+
+    Update source files with LGP 2.1 according to COPYING.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1424
+    TEST=rpmlint
+    
+    Review URL: https://codereview.appspot.com/12526043
+
+M      Makefile.am
+M      bindings/Makefile.am
+M      bindings/pygobject/Makefile.am
+M      bindings/pygobject/gi/__init__.py
+M      bindings/pygobject/gi/overrides/IBus.py
+M      bindings/pygobject/gi/overrides/__init__.py
+M      bindings/pygobject/test-override-ibus.py
+M      bindings/vala/Makefile.am
+M      bus/Makefile.am
+M      bus/component.c
+M      bus/component.h
+M      bus/connection.c
+M      bus/connection.h
+M      bus/dbusimpl.c
+M      bus/dbusimpl.h
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/factoryproxy.c
+M      bus/factoryproxy.h
+M      bus/global.c
+M      bus/global.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/main.c
+M      bus/matchrule.c
+M      bus/matchrule.h
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+M      bus/server.c
+M      bus/server.h
+M      bus/test-client.c
+M      bus/test-client.h
+M      bus/test-stress.c
+M      bus/types.h
+M      client/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+M      client/gtk3/Makefile.am
+M      client/x11/Makefile.am
+M      client/x11/gdk-private.c
+M      client/x11/gdk-private.h
+M      client/x11/main.c
+M      conf/Makefile.am
+M      conf/dconf/Makefile.am
+M      conf/dconf/config-private.h
+M      conf/dconf/config.c
+M      conf/dconf/main.c
+M      conf/gconf/Makefile.am
+M      conf/memconf/Makefile.am
+M      conf/memconf/config.c
+M      conf/memconf/config.h
+M      conf/memconf/main.c
+M      configure.ac
+M      data/Makefile.am
+M      data/dconf/Makefile.am
+M      data/icons/Makefile.am
+M      data/keymaps/Makefile.am
+M      docs/Makefile.am
+M      docs/reference/Makefile.am
+M      engine/Makefile.am
+M      engine/main.vala
+M      ibus/Makefile.am
+M      ibus/__init__.py
+M      ibus/_config.py.in
+M      ibus/_gtk.py
+M      ibus/application.py
+M      ibus/attribute.py
+M      ibus/bus.py
+M      ibus/common.py
+M      ibus/component.py
+M      ibus/config.py
+M      ibus/engine.py
+M      ibus/enginedesc.py
+M      ibus/exception.py
+M      ibus/factory.py
+M      ibus/inputcontext.py
+M      ibus/interface/Makefile.am
+M      ibus/interface/__init__.py
+M      ibus/interface/iconfig.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+M      ibus/interface/iinputcontext.py
+M      ibus/interface/inotifications.py
+M      ibus/interface/ipanel.py
+M      ibus/lang.py
+M      ibus/lookuptable.py
+M      ibus/modifier.py
+M      ibus/notifications.py
+M      ibus/object.py
+M      ibus/observedpath.py
+M      ibus/panel.py
+M      ibus/property.py
+M      ibus/serializable.py
+M      ibus/text.py
+M      ibus/utility.py
+M      m4/Makefile.am
+M      setup/Makefile.am
+M      setup/engineabout.py
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      setup/ibus-setup.in
+M      setup/icon.py
+M      setup/keyboardshortcut.py
+M      setup/main.py
+M      src/Makefile.am
+M      src/gtkimcontextsimpleseqs.h
+M      src/ibus.h
+M      src/ibusattribute.c
+M      src/ibusattribute.h
+M      src/ibusattrlist.c
+M      src/ibusattrlist.h
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+M      src/ibusdebug.h
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+M      src/ibusenginesimple.c
+M      src/ibusenginesimple.h
+M      src/ibuserror.c
+M      src/ibuserror.h
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibusinternal.h
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+M      src/ibuskeynames.c
+M      src/ibuskeys.h
+M      src/ibuskeysyms-compat.h
+M      src/ibuskeysyms.h
+M      src/ibuskeyuni.c
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+M      src/ibusobject.c
+M      src/ibusobject.h
+M      src/ibusobservedpath.c
+M      src/ibusobservedpath.h
+M      src/ibuspanelservice.c
+M      src/ibuspanelservice.h
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+M      src/ibusproplist.c
+M      src/ibusproplist.h
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+M      src/ibusregistry.c
+M      src/ibusregistry.h
+M      src/ibusserializable.c
+M      src/ibusserializable.h
+M      src/ibusservice.c
+M      src/ibusservice.h
+M      src/ibusshare.c
+M      src/ibusshare.h
+M      src/ibustext.c
+M      src/ibustext.h
+M      src/ibustypes.h
+M      src/ibusutil.c
+M      src/ibusutil.h
+M      src/ibusversion.h.in
+M      src/ibusxml.c
+M      src/ibusxml.h
+M      src/tests/Makefile.am
+M      src/tests/ibus-inputcontext-create.c
+M      src/tests/ibus-inputcontext.c
+M      tools/Makefile.am
+M      tools/ibus.bash
+M      tools/main.vala
+M      ui/Makefile.am
+M      ui/gtk2/Makefile.am
+M      ui/gtk2/candidatepanel.py
+M      ui/gtk2/engineabout.py
+M      ui/gtk2/handle.py
+M      ui/gtk2/i18n.py
+M      ui/gtk2/ibus-ui-gtk.in
+M      ui/gtk2/icon.py
+M      ui/gtk2/languagebar.py
+M      ui/gtk2/main.py
+M      ui/gtk2/menu.py
+M      ui/gtk2/notifications.py
+M      ui/gtk2/panel.py
+M      ui/gtk2/propitem.py
+M      ui/gtk2/toolitem.py
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/application.vala
+M      ui/gtk3/candidatearea.vala
+M      ui/gtk3/candidatepanel.vala
+M      ui/gtk3/handle.vala
+M      ui/gtk3/iconwidget.vala
+M      ui/gtk3/panel.vala
+M      ui/gtk3/pango.vala
+M      ui/gtk3/property.vala
+M      ui/gtk3/separator.vala
+M      ui/gtk3/switcher.vala
+M      util/IMdkit/Makefile.am
+M      util/Makefile.am
+
+commit 1f2a94e0519021131cef2e509cfa11a0c6c3a291
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-08-02 10:33:21 +0200
+
+    tool: add "address" command to print D-Bus address
+    
+    This would be helpful to debug with dbus-monitor.  Instead of:
+    
+      $ . .config/ibus/bus/*
+      $ dbus-monitor --address $IBUS_ADDRESS ...
+    
+    one can do:
+    
+      $ dbus-monitor --address $(ibus address) ...
+    
+    This patch also adds help message to each sub-command.
+    
+    BUG=
+    
+    Review URL: https://codereview.appspot.com/11901044
+
+M      tools/ibus.1.in
+M      tools/main.vala
+
+commit 3b013c9ee3e071a83351eb1bff59697b770f8b3a
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-07-31 09:59:26 +0900
+
+    Remove IBUS_IS_ENGINE_DESC for freed pointer in ibus-bus.c
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1646
+    TEST=src/tests/ibus-bus.c
+    
+    Review URL: https://codereview.appspot.com/12093043
+
+M      src/tests/ibus-bus.c
+
+commit f16865829ff3dcc3fe835be1d40fd22322500d36
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-07-26 17:18:24 +0900
+
+    Release 1.5.3
+    
+    Review URL: https://codereview.appspot.com/11708043
+
+M      README
+M      configure.ac
+M      src/ibusfactory.c
+
+commit bc2d0010ed29cb85e5507f2d91488bf1afab102c
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-07-26 10:00:46 +0900
+
+    Add Norwegian keyboard in engine/simple.xml.in
+    
+    BUG=RH#987222
+    
+    Review URL: https://codereview.appspot.com/11805043
+
+M      engine/simple.xml.in
+
+commit 583bfe6d59e9b5a8514bc250fcccb9cb793d8a02
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-07-25 18:12:26 +0900
+
+    daemon: fix PropertiesChanged signal emission
+    
+    This fixes a few problems of PropertiesChanged signal emission.
+    First, it should be sent only when the properties have changed.
+    Second, invalidated_properties should be set when the properties have
+    been reset, not on error.  Finally, the sender should be
+    "org.freedesktop.IBus" rather than "org.freedesktop.DBus".
+    
+    BUG=
+    R=takao.fujiwara1@gmail.com
+    
+    Review URL: https://codereview.appspot.com/11465045
+
+M      bus/ibusimpl.c
+
+commit 77189092184d00f4ae1838e422026da0d0d96ae2
+Author: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
+Date:   2013-07-23 10:43:36 +0900
+
+    Remove reference to primary owner on ReleaseName
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1636
+    TEST=src/tests/ibus-bus.c
+    
+    Review URL: https://codereview.appspot.com/11004043
+    Patch from Eduardo Lima (Etrunko) <eduardo.lima@intel.com>.
+
+M      bus/dbusimpl.c
+M      src/tests/ibus-bus.c
+
+commit ee6b756b9b89af0343ebcb5f60d6f49ac1813f94
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-07-19 18:19:07 +0900
+
+    Remove arrow buttons in ibus-setup, which no longer work.
+    
+    BUG=RH#851758
+    TEST=ibus-setup
+    
+    Review URL: https://codereview.appspot.com/6475068
+
+M      setup/enginetreeview.py
+M      setup/setup.ui
+
+commit 5f356a34e88ccdd316a960fcb33703aacf28ff09
+Author: Osamu Aoki <osamu@debian.org>
+Date:   2013-07-19 18:14:19 +0900
+
+    Fix error with gcc -Wformat -Werror=format-security
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1638
+    TEST=bus/ibusimpl.c
+    
+    Review URL: https://codereview.appspot.com/11471044
+    Patch from Osamu Aoki <osamu@debian.org>.
+
+M      bus/ibusimpl.c
+
+commit 7fdcd865f14d5de6a276e71c2ed958a736dc34db
+Author: Peter Michael Green <plugwash@debian.org>
+Date:   2013-07-19 18:09:43 +0900
+
+    Fix error with gcc -Wformat -Werror=format-security
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1638
+    TEST=src/ibusfactory.c
+    
+    Review URL: https://codereview.appspot.com/11503043
+    Patch from Peter Michael Green <plugwash@debian.org>.
+
+M      autogen.sh
+M      src/ibusfactory.c
+
+commit f64d4fdf43a17dc39132354ffdb1060a185fa715
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-07-17 11:50:25 +0900
+
+    Remove ibus_bus_list_active_engines in bus/test-client.c
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1637
+    TEST=bus/test-client.c
+    
+    Review URL: https://codereview.appspot.com/11336044
+
+M      bus/test-client.c
+
+commit 632a5c13072312015226c408ddb3d4eb478abe6f
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-07-12 18:39:54 +0900
+
+    registry: use binary format instead of XML for cache
+    
+    Currently the registry cache is in the XML format, that may cause
+    unnecessary parsing overhead on ibus-daemon startup.  This patch
+    changes the format to GVariant based binary representation.
+    
+    BUG=
+    R=takao.fujiwara1@gmail.com
+    
+    Review URL: https://codereview.appspot.com/9963043
+
+M      src/ibusregistry.c
+M      src/ibusregistry.h
+M      src/ibusshare.c
+M      tools/main.vala
+
+commit 9037ffe0f3ab419554903de6f12d00ee74f2f3ff
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-07-12 18:05:06 +0900
+
+    build: fix make check
+    
+    This contains several fixes to the current tests:
+    
+    - Remove glib mem profiler call from src/tests, which is known not to
+      work with the latest glib release:
+      https://bugzilla.gnome.org/show_bug.cgi?id=701694
+      valgrind could be used instead.
+    
+    - Replace g_type_init() call in tests with ibus_init().
+    
+    - Fix ibus-bus test after the DBus property change (commit 458945e7).
+      no global engine may be set in the test environment.  Also add more
+      assertions to check the return values.
+    
+    - Fix pygobject test to use LOG_COMPILER and move sys.path adjustment
+      into the test script itself.
+    
+    - Add new files to po/POTFILES.in.
+    
+    BUG=
+    R=takao.fujiwara1@gmail.com
+    
+    Review URL: https://codereview.appspot.com/11156043
+
+M      bindings/pygobject/Makefile.am
+M      bindings/pygobject/gi/__init__.py
+M      bindings/pygobject/gi/overrides/__init__.py
+M      bindings/pygobject/test-override-ibus.py
+M      po/POTFILES.in
+M      po/POTFILES.skip
+M      src/tests/ibus-bus.c
+M      src/tests/ibus-configservice.c
+M      src/tests/ibus-engine.c
+M      src/tests/ibus-factory.c
+M      src/tests/ibus-global-engine.c
+M      src/tests/ibus-inputcontext-create.c
+M      src/tests/ibus-inputcontext.c
+M      src/tests/ibus-keymap.c
+M      src/tests/ibus-keynames.c
+M      src/tests/ibus-proxy.c
+M      src/tests/ibus-registry.c
+M      src/tests/ibus-serializable.c
+M      src/tests/ibus-share.c
+
+commit ecced4f45a46cb7557717b04e1ce1b284a397b8c
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-07-12 10:41:38 +0900
+
+    Delete xdg in ibus-setup.
+    
+    Review URL: https://codereview.appspot.com/11100044
+
+M      setup/main.py
+
+commit 88ce21749e84cc92cbc91c919d27721c0f2e1ceb
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-07-10 16:55:19 +0900
+
+    Load the system registry cache prior to the user one.
+    
+    gnome-settings-daemon runs ibus-daemon after the user configures
+    any input method engines and causes a delay to show the engines
+    on UI because no cache exists for ibus-daemon.
+    The system cache can avoid the user timing.
+    
+    Review URL: https://codereview.appspot.com/10364043
+
+M      bus/Makefile.am
+M      bus/dbusimpl.c
+M      bus/ibus-daemon.1.in
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/main.c
+D      bus/registry.c
+D      bus/registry.h
+D      bus/test-registry.c
+M      docs/reference/ibus/ibus-docs.sgml.in
+M      docs/reference/ibus/ibus.types
+M      src/Makefile.am
+M      src/ibus.h
+A      src/ibusregistry.c
+A      src/ibusregistry.h
+M      src/tests/Makefile.am
+A      src/tests/ibus-registry.c
+M      tools/ibus.1.in
+M      tools/main.vala
+
+commit 5ed2b8c8253717b6c26281a8721403b006db04e6
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-07-05 13:03:49 +0900
+
+    Delete the python xdg dependency.
+    
+    BUG=RH#980749
+    
+    Review URL: https://codereview.appspot.com/10930043
+
+M      debian/control
+M      ibus.spec.in
+M      ibus/common.py
+M      setup/main.py
+
+commit 458945e7308ab2661355edbf6880102c5f628dbe
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-06-14 12:13:13 +0900
+
+    Refactor old getter and setter to dbus property in bus/ibusimpl.c
+    
+    Review URL: https://codereview.appspot.com/9477043
+
+M      bus/ibusimpl.c
+M      src/Makefile.am
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibusshare.h
+M      src/tests/Makefile.am
+M      src/tests/ibus-bus.c
+
+commit c9ba5e1d155ab711c68f18d26de38bdba3128f03
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-06-14 11:01:08 +0900
+
+    Make ibus-config tests side effect free
+    
+    Previously we assumed that test cases are executed in the order of
+    registration.  This is no longer true after glib change 89aa9dbd which
+    fixed test case grouping.  Clear the default match rule in each test
+    case to avoid side effect.
+    
+    BUG=
+    
+    Review URL: https://codereview.appspot.com/10069045
+
+M      src/tests/ibus-config.c
+
+commit 7b9633ab6e20920710cd1f422bd4e6d18a363f35
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-06-11 12:46:02 +0900
+
+    Modify valac --target-glib.
+    
+    valac --ccode --target-glib=2.36 can disable g_type_init in the
+    generated C files since g_type_init is deprecated in glib 2.36.
+    But ibus tarball includes C files so that users do not require
+    vala and vala versions are different between dist and build.
+    If dist could have glib 2.36 to generate the ibus tarball but
+    a user build would have glib 2.34, the user build would be
+    failed because glib 2.34 requires g_type_init.
+    This change makes sure the target-glib is minimum of the glib
+    version for ibus.
+    
+    Review URL: https://codereview.appspot.com/10156044
+
+M      configure.ac
+M      engine/Makefile.am
+M      tools/Makefile.am
+M      ui/gtk3/Makefile.am
+
+commit 4a68e97e32cc58baf233a8357d423614def3aac0
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-06-11 12:42:16 +0900
+
+    Fix an error message of gnome-autogen in autogen.sh
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1631
+    
+    Review URL: https://codereview.appspot.com/10167044
+
+M      autogen.sh
+
+commit 5f78b55ee930a671c8ef63435925dcef9cd0ab5c
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-06-10 11:22:39 +0900
+
+    Suppress warnings with Automake 1.13
+    
+    The make variable INCLUDES is now obsoleted by AM_CPPFLAGS.
+    
+    BUG=
+    R=Shawn.P.Huang@gmail.com
+    
+    Review URL: https://codereview.appspot.com/9915054
+
+M      bus/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/gtk3/Makefile.am
+M      engine/Makefile.am
+M      src/tests/Makefile.am
+M      tools/Makefile.am
+M      ui/gtk3/Makefile.am
+
+commit 2a34936437e5c3c3e5e7f3621cf92fa94eaa466a
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-06-07 13:01:44 +0900
+
+    build: improve test harness
+    
+    Run each test in isolated directory so it can run in parallel.  Also
+    improve the test wrapper and rename it to a better name.
+    
+    BUG=
+    
+    Review URL: https://codereview.appspot.com/9937047
+
+M      autogen.sh
+M      configure.ac
+M      src/tests/Makefile.am
+A      src/tests/runtest
+D      src/tests/setupenv
+
+commit 7ff8271dee2e3f5a9f65f64ee5ba798f4aa00b84
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-06-04 11:12:53 +0900
+
+    Remove g_type_init() calls.
+    
+    https://git.gnome.org/browse/glib/commit/?id=1dc774a653e992e1153fbed16f90097fa8db467f
+    https://git.gnome.org/browse/vala/commit/?id=f1fbafdfdc91fadaa57d2e073fc29cc6804d6ae3
+    
+    Review URL: https://codereview.appspot.com/9727047
+
+M      bus/dbusimpl.c
+M      bus/test-matchrule.c
+M      bus/test-registry.c
+M      configure.ac
+M      engine/Makefile.am
+M      po/POTFILES.in
+M      src/ibusshare.c
+M      src/ibusshare.h
+M      src/tests/ibus-bus.c
+M      src/tests/ibus-config.c
+M      src/tests/ibus-configservice.c
+M      src/tests/ibus-engine-switch.c
+M      src/tests/ibus-engine.c
+M      src/tests/ibus-factory.c
+M      src/tests/ibus-global-engine.c
+M      src/tests/ibus-inputcontext-create.c
+M      src/tests/ibus-inputcontext.c
+M      src/tests/ibus-keymap.c
+M      src/tests/ibus-keynames.c
+M      src/tests/ibus-proxy.c
+M      src/tests/ibus-serializable.c
+M      src/tests/ibus-share.c
+M      tools/Makefile.am
+M      ui/gtk3/Makefile.am
+
+commit 5bb877682c218a5c0cd41e86a80655a7fd2269b9
+Author: Colin Walters <walters@verbum.org>
+Date:   2013-05-29 10:56:17 +0900
+
+    Delete ibus.desktop
+    
+    This is not an actual application, it just starts the daemon in the
+    background.  That's not something that should be in the application
+    list.  It should be started in the background when necessary.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1628
+    
+    Review URL: https://codereview.appspot.com/9833043
+    Patch from Colin Walters <walters@verbum.org>.
+
+M      bus/Makefile.am
+D      bus/ibus.desktop.in
+
+commit 62f07b7a6904b8b03a59f3baf413becb2d5d9e14
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-05-17 12:12:54 +0900
+
+    Let users know the default hotkey is Super+space with libnotify.
+    
+    Review URL: https://codereview.appspot.com/9407043
+
+M      configure.ac
+M      data/ibus.schemas.in
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/panel.vala
+
+commit 3c96d67404da274c34631ad821da736cf55a2b62
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-05-15 12:03:54 +0900
+
+    Add man files of /usr/bin files.
+    
+    Review URL: https://codereview.appspot.com/9413043
+
+M      bus/Makefile.am
+A      bus/ibus-daemon.1.in
+M      setup/Makefile.am
+A      setup/ibus-setup.1.in
+M      tools/Makefile.am
+A      tools/ibus.1.in
+
+commit f3d80dc026853c1024cdf6bda31b1496939cb095
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-05-13 16:36:19 +0900
+
+    Defalut triggers key is changed to <Super>space.
+    
+    We have been used <Control>space as the default triggers key.
+    GNOME3 and Windows7 applied <Super>space as the default trigger key
+    and IBus follows it for the consistent key between desktops.
+    
+    BUG=RH#953404
+    
+    Review URL: https://codereview.appspot.com/9081043
+
+M      data/ibus.schemas.in
+M      setup/main.py
+M      ui/gtk3/panel.vala
+
+commit 927e9f58da9b4a9898403c8e339109e2ad2fa966
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-05-13 11:47:29 +0900
+
+    Check GtkIMContext:input-purpose to disable IM on lock screen
+    
+    Recent GtkIMContext has "input-purpose" property, which can be used to check if the target widget is a password entry, in a more reliable way.
+    
+    BUG=none
+    R=Shawn.P.Huang@gmail.com
+    
+    Review URL: https://codereview.appspot.com/7064059
+
+M      client/gtk2/ibusimcontext.c
+
+commit 667b7f0b96e5a7e1190e606a9c680bcbda8c2a88
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-04-30 21:46:02 +0900
+
+    Implement embed_preedit_text.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1606
+    
+    Review URL: https://codereview.appspot.com/8112044
+
+M      bus/ibusimpl.c
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      ui/gtk3/panel.vala
+
+commit 4e175e3337337f2c261088d4576ea63a144cee3a
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-04-24 13:44:35 +0900
+
+    Use EXTRA_DIST instead of DIST_SOURCES.
+    
+    Review URL: https://codereview.appspot.com/8698047
+
+M      bindings/vala/Makefile.am
+
+commit 0b612dfb8ab52a61896b9079acd2d76a360f8666
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-04-22 20:16:31 +0900
+
+    Fix make dist errors.
+    
+    Review URL: https://codereview.appspot.com/8850043
+
+M      bindings/pygobject/Makefile.am
+M      bindings/vala/Makefile.am
+
+commit fe321d51ee5f7f4e7f3886ef6f55e4820a92675f
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-04-17 09:57:33 +0900
+
+    Release 1.5.2
+    
+    Review URL: https://codereview.appspot.com/7530044
+
+M      configure.ac
+
+commit 261bc3046f1e5deb5879bac23900ff7dbfa5a20d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2013-03-26 06:55:09 -0400
+
+    Draw highlight for focused IME in IME switcher.
+    
+    BUG=None
+    TEST=Manual
+    
+    Review URL: https://codereview.appspot.com/7689046
+
+M      ui/gtk3/switcher.vala
+
+commit af1f409a3eace2ea9a063957a8797a50a77d131a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2013-03-26 06:54:43 -0400
+
+    Fix build error and warnings in Fedora 18.
+    
+    BUG=None
+    TEST=Manual
+    
+    Review URL: https://codereview.appspot.com/7531047
+
+M      bus/dbusimpl.c
+M      bus/main.c
+M      client/gtk2/ibusimcontext.c
+M      configure.ac
+M      ibus.spec.in
+
+commit 928351ee88778cf97136d1a7dbc940390c23ddfc
+Merge: 175df22 4d7f4ad
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2013-03-25 07:29:41 -0700
+
+    Merge pull request #6 from maxiaojun/master
+    
+    Show all g-ir-scanner warnings
+
+commit 175df2261b431eff65349b47bc6bd086051cde41
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-03-21 11:13:52 +0900
+
+    Move ibus.bash script from /etc to /usr/share
+    
+    BUG=RH#922996
+    
+    Review URL: https://codereview.appspot.com/7863045
+
+M      tools/Makefile.am
+
+commit 2e7ece775f5412ab8e83a11e4d423b32a6114159
+Author: Ville Skyttä <ville.skytta@iki.fi>
+Date:   2013-03-12 11:17:59 +0900
+
+    bash completion: No need to install it as executable.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1601
+    
+    Review URL: https://codereview.appspot.com/7696043
+    Patch from Ville Skyttä <ville.skytta@iki.fi>.
+
+M      tools/Makefile.am
+
+commit 42dd60fe1fcdce11e7ac517786b398eba0cb9e17
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-03-12 06:41:43 +0900
+
+    Add textdomain property to IBusEngineDesc
+    
+    BUG=Issue#1580
+    
+    Review URL: https://codereview.appspot.com/7692043
+
+M      bindings/pygobject/gi/overrides/IBus.py
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+
+commit 69b48942e8ac9d39afeadfd9eb34f83247e8082a
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-03-10 14:55:42 +0900
+
+    Simplify component xml generation using sed
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/7445048
+
+M      conf/dconf/Makefile.am
+A      conf/dconf/dconf.xml.in
+D      conf/dconf/dconf.xml.in.in
+M      conf/gconf/Makefile.am
+A      conf/gconf/gconf.xml.in
+D      conf/gconf/gconf.xml.in.in
+M      conf/memconf/Makefile.am
+A      conf/memconf/memconf.xml.in
+D      conf/memconf/memconf.xml.in.in
+M      configure.ac
+M      engine/Makefile.am
+M      engine/gensimple.py
+A      engine/simple.xml.in
+D      engine/simple.xml.in.in
+M      ui/gtk2/Makefile.am
+A      ui/gtk2/gtkpanel.xml.in
+D      ui/gtk2/gtkpanel.xml.in.in
+M      ui/gtk3/Makefile.am
+A      ui/gtk3/gtkpanel.xml.in
+D      ui/gtk3/gtkpanel.xml.in.in
+
+commit cff35929a9330081db25a86a8258489a27d4bdd5
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-03-08 11:21:25 +0900
+
+    Launch the second ibus engine too to reduce the launching time.
+    
+    Currently the first ibus engine only is running but the second engine
+    is also frequently used. It is good to run the second engine before
+    user types Ctrl+space.
+    
+    BUG=RH#838734
+    TEST=src/tests/ibus-bus
+    
+    Review URL: https://codereview.appspot.com/7433049
+
+M      bus/ibusimpl.c
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/tests/ibus-bus.c
+M      ui/gtk3/panel.vala
+
+commit 5fa461889939a91fecff89a67630076b8cb987b2
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-03-07 13:16:10 +0900
+
+    Change set_use_system_keyboard_layout() timing.
+    
+    Call set_use_system_keyboard_layout() before update_engines() is called
+    in panel.vala because update_engines() calls switch_engine().
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1558#c43
+    
+    Review URL: https://codereview.appspot.com/7559043
+
+M      ui/gtk3/panel.vala
+
+commit 4b2f6a477019b50375aba2e5f9c43e618b6905ad
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-03-04 10:10:53 +0900
+
+    Implement use-system-keyboard-layout
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1558
+    
+    Review URL: https://codereview.appspot.com/7414045
+
+M      data/ibus.schemas.in
+M      ui/gtk3/panel.vala
+
+commit e0878144a704e9bfd0f5a60e6894b1de272aaa7b
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-02-27 07:12:09 +0900
+
+    Fix make rpm errors due to ibus-dconf and pygobject override
+    
+    BUG=Issue#1600
+    
+    Review URL: https://codereview.appspot.com/7404047
+
+M      ibus.spec.in
+
+commit f9ddda1e2d867b96889f80d9d30c0e88d3ec11b9
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2013-02-26 07:42:14 +0900
+
+    daemon: allow "eavesdrop" match rule
+    
+    Recent dbus-monitor supplies "eavesdrop" match rule which ibus-daemon
+    does not accept.  This patch silently ignores the rule so ibus-daemon
+    behave the same as before.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/7225062
+
+M      bus/matchrule.c
+M      bus/test-matchrule.c
+
+commit c79789fa1b5fd49a53b16e87813b88122168ff73
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-02-21 12:41:08 +0900
+
+    Fix annotation in ibus_bus_create_input_context
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1593
+    
+    Review URL: https://codereview.appspot.com/7368044
+
+M      src/ibusbus.h
+M      src/ibusinputcontext.h
+M      src/ibuspanelservice.h
+
+commit 4d7f4ad5b5d6b29bb50cc9bf5b1442e3766151d9
+Author: Ma Xiaojun <damage3025@gmail.com>
+Date:   2013-02-19 19:31:54 +0800
+
+    Show all GIR warnings
+
+M      configure.ac
+
+commit 7e07299d17156e52b0b60b2cc50a82e29ef4f550
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2013-02-15 12:28:25 +0900
+
+    Fix no rule to make target test-override-ibus.py
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1592
+    
+    Review URL: https://codereview.appspot.com/7332043
+
+M      bindings/pygobject/Makefile.am
+
+commit 62cd0492e3459416e1775aedc327bced53f66828
+Author: Rui Matos <tiagomatos@gmail.com>
+Date:   2013-01-09 10:14:55 -0500
+
+    client: Queue events while the IBus context isn't ready
+    
+    There are actually 3 patches here.
+    
+    ---
+    client: Queue events while the IBus context isn't ready
+    
+    We may lose events that ought to be processed while the IBus context
+    isn't ready or if the connection to IBus isn't fully established yet.
+    
+    To avoid that, enqueue events to be processed later when the IBus
+    context creation finishes.
+    
+    ---
+    client: Don't cancel an ongoing create input context on another request
+    
+    This would only add more delays.
+    
+    ---
+    client: Cancel any ongoing create input context request on finalize
+    
+    BUG=
+    
+    Review URL: https://codereview.appspot.com/6988047
+    Patch from Rui Matos <tiagomatos@gmail.com>.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 8ac534fc002356b93e2015a8866f1ea89e3895f9
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-12-15 17:40:18 +0900
+
+    Use Variant.unpack() instead of Variant.dup_strv().
+    
+    Variant.dup_strv() returns a tuple in pygobject 3.2, e.g. (['<Control>space'], 1L), and a list in pygobject 3.4, e.g. ['<Control>space'] .
+    
+    BUG=RH#887153
+    
+    Review URL: https://codereview.appspot.com/6941051
+
+M      setup/main.py
+
+commit d8c7e73464bdc65d7b96d7f0591aab608f66d0ea
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-12-11 22:35:21 +0900
+
+    Release 1.5.1
+    
+    BUG=
+    
+    Review URL: https://codereview.appspot.com/6925045
+
+M      configure.ac
+
+commit 346b83e3e015497f6ac2ec7fe8697bea175c2d25
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-12-11 22:32:06 +0900
+
+    Add fr(bepo) XKB engine.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1558
+    
+    Review URL: https://codereview.appspot.com/6926044
+
+M      engine/simple.xml.in.in
+
+commit 438e7d1d8586258cade509afb7de45327e953031
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-12-11 08:20:50 +0900
+
+    Fix IBus.py errors.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1559
+    TEST=ibus-anthy
+    
+    Review URL: https://codereview.appspot.com/6867085
+
+M      bindings/pygobject/gi/overrides/IBus.py
+
+commit 9046f458ca817002e347275906555071b7d411d1
+Author: Peng Huang <penghuang@google.com>
+Date:   2012-12-07 18:02:23 -0500
+
+    Relase 1.5.0
+    
+    BUG=None
+    
+    Review URL: https://codereview.appspot.com/6906048
+
+M      configure.ac
+
+commit 76817548683606113dbf9d4dccec33555b9a65dc
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-12-08 06:43:00 +0900
+
+    Remove transfer container in ibus_engine_simple_add_table.
+    
+    Review URL: https://codereview.appspot.com/6909049
+
+M      engine/main.vala
+M      src/ibusenginesimple.c
+M      src/ibusenginesimple.h
+
+commit 9e24b05ee36ca8edab72d9accc32460fae8eed55
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-12-07 11:18:20 +0900
+
+    Update translations.
+    
+    Update po/LINGUAS
+    po/as.po po/bg.po po/bn_IN.po po/es.po po/et.po po/eu.po po/fr.po
+    po/gu.po po/hi.po po/hu.po po/ja.po po/ko.po po/ml.po po/nl.po
+    po/or.po po/pa.po po/pl.po po/ta.po po/te.po po/uk.po po/zh_CN.po
+    po/zh_TW.po
+    
+    Review URL: https://codereview.appspot.com/6896046
+
+M      po/LINGUAS
+M      po/as.po
+A      po/bg.po
+M      po/bn_IN.po
+M      po/es.po
+A      po/et.po
+A      po/eu.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ja.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+A      po/nb.po
+M      po/nl.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ta.po
+M      po/te.po
+M      po/uk.po
+M      po/zh_CN.po
+M      po/zh_TW.po
+
+commit 7198fed9f3dac572726f12aaae92a6972c7b11b4
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-12-07 06:21:56 +0900
+
+    Revert required valac version to 0.14.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6905045
+
+M      configure.ac
+
+commit e7aa18c06be43e61776ca71815871f2c3ca7d61f
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-12-06 11:51:09 +0900
+
+    Hide some unused settings on ibus-setup.
+    
+    Review URL: https://codereview.appspot.com/6873058
+
+M      setup/setup.ui
+
+commit 9b4e665262048d7119aff3a1ef02ab79490e74e2
+Author: Evan Nemerson <evan@coeus-group.com>
+Date:   2012-12-05 12:18:51 +0900
+
+    build: quote $@ in autogen.sh
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1556
+    
+    Review URL: https://codereview.appspot.com/6867067
+    Patch from Evan Nemerson <evan@coeus-group.com>.
+
+M      autogen.sh
+
+commit e038d1c0084f1070afc2ff3652374c24e49faff6
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-12-05 12:00:30 +0900
+
+    Change the default config to ibus-dconf.
+    
+    Review URL: https://codereview.appspot.com/6849070
+
+M      configure.ac
+A      m4/gconf-2.m4
+
+commit a1840c00fad1798e7b62f469286415e8458125c4
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-12-05 11:20:37 +0900
+
+    Add Ctrl+space customization.
+    
+    Review URL: https://codereview.appspot.com/6822102
+
+M      data/ibus.schemas.in
+M      setup/keyboardshortcut.py
+M      setup/main.py
+M      setup/setup.ui
+M      ui/gtk3/panel.vala
+
+commit 58accdcb3075beec8a8fedb5b07562eea4fdd848
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-12-05 06:11:54 +0900
+
+    Modernize vala binding generation
+    
+    Use vapigen.m4 and Makefile.vapigen from vala to handle vapi file
+    generation.  Also generate vapi always when gir is updated.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6849132
+
+M      bindings/Makefile.am
+M      bindings/vala/Makefile.am
+M      configure.ac
+M      m4/Makefile.am
+A      m4/vapigen.m4
+
+commit 0639472efba34707d6f2d91511fc4c59c5255611
+Author: Mike FABIAN <maiku.fabian@gmail.com>
+Date:   2012-12-04 10:50:40 -0500
+
+    Fix red colour in rgb value in pango.vala
+    
+    The red part of the rgb value was always passed as 0
+    to Pango.attr_foreground_new(r, g, b) and
+    Pango.attr_background_new(r, g, b).
+    
+    BUG=
+    
+    Review URL: https://codereview.appspot.com/6874050
+    Patch from Mike FABIAN <maiku.fabian@gmail.com>.
+
+M      ui/gtk3/pango.vala
+
+commit 098bc1f5871241fec93831bc37715e45cc4182d6
+Author: Colin Walters <walters@verbum.org>
+Date:   2012-12-03 23:36:10 +0530
+
+    IBusFactory: Fix syntax of gtk-doc comment
+    
+    This was always invalid, but older versions of gobject-introspection
+    accepted it.
+    
+    BUG=https://bugzilla.gnome.org/show_bug.cgi?id=689354
+    
+    Review URL: https://codereview.appspot.com/6846138
+    Patch from Colin Walters <walters@verbum.org>.
+
+M      src/ibusfactory.c
+
+commit ae98b5a58846e1326550027dc8d2a773ed8a24c5
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-11-30 11:43:43 +0900
+
+    Fix xmllint errors.
+    
+    Review URL: https://codereview.appspot.com/6842115
+
+M      conf/dconf/dconf.xml.in.in
+M      conf/gconf/gconf.xml.in.in
+M      conf/memconf/memconf.xml.in.in
+M      ui/gtk3/gtkpanel.xml.in.in
+
+commit 0e8a207fff98c008b298acd0e6d7d96f3c4f263c
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-11-23 11:14:48 +0900
+
+    Fix out-of-tree build
+    
+    Also cleanup Makefiles and fix build error with older valac.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6782099
+
+M      bindings/vala/Makefile.am
+M      docs/reference/ibus/Makefile.am
+M      engine/main.vala
+M      src/Makefile.am
+M      src/tests/Makefile.am
+
+commit 0057397548a354b7eb359e5d45201db4077074e2
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-11-23 08:17:23 +0900
+
+    Install pygobject override
+    
+    To mitigate the gap between the old python binding and
+    pygobject, add wrapper to some classes.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6842079
+
+M      bindings/Makefile.am
+A      bindings/pygobject/Makefile.am
+A      bindings/pygobject/gi/__init__.py
+A      bindings/pygobject/gi/overrides/IBus.py
+A      bindings/pygobject/gi/overrides/__init__.py
+A      bindings/pygobject/test-override-ibus.py
+M      configure.ac
+
+commit dd6acfa5013b35b61aeb4085eef7da63f581f2f8
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-11-22 15:07:12 +0900
+
+    Remove gnome-icon-theme-legacy dependency.
+    
+    gtk_image_set_from_icon_name() accesses the icon_name only but
+    gtk_image_set_from_stock() can fallback the stock name to the real name.
+    E.g. "gtk-about.png" is the symlink of "help-about.png" and
+    "gtk-about.png" is included in gnome-icon-theme-legacy package in Fedora.
+    
+    Review URL: https://codereview.appspot.com/6846058
+
+M      setup/engineabout.py
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      setup/icon.py
+M      ui/gtk3/iconwidget.vala
+M      ui/gtk3/panel.vala
+M      ui/gtk3/property.vala
+M      ui/gtk3/switcher.vala
+
+commit 11a83ef32c7c73f0feb48fd36cc9f33abaa8024a
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-11-19 11:58:35 +0900
+
+    Add cedilla_compose_seqs table for pt_BR compose keys.
+    
+    Review URL: https://codereview.appspot.com/6814119
+
+M      engine/main.vala
+M      src/ibusengine.h
+M      src/ibusenginesimple.h
+
+commit e129cf261f18935f073ce083169c7168bc60ff06
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-11-15 16:58:06 +0900
+
+    Change the default icon to ibus-keyboard due to gnome ibus integration.
+    
+    Review URL: https://codereview.appspot.com/6851051
+
+M      configure.ac
+
+commit 15f3ccb38474c6bb206a2158d86171c93d6ec6a5
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-11-13 12:05:07 +0900
+
+    Update simple.xml to enable layout_variant tag.
+    
+    Review URL: https://codereview.appspot.com/6820129
+
+M      engine/simple.xml.in.in
+
+commit dce22003c388a7274dc148161cf0e02f44d29ad6
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-11-09 10:26:23 +0900
+
+    Disable IME switcher window when switcher-delay-time is less than 0
+    
+    Review URL: https://codereview.appspot.com/6818102
+
+M      data/ibus.schemas.in
+M      ui/gtk3/panel.vala
+M      ui/gtk3/switcher.vala
+
+commit 2ad1813370111608491e22e444bffe3607519652
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-11-06 17:31:55 +0900
+
+    gtk3: use different prev/next icons depending on orientation
+    
+    Use rotated icons for prev/next buttons on lookup table.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6815080
+
+M      ui/gtk3/candidatearea.vala
+
+commit ebfb9ae7fe2af60f9c2b1c1bd56739316c01d097
+Author: Peng Huang <penghuang@google.com>
+Date:   2012-11-05 09:24:15 -0500
+
+    Fix some build warnings.
+    
+    BUG=None
+    
+    Review URL: https://codereview.appspot.com/6775097
+
+M      bus/dbusimpl.c
+M      tools/main.vala
+M      ui/gtk3/candidatearea.vala
+M      ui/gtk3/candidatepanel.vala
+M      ui/gtk3/keybindingmanager.vala
+
+commit 4b044a05047dc897c8556f7c8856c53f6f4ea266
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-11-05 14:28:02 +0900
+
+    Add some milliseconds interval before IME switcher is shown.
+    
+    Review URL: https://codereview.appspot.com/6826045
+
+M      data/ibus.schemas.in
+M      ui/gtk3/panel.vala
+M      ui/gtk3/switcher.vala
+
+commit 1e6c42fa4fb42513ee9ae03b8534bce99dc02d73
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-10-26 16:56:34 +0900
+
+    ibus-daemon: use GFileMonitor instead of polling
+    
+    BUG=Issue#1514
+    
+    Review URL: https://codereview.appspot.com/6589065
+
+M      bus/global.c
+M      bus/global.h
+M      bus/ibusimpl.c
+M      bus/main.c
+M      bus/registry.c
+M      bus/registry.h
+M      bus/server.c
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusobservedpath.c
+M      src/ibusobservedpath.h
+
+commit 16295679bd6f74e5884e5872c524374945c40a05
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-10-23 13:35:24 +0900
+
+    ibus-daemon: ignore standard component path if IBUS_COMPONENT_PATH is set
+    
+    Don't load components from /usr/share/ibus/components if
+    IBUS_COMPONENT_PATH is set.  Currently the envvar is only useful
+    for testing and appending the standard path makes little sense.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6753044
+
+M      bus/registry.c
+
+commit cf5de7501e28fe929ff86d9b1d7689e15bc1cc4a
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-10-20 11:45:05 +0900
+
+    Add version property in IBusEngineDesc.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1524
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6736043
+
+M      ibus/enginedesc.py
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+
+commit afdb7f6c33fda44c2ad4054b7c23523d59218f47
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-10-16 10:28:26 +0900
+
+    Add layout_variant and layout_option in IBusEngineDesc for XKB.
+    
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6586075
+
+M      ibus/enginedesc.py
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+M      src/ibusserializable.h
+M      tools/main.vala
+M      ui/gtk3/panel.vala
+
+commit f9059d696390c01564a196dd4a5b2cd39ef6d7ac
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-10-15 11:45:30 +0900
+
+    Fix fallback 'C' locale in ibus-setup.
+    
+    BUG=RH#863673
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6649043
+
+M      setup/main.py
+
+commit 41c5f3d13c306a9d3e7fe969df4c50eeaddb4c0a
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-10-15 11:39:42 +0900
+
+    Fix a typo.
+    
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6651061
+
+M      bus/engineproxy.c
+M      setup/main.py
+
+commit ead48c8748521537beb0fbbe4af95c6b9a99a8af
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-10-12 11:31:35 +0900
+
+    Fix typo in data/dconf/profile/ibus
+    
+    http://git.gnome.org/browse/gdm/commit/?id=aa25b559c6e907485cc9e
+    I copied the typo by mitake. dconf_engine_source_new() supports
+    "user-db" or "system-db".
+    http://git.gnome.org/browse/dconf/tree/engine/dconf-engine-source.c#n75
+    
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6640058
+
+M      data/dconf/profile/ibus
+
+commit 469438987c6aa3b87aa215648d55a7c5e0e01451
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-10-08 13:00:21 +0900
+
+    Fix make dist in the latet doc build.
+    
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6615051
+
+M      docs/reference/ibus/Makefile.am
+
+commit af3da0f1f0441615db89116c7a4ae065afa210ca
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-10-05 12:21:05 -0400
+
+    Fix wrong return from key snooper.
+    
+    BUG=None
+    
+    Review URL: https://codereview.appspot.com/6623048
+
+M      client/gtk2/ibusimcontext.c
+
+commit c66a26a0e5b6909c0726ed46f0e7c3651fc38b3e
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-10-05 09:50:38 +0900
+
+    tests: set LC_ALL to C instead of en_US.Utf-8
+    
+    If LC_* is not "C" and there is no translation found in the current locale, gettext honors the LANGUAGE envvar.
+    
+    BUG=Issue#1515
+    
+    Review URL: https://codereview.appspot.com/6592074
+
+M      src/tests/ibus-util.c
+
+commit e97056e15badac9c0578a89d0085bfcb57ff7a2e
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-10-03 11:48:20 +0900
+
+    Fix SIGABRT by finalized IBusIMContext during _request_surrounding_text
+    
+    BUG=RH#859879
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6573051
+
+M      client/gtk2/ibusimcontext.c
+
+commit a541503e53616e4fddda59986023e7c20a198d56
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-09-28 10:11:01 -0400
+
+    Fix wrong size of switcher window after removing some engines.
+    
+    BUG=None
+    
+    Review URL: https://codereview.appspot.com/6560060
+
+M      ui/gtk3/switcher.vala
+
+commit defa8ee66d4a1a780bad0e6799ed0bb166d69eba
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-09-27 10:11:34 +0900
+
+    Fix IBus.Bus.get_config is null.
+    
+    Now im-ibus.so uses ibus_bus_new_async() instead of ibus_bus_new()
+    and then if ibus-setup-anthy calls GTK+ UI before ibus_bus_new(),
+    the async function is called instead and the delay is happened with
+    the latest ibus 1.5.
+    The fix is to call ibus_bus_new() before GTK+.
+    
+    BUG=RH#859585
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6566053
+
+M      setup/main.py
+
+commit 1f66434b9cea881de0f14de105763dc650351aea
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-09-26 10:16:32 +0900
+
+    Fix a docs build error with the latest libxslt-1.1.27.
+    
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/6570048
+
+M      docs/reference/ibus/ibus-docs.sgml.in
+M      src/ibusobservedpath.h
+M      src/ibusproperty.h
+
+commit b4fb74727f39697ce94c2c8a37f46044f357e17e
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-09-17 12:12:15 +0900
+
+    Fix SIGABRT in bus_panel_proxy_register_properties
+    
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6499112
+
+M      bus/engineproxy.c
+
+commit ea36002109cfaba8e78265a4398c17a1114fd3fe
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-09-17 12:09:31 +0900
+
+    Fix make dist.
+    
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6492121
+
+M      po/POTFILES.skip
+M      src/tests/Makefile.am
+
+commit 75826b04b90f78e5c1cb94bfd429b5fc88c1de67
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-09-14 11:24:30 +0900
+
+    Add IBusProperty.symbol for the short label.
+    
+    IBusProperty.label had been shared between the panel menu label and
+    language-bar button label so the label is too short against the panel menu.
+    Now we redefines IBusProperty.label as the long label and the new
+    IBusProperty.symbol is defined as the short label for the language-bar
+    and the panel status icon.
+    
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6495117
+
+M      ibus/property.py
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+
+commit 7ab4c75aa8fb180ff7e26b60561753701581b90a
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-09-12 10:06:57 +0900
+
+    ibus-daemon: trigger engine to send RegisterProperties when panel appears
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6506094
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/ibusimpl.c
+
+commit 8166b0b98bfe0d70c03fa26bb5e721a357ad4ef8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-09-11 11:21:58 -0400
+
+    Use gdk_threads_add_idle_full() in gtkimmodule to avoid race condition in some multi-threaded apps.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1505
+    
+    Review URL: https://codereview.appspot.com/6488104
+
+M      client/gtk2/ibusimcontext.c
+
+commit b1bd749c0030d1822bb3b3dd096d071cc697d81e
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-09-07 11:55:09 +0900
+
+    Prevent IME menu being empty when focus out
+    
+    Previously ibus-daemon did not make fake_context focused when focus-out, while it is supposed to do.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6492086
+
+M      bus/ibusimpl.c
+
+commit 0ec6166efe8f74bf8e2c3a447cfd05700c23423d
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-09-06 11:06:35 +0900
+
+    gtk3: Call XIGrabKeycode directly from Vala
+    
+    Port the logic of grabkeycode.c into Vala.  This will make it easier to
+    implement XI2 GenericEvent handling in KeybindingManager.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6501080
+
+M      bindings/vala/Makefile.am
+A      bindings/vala/xi.vapi
+M      ui/gtk3/Makefile.am
+D      ui/gtk3/grabkeycode.c
+M      ui/gtk3/keybindingmanager.vala
+
+commit 489941fa3385b476a8c2daffe8d1805004349e04
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-09-03 12:53:18 +0900
+
+    Cleanup the vala code of gtk3 panel and tool by:
+    
+    - using config.vapi
+    - omitting unnecessary "using X"
+    
+    Also localize ibus tool and make the argument handling better.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6496066
+
+M      bindings/vala/Makefile.am
+A      bindings/vala/config.vapi
+M      tools/Makefile.am
+M      tools/main.vala
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/application.vala
+M      ui/gtk3/candidatearea.vala
+M      ui/gtk3/candidatepanel.vala
+M      ui/gtk3/handle.vala
+M      ui/gtk3/iconwidget.vala
+M      ui/gtk3/keybindingmanager.vala
+M      ui/gtk3/panel.vala
+M      ui/gtk3/pango.vala
+M      ui/gtk3/property.vala
+M      ui/gtk3/separator.vala
+M      ui/gtk3/switcher.vala
+
+commit 1961c2b2fc012988b0d7663c79787ab5b739c7b4
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-08-24 23:13:41 +0900
+
+    tests: fix "make check" with dash
+    
+    /bin/dash does not support ERR trap signal and ">&" redirect.  Also
+    fix copying non-existing component file.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6478058
+
+M      src/tests/setupenv
+
+commit 738582c0cc4ef54e828209ba2c5d010e9a292679
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-08-24 21:52:06 +0900
+
+    Fix the last commit.
+    
+    Forgot to git add ibus-engine-switch.c.
+    
+    Review URL: https://codereview.appspot.com/6480052
+
+A      src/tests/ibus-engine-switch.c
+
+commit 69970b68c025a04f6ac557f8b196f2d5d3fe858e
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-08-24 21:48:56 +0900
+
+    tests: add engine-switch test
+    
+    Moved engine specific test from ibus-bus.c to a separate
+    file, so that it can be conditionally built depending on
+    --enable-engine.
+    
+    Also do not register duplicate engine when loading component files.
+    This is for the case when two engine descs with the
+    same name are in different directories in IBUS_COMPONENT_PATH.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6480052
+
+M      bus/registry.c
+M      src/tests/Makefile.am
+M      src/tests/ibus-bus.c
+
+commit 6bd9e0d2d49205fda366b20b18c7b20636993776
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-08-20 10:14:01 +0900
+
+    Fix to load the system gvdb with $DCONF_PROFILE in dconf 0.13.4
+    
+    BUG=RH#844580
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6446145
+
+M      conf/dconf/main.c
+M      data/dconf/profile/ibus
+
+commit 2e81378f2251b2e5affd01b874fb0b59abd99240
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-08-20 10:00:17 +0900
+
+    engine: delay D-Bus name request after factory creation
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6441157
+
+M      engine/main.vala
+M      src/tests/ibus-bus.c
+
+commit dd6a55663040eb34486d737cb62d9aa93f789c82
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-08-16 15:26:39 -0400
+
+    Do not use deprecated glib function g_atexit().
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1489
+    
+    Review URL: https://codereview.appspot.com/6454158
+
+M      client/x11/main.c
+
+commit 72ecfb351a1fe56cd23f9dc1db0a1c56ce7e65d3
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-08-09 10:58:47 +0900
+
+    Fix testcase failure when IBus is not installed.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6455068
+
+M      bus/registry.c
+M      src/tests/Makefile.am
+M      src/tests/ibus-inputcontext.c
+A      src/tests/setupenv
+
+commit bed48104cc27c4820b956f62cb853abadf8801a4
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-08-08 12:33:15 +0900
+
+    conf: always build ibus-memconf for testing
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6457087
+
+M      conf/Makefile.am
+M      conf/memconf/Makefile.am
+
+commit bd4e87f39069331791da09649eb7bf1e675cfefa
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-08-08 12:24:12 +0900
+
+    conf: cleanup GError usage
+    
+    - there are missing g_error_free
+    - some code assume error != NULL when setting *error
+    - src/tests/ibus-config.c has unconditional "unset" but it checks the return value
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6449103
+
+M      conf/dconf/config.c
+M      conf/gconf/config.c
+M      conf/gconf/main.c
+M      conf/memconf/config.c
+M      src/tests/ibus-config.c
+
+commit 644caf4add148deff0f697d2f48409145e414751
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-08-03 11:34:08 +0900
+
+    Set proper error code when config daemon is not running.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6453076
+
+M      src/ibusconfig.c
+M      src/ibustypes.h
+
+commit c013bbe9ac06c3418ca4d55c0302bcfb13d2977c
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-08-01 10:26:48 +0900
+
+    Fix double-unref when looping over attachment.
+    
+    BUG=none
+    
+    Review URL: https://codereview.appspot.com/6445057
+
+M      src/ibusserializable.c
+
+commit a454448111650c3e92fc9ba65c26a57adc9c3c6c
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-07-19 09:57:01 +0900
+
+    Support dconf 0.13.4
+    
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6426044
+
+M      conf/dconf/Makefile.am
+A      conf/dconf/config-private.h
+M      conf/dconf/config.c
+D      conf/dconf/config.h
+M      conf/dconf/main.c
+M      configure.ac
+
+commit f453bf83f502d8b1e2b6f07cf669c14cbcfe008e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-07-12 16:41:30 -0400
+
+    IBusBus: honor new connect-async prop in the socket monitor callback
+    
+    I think we should make use of the async connection here if the
+    property is set.
+    
+    But we also need a new flag for ongoing async connection attempts
+    because the socket monitor callback may be called several times before
+    the connection is established.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1482
+    TEST=
+    
+    Review URL: https://codereview.appspot.com/6346090
+
+M      src/ibusbus.c
+
+commit 636dda476734869c0e1fbf4d0464779a4c6fe667
+Author: Rui Matos <tiagomatos@gmail.com>
+Date:   2012-07-12 11:11:23 -0400
+
+    bus: Own a name on the DBus session bus
+    
+    This makes it easier for third parties to track the ibus-daemon life
+    cycle.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1476
+    TEST=
+    
+    Review URL: https://codereview.appspot.com/6374058
+    Patch from Rui Matos <tiagomatos@gmail.com>.
+
+M      bus/server.c
+
+commit 22ebca106794af153c01eae7e0175eb9f1a27648
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-06-08 10:28:33 -0400
+
+    Fix issue - keybinding with Super, Hyper and Meta Modifiers does not work.
+    
+    BUG=None
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6302047
+
+M      ui/gtk3/grabkeycode.c
+M      ui/gtk3/keybindingmanager.vala
+M      ui/gtk3/panel.vala
+
+commit 1ed8daa432f3fd922f26dac396f9cec1ad228f14
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-06-08 10:12:54 -0400
+
+    Refine IME switch keybinding related code.
+    
+    BUG=None
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6295047
+
+M      ui/gtk3/keybindingmanager.vala
+M      ui/gtk3/panel.vala
+M      ui/gtk3/switcher.vala
+
+commit d4f7a90936960ba3618cb621766e993951ed20de
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-06-05 09:59:06 -0400
+
+    Use IM icon in switcher dialog.
+    
+    BUG=None
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6274044
+
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/switcher.vala
+
+commit 39522cfd9ffdcf7fce1b73e8228d271828dfe55f
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-05-31 11:45:15 +0900
+
+    Enhance ibus-ui-gtk3 switcher labels.
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5956045
+
+M      ui/gtk3/switcher.vala
+
+commit c3688a9849e588e17db825dc24e6dde86d61a77a
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-05-31 11:38:40 +0900
+
+    Fix a SEGV when close the shortcutkey dialog and update mnemonic.
+    
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6256068
+
+M      setup/keyboardshortcut.py
+
+commit 1fc1dc476ddc65e55fa2834c13b42bdb5880d52d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-05-30 11:38:40 -0400
+
+    Change engines order when global_engine is changed.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1464
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6249064
+
+M      ui/gtk3/panel.vala
+
+commit 095e8232b871738ff2d22f33e70c4b1199ea6b4f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-05-30 07:42:51 -0400
+
+    Update setup ui file to gtk 3.0 and remove a debug print.
+    
+    BUG=None
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6244057
+
+M      setup/enginecombobox.py
+M      setup/setup.ui
+
+commit 82e628c3cb911e078cfe95a226ddb88cf75b1257
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-05-28 10:59:22 +0900
+
+    dconf: don't regenerate 00-upstream-settings after intltool-merge
+    
+    BUG=https://codereview.appspot.com/6215062/#msg10
+    TEST=manually with make distcheck
+    
+    Review URL: https://codereview.appspot.com/6245050
+
+M      data/dconf/Makefile.am
+
+commit 83397c256ff39da5c03cc9bdf935883046083f8f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-05-27 21:45:58 -0400
+
+    Refine inline document of ibus_engine_update_preedit_text_with_mode()
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1045
+    TEST=None
+    
+    Review URL: https://codereview.appspot.com/6249058
+
+M      src/ibusengine.h
+
+commit b745ea21b1ed6cbcec6614f957d1bd9c731f88c2
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-05-23 09:55:38 +0900
+
+    gtk3: don't show "missing" icon for each submenu
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/6211072
+
+M      ui/gtk3/property.vala
+
+commit 4bee2863e8d2e51b185b6d149e6259848d8c0cb6
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-05-20 15:01:01 +0900
+
+    dconf: use text-based key file and dconf update
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/6215062
+
+M      data/dconf/Makefile.am
+M      data/dconf/make-dconf-override-db.sh
+
+commit 32533c72be144e0a26902e11ed0b967208a17317
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-05-17 11:08:14 -0400
+
+    Don't not set orientation when hide lookup table to improve UI performance.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1461
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/6203085
+
+M      ui/gtk3/candidatepanel.vala
+
+commit 6422f056a7e5946c59f105aabfc1bc724d13fc5a
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-05-16 16:23:55 +0900
+
+    Improved the language of a couple of dialogs.
+    
+    Also update all po files.
+    
+    BUG=https://github.com/ibus/ibus/pull/4
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/6212048
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/en_GB.po
+M      po/es.po
+M      po/fa.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/lv.po
+M      po/ml.po
+M      po/mr.po
+M      po/nl.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/pt_BR.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/tg.po
+M      po/uk.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/main.py
+
+commit 1fbf1695a873e8deb80c032d467aaaa806ee6c4d
+Author: Jason Conti <jason.conti@gmail.com>
+Date:   2012-05-14 13:55:30 -0400
+
+    Fix IBusBus gobject introspection by connecting in the constructor.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1452
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6210055
+    Patch from Jason Conti <jason.conti@gmail.com>.
+
+M      src/ibusbus.c
+
+commit 99cbfbdd6f6e5ebd570d2a4b983ea3561980f7a3
+Author: Kim, Seung Won <seungzzang@gmail.com>
+Date:   2012-05-09 10:05:59 -0400
+
+    Fix a typo.
+    
+    BUG=None
+    TEST=None
+    
+    Review URL: https://codereview.appspot.com/6188057
+    Patch from Kim, Seung Won <seungzzang@gmail.com>.
+
+M      src/ibusbus.c
+
+commit bbbdd2efb005b77282311d8dd1536ed6a2bf32ac
+Author: Jason Conti <jason.conti@gmail.com>
+Date:   2012-05-09 09:29:30 -0400
+
+    Add tests for ibus_bus_new_async
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1452
+    
+    Review URL: https://codereview.appspot.com/6200055
+    Patch from Jason Conti <jason.conti@gmail.com>.
+
+M      src/tests/ibus-bus.c
+
+commit 7ca7db00f8d8feb5d68873089ac3418c795a0c15
+Author: Jason Conti <jason.conti@gmail.com>
+Date:   2012-05-08 15:42:38 -0400
+
+    Use ibus_bus_new_async in gtk2 client.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1452
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6198052
+    Patch from Jason Conti <jason.conti@gmail.com>.
+
+M      client/gtk2/ibusimcontext.c
+
+commit a78a254715fb410d4c2f7fd274894e51d74bc9bb
+Author: Jason Conti <jason.conti@gmail.com>
+Date:   2012-05-08 14:01:57 -0400
+
+    Add function ibus_bus_new_async to create a new IBusBus object and asynchronously connect to the IBus daemon.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1452
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/6159047
+    Patch from Jason Conti <jason.conti@gmail.com>.
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+
+commit e9f682d4c6bf90ba8c40e2920d24d7bbba449e8f
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-05-08 10:44:36 +0900
+
+    Fix GtkBuilder bindtextdomain in ibus-setup.
+    
+    The patch was provided by Akio Obata <obata at lins dot jp>
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1453
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/6203045
+
+M      ui/gtk2/i18n.py
+
+commit c333b7604437d10b30e8e33ef18c276c11119394
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-04-27 11:42:00 +0900
+
+    Fix some test codes.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1438
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/6121053
+
+M      bus/test-client.c
+M      bus/test-stress.c
+
+commit d0df8d3a62fd156029fb1422cd786d3f351b17fe
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-04-27 11:27:03 +0900
+
+    Enable to fall back /etc/machine-id
+    
+    http://cgit.freedesktop.org/dbus/dbus/commit/dbus/dbus-sysdeps-unix.c?id=66e52541d5bdd4927a5c702963749760643313f4
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1389
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/6111060
+
+M      src/ibusshare.c
+
+commit b8fe4d782db37385246f651493f9d935dd58c301
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-04-18 10:37:07 +0900
+
+    Fix make check.
+    
+    The make variable TESTS is reserved by automake:
+    https://www.gnu.org/software/automake/manual/automake.html#index-TESTS-832
+    and thus it causes error when make check:
+     make[4]: Entering directory `/home/ueno/devel/ibus/src'
+     /bin/sh: line 9: ./tests: Is a directory
+     FAIL: tests
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/6056043
+
+M      src/Makefile.am
+
+commit f2e266da9e60bc5318ea98ad40c8f83a8bb06026
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-04-17 10:25:58 +0900
+
+    Add options to disable to build UI and engines.
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/6031059
+
+M      Makefile.am
+M      configure.ac
+
+commit 75df361698c7be58e33993784f2d6b9b0957fd44
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-04-16 10:19:57 +0900
+
+    Fix the order of arguments in NameOwnerChanged
+    
+    BUG=RH#799571
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/6022044
+
+M      ui/gtk3/application.vala
+
+commit 6c5e5d09cb13989e21c7d533e9c0332feb3f0208
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-04-10 11:31:49 +0900
+
+    Ignore mouse masks in ui/gtk3/keybindingmanager for accessibility.
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5975069
+
+M      ui/gtk3/keybindingmanager.vala
+
+commit 991eebc31aa605fbce03edda6eaecfd06c2fcb1b
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-04-06 12:11:35 +0900
+
+    Fix ibus-x11 SEGV in _process_key_event_done.
+    
+    IMForwardEvent() calls _Xi18nFindClient() and it could return NULL.
+    Maybe the connect_id would be disconnected during the async
+    process_key_event.
+    This fix checks XIM_DISCONNECT in ims_protocol_handler() to cancel
+    IMForwardEvent() in _process_key_event_done().
+    
+    BUG=RH#769135
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5498090
+
+M      client/x11/main.c
+
+commit b620e0bcda97934d6927b7cdde300598ac5de45f
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-04-05 10:44:26 +0900
+
+    Fix ibus-setup SEGV on C locale.
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5976076
+
+M      setup/enginecombobox.py
+
+commit 6ec73515cb040be531107b70705659a2668f0965
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2012-04-03 18:31:47 +0900
+
+    Fix typo in ibusfactory.c.
+    
+    BUG=None
+    TEST=None
+    
+    Review URL: https://codereview.appspot.com/5969068
+
+M      src/ibusfactory.c
+
+commit ceaeb86d9b7c5d8674151c863551564a15c0924f
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-23 11:40:29 +0900
+
+    Enable bindtextdomain in ibus-ui-gtk3.
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5876049
+
+M      configure.ac
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/application.vala
+
+commit b8c12964e9d14b8a15ef55b2f9ae23bf1592d6ee
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-23 11:25:28 +0900
+
+    Add --help in ibus tool.
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5868046
+
+M      tools/Makefile.am
+M      tools/main.vala
+
+commit 99f6b739f3dd9d7448c5e546da1195a901881752
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-20 14:25:56 +0900
+
+    Set the custom font in ui.gtk3.CandidatePanel.
+    
+    BUG=RH#803250
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5845047
+
+M      ui/gtk3/panel.vala
+
+commit 942718e3a3177c33be2b04cf526c20be4ed227f6
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-19 16:20:55 +0900
+
+    Show language id on ibus-ui-gtk3.switcher window.
+    
+    BUG=RH#803177
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5843059
+
+M      ui/gtk3/switcher.vala
+
+commit 69902696928e6acb953ab30b1f70e462b5994272
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-03-15 14:42:43 +0900
+
+    ibus-daemon: make sure to focus out engine when unset.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: https://codereview.appspot.com/5824046
+
+M      bus/inputcontext.c
+
+commit 865488566851107a69c315ad7d1cf01496c5e019
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-03-15 13:21:08 +0900
+
+    gtk3: show language name on the IME menu.
+    
+    BUG=https://bugzilla.redhat.com/show_bug.cgi?id=803177
+    TEST=manual
+    
+    Review URL: https://codereview.appspot.com/5819049
+
+M      src/ibusutil.c
+M      ui/gtk3/panel.vala
+
+commit ace5cdedf80608fb3524e643195c608543cf7a09
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-03-14 11:07:47 +0900
+
+    gtk3: honor lookup table labels and orientation
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: https://codereview.appspot.com/5798074
+
+M      ui/gtk3/candidatearea.vala
+M      ui/gtk3/candidatepanel.vala
+
+commit e38ff0fd94ae653eb0a39dde00712f809ef92654
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-03-13 12:02:15 -0400
+
+    libibus: Fix a refcount issue in ibus_prop_list_deserialize()
+    
+    BUG=None
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5796079
+
+M      src/ibusproplist.c
+
+commit 3179c4fa298a89d2902842ccd30f475e012157b3
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-12 10:29:23 +0900
+
+    Fix to ungrab ui/gtk3/switcher for GTK 3.3.18 and GLib 2.31.20
+    
+    BUG=RH#800897
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5795048
+
+M      ui/gtk3/switcher.vala
+
+commit af87f5ee161f1cfeab85cd0e19e8c77f6b89ee76
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-03-07 00:41:14 -0500
+
+    Remove some unused code.
+    
+    BUG=None
+    TEST=Make
+    
+    Review URL: https://codereview.appspot.com/5756061
+
+M      bus/ibusimpl.c
+M      client/x11/gdk-private.c
+M      src/ibuscomponent.c
+M      src/ibusconfigservice.c
+M      src/ibusshare.c
+
+commit c1b7d86c3fc12274a569d0227877a53819927f25
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-03-07 00:40:47 -0500
+
+    Refine coding style.
+    
+    BUG=None
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/5753058
+
+M      ui/gtk3/handle.vala
+
+commit 24ea6f7077c4f44be5fca392160d44c73f03133a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-03-07 00:39:17 -0500
+
+    Shrink the IME switcher window size if necessary.
+    
+    BUG=None
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/5753056
+
+M      ui/gtk3/switcher.vala
+
+commit bef66b7ce2344dd0a4c72a6738e99a05ca2d9e56
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-03-06 10:03:25 +0900
+
+    Restrict config notification to panel.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: https://codereview.appspot.com/5729064
+
+M      ui/gtk3/panel.vala
+
+commit f1c010f6b5a56e21b78e5ea97aea263b95d7e540
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-05 13:25:53 +0900
+
+    Fix python library to load libibus.so.Y
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5731060
+
+M      ibus/_config.py.in
+M      ibus/common.py
+M      ui/gtk3/Makefile.am
+
+commit e786c06a6676c46dff74c2fcdd81948226625a42
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-05 10:19:05 +0900
+
+    Enhance make dist
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5730046
+
+M      Makefile.am
+M      autogen.sh
+M      bus/Makefile.am
+M      configure.ac
+M      po/POTFILES.in
+A      po/POTFILES.skip
+M      src/Makefile.am
+M      ui/gtk3/Makefile.am
+
+commit b7fb2107ca35662a92fe6b4964cade367a07c4c1
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-05 10:14:07 +0900
+
+    Revert Gdk.DeviceManager.list_devices to work with vala 0.15
+    
+    Fixed a build error in ui/gtk3 with vala 0.15
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5720068
+
+M      ui/gtk3/switcher.vala
+
+commit f1c82fbc0681b471056b74f51b1fda71fc210e78
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-03-02 15:58:36 +0900
+
+    ibus-setup: improve ibus-daemon auto start
+    
+    Instead of repeatedly launch the daemon and wait, start it once and wait for
+    IBusBus::connected signal for 5 seconds.
+    
+    BUG=none
+    TEST=manually on Fedora 17
+    
+    Review URL: https://codereview.appspot.com/5716045
+
+M      setup/main.py
+
+commit e2191142be323934b1c2dafc16736ff9999541f7
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-02 11:18:38 +0900
+
+    Change LT_VERSION_INFO so that SONAME is changed for ibus 1.5.
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5707059
+
+M      configure.ac
+
+commit 07ec3b4c930445731708c2006a65dda11acfcc78
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-03-02 10:27:47 +0900
+
+    ibus-setup: minor typo fixes of GI enum names
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: https://codereview.appspot.com/5710049
+
+M      setup/enginetreeview.py
+M      setup/main.py
+
+commit 0c044387fe874fe403c27a50792c2c3720665bbe
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-01 12:09:07 +0900
+
+    Fix build errors in ui/gtk3 with vala-0.15.1 and gtk3-3.3.14
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5704053
+
+M      ui/gtk3/candidatepanel.vala
+M      ui/gtk3/handle.vala
+
+commit 991166db3bbcaf8c76569a368dcaaf4dd7c263d8
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-01 11:55:48 +0900
+
+    Fix no gconf engines_order and the engine setup button on ibus-setup.
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5702057
+
+M      data/ibus.schemas.in
+M      setup/main.py
+
+commit 25d05c609e0500dd2d51e946c672bc051a30972a
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-01 11:38:15 +0900
+
+    Fix to launch ibus-setup without running ibus-daemon.
+    
+    BUG=RH#796070
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5704054
+
+M      setup/main.py
+
+commit 5af76e815d4680b16d297eb66bd3b5486a501802
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-03-01 11:33:52 +0900
+
+    Fix page_up and page_down signals in ibus-ui-gtk3
+    
+    BUG=RH#796555
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5705050
+
+M      ui/gtk3/panel.vala
+
+commit d91bdc01d58629f65d6be01665f54767b1bd7f0e
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-03-01 10:50:37 +0900
+
+    Simplify ibus_config_watch tests using fixtures.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: https://codereview.appspot.com/5702058
+
+M      src/tests/Makefile.am
+M      src/tests/ibus-config.c
+
+commit 57846a1016a395f06e9b8fe8db1c537f791a6018
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-02-29 17:00:32 +0900
+
+    Add ibus_config_watch/unwatch.
+    
+    Currently IBusConfig proxy is notified every config value change.
+    e.g. ibus-m17n will get notified even when ibus-anthy's config values
+    are changed.
+    
+    With this patch, IBusConfig proxy will be able to restrict
+    notification by calling ibus_config_watch().  For example, after:
+    
+    ibus_config_watch (config, "engine/M17N/hi/inscript", NULL);
+    
+    it will be notified value changes only under
+    "engine/M17N/hi/inscript" section.
+    
+    BUG=none
+    TEST=manually with modified ibus-m17n
+    
+    Review URL: https://codereview.appspot.com/5091045
+
+M      src/ibusbus.c
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusinternal.h
+M      src/tests/Makefile.am
+M      src/tests/ibus-config.c
+
+commit 87863d575856768517f8f6bd8119eaea2b8e7c49
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-02-29 15:44:00 +0900
+
+    Fix to return false in ibus_simple_engine_process_key_event
+    
+    IM clients expect filter_keypress returns FALSE when IME is disabled.
+    Now we use the simple engine instead of the disabled state so
+    it would be better that process_key_event returns FALSE for ASCII.
+    
+    BUG=RH#769133
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5707057
+
+M      src/ibusenginesimple.c
+
+commit d050c5ba6c8a6546cb7855a3eff9a9c1f048b977
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-02-29 12:58:46 +0900
+
+    dconf: remove workaround for self-write notification.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: https://codereview.appspot.com/5709051
+
+M      conf/dconf/config.c
+
+commit 4fe94aee0d3099060433189f3457df3df6b89bea
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-02-27 10:28:18 -0500
+
+    Remove redefinition of typedef IBusEngineSimplePrivate.
+    
+    BUG=None
+    TEST=Make on Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5699087
+
+M      src/ibusenginesimple.c
+
+commit 947ea295e8e9a75a4add59434677912e603bd6d0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-02-27 09:57:47 -0500
+
+    Refine inline doc and test for ibus_bus_get_engines_by_names().
+    
+    BUG=None
+    TEST=Manually
+    
+    Review URL: https://codereview.appspot.com/5697067
+
+M      src/ibusbus.h
+M      src/tests/ibus-bus.c
+
+commit 7d1df0e8aa0e630c6959061e1f49f296424982dd
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-02-27 13:34:15 +0900
+
+    Fix build with vala 0.14.2.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: https://codereview.appspot.com/5697071
+
+M      ui/gtk3/switcher.vala
+
+commit 99e4d9d7af0bdeaf396bbd26cac949eca7cdfe1d
+Merge: 1b5b406 7975fa0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-02-26 16:28:40 -0500
+
+    Merge remote-tracking branch 'origin/devel'
+    
+    TEST=Linux Desktop
+    
+    Review URL: https://codereview.appspot.com/5517048
+
+commit 1b5b4067486212d5cf5d937d40eb18da6941acee
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-02-23 12:07:44 +0900
+
+    Add ibus_unset_log_handler to remove the handler in ibus_set_log_handler
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5690064
+
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 7975fa01ae1cc1294b878681463e030fdd0de2bd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-31 10:40:40 -0500
+
+    ibus-engine-simple: Use icon ibus-keyboard for xkb layouts.
+
+M      engine/gensimple.py
+M      engine/simple.xml.in.in
+
+commit daf63a8db3293324245d918aec25f8c9ff58c359
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-27 10:18:59 -0500
+
+    vala: Fix vala binding
+
+M      engine/main.vala
+
+commit 30d217ac85265a9913e2fdfd266b48c679882daa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-27 09:51:26 -0500
+
+    ibus-ui-gtk3: Add quit item in menu.
+
+M      tools/main.vala
+M      ui/gtk3/panel.vala
+
+commit ff9556cc215d7bf8319bea81e60ce22ea67566a9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-24 12:15:40 -0500
+
+    ibus-ui-gtk3: Use longname in IME switch UI.
+
+M      ui/gtk3/panel.vala
+
+commit 07f48ddfccaddad79dfd48b382b3e04f2705c09c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-24 12:15:13 -0500
+
+    libibus: Fix some reference issues.
+
+M      src/ibusattrlist.c
+M      src/ibusbus.c
+M      src/ibusproplist.c
+
+commit c5721c6292dd9b23a425fc3bca01128e2d4bd382
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-23 14:21:42 -0500
+
+    libibus: add test case for ibus_bus_get_engines_by_names.
+
+M      src/tests/ibus-bus.c
+
+commit 006f386313365154976134d9dfce4b4afe3d9b91
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-23 13:59:24 -0500
+
+    libibus: Fix annotation of ibus_bus_get_engines_by_names.
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+
+commit 39422b6224ce511bd11093bf57af4b1bc163a181
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-23 13:27:59 -0500
+
+    ibus-ui-gtk2: Do not release gtk2 ui in tarball but keep them in repo.
+
+M      configure.ac
+M      ui/Makefile.am
+
+commit 9c6018bf91e4f288585c478ea566a0c7ec271a56
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-23 12:27:10 -0500
+
+    Fix review issues.
+
+M      bus/Makefile.am
+M      bus/component.c
+M      bus/dbusimpl.c
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+M      bus/global.c
+M      bus/global.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/main.c
+M      bus/matchrule.c
+M      bus/matchrule.h
+D      bus/option.h
+M      bus/panelproxy.c
+M      bus/registry.c
+M      bus/server.c
+M      bus/test-client.c
+M      bus/test-matchrule.c
+M      configure.ac
+M      src/gtkimcontextsimpleseqs.h
+M      src/ibusenginesimple.c
+M      src/ibuskeynames.c
+M      src/ibuskeysyms-compat.h
+M      src/ibuskeysyms.h
+M      src/ibusutil.c
+M      src/ibusxml.c
+
+commit f70cd8e334fed1020d0a03e8dc0f6bc2c50b23cb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-13 11:52:53 -0500
+
+    ibus-ui-gtk3: Disable panel when Panel name owership is lost.
+
+M      ui/gtk3/application.vala
+M      ui/gtk3/panel.vala
+
+commit 389ad09a6fff55652fd30159c1008018187e4d77
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-13 11:29:49 -0500
+
+    ibus-daemon: Fix a matchrule parse issue.
+
+M      bus/matchrule.c
+M      bus/test-matchrule.c
+
+commit 55a9300f49ea5b711dbbf78870f3d9d400e3b662
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-12 10:41:00 -0500
+
+    ibus-ui-gtk3: Fix hotkey issue when xkb -option ctrl:swapcap is using.
+
+M      ui/gtk3/switcher.vala
+
+commit 3df2d9f52efe96a7d4d484860c81d2ed38a061f7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-12 10:12:44 -0500
+
+    ibus-ui-gtk3: Hide the candidate window during starting up.
+
+M      ui/gtk3/candidatepanel.vala
+M      ui/gtk3/panel.vala
+
+commit a14ff9ea9e6168fd48071c45b8fbfdc5d1182b9a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-12 10:05:37 -0500
+
+    ibus-ui-gtk3: Fix a crash when config module is not ready.
+
+M      ui/gtk3/panel.vala
+
+commit 1537971b607190eee248cf82020075ef6fecbc3c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-11 22:18:10 -0500
+
+    Rename xinput-ibus.in to xinput-ibus
+
+M      Makefile.am
+M      configure.ac
+A      xinput-ibus
+D      xinput-ibus.in
+
+commit ab6b68c2d273336ead3492954844ce244e15480a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-11 20:41:16 -0500
+
+    ibus-daemon: Move global variables into separated files.
+
+A      bus/global.c
+A      bus/global.h
+
+commit 05af2cf44375d560f7340151738d25ed156aa67a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-11 17:27:01 -0500
+
+    Do not create IBusInputContext in focus_in virtual function
+
+M      ui/gtk3/panel.vala
+
+commit 3981f1e46d14b37012aaa138d1681f196c0cfebd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-11 17:26:44 -0500
+
+    Reenable test casues for ibus-daemon
+
+M      bus/Makefile.am
+M      bus/inputcontext.c
+M      bus/main.c
+M      bus/test-client.c
+M      bus/test-matchrule.c
+M      bus/test-stress.c
+
+commit 985dadc47c09460db4e812f9d2b539aefab34ac8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-11 17:25:59 -0500
+
+    Fix match rule parsing bug.
+
+M      bus/matchrule.c
+
+commit 6d6f93858b59948f747b9d42cd529e72d3db0deb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-11 11:20:36 -0500
+
+    Ignore some unused bits in modifiers
+
+M      ui/gtk3/keybindingmanager.vala
+
+commit 0bbb10e9fbdd42eefdc731b6bb81589bbb6678d1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-06 15:17:32 -0500
+
+    Refine ibus_get_language_name() test case
+
+M      src/tests/ibus-util.c
+
+commit fccbddcc3553fde537ee61545f95487cd8a3f4b2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-06 14:52:40 -0500
+
+    Remove some unused code and fix a focus issue
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+
+commit d7dbac12fd428ec55e36f8fa163729149cdb56b8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-06 14:52:18 -0500
+
+    Create __languages_dict with g_hash_table_new_full
+
+M      src/ibusutil.c
+
+commit 25a884b6afab4bc6ee3f97704608e352e4e1163a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-06 12:28:42 -0500
+
+    Fix a bug in simple.xml.in.in
+
+M      engine/gensimple.py
+M      engine/simple.xml.in.in
+
+commit f80d56d7599dd7f31ecba28d7c8d9df162006287
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-06 12:17:04 -0500
+
+    Move current language to the first place in the IME combobox
+
+M      setup/enginecombobox.py
+
+commit 48276af4f487c0c27d5b1a0f6cf9224aa72e35b3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-06 11:55:24 -0500
+
+    Fix a bug in ibus_get_language_name and add a unit test
+
+M      setup/enginecombobox.py
+M      src/ibusutil.c
+M      src/tests/Makefile.am
+A      src/tests/ibus-util.c
+
+commit c5421afdd1357f4599367b048be89818dc2630b3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-06 11:07:15 -0500
+
+    Fix a build error
+
+M      bus/ibusimpl.c
+
+commit 661bb47f98f82c8887b11d3ad1f6c7ac8e546f2c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-06 10:57:31 -0500
+
+    Remove some useless xkb layout
+
+M      bus/ibusimpl.c
+M      engine/gensimple.py
+M      engine/simple.xml.in.in
+M      ui/gtk3/panel.vala
+
+commit fc72d2f6b11595e38216fbffd1048e2ba07d524d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-05 17:34:30 -0500
+
+    refine code for reviewing
+
+M      bus/Makefile.am
+M      bus/ibusimpl.c
+M      engine/gensimple.py
+
+commit 2872ba0f68bc960668eddabd00c39529235919d6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-05 15:11:14 -0500
+
+    Execute ibus-setup in panel correctly
+
+M      ui/gtk3/panel.vala
+
+commit 866efc43a4ae8a91956fe1d9d252eb5963d3170a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-05 14:59:35 -0500
+
+    WIP
+
+M      configure.ac
+M      engine/gensimple.py
+M      src/ibusutil.c
+D      ui/gtk3/gtkpanel.xml.in
+M      ui/gtk3/panel.vala
+
+commit 369a7906fb980ba5d2b69d2ac0bffcc9951b83fe
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-05 14:34:59 -0500
+
+    Escape some desc
+
+M      engine/gensimple.py
+M      engine/simple.xml.in.in
+
+commit 9a8ce1b1a97063aed41ac9bfdbf98721ed38cf20
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-05 14:27:58 -0500
+
+    Generate simple.xml.in.in from xkb layouts
+
+A      engine/gensimple.py
+M      engine/simple.xml.in.in
+
+commit 1cf24fbfd61a5fc7bd1286b34f60656015d2dba8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-04 17:41:21 -0500
+
+    Deprecated ibus python library.
+
+M      ibus/__init__.py
+
+commit 64f8274b599a4caa3e501e3a06cf8082db1d5475
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-04 17:08:03 -0500
+
+    WIP add gtkpanel.xml for gtk3 ui
+
+M      configure.ac
+M      ui/gtk3/Makefile.am
+A      ui/gtk3/gtkpanel.xml.in
+A      ui/gtk3/gtkpanel.xml.in.in
+
+commit a773bc6313763d828de015fcfd2b44ec10fb733b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-04 16:48:16 -0500
+
+    WIP Disable gtk2 ui in rpm spec file.
+
+M      ibus.spec.in
+
+commit 7520633eac6a773c7b53bb51ccc062890811edbc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-04 16:02:20 -0500
+
+    WIP add --enable-python-library
+
+M      Makefile.am
+M      configure.ac
+M      ui/Makefile.am
+M      ui/gtk3/property.vala
+
+commit 3bb751415b4337ef2479ae7553afad3d883d7afe
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-04 15:35:00 -0500
+
+    WIP IME and sys menus.
+
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/panel.vala
+M      ui/gtk3/property.vala
+
+commit 3b96fd09796b311699dad881737000b2ff503561
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-04 10:52:28 -0500
+
+    Add restart and exit commands in ibus tools
+
+M      tools/ibus.bash
+M      tools/main.vala
+
+commit 55492f4491972c0cbc1f082540f639b79484269e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-22 11:25:17 -0500
+
+    Make registered IME visible to panel.
+
+M      bus/ibusimpl.c
+
+commit 96201f111217b064317606cc9adb67cc1dfe2535
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-19 16:18:40 -0500
+
+    Change IME icon on systray.
+
+M      ui/gtk3/panel.vala
+
+commit ad17864ed34d00b65ae40ff69bd2c133addaebcf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-19 15:36:59 -0500
+
+    Delay showing switch popup window to avoid annonying.
+
+M      ui/gtk3/panel.vala
+M      ui/gtk3/switcher.vala
+
+commit 303308e397f409e3c74be72eaf307efc2a7cb832
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-17 15:20:29 -0500
+
+    WIP move all conf components into conf dir
+
+M      Makefile.am
+A      conf/Makefile.am
+A      conf/dconf/Makefile.am
+A      conf/dconf/config.c
+A      conf/dconf/config.h
+A      conf/dconf/dconf.xml.in.in
+A      conf/dconf/main.c
+A      conf/gconf/Makefile.am
+A      conf/gconf/config.c
+A      conf/gconf/config.h
+A      conf/gconf/gconf.xml.in.in
+A      conf/gconf/main.c
+A      conf/memconf/Makefile.am
+A      conf/memconf/config.c
+A      conf/memconf/config.h
+A      conf/memconf/main.c
+A      conf/memconf/memconf.xml.in.in
+M      configure.ac
+D      dconf/Makefile.am
+D      dconf/config.c
+D      dconf/config.h
+D      dconf/dconf.xml.in.in
+D      dconf/main.c
+D      gconf/Makefile.am
+D      gconf/config.c
+D      gconf/config.h
+D      gconf/gconf.xml.in.in
+D      gconf/main.c
+D      memconf/Makefile.am
+D      memconf/config.c
+D      memconf/config.h
+D      memconf/main.c
+D      memconf/memconf.xml.in.in
+
+commit 07c3d35786349db0f0b561e4ccb5051b71c8b0ed
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-17 15:07:07 -0500
+
+    WIP fix gtk3 setup issues
+
+M      setup/enginetreeview.py
+M      setup/main.py
+
+commit e1d9ff1dbd0a5169dd685027c31f843ac1636f57
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-17 10:55:26 -0500
+
+    WIP fix some issues with gtk3 and gi
+
+M      setup/enginetreeview.py
+M      setup/icon.py
+M      setup/keyboardshortcut.py
+M      setup/main.py
+
+commit 9983fbfb473347669b058254c55537ce707f7c2a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-16 18:02:54 -0500
+
+    WIP port setup ui to gtk3
+
+M      setup/engineabout.py
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      setup/icon.py
+M      setup/keyboardshortcut.py
+M      setup/main.py
+M      setup/setup.ui
+
+commit c2f197c6fc7626857a59f2d3a0fd7d889742a939
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-16 15:11:49 -0500
+
+    WIP port enginecombobox.py icon.py to gtk3
+
+M      setup/engineabout.py
+M      setup/enginecombobox.py
+M      setup/icon.py
+
+commit ee6d61921d92bc5657634d57c51d6efbbf0fd348
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-16 14:44:11 -0500
+
+    WIP port engineabout.py to gtk3
+
+T      setup/engineabout.py
+
+commit dcf309af71d23d8c3dd94ba0b009c5e2b39008cc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-16 14:10:51 -0500
+
+    Remove some unused module in py file
+
+M      setup/main.py
+
+commit ba24671167c1b4b632771b3146448485489bbbf8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-16 13:25:41 -0500
+
+    Comment out all debug log in ibusenginesimple.c
+
+M      src/ibusenginesimple.c
+
+commit 51ee0ae762ff8d9c7c76d1669012f63928327737
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-16 11:39:57 -0500
+
+    Refine ibus.bash
+
+M      tools/ibus.bash
+
+commit 205dfcbff7473b760966145f5bf316650d63f918
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-15 18:38:53 -0500
+
+    Use xkb:layout:us as default engine.
+
+M      bus/ibusimpl.c
+
+commit 1ddca02cd9c86e55ec6742716459cf6a66bf5ede
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-15 18:27:18 -0500
+
+    set xkblayout in 'ibus engine' command
+
+M      tools/main.vala
+
+commit aae1c575e4f42805b7d44c269c3721afa189bbc2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-15 18:14:45 -0500
+
+    Fix bash completion issue
+
+M      tools/ibus.bash
+
+commit 72dcb202700c74ed2ff971e46d124152f665754d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-15 17:56:16 -0500
+
+    WIP app ibus bash completion script and fix rpmbuild
+
+M      ibus.spec.in
+M      setup/engineabout.py
+M      setup/i18n.py
+M      tools/Makefile.am
+A      tools/ibus.bash
+M      tools/main.vala
+
+commit a91abfb49fa7c68229f72ca920031800eb815828
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-15 12:29:30 -0500
+
+    WIP add ibus switch-engine command
+
+M      tools/main.vala
+
+commit ba7496ec4bb4c1ed16e450bf7344addc3dfad24d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-15 12:05:49 -0500
+
+    WIP ibus list-engine command
+
+M      tools/main.vala
+
+commit 3e114c4cbbebbfdf89fd36dc74ed4cdb6f5004c2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-14 16:35:04 -0500
+
+    WIP add a shell tool.
+
+M      Makefile.am
+M      configure.ac
+A      tools/Makefile.am
+A      tools/main.vala
+M      ui/gtk3/property.vala
+
+commit 0fb7788fb103da00d38f69b44ee63f78f3cda14e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-14 15:21:49 -0500
+
+    Rename ui/gtk to ui/gtk2
+
+M      configure.ac
+M      ui/Makefile.am
+D      ui/gtk/Makefile.am
+D      ui/gtk/candidatepanel.py
+D      ui/gtk/engineabout.py
+D      ui/gtk/gtkpanel.xml.in.in
+D      ui/gtk/handle.py
+D      ui/gtk/i18n.py
+D      ui/gtk/ibus-ui-gtk.in
+D      ui/gtk/icon.py
+D      ui/gtk/languagebar.py
+D      ui/gtk/main.py
+D      ui/gtk/menu.py
+D      ui/gtk/notifications.py
+D      ui/gtk/panel.py
+D      ui/gtk/propitem.py
+D      ui/gtk/toolitem.py
+A      ui/gtk2/Makefile.am
+A      ui/gtk2/candidatepanel.py
+A      ui/gtk2/engineabout.py
+A      ui/gtk2/gtkpanel.xml.in.in
+A      ui/gtk2/handle.py
+A      ui/gtk2/i18n.py
+A      ui/gtk2/ibus-ui-gtk.in
+A      ui/gtk2/icon.py
+A      ui/gtk2/languagebar.py
+A      ui/gtk2/main.py
+A      ui/gtk2/menu.py
+A      ui/gtk2/notifications.py
+A      ui/gtk2/panel.py
+A      ui/gtk2/propitem.py
+A      ui/gtk2/toolitem.py
+
+commit ca0d5c22eb78e4cdce79f573374ef3d339740d6d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-14 12:54:39 -0500
+
+    Bump the version and fix rpmbuild script
+
+M      configure.ac
+M      ibus.spec.in
+M      ui/Makefile.am
+M      ui/gtk3/Makefile.am
+
+commit 53d83b393061ae25d829f9d825197c52f878ec55
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-14 12:52:22 -0500
+
+    Do not release remote InputContext.
+
+M      ui/gtk3/panel.vala
+
+commit a13c4b978c835349f6df52719edfb0040fed5708
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-13 12:06:49 -0500
+
+    Save and load engines order.
+
+M      ui/gtk3/panel.vala
+
+commit 78fab6af0f6843a3b5de7b9800896c18f5ab25d7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-12 18:10:15 -0500
+
+    Handle preload_engines config changes.
+
+M      ui/gtk3/panel.vala
+
+commit 65d88f8797f67027380dc0b09c658422159b7488
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-12 16:57:36 -0500
+
+    Fix radio menu group and keybinding problems.
+
+M      ui/gtk3/keybindingmanager.vala
+M      ui/gtk3/panel.vala
+M      ui/gtk3/property.vala
+M      ui/gtk3/switcher.vala
+
+commit dd4e001ac71e6c933fc5bf5745515eb161dbc2ac
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-05 16:47:10 -0500
+
+    wip
+
+M      ui/gtk3/panel.vala
+
+commit 229d5431b16de7257deb6c8244f2c6258211c91d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-05 15:57:06 -0500
+
+    Add xkb layouts switch support and add three demo xkb layouts.
+
+M      bus/ibusimpl.c
+M      engine/simple.xml.in.in
+M      src/ibusenginesimple.c
+M      ui/gtk3/panel.vala
+
+commit 29312ba148c8e43e1b8cb4d9abc433d7404a0965
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-05 14:21:00 -0500
+
+    Create simple engine
+
+M      Makefile.am
+M      configure.ac
+A      engine/Makefile.am
+A      engine/main.vala
+A      engine/simple.xml.in.in
+M      src/ibusfactory.c
+
+commit 436516f78b26c5e2201e35f0af6fa60745a84dd0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-30 16:37:39 -0500
+
+    Use g_list_free_full to simplified some code.
+
+M      bus/connection.c
+M      bus/dbusimpl.c
+M      bus/ibusimpl.c
+M      bus/registry.c
+M      src/ibuscomponent.c
+M      src/ibusfactory.c
+M      src/ibusxml.c
+
+commit 1983e58d9f4f7471bcd1e59b2ef7729ca3fecc25
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-30 15:46:52 -0500
+
+    Port gtk_im_context_simple_add_table to libibus.
+
+M      src/ibusenginesimple.c
+M      src/ibusenginesimple.h
+
+commit 76c804e3c99af12dd918983df71cc06a57a62d1a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-30 15:01:34 -0500
+
+    Integrate IBusEngineSimple from ibus-xkb project.
+
+M      src/Makefile.am
+A      src/gtkimcontextsimpleseqs.h
+M      src/ibus.h
+M      src/ibusengine.c
+A      src/ibusenginesimple.c
+A      src/ibusenginesimple.h
+
+commit abf2bbe61071f27a7993e08e6022e8bc4cca5e53
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-28 18:25:10 -0500
+
+    wip
+
+M      ui/gtk3/panel.vala
+M      ui/gtk3/property.vala
+
+commit 9d5f0ace3f3b9d8aeaaeb409b61991446ac480b4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-28 18:08:27 -0500
+
+    WIP implement register_properties and set_property
+
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/panel.vala
+A      ui/gtk3/property.vala
+
+commit 32cff2880506b0c2249ad38c50e15331d22ace80
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-28 11:55:29 -0500
+
+    Fix a valac warning
+
+M      ui/gtk3/keybindingmanager.vala
+M      ui/gtk3/panel.vala
+
+commit 2af1fcdd8626fa04c8736d5e3076e9dbd6381c43
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-28 11:30:22 -0500
+
+    Remove switchertest.vala
+
+M      ui/gtk3/Makefile.am
+D      ui/gtk3/switchertest.vala
+
+commit b97ab9f70b033fd53fbc62c2173db7f318c660c4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-27 19:57:08 -0500
+
+    WIP make engine switch hotkey work
+
+M      ui/gtk3/panel.vala
+M      ui/gtk3/switcher.vala
+
+commit dece8ebebf771193ca071329919e35dc122a2b4f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-27 00:21:02 -0500
+
+    WIP implement engine switcher popup ui
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/candidatepanel.vala
+M      ui/gtk3/grabkeycode.c
+M      ui/gtk3/keybindingmanager.vala
+M      ui/gtk3/panel.vala
+M      ui/gtk3/switcher.vala
+M      ui/gtk3/switchertest.vala
+
+commit c9700e577276328adbbb4d1afde26a61079dd10b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-25 17:28:31 -0500
+
+    wip
+
+M      ui/gtk3/application.vala
+M      ui/gtk3/panel.vala
+M      ui/gtk3/switcher.vala
+
+commit b935e9ca9eb5bf1ca6d32a22d385cf782336e3ee
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-25 14:17:51 -0500
+
+    Use XI2 in keybindingmanager.
+
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/application.vala
+A      ui/gtk3/grabkeycode.c
+M      ui/gtk3/keybindingmanager.vala
+M      ui/gtk3/panel.vala
+M      ui/gtk3/switcher.vala
+M      ui/gtk3/switchertest.vala
+
+commit bcac07401ab4df6157097fee53de3ab887011fe0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-24 18:13:00 -0500
+
+    wip
+
+M      ui/gtk3/Makefile.am
+M      ui/gtk3/keybindingmanager.vala
+A      ui/gtk3/switcher.vala
+A      ui/gtk3/switchertest.vala
+
+commit 89dfb1f4f0b18d684ffc3bb2bcee4683416c23e8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-24 13:27:44 -0500
+
+    Fix src/Makefile.am to install ibuskeysym-compat.h
+
+M      src/Makefile.am
+
+commit 7446203bcd7ce8b6f075e960e4c1653e62e82ecd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-11-24 11:55:26 -0500
+
+    Rename ibus keysyms.
+
+M      bus/Makefile.am
+M      bus/engineproxy.c
+M      bus/inputcontext.c
+M      src/ibus.h
+M      src/ibushotkey.c
+M      src/ibuskeymap.c
+M      src/ibuskeynames.c
+A      src/ibuskeysyms-compat.h
+M      src/ibuskeysyms-update.pl
+M      src/ibuskeysyms.h
+M      src/tests/ibus-keynames.c
+M      ui/gtk3/Makefile.am
+
+commit 53d33ec4e6ad41a116f25cfa7ce12e04f6f93752
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-08-16 07:26:42 -0400
+
+    Remove enable status of input context and hotkey logic in ibus-daemon
+
+M      autogen.sh
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/panelproxy.c
+M      client/gtk2/ibusimcontext.c
+M      configure.ac
+M      ibus/bus.py
+M      ibus/inputcontext.py
+M      ibus/interface/iibus.py
+M      ibus/interface/iinputcontext.py
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/tests/ibus-inputcontext.c
+M      ui/Makefile.am
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+A      ui/gtk3/Makefile.am
+A      ui/gtk3/application.vala
+A      ui/gtk3/candidatearea.vala
+A      ui/gtk3/candidatepanel.vala
+A      ui/gtk3/handle.vala
+A      ui/gtk3/iconwidget.vala
+A      ui/gtk3/keybindingmanager.vala
+A      ui/gtk3/panel.vala
+A      ui/gtk3/pango.vala
+A      ui/gtk3/separator.vala
+
+commit 60587bf804feb7ed4dcb8c1731f115420ca28b49
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-02-16 13:04:05 +0900
+
+    Fix gir annotations.
+    
+    - It seems python does not allow to use 'exec' as a variable.
+    Renamed 'exec' property so that the constructor in IBus.Component is used.
+    - It seems the python virtual method is available when the function is
+    described in header files in case that annotations are needed so
+    the signal function ibus_factory_create_engine is added newly.
+    
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5649082
+
+M      src/ibusattribute.h
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+
+commit 3b8d6ee8fbd42a8daf3b544e8d0ba17a198a9acf
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-02-14 10:45:20 +0900
+
+    Fix typoes in gtk-doc comments.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/5645095
+
+M      src/ibusbus.h
+M      src/ibusconfig.h
+M      src/ibusengine.h
+M      src/ibushotkey.h
+M      src/ibusinputcontext.h
+M      src/ibusserializable.h
+M      src/ibusshare.h
+
+commit a5b51c91cb1185f35f3315ad35e1e03b84264faf
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-02-13 16:03:13 +0900
+
+    Fix typo.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1388
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5652077
+
+M      configure.ac
+
+commit 3862735d41168a87d9b77e9ce78ddf228212e015
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-02-13 13:56:44 +0900
+
+    Don't look for ibus-1.0.pc when generating GIR.
+    
+    BUG=http://lists.alioth.debian.org/pipermail/pkg-ime-devel/2012-February/001778.html
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/5653072
+
+M      src/Makefile.am
+
+commit 91dd6724035bf89eb843b7d147e08794a35a569a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-02-05 09:04:22 -0500
+
+    Release 1.4.1.
+    
+    BUG=None
+    TEST=Make dist
+    
+    Review URL: https://codereview.appspot.com/5602056
+
+M      configure.ac
+
+commit 185dd51b595bdeedf8d86eb1214466e2de93f5f3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-02-02 00:28:42 -0500
+
+    Fix typoes and remove Encoding from desktop files.
+    
+    BUG=None
+    TEST=None
+    
+    Review URL: https://codereview.appspot.com/5618046
+
+M      bus/ibus.desktop.in
+M      client/x11/main.c
+M      setup/ibus-setup.desktop.in
+
+commit 6c777b2d17cbbbf84cddebec0da980374774542b
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-02-01 10:00:42 +0900
+
+    Minor fixes related to git.mk.
+    
+    Remove .gitignore files from the git repo, define GITIGNOREFILES in some
+    Makefiles, and update git.mk from the Behdad upstream.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/5581057
+
+D      .gitignore
+M      Makefile.am
+D      bus/.gitignore
+D      client/x11/.gitignore
+D      data/.gitignore
+M      data/dconf/Makefile.am
+D      debian/.gitignore
+D      docs/.gitignore
+D      docs/reference/ibus/.gitignore
+D      gconf/.gitignore
+M      git.mk
+D      ibus/.gitignore
+D      m4/.gitignore
+M      m4/Makefile.am
+D      po/.gitignore
+D      setup/.gitignore
+D      src/.gitignore
+D      src/tests/.gitignore
+D      ui/gtk/.gitignore
+
+commit cbdd673a040c95ba42f33c0c3884319b37155b46
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-02-01 09:59:37 +0900
+
+    Generate vapi from gir instead of gi.
+    
+    BUG=none
+    TEST=manually on Fedora 16
+    
+    Review URL: https://codereview.appspot.com/5599052
+
+A      bindings/vala/IBus-1.0-custom.vala
+A      bindings/vala/IBus-1.0.metadata
+M      bindings/vala/Makefile.am
+D      bindings/vala/ibus-1.0.vapi
+D      bindings/vala/ibus-1.0/ibus-1.0-custom.vala
+D      bindings/vala/ibus-1.0/ibus-1.0.defines
+D      bindings/vala/ibus-1.0/ibus-1.0.excludes
+D      bindings/vala/ibus-1.0/ibus-1.0.files
+D      bindings/vala/ibus-1.0/ibus-1.0.gi
+D      bindings/vala/ibus-1.0/ibus-1.0.metadata
+D      bindings/vala/ibus-1.0/ibus-1.0.namespace
+M      configure.ac
+
+commit deaa090367c89128490a9247a7d0fd5d1b21149c
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-01-31 12:56:27 +0900
+
+    Minor fixes when generating GIR.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: https://codereview.appspot.com/5600052
+
+M      src/Makefile.am
+M      src/ibusengine.h
+M      src/ibusfactory.h
+
+commit eb1dbdce044f43a1064179c4ee2591cff0f74aad
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-01-30 12:29:48 +0900
+
+    dconf: preserve names under /desktop/ibus/engine/bopomofo.
+    
+    BUG=none
+    TEST=manually on Fedora 16
+    
+    Review URL: https://codereview.appspot.com/5595047
+
+M      data/ibus.schemas.in
+
+commit 3e363af1c526a92456df5d1597763d175cd7ba7d
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-01-29 10:32:01 +0900
+
+    Fix the GIR annotation of ibus_bus_get_global_engine #2.
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: https://codereview.appspot.com/5578054
+
+M      src/ibusbus.h
+
+commit d380b11952513f3862be4d91d2c2042d76621ee3
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-01-27 11:16:52 +0900
+
+    Fix the GIR annotation of ibus_bus_get_global_engine.
+    
+    BUG=none
+    TEST=Linux_desktop
+    
+    Review URL: https://codereview.appspot.com/5576048
+
+M      src/ibusbus.h
+
+commit d3610308ed0d1d722de061d3957dcef55bcf7448
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-01-26 11:09:33 +0900
+
+    Fix the return value in IBusEngine.process_key_event with signal.
+    
+    BUG=none
+    TEST=Linux_desktop
+    
+    Review URL: https://codereview.appspot.com/5569061
+
+M      src/ibusengine.c
+
+commit 90e971bdbb0d46ad474d3e952286fb40f3d04bfe
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2012-01-26 10:27:27 +0900
+
+    Add a dconf option to inhibit dconf name conversion.
+    
+    BUG=https://code.google.com/p/ibus/issues/detail?id=1395
+    TEST=manually with ibus-hangul and ibus-skk on Fedora 16
+    
+    Review URL: https://codereview.appspot.com/5570062
+
+M      data/ibus.schemas.in
+M      dconf/config.c
+
+commit 50491822d6bc6738a5f565360b14a6913059b006
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2012-01-24 11:06:19 +0900
+
+    Rename ibus_engine_new_type with ibus_engine_new_with_type.
+    
+    seed assigns GType in IBus.Engine.type and also assignes "*_new_foo"
+    method in IBus.Engine.foo so renamed the function.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1397
+    TEST=Linux_desktop with seed and gjs
+    
+    Review URL: https://codereview.appspot.com/5572046
+
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusfactory.c
+
+commit 64c5f3d8667f26cd44ed35c229a8983ba75c6eff
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2012-01-06 10:17:10 -0500
+
+    Add G_GNUC_PRINTF for function ibus_text_new_from_printf(), so compiler can check arguments.
+    
+    BUG=None
+    TEST=Manually
+    
+    Review URL: http://codereview.appspot.com/5519047
+
+M      src/ibustext.h
+
+commit f25acc22028e3dd98d8482e58c3925d2611683b9
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-12-31 09:55:20 +0900
+
+    Fix g-ir-scanner errors in ibusproperty.h and ibustext.h.
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5498091
+
+M      src/ibusproperty.h
+M      src/ibustext.h
+
+commit 4d1f38314b3a9c3dc1683053cda10cfa36fd9019
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-22 09:59:05 -0500
+
+    Fix a typo in docs/references/ibus/Makefile
+    
+    BUG=None
+    TEST=make
+    
+    Review URL: http://codereview.appspot.com/5496079
+
+M      docs/reference/ibus/Makefile.am
+
+commit df10a24f905c8eea420a5fd33eff78417312410c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-22 09:57:23 -0500
+
+    Add ibus_text_set_attributes for scipt language bindings.
+    
+    BUG=None
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5500067
+
+M      src/ibustext.c
+M      src/ibustext.h
+
+commit ee9c4fba4535e85bd1f02743cab8914dd84e6178
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-12-22 09:57:01 -0500
+
+    Make all fields of IBusProperty as gobject property.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1383
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5500066
+
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+
+commit fd07a5a761fe1c242ba8babaab1060d5679a3618
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-12-20 13:46:45 +0900
+
+    Fix a SEGV if ibusimcontext->ibuscontext is null.
+    
+    BUG=
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5489086
+
+M      client/gtk2/ibusimcontext.c
+
+commit 028e2dca75f6cf12c589216b4f156aa10ffdd2bb
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-12-14 09:55:26 +0900
+
+    Update translations.
+    
+    po/LINGUAS: Updated
+    po/ ca.po da.po de.po es.po fr.po hu.po ja.po pa.po te.po zh_TW.po: Updated
+    po/ fa.po lv.po tg.po: Added
+    
+    BUG=
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5483055
+
+M      po/LINGUAS
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+A      po/fa.po
+M      po/fr.po
+M      po/hu.po
+M      po/ja.po
+A      po/lv.po
+M      po/pa.po
+M      po/te.po
+A      po/tg.po
+M      po/zh_TW.po
+
+commit 5236e2159f2e6184c18df9a9ecbb05bfb09106d4
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-11-30 12:28:22 +0900
+
+    Add the engine preference button on ibus-setup
+    
+    The new preference button launches $libexecdir/ibus-setup- + engine.name
+    by default. The engine is IBusEngineDesc.
+    If engine.setup has a value, the button launches it instead.
+    
+    BUG=RH#618229
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5437062
+
+M      ibus/enginedesc.py
+M      setup/ibus-setup.in
+M      setup/main.py
+M      setup/setup.ui
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+
+commit 5d2ac19e1524b1802f5298eedff1ba52423c847f
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-11-30 09:40:15 +0900
+
+    Disable surrounding-text when retrieve-surrounding signal is not handled in GTK.
+    
+    BUG=https://code.google.com/p/ibus/issues/detail?id=1358
+    TEST=On Fedora with ibus-m17n tis820
+    
+    Review URL: http://codereview.appspot.com/5431086
+
+M      client/gtk2/ibusimcontext.c
+
+commit 23abee88ca1a234d0ed549489a505cd2a07a9a5c
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-11-21 11:06:21 +0900
+
+    Use ibus_input_context_process_key_event_async in ibus-x11
+    
+    ibus-hangul calls ibus_commit_text() in process_key_event with
+    returing FALSE. ibus_commit_text() is async API and there is a
+    time issue in ibus_commit_text() and returning process_key_event.
+    This fix adds async in ibus-x11 process_key_event too.
+    
+    BUG=RH#753781
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5417044
+
+M      client/x11/main.c
+
+commit 613e01520f27a53c947fed476d99aeb8ae1ae39b
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-11-08 10:48:42 +0900
+
+    Fixed fallback icons.
+    
+    1. Set 'ibus-keyboard' icon for IME off in non-GNOME theme.
+    People would think the application icon for non-GNONE classic desktop.
+    The themed icon is applied for GNOME icon theme only.
+    
+    2. Set gtk-fallback-icon-theme as 'gnome'
+    ibus gtk panel needs gtk stock icons but some desktop does not load GNOME
+    icon theme. I assigned 'gnome' for gtk-fallback-icon-theme if it's none.
+    
+    3. Use 'gtk-dialog-info' if 'gtk-info' is not found.
+    It seems the latest gtk2 does not have 'gtk-info' icon via pygtk2.
+    
+    BUG=RH#711632
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5320066
+
+M      ibus/_config.py.in
+M      ui/gtk/main.py
+M      ui/gtk/panel.py
+
+commit 02893693fc0a8692a6242b0be6dc8f09e14c1c54
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-11-02 14:17:50 +0900
+
+    Rerotate next/previous engines without global engine.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1331
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5321067
+
+M      bus/ibusimpl.c
+
+commit cca4fd8993613a6993965c3120323e43c4647ef5
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-10-28 15:42:08 +0900
+
+    Don't set focus on GTK password entry.
+    
+    For an old bug:
+    https://bugzilla.redhat.com/show_bug.cgi?id=484643
+    Input method should be disabled on password entry for security reason.
+    
+    BUG=none
+    TEST=manually with gtk-demo "Entry Buffer" example
+    
+    Review URL: http://codereview.appspot.com/5319053
+
+M      client/gtk2/ibusimcontext.c
+
+commit 910f8a64098d89b04c50056f621ec1a49dd3e7ea
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-10-25 10:50:34 +0900
+
+    Fix previous_engine without global engine.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1331
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5297047
+
+M      bus/ibusimpl.c
+
+commit ee966e327cc3b1b4bba40379bc0fbb3d46c38239
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-10-25 10:37:22 +0900
+
+    Add ibusutil.h in ibus.h
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1338
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5294054
+
+M      src/ibus.h
+
+commit d19018b8709847009d2e0836c942dd9f1385e7cb
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-10-09 13:52:42 +0900
+
+    Always consume a hotkey press
+    
+    BUG=1324
+    
+    Review URL: http://codereview.appspot.com/5242044
+
+M      bus/ibusimpl.c
+
+commit cb519c852dfc7a652df1768c81974d750ef48f58
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-09-29 12:24:53 +0900
+
+    Fix hiding button items in GTK panel.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/5148041
+
+M      ui/gtk/toolitem.py
+
+commit 600fd9ab1607a6d5780fb07a6cd49290ca85c4fc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-09-23 11:11:24 -0400
+
+    Release 1.4.0
+    
+    BUG=None
+    TEST=make dist
+    
+    Review URL: http://codereview.appspot.com/5106043
+
+M      configure.ac
+
+commit a5aadb62244d699fa38f6699cf38faf71a7c24c0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-09-23 11:10:53 -0400
+
+    Fix make distcheck error
+    
+    BUG=None
+    TEST=make distcheck
+    
+    Review URL: http://codereview.appspot.com/5113041
+
+M      po/POTFILES.in
+
+commit 55cb3cd2e398169a1335564e3e95003df469dd66
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-09-21 10:00:17 +0900
+
+    Fix dconf profile installation.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/5077042
+
+M      data/dconf/Makefile.am
+
+commit e42dda581368a77e2f6f87caee1b9355f7f725fa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-09-18 10:39:09 -0400
+
+    Add some warning message in ibustext.c
+    
+    BUG=None
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5051043
+
+M      src/ibustext.c
+
+commit 235ef3ae4a0796bc03f2265b15e9a0a7a39b892c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-09-18 10:36:02 -0400
+
+    Refine configure.ac and fix make distcheck errors.
+    
+    BUG=None
+    TEST=Test on Linux desktop
+    
+    Review URL: http://codereview.appspot.com/5045043
+
+M      configure.ac
+M      docs/reference/ibus/.gitignore
+M      docs/reference/ibus/Makefile.am
+M      ibus.spec.in
+M      src/Makefile.am
+
+commit 6c474596e43c932467d4d35afa23db59a71093f5
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-09-16 23:36:44 +0900
+
+    Add get methods for the members in IBusAttribute for non-C language.
+    
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4956068
+
+M      src/ibusattribute.c
+M      src/ibusattribute.h
+
+commit 4438c043aafa301579737094dbccc02c9ef8c2c1
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-09-16 10:22:38 +0900
+
+    Implement org.freedesktop.DBus.StartServiceByName.
+    
+    BUG=none
+    TEST=tested with https://github.com/ueno/ibus-gucharmap/tree/charmap-service
+    
+    Review URL: http://codereview.appspot.com/4960060
+
+M      bus/dbusimpl.c
+M      ibus/bus.py
+M      src/ibustypes.h
+
+commit 02604ac968d6f0c6064b4620f8a65148a178eacd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-09-09 09:47:37 -0400
+
+    Fix make dist error if dsettings does not exist.
+    
+    BUG=make dist failed without gsettings
+    TEST=make dist
+    
+    Review URL: http://codereview.appspot.com/4994043
+
+M      data/dconf/Makefile.am
+
+commit 19a504a62574b9f2d1ef9f61bedfbac2819d8c8b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-09-08 22:09:26 -0400
+
+    Do not send surrounding text to ibus-daemon if engine does not need surrounding text.
+    
+    BUG=None
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4977058
+
+M      src/ibusinputcontext.c
+
+commit 894ecc8e16b01d5594ef9b8f9c5530bb2e9d0502
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-08-25 09:59:42 +0900
+
+    Add Disable signal when bus_ibus_impl_set_context_engine_from_desc is called.
+    
+    BUG=#1261
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4875049
+
+M      bus/inputcontext.c
+
+commit adcf71e6e5de45530a09e7b9f310f2e489cd9631
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-08-24 11:44:21 +0900
+
+    Check if BusInputContext has an enabled engine in global input method.
+    
+    BUG=RH#731610
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4917041
+
+M      bus/ibusimpl.c
+
+commit ac9dfac13cef34288440a2ecdf067cd827fb2f8f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-08-19 08:23:33 -0400
+
+    Use GVariant as attachment for IBusSerializable.
+    
+    BUG=None
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4902051
+
+M      src/ibusserializable.c
+M      src/ibusserializable.h
+M      src/tests/ibus-serializable.c
+
+commit 9614076737ee88c092af209485d1d65d2269f4ad
+Author: Tsuyoshi Horo <horo@chromium.org>
+Date:   2011-08-18 11:48:30 -0400
+
+    Fix for ibus_serializable_{get,set}_attachment.
+    
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4905054
+    Patch from Tsuyoshi Horo <horo@chromium.org>.
+
+M      src/ibusserializable.c
+M      src/ibusserializable.h
+M      src/tests/ibus-serializable.c
+
+commit 97afd4854b0af0483539d2ab8f0e6f15309d1ec4
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-08-14 08:56:31 +0900
+
+    Add create-engine signal in IBusFactory for non-C applications.
+    
+    TEST=Linux desktop
+    
+    Separated from CL #4853041.
+    
+    Review URL: http://codereview.appspot.com/4801081
+
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+M      src/ibusmarshalers.list
+M      src/ibusservice.h
+
+commit 02a4f3e8ab4bb0f4c7310b5e654bec1fb1892f56
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-08-11 21:13:28 -0400
+
+    Port keyval and unicode converting functions from gtk.
+    
+    BUG=None
+    TEST=None
+    
+    Review URL: http://codereview.appspot.com/4870042
+
+M      src/Makefile.am
+M      src/ibus.h
+M      src/ibuskeymap.c
+A      src/ibuskeys.h
+A      src/ibuskeyuni.c
+M      src/ibusshare.h
+
+commit 2ed0adc7a238d5a19f8b01cdcd165a34608bf9f3
+Author: Seigo Nonaka <nona@chromium.org>
+Date:   2011-08-11 20:53:13 -0400
+
+    Support selection text retrival.
+    
+    This patch enable us to get selection text on client application.
+    Currently only GtkTextView widget can get them in gtk application.
+    
+    BUG=None
+    TEST=manually done.(By gedit text editor)
+    
+    Review URL: http://codereview.appspot.com/4844041
+    Patch from Seigo Nonaka <nona@chromium.org>.
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/inputcontext.c
+M      client/gtk2/ibusimcontext.c
+M      ibus/engine.py
+M      ibus/inputcontext.py
+M      ibus/interface/iengine.py
+M      ibus/interface/iinputcontext.py
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibusmarshalers.list
+
+commit 6ec33ea8cdf16c6225896351a59ac9a01d5e36ca
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-08-11 20:23:18 -0400
+
+    Add missing config.h in gdk-private.c
+    
+    Forget include config.h in gdk-private.c. So the HAVE_X11_XKBLIB_H is always undefined, and ibux-x11 can not get correct group from x key event.
+    
+    BUG=ibus-x11 can not handle group correctly
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4865041
+
+M      client/x11/gdk-private.c
+
+commit 4980dab52ca40b5b6904f9e9df397ac6dfa57ded
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-08-10 21:46:27 -0400
+
+    Fix make rpm errors
+    
+    BUG=make rpm failed in fedora
+    TEST=make rpm in fedora
+    
+    Review URL: http://codereview.appspot.com/4862041
+
+M      configure.ac
+M      docs/reference/ibus/.gitignore
+M      ibus.spec.in
+
+commit 0cb912cfe5664714e612206d955d458532adc707
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-07-23 09:23:41 +0800
+
+    Always enable the new focused BusInputContext
+    
+    BUG=http://crosbug.com/17013
+    TEST=On ChromeOS
+    
+    Review URL: http://codereview.appspot.com/4816047
+
+M      bus/ibusimpl.c
+
+commit 51fe80487d523243d1eaaa9cf5da566184fcd654
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-07-18 18:44:23 +0900
+
+    Add ibus-dconf.
+    
+    BUG=https://code.google.com/p/ibus/issues/detail?id=1235
+    TEST=manually with "make check" and interactive testing
+    
+    Review URL: http://codereview.appspot.com/4750041
+
+M      Makefile.am
+M      configure.ac
+M      data/Makefile.am
+A      data/dconf/Makefile.am
+A      data/dconf/ibus.convert
+A      data/dconf/make-dconf-override-db.sh
+A      data/dconf/profile/ibus
+M      data/ibus.schemas.in
+A      dconf/Makefile.am
+A      dconf/config.c
+A      dconf/config.h
+A      dconf/dconf.xml.in.in
+A      dconf/main.c
+
+commit 88a44759ce5d3d785c7be96525130c67e8c63e1e
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-07-15 09:51:07 +0900
+
+    Fix GObject ref/unref issues.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/4700048
+
+M      bus/registry.c
+M      bus/test-client.c
+
+commit 48cc200d7dbe999f92b05507a7c59bea42ac6f1c
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-07-12 15:14:59 +0900
+
+    Fixed an error in IBus.Bus.register_component
+    
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4668060
+
+M      ibus/component.py
+
+commit 290a37e1d4e3ec44dfea4b99744520f781c92592
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-07-12 14:04:30 +0900
+
+    Use g_variant_dup_string for consistency.
+    
+    This fix is similar to https://github.com/ibus/ibus/commit/624c4451da2bd171bd8ac53a9b9dd2a4227ef67f .
+    
+    BUG=None
+    TEST=None
+    
+    Review URL: http://codereview.appspot.com/4641101
+
+M      bus/ibusimpl.c
+
+commit 55a5652ac7d91fb319ef6576500e421eb53e80f4
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-07-11 11:55:19 +0900
+
+    Remove the callback on destroy.
+    
+    BUG=crosbug.com/17293
+    TEST=src/tests/ibus-bus.c
+    
+    Review URL: http://codereview.appspot.com/4675074
+
+M      src/ibusbus.c
+M      src/tests/ibus-bus.c
+
+commit 624c4451da2bd171bd8ac53a9b9dd2a4227ef67f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-07-07 12:42:52 -0400
+
+    Fix several GVariant related issues. And remove a wrong unref.
+    
+    BUG=None
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4667067
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      src/ibusconfig.c
+
+commit ed2a89506271e4ed6cd20568a0e6aa32cc5d5cce
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-07-05 13:11:41 -0400
+
+    Fix SEGV in ibus_keymap_lookup_keysym
+    
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4636083
+
+M      bus/engineproxy.c
+
+commit b9cfc5eb2e0b33d866301de7b6724b7f134ffae5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-07-05 10:45:20 -0400
+
+    Add org.freedesktop.IBus.Config.GetValues to get all values in one RPC.
+    
+    BUG=http://crosbug.com/16287
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4667056
+
+M      debian/control
+M      debian/libibus-1.0-0.symbols
+M      gconf/config.c
+M      ibus/config.py
+M      ibus/interface/iconfig.py
+M      memconf/config.c
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+M      src/tests/ibus-config.c
+
+commit 0e315c18c79c02cb5ea88c8b966cee0d70bedbf0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-07-04 12:26:03 +0800
+
+    Fix make dpkg errors.
+    
+    BUG=None
+    TEST=Make dpkg
+    
+    Review URL: http://codereview.appspot.com/4673041
+
+A      debian/ibus-gtk3.install
+M      debian/libibus-1.0-0.symbols
+M      debian/rules
+M      docs/reference/ibus/.gitignore
+M      docs/reference/ibus/Makefile.am
+
+commit 83d4b3ac538320bfb8e872dd9282ca5bbedf4652
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-07-04 03:27:23 +0800
+
+    Fix BusEngineProxy instance leak.
+    
+    BUG=none
+    TEST=manually with / without global-engine setting
+    
+    Review URL: http://codereview.appspot.com/4662043
+
+M      bus/engineproxy.c
+M      bus/inputcontext.c
+
+commit 8677fac588f4189d59c95e6dbead9fd9c5152871
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-07-04 03:24:47 +0800
+
+    Add icon_symbol property in IBusEngineDesc.
+    
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4648050
+
+M      ibus/enginedesc.py
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+
+commit 508f6a11d39860f4fdb005e8a54574a5fba52e9d
+Author: Kazuhiro Inaba <kinaba@chromium.org>
+Date:   2011-06-18 00:10:36 -0400
+
+    Store capabilities when ibuscontext is not ready yet.
+    
+    Due to the asynchronous creation of contexts, gtk_im_set_use_preedit may
+    be called before the context is ready. This patch is to
+    record the change of capability flag and enables to set it
+    later in _create_input_context_done.
+    
+    BUG=http://crosbug.com/16500
+    TEST=ChromeOS Cr-48
+    
+    Review URL: http://codereview.appspot.com/4635049
+    Patch from Kazuhiro Inaba <kinaba@chromium.org>.
+
+M      client/gtk2/ibusimcontext.c
+
+commit aec97ac090980dfcd7eeef55c1755f6cd3f87a01
+Author: Daiki Ueno <daiki.ueno@gmail.com>
+Date:   2011-06-18 00:03:07 -0400
+
+    Simplify surrounding-text initialization.
+    
+    Currently the immodule tries to retrieve surrounding-text unconditionally
+    on focus_in and enabled.  These calls could be eliminated if engine were
+    able to proclaim that it will need surrounding-text.
+    
+    This patch extends ibus_engine_get_surrounding_text() to allow this.
+    Engines that need surrounding-text are expected to have:
+    
+        /* Indicate we will use surrounding-text. */
+        ibus_engine_get_surrounding_text (engine, NULL, NULL);
+    
+    in their enable() method.  This would work because enable() is called before
+    SetCapabilities DBus call.
+    
+    BUG=none
+    TEST=manually with ibus-m17n, with the above change.
+    
+    Review URL: http://codereview.appspot.com/4613043
+    Patch from Daiki Ueno <daiki.ueno@gmail.com>.
+
+M      client/gtk2/ibusimcontext.c
+M      src/ibusengine.c
+M      src/ibusengine.h
+
+commit 92b30f09885a91cd74840677aab46159a23192c6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-06-17 23:46:31 -0400
+
+    Restore cursor location when a new IBusInputContext is created.
+    
+    BUG=http://crosbug.com/16500
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4635044
+
+M      client/gtk2/ibusimcontext.c
+
+commit 1da68ecf2fd4aca41e90715822a9902f4e8162f6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-06-16 15:46:46 -0400
+
+    Fix some fuction signatures to make ibus g-i firendly.
+    
+    BUG=None
+    TEST=Test on Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4517146
+
+M      client/gtk2/ibusimcontext.c
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/tests/ibus-bus.c
+M      src/tests/ibus-inputcontext-create.c
+M      src/tests/ibus-inputcontext.c
+
+commit e73de0283f14fa1207b5cfc35dc43c1cf1d78d40
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-06-16 13:13:01 -0400
+
+    Fix make dpkg errors.
+    
+    BUG=make dpkg failed
+    TEST=make dpkg
+    
+    Review URL: http://codereview.appspot.com/4629044
+
+M      debian/libibus-1.0-0.symbols
+
+commit 45ed668b8099a6e2dfcbeefeba36125c515241e6
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-06-17 01:12:06 +0900
+
+    Check IBUS_CONFIG_HOME environment variable when reading/writing the socket file.
+    
+    BUG=crosbug.com/16501
+    TEST=export IBUS_CONFIG_HOME=/tmp, start Chrome on Chromium OS, verify an empty dir /tmp/ibus/bus exists with mode 0700, log in, enable IME, verify IME works, verify the socket file is created in /tmp/ibus/bus.
+    
+    Review URL: http://codereview.appspot.com/4621043
+
+M      src/ibusshare.c
+
+commit fc9dedec30f724e91e7b3bb9111177e96b58ee43
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-06-15 10:38:17 -0400
+
+    Add IBUS_ERROR domain and reply IBUS_ERROR_NO_ENGINE in org.freedesktop.IBus.InputContext.GetEngine
+    
+    BUG=None
+    TEST=Manually
+    
+    Review URL: http://codereview.appspot.com/4528140
+
+M      bus/inputcontext.c
+M      src/Makefile.am
+M      src/ibus.h
+A      src/ibuserror.c
+A      src/ibuserror.h
+M      src/ibusinputcontext.c
+M      src/ibusshare.c
+M      src/ibustypes.h
+A      src/tests/ibus-gi-inputcontext.py
+
+commit 59ce675e335e599ed18d74ab8849b9a5fe75d4be
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-06-13 13:18:29 -0400
+
+    Fix some race condition between idle and timeout events. Also fix a memory leak.
+    
+    BUG=http://crosbug.com/16387
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4568072
+
+M      bus/engineproxy.c
+
+commit 7dd0436e19663475de6444c5e1c82b8372db50bf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-06-08 21:11:28 -0400
+
+    Add functions for creating IBusConfig asynchronously.
+    
+    BUG=http://crosbug.com/13245
+    TEST=make check
+    
+    Review URL: http://codereview.appspot.com/4581041
+
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/tests/.gitignore
+M      src/tests/Makefile.am
+A      src/tests/ibus-config.c
+
+commit cdcf5c74d348432415326ab42696e8b23f06c3b4
+Merge: 52425da d059132
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-06-08 07:21:50 -0700
+
+    Merge pull request #2 from ryoqun/master
+    
+    ibus python binding wasn't working due to incorrect forward-key-event signature
+
+commit 52425daa537a32bed1781958e1ef62dbf199ad8b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-06-06 09:30:27 -0400
+
+    Fix Python input context binding.
+    
+    Export "forward-key-event" and "delete-surrounding-text" signals to Python; clear __needs_surrounding_text property on "enabled" and "disabled" signals.
+    
+    BUG=none
+    TEST=briefly tested, at least I don't see any regression
+    
+    Review URL: http://codereview.appspot.com/4437062
+
+M      ibus/inputcontext.py
+M      ibus/interface/iinputcontext.py
+
+commit 4d15995dc22f4ec3006e40586f86d0e2a5447af6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-06-02 08:30:34 -0400
+
+    Fix build warnings with gcc 4.6
+    
+    BUG=Build warnings with gcc 4.6
+    TEST=Manually
+    
+    Review URL: http://codereview.appspot.com/4517127
+
+M      client/x11/main.c
+M      src/ibusconfig.c
+
+commit d3e750eab6db7035f494fcdb328b87b2923e33a2
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-06-01 23:37:14 +0900
+
+    Send the new capabilities to ibus-daemon in ibus_im_context_set_use_preedit.
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/4529103
+
+M      client/gtk2/ibusimcontext.c
+
+commit 5aea31b733334fbf24879549a901bc6212155c3b
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-05-16 14:51:45 +0900
+
+    Update translations.
+    
+    Update da.po ja.po nl.po pl.po te.po uk.po zh_CN.po
+
+M      po/da.po
+M      po/ja.po
+M      po/nl.po
+M      po/pl.po
+M      po/te.po
+M      po/uk.po
+M      po/zh_CN.po
+
+commit d059132885d3c90647f08f3083e39daa9f82b700
+Author: Ryo Onodera <onodera@clear-code.com>
+Date:   2011-05-17 20:07:40 +0900
+
+    fix wrong forward key event signature
+
+M      ibus/engine.py
+M      ibus/interface/iengine.py
+
+commit 75db3e14c75a70dcacb2b8d5f95d2463218e86db
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-05-10 21:59:15 -0400
+
+    Fix build warnings with gcc 4.6
+    
+    BUG=crosbug.com/15039
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4518042
+
+M      src/ibusshare.c
+
+commit 27a66ea2e434b2e23f6fbba29251ef7b8ed2c20a
+Author: Julien Humbert <julroy67@gmail.com>
+Date:   2011-04-08 00:45:46 +0200
+
+    Update name
+
+M      po/fr.po
+
+commit fe118688698e774ec4dc20fb7205e459df89adaf
+Author: Espreon <Majora700@gmail.com>
+Date:   2011-04-30 01:20:06 -0400
+
+    Added British English translation.
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/en_GB.po
+
+commit 2371d4fde2df1d0582603fd9d10098384a4523ce
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-05-03 09:55:39 -0400
+
+    Fix make dpkg errors, and add gtk3 support for debian
+    
+    BUG=None
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4436076
+
+M      Makefile.am
+M      debian/control
+D      debian/ibus-gtk.install
+A      debian/ibus-gtk2.install
+M      debian/libibus-1.0-0.symbols
+M      debian/rules
+M      debian/xinput/ibus
+
+commit 80e5bd0785ca91a70f0b5fe511a3bd8e143d8d05
+Author: Takao Fujiwara <takao.fujiwara1@gmail.com>
+Date:   2011-04-27 07:48:50 -0400
+
+    Fix the zombie process of ibus-gconf when ibus-daemon restarts.
+    
+    - Fix the typo in bus_dbus_impl_destroy() (dbusimpl.c)
+    - Modify bus_server_run() and _ibus_exit() (ibusimpl.c, server.c)
+      bus_ibus_impl_destroy() needs to be called so that waitpid()
+      prevents processes from becoming zombie.
+    - Change the declaration of bus_server_quit(). (server.h)
+    
+    BUG=redhat#697471
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4440059
+    Patch from Takao Fujiwara <takao.fujiwara1@gmail.com>.
+
+M      bus/dbusimpl.c
+M      bus/ibusimpl.c
+M      bus/server.c
+M      bus/server.h
+M      src/ibusbus.c
+
+commit 9af7672d3ed9b7354f17025e1d05b554ce05470b
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-04-22 20:17:14 +0900
+
+    Fix SEGV in im-ibus.so on Chromium OS
+    
+    Review URL: http://codereview.appspot.com/4440060
+
+M      client/gtk2/ibusimcontext.c
+
+commit c2c8a023a9f14aafb4010ed5f0d8c40fa14dc54f
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-04-22 20:07:43 +0900
+
+    Add org.freedesktop.IBus.InputContext.ProcessHandWritingEvent and CancelHandWriting to support a handwriting engine.
+    
+    Review URL: http://codereview.appspot.com/4433059
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/inputcontext.c
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibusmarshalers.list
+
+commit 5cb14a2d82efc3a2011011581936ef278c8d495c
+Author: Daiki Ueno <daiki.ueno@gmail.com>
+Date:   2011-04-18 17:09:10 -0400
+
+    Export input context surrounding-text API to Python.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/4442059
+    Patch from Daiki Ueno <daiki.ueno@gmail.com>.
+
+M      ibus/inputcontext.py
+
+commit e3957545d18900109e19d607ad17eac136a38d1c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-04-18 11:18:27 -0400
+
+    Use g_initable_new to create BusFactoryProxy.
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4446051
+
+M      bus/factoryproxy.c
+
+commit 0838133ce617c6113574f12ab1ba6a8bb90aaf43
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-04-08 23:29:23 -0400
+
+    Revert "Change default values of some config."
+    
+    This change was commited by mistake.
+    
+    This reverts commit ed4775b5fec355c1ccb13947d03dcac0aaaeb47f.
+
+M      bus/ibusimpl.c
+
+commit 0f08033ed8ea8fc494a459909722b19eb6e53427
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-04-08 09:45:18 -0400
+
+    Fix problem in creating IBusPoxy in synchronous mode.
+
+M      src/ibusproxy.c
+
+commit 2f358544a1fcc9c8c3924a722b38a86d297c9da1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-04-08 09:49:20 -0400
+
+    Refine RequestName code and fix make dpkg errors.
+    
+    BUG=none
+    TEST=Linux Desktop
+    
+    Review URL: http://codereview.appspot.com/4368056
+
+M      bus/connection.c
+M      bus/connection.h
+M      bus/dbusimpl.c
+M      bus/ibusimpl.c
+M      debian/libibus-1.0-0.symbols
+M      ibus/common.py
+M      src/ibusutil.c
+M      src/ibusutil.h
+M      ui/gtk/Makefile.am
+M      ui/gtk/main.py
+
+commit 782566b452ca688e619bc66015bf9e8b0685ef41
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-04-08 09:19:13 -0400
+
+    Fix focus issue when reconnect to ibus-daemon
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4365049
+
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      client/gtk2/ibusimcontext.c
+
+commit 37e6e58792bef4284653e4d8f4c93c901780eafd
+Author: Takao Fujiwara <takao.fujiwara1@gmail.com>
+Date:   2011-04-08 09:18:23 -0400
+
+    Implement APIs for another non-Python panel.
+    
+    1. Support icon and prop_list = null in ibus_property_new with GIR.
+    2. Add getter methods in IBusText and IBusProperty since GJS cannot access
+       the members in C-Structure.
+    3. Add ibus_get_language_name() since GIR libxml2 does not provide the
+       useful APIs.
+    4. Implement flags in ibus_bus_request_name() to follow DBus
+       RequestName signal spec.
+       http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-names
+       This is needed to terminate the current IBus panel.
+       E.g. IBus GTK panel is launched by ibus-daemon but another panel is
+       launched by gnome-shell.
+    5. Support IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT in ui/gtk/main.py
+    6. Fix bus_component_set_factory() not to call
+       bus_component_factory_destroy_cb() twice.
+    7. Hide ibus_text_new_from_static_string() for GIR.
+    8. Add ibus_is_running_gnome_shell() for ibus-ui-gtk because
+       gnome-shell runs earlier than ibus-ui-gtk.
+    
+    Review URL: http://codereview.appspot.com/4279042
+    Patch from Takao Fujiwara <takao.fujiwara1@gmail.com>.
+
+M      bus/component.c
+M      bus/connection.c
+M      bus/connection.h
+M      bus/dbusimpl.c
+M      bus/ibusimpl.c
+M      bus/marshalers.list
+M      ibus/bus.py
+M      ibus/common.py
+M      src/Makefile.am
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+M      src/ibustext.c
+M      src/ibustext.h
+M      src/ibustypes.h
+A      src/ibusutil.c
+A      src/ibusutil.h
+M      ui/gtk/main.py
+M      ui/gtk/panel.py
+
+commit ac30990eddbe9e4a0f9b08cc86155654d8fb3c3d
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-04-08 10:11:39 +0900
+
+    Export surrounding-text API to Python.
+    
+    BUG=none
+    TEST=manually with modified ibus-anthy https://github.com/ueno/ibus-anthy/commit/2303095f
+    
+    Review URL: http://codereview.appspot.com/4377045
+
+M      ibus/engine.py
+M      ibus/interface/iengine.py
+
+commit 65c5465863bc4d9408cbec5ac0ef7f98d5db779f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-04-05 10:27:32 -0400
+
+    Fix make dpkg errors.
+    
+    BUG=none
+    TEST=make dpkg
+    
+    Review URL: http://codereview.appspot.com/4324047
+
+M      debian/libibus-1.0-0.symbols
+M      debian/rules
+
+commit 06e6abee9f221bdf7c277538ce136154465619d7
+Author: Daiki Ueno <daiki.ueno@gmail.com>
+Date:   2011-04-05 10:11:49 -0400
+
+    Support surrounding-text retrieval.
+    
+    Unlike the GtkIMContext API, IBus automatically retrieves
+    surrounding-text when certain events occurred to the
+    client ("before filter_keypress", for example).  This makes the
+    engine API simpler but causes periodical emission of D-Bus
+    signals for updating surrounding-text information, which is
+    unwanted for typical engines.
+    
+    For this reason, the surrounding-text support is currently
+    disabled by default.  To enable it, pass
+    --enable-surrounding-text to configure.  Also, even
+    surrounding-text support is compiled in, IBus does not start
+    polling until an engine requests surrounding-text using
+    ibus_engine_get_surrounding_text().  To make the function work
+    for the first time, clients should retrieve
+    initial surrounding-text when the engine is enabled (see ibus_im_context_focus_in() and
+    _ibus_context_enabled_cb() in client/gtk2/ibusimcontext.c).
+    
+    BUG=Issue#778
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/4276082
+    Patch from Daiki Ueno <daiki.ueno@gmail.com>.
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/inputcontext.c
+M      client/gtk2/ibusimcontext.c
+M      configure.ac
+M      ibus/engine.py
+M      ibus/interface/iengine.py
+M      ibus/interface/iinputcontext.py
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibusmarshalers.list
+
+commit 6a39a86f84fb59c06a246c1bb3f50abbf6c9f8d1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-04-05 10:08:34 -0400
+
+    Fix a crash during creating IBusProxy asynchronously
+    
+    BUG=chromium-os:13629
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4344061
+
+M      src/ibusbus.c
+M      src/ibusproxy.c
+M      src/tests/.gitignore
+M      src/tests/Makefile.am
+A      src/tests/ibus-inputcontext-create.c
+
+commit 15e29ac3ad45c1b909fc532fe98cf3b09dfb6426
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-04-04 19:33:47 +0900
+
+    Update translations.
+    
+    Update ar.po as.po da.po es.po fr.po gu.po hi.po kn.po mr.po nl.po
+    or.po pa.po pl.po pt_BR.po ta.po te.po uk.po zh_CN.po zh_TW.po
+    and LINGUAS.
+
+M      po/LINGUAS
+M      po/ar.po
+M      po/as.po
+M      po/da.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/kn.po
+M      po/mr.po
+A      po/nl.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/pt_BR.po
+M      po/ta.po
+M      po/te.po
+A      po/uk.po
+M      po/zh_CN.po
+M      po/zh_TW.po
+
+commit 1428a361cd3b416c4e4da7839f4a3ec23a67eb12
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-03-31 12:56:45 +0900
+
+    Use ibus panel icon from the desktop theme instead of ibus-keyboard.
+
+M      configure.ac
+M      ibus/_config.py.in
+M      ui/gtk/panel.py
+
+commit ed4775b5fec355c1ccb13947d03dcac0aaaeb47f
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-12 15:38:42 -0700
+
+    Change default values of some config.
+    
+    This CL changes the default value of use_global_engine, enable_by_default and use_sys_layout to TRUE. And also removes the default trigger key.
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.chromium.org/2008016
+
+M      bus/ibusimpl.c
+
+commit ef2be0415bbe948ce4be39b8a5d2bc60c3384bb2
+Author: Daiki Ueno <daiki.ueno@gmail.com>
+Date:   2011-03-29 09:39:44 -0400
+
+    Use gtk_status_icon_set_name() only if it is available.
+    
+    gtk_status_icon_set_name() is not exported to python through pygtk2 <= 2.17,
+    which is the version from Debian sid and Fedora 14.
+    
+    >>> import gtk
+    >>> gtk.pygtk_version
+    (2, 17, 0)
+    >>> hasattr(gtk.StatusIcon, 'set_name')
+    False
+    
+    This patch checks the availability.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/4327042
+    Patch from Daiki Ueno <daiki.ueno@gmail.com>.
+
+M      ui/gtk/panel.py
+
+commit 5ef29602141945ed1255662576c2e8194af78325
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-03-25 13:57:31 +0900
+
+    Set WM_CLASS name instead of main.py
+
+M      ui/gtk/panel.py
+
+commit 637947404f977b830e2bd9719a292ad48d0dac5b
+Author: Daiki Ueno <daiki.ueno@gmail.com>
+Date:   2011-03-25 11:16:18 -0400
+
+    Add "in" keymap which maps Alt_R to AltGr.
+    
+    BUG=none
+    TEST=manually with ibus-m17n
+    
+    Review URL: http://codereview.appspot.com/4273109
+    Patch from Daiki Ueno <daiki.ueno@gmail.com>.
+
+M      data/keymaps/Makefile.am
+A      data/keymaps/in
+
+commit ee54659184e384b25b7ee5016a12e1b81415fe66
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-25 11:07:38 -0400
+
+    Verify global engine after changing preload_engines
+    
+    BUG=http://crosbug.com/13406
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4273111
+
+M      bus/ibusimpl.c
+
+commit 7903a536375936efb6b8a38fd8f44b8d2ac6a837
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-23 09:44:20 -0400
+
+    Fix make debian package errors.
+    
+    BUG=none
+    TEST=make dpkg
+    
+    Review URL: http://codereview.appspot.com/4279068
+
+M      debian/libibus-1.0-0.symbols
+
+commit cff009de738fe0a6cb0cfdd725952b928afc6c58
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-23 09:44:06 -0400
+
+    Fix typos in IBusInputContext document
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4273094
+
+M      src/ibusinputcontext.h
+
+commit 0514dc88147f7f178325f546bf073d0e1a261ddb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-23 09:43:43 -0400
+
+    Use $(SED) to replace sed
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4280059
+
+M      docs/reference/ibus/Makefile.am
+
+commit 597820e6ad9f59f596aec6f714ca6b37f2a991c6
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-03-22 22:36:52 +0900
+
+    Link appropriate libraries to ibus-scan.
+    
+    TEST=git clone the clean tree, ran ./autogen.sh --enable-gtk-doc, then ran make.
+    
+    Review URL: http://codereview.appspot.com/4289060
+
+M      docs/reference/ibus/Makefile.am
+
+commit 0929e30b91dbb7955c9f90e058bb644ff946298d
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-03-22 14:09:34 +0900
+
+    Add asynchronous InputContext.IsEnabled and InputContext.GetEngine APIs.
+    
+    * Added asynchronous InputContext.IsEnabled and InputContext.GetEngine APIs. Now
+    all InputContext IPCs can be async.
+    * Added comments to src/ibusinputcontext.h.
+    * Moved input context tests from ibus-bus.c to ibus-inputcontext.c (new file),
+    and fixed flaky tests.
+    * Fixed typos in bus/.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1215
+    TEST=ran the new test
+    
+    Review URL: http://codereview.appspot.com/4298049
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/tests/.gitignore
+M      src/tests/Makefile.am
+M      src/tests/ibus-bus.c
+A      src/tests/ibus-inputcontext.c
+
+commit 8306617bc88fc85d818af749ee23ff115c3de5f8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-18 09:24:18 -0400
+
+    Create a separate test case for ibus_bus_create_input_context_async().
+    
+    Create a separate test case for ibus_bus_create_input_context_async(),
+    so we can use `ibus-bus -p /ibus/create-input-context' to test and debug
+    ibus_bus_create_input_context_async() only.
+    
+    BUG=none
+    TEST=make check
+    
+    Review URL: http://codereview.appspot.com/4298045
+
+M      src/tests/ibus-bus.c
+
+commit 1861184a71b1210d7e07a19fdf90ecc4ce0be7b9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-17 10:52:38 -0400
+
+    Refine document and coding style in ibusbus.[ch] and trim some private structs and api from document
+    
+    BUG=none
+    TEST=make
+    
+    Review URL: http://codereview.appspot.com/4290053
+
+M      .gitignore
+M      docs/reference/ibus/.gitignore
+M      docs/reference/ibus/Makefile.am
+A      docs/reference/ibus/trim.sed
+M      src/.gitignore
+M      src/ibusbus.c
+M      src/ibusbus.h
+
+commit 13697b0aec5efcb999d02720170fe968ac6dfaba
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-17 10:49:03 -0400
+
+    Do not block UI in IBusIMContext anymore.
+    
+    Replace some block IPC calls with async IPC calls, and then IBusIMContext will
+    not block UI anymore.
+    
+    BUG=http://crosbug.com/12310
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4287054
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      client/gtk2/ibusimcontext.c
+M      debian/libibus-1.0-0.symbols
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/tests/ibus-bus.c
+
+commit b9b2c42596e1a7394e89c11025074aed2fcb099a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-16 10:02:47 -0400
+
+    Fix issue of InputContext.SetEngine.
+    
+    InputContext.SetEngine returns error sometimes, because "request-engine"
+    signal handler calls an async function to set the engine of the context.
+    So checking context->engine != NULL just after emiting "request-engine"
+    signal is not correct.
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4287049
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/marshalers.list
+
+commit 14b7d1a071c08c327ab836a2b7bd3e3b2ab7d1af
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-16 10:01:18 -0400
+
+    Add git.mk from gtk+ project, Use it to update .gitignore
+    
+    BUG=none
+    TEST=make
+    
+    Review URL: http://codereview.appspot.com/4280050
+
+M      .gitignore
+M      Makefile.am
+M      bindings/Makefile.am
+M      bindings/vala/Makefile.am
+M      bus/.gitignore
+M      bus/Makefile.am
+M      client/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/gtk3/Makefile.am
+M      client/x11/.gitignore
+M      client/x11/Makefile.am
+M      data/.gitignore
+M      data/Makefile.am
+M      data/icons/Makefile.am
+M      data/keymaps/Makefile.am
+A      debian/.gitignore
+M      docs/.gitignore
+M      docs/Makefile.am
+M      docs/reference/Makefile.am
+M      docs/reference/ibus/.gitignore
+M      docs/reference/ibus/Makefile.am
+M      gconf/.gitignore
+M      gconf/Makefile.am
+A      git.mk
+M      ibus/.gitignore
+M      ibus/Makefile.am
+M      ibus/interface/Makefile.am
+M      m4/.gitignore
+M      m4/Makefile.am
+M      memconf/Makefile.am
+M      po/.gitignore
+M      setup/.gitignore
+M      setup/Makefile.am
+M      src/.gitignore
+M      src/Makefile.am
+M      src/tests/.gitignore
+M      src/tests/Makefile.am
+M      ui/Makefile.am
+M      ui/gtk/.gitignore
+M      ui/gtk/Makefile.am
+M      util/IMdkit/Makefile.am
+M      util/Makefile.am
+
+commit 596680ba3cfd5aa8e4c2ef4bd5905a25c4c855b0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-15 13:32:55 -0400
+
+    Update gtk-doc
+    
+    BUG=
+    TEST=Linux documemt
+    
+    Review URL: http://codereview.appspot.com/4277054
+
+M      docs/reference/ibus/Makefile.am
+D      docs/reference/ibus/ibus-sections.txt
+M      src/ibusbus.h
+
+commit 71bcf46f2aac7a81291bf2782915b8bf4cc36edf
+Author: Zach Kuznia <zork@chromium.org>
+Date:   2011-03-14 15:42:32 +0900
+
+    This can cause crashes on cleanup when multiple components are implemented in the same process.
+    
+    Review URL: http://codereview.appspot.com/4241058
+    Patch from Zach Kuznia <zork@chromium.org>.
+
+M      src/ibusservice.c
+
+commit 26084822d7ac9395b4553a7852a78d6d0d4bed0f
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-03-11 15:53:53 +0900
+
+    Fix preedit_string = NULL in ibus-x11 _free_ic()
+
+M      client/x11/main.c
+
+commit 5617ef1553bccb4894ef2e83f2021fda7ca6b815
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-11 10:37:40 -0500
+
+    Fix make check error
+    
+    BUG=none
+    TEST=make check
+    
+    Review URL: http://codereview.appspot.com/4250077
+
+M      po/POTFILES.in
+
+commit 57eee844b6087c188be1c7f8676d2c5acdf89a7d
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-03-10 08:44:38 +0900
+
+    Update symbols file.
+    
+    ./autogen.sh
+    ./configure --enable-gtk-doc
+    make dpkg
+    cp ppa/ibus-1.3.99.20110309/debian/libibus-1.0-0/DEBIAN/symbols debian/libibus-1.0-0.symbols
+    vi debian/libibus-1.0-0.symbols  # remove "-1phuang1~maverick1"
+    make dpkg  # confirm that lintian does not report an error.
+    
+    Review URL: http://codereview.appspot.com/4253068
+
+M      debian/libibus-1.0-0.symbols
+
+commit 32367ad614c9f4bceb55eb812860ea8ae674925e
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-09-15 12:25:17 +0900
+
+    Fix issues of the "previous_engine" hotkey.
+    
+    Check global_previous_engine_name when the previous engine is requested and rewrite it if necessary.
+    This change ensures that the "previous_engine" hotkey (Ctrl+space on Chrome OS) always works
+    whenever two or more engines are preloaded.
+    
+    Currently, Ctrl+space could become NOP by the following scenarios (http://crosbug.com/6609):
+    
+    (1)
+    1. preload engines A, B, C.
+    2. switch to A.
+    3. switch to B.
+    4. at this point, ctrl+space works fine. It selectes A and B alternately.
+    5. switch to A.
+    6. remove B from the preloaded engline list.
+    7. at this point, ctrl+space suddenly becomes NOP although C is still preloaded.
+    This is because the callback function of ctrl+space detects
+    global_previous_engine_name (i.e. B) is removed and automatically selects A (not
+    C) as a global_previous_engine_name.
+    
+    (2)
+    1. preload engines A, B.
+    2. switch to A.
+    3. switch to B.
+    4. at this point, ctrl+space works fine. It selectes A and B alternately.
+    5. switch to A.
+    6. remove B from the preloaded engline list.
+    7. press ctrl+space several times, confirm that nothing happens (this is
+    expected since only one engine, A, is preloaded).
+    8. preload additional engine, C.
+    9. at this point, ctrl+space is still NOP although two engines, A and C, are
+    preloaded.
+
+M      bus/ibusimpl.c
+
+commit 2fbbf4312d4b33885aa36df7b8d966c6ebf698c6
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-26 22:31:06 -0700
+
+    If the current engine is removed, then switch to another engine automatically.
+    
+    BUG=http://crosbug.com/3577
+    TEST=manual test.
+    
+    Review URL: http://codereview.chromium.org/2259004
+
+M      bus/ibusimpl.c
+
+commit f4eae684f5e83af489b3d36662f9eddb79a0cc8e
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-03-08 21:57:10 +0900
+
+    Remove -Wall warnings.
+    
+    Review URL: http://codereview.appspot.com/4261056
+
+M      client/gtk2/ibusimcontext.c
+M      src/tests/ibus-bus.c
+
+commit 3980dd91d097a009e0967a122f284e5e4cfd07c6
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-03-08 00:55:36 +0900
+
+    Add asynchronous APIs to ibusbus.h
+    
+    Modified src/tests/ibus-bus.c so that it could be compiled with ibus-1.3.99 as well.
+    
+    BUG=chromium-os:12581
+    TEST=added async api tests to the src/tests/ibus-bus.c and ran it locally.
+    
+    Review URL: http://codereview.appspot.com/4179061
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/tests/ibus-bus.c
+
+commit fbdd157b2ab1e6e873818132530dd9e55e4f94dd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-07 10:26:04 -0500
+
+    Move gtk_key_snooper_remove from function object_fini to class_fini.
+    
+    BUG=http://crosbug.com/12803
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4267044
+
+M      client/gtk2/ibusimcontext.c
+
+commit 279ee5d5b3697b427cc22cd99a55f4e611318e25
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-03-01 15:34:37 -0500
+
+    Optimize focus_in to avoid call some UI blocking functions.
+    
+    focus_in calls some X blocking functions. It will block UI. This change delays the X blocking calls to idle callback, to avoid blocking UI.
+    
+    BUG=http://crbug.com/74237
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4254048
+
+M      client/gtk2/ibusimcontext.c
+
+commit 690be230c116afd52a6002d2ef92b56e28d829b1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-02-28 15:57:47 -0500
+
+    Unify async and sync function names.
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4246042
+
+M      client/gtk2/ibusimcontext.c
+M      client/x11/main.c
+M      debian/libibus-1.0-0.symbols
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+
+commit 31b3b6a9577bb4c2787c73675f53ba38647a1501
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-02-28 10:25:54 -0500
+
+    Fix a race problem in SetGlobalEngine and add set_global_engine in python library
+    
+    The race problem:
+     1. global engine == A
+     2. call SetGlobalEngine(B) asynchronously
+     3. call SetGlobalEngine(A) immediately
+      3.1 Because step 2 is not finished, so the global engine is still A,
+          and SetGlobalEngine(A) returns sucessfully.
+     4. SetGlobalEngine(B) is completed and the global engine becomes B
+    
+    BUG=http://crosbug.com/12414
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4250041
+
+M      bus/ibusimpl.c
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+
+commit 8ebad5f07b1ba821e278d4d04ab74e2d31a40139
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-02-19 04:52:40 +0900
+
+    Call gtk_key_snooper_remove when GTK IM client is switched.
+
+M      client/gtk2/ibusimcontext.c
+
+commit fb153c2a95746fde7a166775c65d281cb757cbfa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-02-18 10:59:49 -0500
+
+    Fix make dpkg errors.
+    
+    BUG=none
+    TEST=make dpkg
+    
+    Review URL: http://codereview.appspot.com/4184055
+
+M      debian/libibus-1.0-0.symbols
+
+commit 0b02c819eee5d7cf9b7be449887677af76ee4731
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-02-18 10:59:06 -0500
+
+    Add enable_conditional and disable_conditional in gconf schemas file
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/4183057
+
+M      data/ibus.schemas.in
+
+commit d68f26bd70933df9d18d88e98c2079ce8c2f3dc2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-02-18 10:58:27 -0500
+
+    Fix crash when turn off "use global engine" option
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4170061
+
+M      bus/ibusimpl.c
+
+commit ff5db2e177944df295cf370ee066812223a75b0e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-02-18 09:08:41 -0500
+
+    Destroy IBusInputContext correctly in ibus-x11
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4178062
+
+M      client/x11/main.c
+
+commit 5bd623d697da442c9107bcb8ecd9012d2e3f8731
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-02-17 15:08:37 +0900
+
+    s/LC_MESSAGES/LC_CTYPE/ in set_default_preload_engines.
+
+M      bus/ibusimpl.c
+
+commit 9edd39912564e07dc734b5101b2c9995389aa234
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-02-16 15:49:09 -0500
+
+    Do not create GSimpleAsyncResult in ibus_input_context_process_key_event
+    
+    This change also fixes memory leak of simple result object
+    
+    BUG=none
+    TEST=Linux desktop
+    
+    Review URL: http://codereview.appspot.com/4175051
+
+M      src/ibusinputcontext.c
+
+commit d0755b083d954383a791256b2db4f1b3d1f0a001
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-16 23:42:27 +0900
+
+    Add async version of set_global_engine.
+    
+    Patch from Zach Kuznia <zork@chromium.org>, modified by Yusuke Sato <yusukes@chromium.org>.
+    
+    Review URL: http://codereview.appspot.com/4175047
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+
+commit d9f8ed3e18338afefe4cf0ec2c12ca6d6e76e3b6
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-16 15:45:29 +0900
+
+    Implement async version of ibus_config_set_value.
+    
+    BUG=crosbug.com/11903
+    
+    Review URL: http://codereview.appspot.com/4185041
+
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+
+commit 07877cf6f15d4d222738ab18cb9860083581ca82
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-15 16:44:05 +0900
+
+    Add engine_name parameter to the global-engine-changed signal.
+    
+    This makes it possible for a client to know the current global engine w/o issuing GetGlobalEngine reqeust.
+    
+    BUG=chromium-os:11908
+    
+    Review URL: http://codereview.appspot.com/4177045
+
+M      bus/ibusimpl.c
+M      src/ibusbus.c
+
+commit 661f1e860ea0d5145485a3c141c811e999f522a4
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-15 10:27:03 +0900
+
+    Use LC_MESSAGES instead of LC_ALL in bus_ibus_impl_set_default_preload_engines.
+    
+    This is a fix for https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/716314. Calling setlocale(LC_ALL, NULL); in the function seems not to be a good idea since the function could return a complex string like "LC_CTYPE=ja_JP.UTF-8;LC_NUMERIC=C;LC..." when two or more values are used for LC_xxx variables (e.g. ja_JP.UTF-8 and C.)
+    
+    BUG=1204
+    
+    Review URL: http://codereview.appspot.com/4160046
+
+M      bus/ibusimpl.c
+
+commit 5743b6da70f7722792c21ec50415dce4f1790af5
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-15 10:24:20 +0900
+
+    Never use ibus's US keymap in bus_input_context_filter_key, and use the keyval from X as-is.
+    I think this is important for supporting non-US keyboards like a Japanese-106 keyboard correctly.
+    
+    Currently, when use_sys_layout config is unchecked (the default), ibus-daemon discards a keyval being passed from X, and regenerates a keyval from a keycode assuming the US layout.
+    
+    However, I believe this behavior is not good for non-US keyboard layout users (e.g. Japanese or Korean keyboard users.) For example, the Japanese 106 keyboard has a key called Zenkaku_Hankaku (全角_半角, whose keycode is 49) on the left hand of the '1' key, and most users want to use the key for toggling IME. But, even if a user set 'Zenkaku_Hankaku' as the toggle hotkey using ibus-setup, the user cannot toggle IME unless the 'Use system keyboard layout' option is explicitly turned on. This is because when use_sys_layout is unchecked, ibus-daemon treats the Zenkaku_Hankaku key press (keycode=49) as tilde (~) key press (remember that the tilde's keycode is also 49 in the US keyboard layout.) This is very inconvenient and confusing.
+    
+    Please also note that the hotkey configuration tool in ibus-setup always respects a keyval from X, and never checks the use_sys_layout value.
+    
+    Review URL: http://codereview.appspot.com/4173046
+
+M      bus/inputcontext.c
+
+commit c394fea7874df0173cf07d891976086ab343bead
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-15 10:22:48 +0900
+
+    Always call g_simple_async_result_complete in ibus_input_context_process_key_event_done in order to handle IPC errors correctly.
+    
+    Review URL: http://codereview.appspot.com/4171049
+
+M      src/ibusinputcontext.c
+
+commit b2c7173b30fb41925dbef8355477497fba43d887
+Author: Ahmad Sharif <asharif@chromium.org>
+Date:   2011-02-12 23:38:35 +0900
+
+    Fix compiler warnings in util/IMdkit/.
+    
+    BUG=1201
+    
+    Review URL: http://codereview.appspot.com/4171046
+    Patch from Ahmad Sharif <asharif@chromium.org>.
+
+M      util/IMdkit/i18nPtHdr.c
+M      util/IMdkit/i18nX.c
+
+commit 753835819886f7a46f938826632b123287f589f0
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-12 22:56:49 +0900
+
+    Ran 'make update-po' in po/.
+    
+    BUG=1173
+    
+    Review URL: http://codereview.appspot.com/4181044
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/pt_BR.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit b66b337e9a30d55542fbae4611565e47e932ce0a
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-11 23:53:34 +0900
+
+    Reimplement ibus_bus_watch_dbus_signal for GDBus and export it.
+    
+    BUG=crosbug.com/11479
+    
+    Review URL: http://codereview.appspot.com/4186041
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+
+commit e3140b7206d409419faa0c8bfa50f25ad3644cd0
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-11 23:48:42 +0900
+
+    Support enable/disable hotkeys that enable or disable ibus unconditionally (i.e. not toggle.)
+    
+    I'll update ibus/po/*po files if the change looks good to you.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1173
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3807047
+
+M      bus/ibusimpl.c
+M      ibus/common.py
+M      setup/main.py
+M      setup/setup.ui
+
+commit 377c06515e792c2da4f4cf342ba5faa26eac5170
+Author: phuang <shawn.p.huang@gmail.com>
+Date:   2011-02-09 21:02:44 +0900
+
+    Fix ibus-daemon deadlock in engineproxy.c.
+    
+    How to reproduce the deadlock on a desktop Linux like Ubuntu Maverick:
+    
+    1. Add 20 seconds sleep in the beginning of the main() function of an engine (e.g. ibus-engine-mozc). See http://crosbug.com/11379#c16 .
+    2. Set preload_engines to "mozc" using ibus-setup.
+    3. Start ibus-daemon.
+    4. press the trigger hotkey twice within the 20 seconds.
+    
+    Expected:
+    The second trigger hotkey press cancels the bus_engine_proxy_new operation started by the first one.
+    
+    Actual:
+    ibus-daemon freezes. Stack trace: http://crosbug.com/11379#c20
+    
+    BUG=http://crosbug.com/11379
+    TEST=see the steps above.
+    
+    Review URL: http://codereview.appspot.com/4125053
+    Patch from phuang <shawn.p.huang@gmail.com>.
+
+M      bus/engineproxy.c
+M      bus/inputcontext.c
+
+commit 0501756a1e51469849eca064aeb1e340afbf8be2
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-02-09 00:51:39 +0900
+
+    Add pkgdatadir in ibus-1.0.pc.in
+
+M      ibus-1.0.pc.in
+
+commit 8199abcde4175971da78141b680eb9bb80fc2ad2
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-02-09 00:50:44 +0900
+
+    Add GTK3 definitions.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 31d1e1c41cc644d3c3c9da2e076728134d3b7439
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-02-09 00:50:56 +0900
+
+    Fix typo.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 03c9e591430c62354bbf26ef7bd4a2e6acfb7c8f
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-02-03 10:15:24 +0900
+
+    Overwrite Gtk+'s default compose table to fix crosbug.com/11421.
+    
+    BUG=chromium-os:11421
+    TEST=manually done on Chrome OS.
+    
+    Review URL: http://codereview.appspot.com/3989060
+
+M      client/gtk2/ibusimcontext.c
+
+commit 0e6fa20c2521c5e23fe2f5bdd17bcbdfcf227da8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-01-27 18:01:34 -0500
+
+    Fix build debian package error.
+    
+    BUG=
+    TEST=make dpkg
+    
+    Review URL: http://codereview.appspot.com/4013046
+
+M      debian/libibus-1.0-0.symbols
+
+commit af0c9bcf7483a3d1f4520526f6d08222ae21ec1b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-01-27 10:06:09 -0500
+
+    Export async version ibus_input_context_process_key_event.
+    
+    Some application may want to integrate with ibus directly, and want to
+    use async mode for processing key events. So I make
+    ibus_input_context_process_key_event to be an async function,
+    and also added ibus_input_context_process_key_event_sync.
+    
+    Fix problem in introspection of Engine.
+    
+    BUG=none
+    TEST=Tested in Ubuntu 10.10
+    
+    Review URL: http://codereview.appspot.com/4032044
+
+M      client/gtk2/ibusimcontext.c
+M      client/x11/main.c
+M      debian/libibus-1.0-0.symbols
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+
+commit 8f3bd1b11df8806c596b9b311997f24cbfec1e66
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-01-26 19:18:05 -0500
+
+    Fix problem in introspection of Engine.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1194
+    TEST=Tested in Ubuntu 10.10
+    
+    Review URL: http://codereview.appspot.com/4084046
+
+M      src/ibusengine.c
+
+commit ea3917659bb7be5ee93ced938d5b522a468f7677
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-01-26 13:15:08 +0900
+
+    Fix introspection definitions.
+
+M      src/ibusbus.h
+M      src/ibusinputcontext.h
+
+commit cc1d776aeb65b481b1bd93e1f7acfbe4fea8e1f2
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-01-26 14:01:25 +0900
+
+    Set QT_IM_MODULE=xim in case of no ibus-qt.
+
+M      xinput-ibus.in
+
+commit 73135d06d2195cee5630918e48003347315eb653
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-01-26 14:01:17 +0900
+
+    Add signals in IBusPanelService for non-C classes.
+
+M      src/ibuspanelservice.c
+M      src/ibuspanelservice.h
+
+commit f28d3e30cb04dc0eee5a657469f2c8d49d7056e0
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2011-01-24 12:25:48 +0900
+
+    Set GdkEventKey time for gdk_event_put with IBUS_FORWARD_MASK.
+
+M      client/gtk2/ibusimcontext.c
+
+commit d26f418a3df4a9ad78dd952d997e028ba24c88f9
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-24 10:56:05 +0900
+
+    Add <signal name='ValueChanged'> to introspection_xml in src/ibusconfigservice.c.
+    
+    I don't think that GDBus library in glib-2.26.[01] uses the information to filter out undefined signals, but just in case.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/4015043
+
+M      src/ibusconfigservice.c
+
+commit e1e72a2052ea3c869002bbba9055eab4a9e88aaa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2011-01-21 10:57:54 -0500
+
+    Fix some race conditions during create engine, also fix dpkg build error.
+    
+    BUG=chromium-os:10750
+    TEST=on Linux desktop
+    
+    Review URL: http://codereview.appspot.com/3970044
+
+M      bus/engineproxy.c
+M      debian/libibus-1.0-0.symbols
+
+commit 683e301b689f3fe74769f4a7f2ad1b159e54790d
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-21 21:03:23 +0900
+
+    Emit the connected signal after setting up the connection.
+    
+    Otherwise, we might miss the first a few DBus and IBus signals.
+    
+    BUG=http://crosbug.com/11144
+    TEST=see the bug.
+    
+    Review URL: http://codereview.appspot.com/4029043
+
+M      src/ibusbus.c
+
+commit b5382549a2f4009e0e4da20c7491ba28e7cca60f
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-19 10:55:16 +0900
+
+    Fix race condition between ibus_bus_set_global_engine() and ibus_bus_get_global_engine().
+    
+    If focus moves between the two API calls, ibus_bus_get_global_engine() might return an unexpected engine name:
+    
+    1. context A is focused, and the current global engine is "X".
+    2. ibus_bus_set_global_engine("Y") is called.
+    3. a user moves the focus from A to B. First, A's engine is set to NULL in bus_ibus_impl_set_focused_context(). Then, in the same function, B's engine is set to "X" (not "Y") since the _ibus_set_global_engine asynchronous call is not finished yet.
+    4. ibus_bus_set_global_engine("Y") async call successfully finishes. Context A's (not B's) engine is set to "Y", but context B, which has a focus, is not updated.
+    5. ibus_bus_get_global_engine() is called.
+    
+    expected:
+    Y is returned.
+    
+    actual:
+    X is returned. Since the context B has a focus, and B's engine is X.
+    
+    BUG=http://crosbug.com/11031
+    TEST=see the bug
+    
+    Review URL: http://codereview.appspot.com/4063041
+
+M      bus/ibusimpl.c
+
+commit e194133baa0afc7fdb1befc18c2c1f516979a9be
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-19 10:18:13 +0900
+
+    Do not allow clients to destroy the server-side config service for safety.
+    
+    Unset the own flag of priv->config so that the config proxy object never destroys the config service even if a client wrongly unref()s the priv->config object.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/4060041
+
+M      src/ibusbus.h
+M      src/ibusconfig.c
+
+commit 302c85138bac23e7e5faf223119df0d5d04f9b0d
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-18 22:00:57 +0900
+
+    Fix possible SEGV in ibus_bus_get_global_engine.
+    
+    The g_variant_get returns NULL when the IPC call times out.
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3974043
+
+M      src/ibusbus.c
+
+commit 6b4874283c510869080eed2c63d61e54f8beeba8
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-18 21:51:40 +0900
+
+    Handle GlobalEngineChanged signals from ibus-daemon.
+    
+    BUG=http://crosbug.com/11011
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/4037042
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+
+commit 469bfe396a0fa680ade8536b9bd9829918be2994
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-18 10:33:48 +0900
+
+    On ChromeOS, we don't have to (and don't want to) set default preload engines.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/4054041
+
+M      bus/ibusimpl.c
+
+commit 6a5c7666e1194e8ac8a3d0c3f680269b42fe80c2
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-01-17 14:22:18 +0900
+
+    Set nonzero serial number for RegistryChanged / EngineChanged signals.
+    
+    libdbus expects each message serial is greater than 0.
+    https://code.google.com/p/ibus/issues/detail?id=1186
+    
+    BUG=none
+    TEST=manual test described in the issue#1186
+    
+    Review URL: http://codereview.appspot.com/4050041
+
+M      bus/ibusimpl.c
+
+commit 990ff3920657584d356c48bebde031405285bf80
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-16 11:35:09 +0900
+
+    Fix typo in the default configuration of the trigger hotkeys.
+    
+    According to setup/keyboardshortcut.py, "Control" seems to be correct.
+    
+    BUG=none
+    TEST=compile ibus with --enable-memconf, start ibus-daemon, start ibus-setup, click "..." button for the "Enable or disable" hotkey, then verify that the "Control" checkbox in the pop-up dialog is checked from the beginning.
+    
+    Review URL: http://codereview.appspot.com/4017042
+
+M      ibus/common.py
+
+commit ee6abd76f7b0f0fc8e1a8b6964f4d8216a3b6618
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-16 11:34:34 +0900
+
+    Set correct g-flags to proxy objects.
+    
+    This change is similar to https://github.com/ibus/ibus/commit/19247aac5a348185a0e180f254ab3858c5f85703.
+    
+    The flag can prevent unnecessary communications between ibus-daemon and e.g. engines like this:
+    
+    $ . ~/.config/ibus/bus/*-unix-0 ; dbus-monitor --address $IBUS_ADDRESS 2>&1 | tee /tmp/ibus.log
+    ...
+    method call sender=org.freedesktop.DBus -> dest=(null destination) serial=3 path=/org/freedesktop/IBus/Factory; interface=org.freedesktop.IBus.Factory; member=CreateEngine
+       string "mozc-jp"
+    method return sender=:1.15 -> dest=org.freedesktop.DBus reply_serial=3
+       object path "/org/freedesktop/IBus/Engine/1"
+    method call sender=org.freedesktop.DBus -> dest=(null destination) serial=4 path=/org/freedesktop/IBus/Engine/1; interface=org.freedesktop.DBus.Properties; member=GetAll
+       string "org.freedesktop.IBus.Engine"
+    method return sender=:1.15 -> dest=org.freedesktop.DBus reply_serial=4
+       array [
+       ]
+    
+    Calling an engine's org.freedesktop.DBus.Properties.GetAll method when the engine is created is unnecessary for ibus-daemon, while it's not harmful though.
+    
+    BUG=none
+    TEST=verified using dbus-monitor that ibus-daemon does not call GetAll anymore.
+    
+    Review URL: http://codereview.appspot.com/4036041
+
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+M      bus/panelproxy.c
+
+commit ca4909cc8349a9931958c3010f965cf19bf23cd7
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-12 22:44:08 +0900
+
+    Fix a gcc warning seen in Chromium OS build.
+    
+    Please note that gcc's warn_unused_result check is enforced on the build environment. Anyway, I believe it's good to check the return value in this case.
+    
+    BUG=none
+    TEST=ran emerge-x86-generic ibus.
+    
+    Review URL: http://codereview.appspot.com/3904044
+
+M      bus/registry.c
+
+commit 199f80396f2c3db4953bac36c953742ece2d2270
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-12 22:43:16 +0900
+
+    Remove a gcc warning.
+    
+    ibusxml.c: In function 'ibus_xml_parse_file':
+    ibusxml.c:213: error: 'retval' may be used uninitialized in this function
+    
+    BUG=none
+    TEST=ran make CFLAGS="-Wall -O2"
+    
+    Review URL: http://codereview.appspot.com/3858044
+
+M      src/ibusxml.c
+
+commit 1403dc6abe87bd649c95b2454b49af2deba63461
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-12 22:42:24 +0900
+
+    Fix typo in ibus_bus_exit.
+    
+    BUG=none
+    TEST=ran make CFLAGS="-Wall -O2"
+    
+    Review URL: http://codereview.appspot.com/3900045
+
+M      src/ibusbus.c
+
+commit 411d8c5f21ea0d3f65bfc0cbdc98733af360b441
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-10 14:25:07 +0900
+
+    Fix the return value of ibus_bus_register_component so it returns TRUE on success.
+    
+    Do the same for ibus_bus_set_global_engine as well. Currently it always returns TRUE regardless of the result of the method call.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3902043
+
+M      src/ibusbus.c
+
+commit 783905fd6e6c8983237745ba90e05070559e0458
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-09 15:12:11 +0900
+
+    Change the return type of ibus_bus_exit to make it compatible with ibus-1.3 API.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3923042
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+
+commit d5bdf851d25b07062ecb2ea932b91317b1d9e72a
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2011-01-07 10:42:44 +0900
+
+    Set correct sender and interface when sending org.freedesktop.IBus signals.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3775042
+
+M      bus/dbusimpl.c
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+
+commit b24b403295a655e0c5644c5ddca1cf3488a938ce
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-07 01:38:23 +0900
+
+    Set the "g-default-timeout" property for ibusconfig, ibusinputcontext, and ibusbus objects. The GDBus default timeout (25 seconds) seems to be too long for IBus.
+    
+    BUG=none
+    TEST=manually, with IBUS_BUS_TIMEOUT=-3,-2,-1,0,1,1000,6000,abc,1abc,abc1
+    
+    Review URL: http://codereview.appspot.com/3799049
+
+M      src/ibusbus.c
+M      src/ibusconfig.c
+M      src/ibusinputcontext.c
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 144272e3a8b56cc9e9cec3f09688ae47c6166032
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-06 12:28:54 +0900
+
+    Use the G_DBUS_CALL_FLAGS_NO_AUTO_START flag just in case.
+    
+    BUG=none
+    TEST=manually on Chromium OS.
+    
+    Review URL: http://codereview.appspot.com/3774043
+
+M      src/ibusbus.c
+
+commit dd4a4c1a7f64a9a7737171d7aeb8272de130475e
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-06 12:24:36 +0900
+
+    Do not write empty string to "preload_engines" for safety.
+    
+    Without the change, bus_ibus_impl_set_default_preload_engines() might erase an existing preload_engines config when --timeout option for ibus-daemon is too short for ibus_config_get() to success.
+    
+    BUG=none
+    TEST=manually with 'ibus-daemon --timeout=1'
+    
+    Review URL: http://codereview.appspot.com/3789046
+
+M      bus/ibusimpl.c
+
+commit 44e94a3d0c7812fd24bd0548601682a1c0b043d7
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-06 08:44:49 +0900
+
+    Call ibus_hotkey_profile_remove_hotkey_by_event in bus_ibus_impl_set_trigger before registering the fallback hotkey, just in case.
+    
+    Probably it's better to call the remove function in bus_ibus_impl_set_trigger just as bus_ibus_impl_set_hotkey already does, so that a wierd error message like 'IBUS-CRITICAL **: ...: file ibushotkey.c: line 381 (ibus_hotkey_profile_add_hotkey): should not be reached' will not be shown.
+    
+    The fallback hotkey could be registered twice, via bus_ibus_impl_init and _dbus_name_owner_changed_cb, if the --timeout parameter is too small to talk to the configuration daemon, for example.
+    
+    BUG=none
+    TEST=ran ibus-daemon with --timeout=1 and verified that the IBUS-CRITICAL message above was not shown.
+    
+    Review URL: http://codereview.appspot.com/3796044
+
+M      bus/ibusimpl.c
+
+commit af1460aea63a65877544e65a335398bd670ad6ee
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-06 08:25:47 +0900
+
+    Replace g_return_if_fail with g_warning since the error message 'desc != NULL' seems confusing.
+    
+    BUG=none
+    TEST=manually. removed all engines using ibus-setup and ran ibus-daemon, then press a trigger hot-key.
+    
+    Review URL: http://codereview.appspot.com/3786047
+
+M      bus/ibusimpl.c
+
+commit c6e273c0ee91858bf5af2a87048f9d2977d368d5
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-06 08:22:38 +0900
+
+    Fix --timeout command line option of ibus-daemon.
+    
+    On 1.3.99, currently the option is just ignored and '-1' (i.e. the default timeout of gdbus which is 25 seconds in glib-2.26.1) is always used. We should fix this since the default, 25 secs, is too long for some platforms like Chromium OS.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3784047
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/factoryproxy.c
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/main.c
+M      bus/option.h
+M      bus/panelproxy.c
+
+commit 2f0877decf4adde5d4779a13ab15c40c41985525
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2011-01-01 17:34:37 +0900
+
+    Support hotkeys that use Super/Hyper modifiers.
+    
+    BUG=1175
+    TEST=checked that Super+space and Hyper+space work as intended with and without the use_sys_layout option enabled.
+    
+    Review URL: http://codereview.appspot.com/3856041
+
+M      src/ibushotkey.c
+M      src/ibuskeynames.c
+
+commit f4075519710719aa245ed8421f0219a129152fdb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-12-28 16:44:16 -0700
+
+    Reply an error message to sender, if ibus-daemon can not forward method call message successfully.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3825042
+
+M      bus/dbusimpl.c
+
+commit 017077ceb9ec2f26a8c524f3794a832164f21768
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2010-12-28 12:46:25 +0900
+
+    Fix g_variant_get() call in DeleteSurroundingText signal handler.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3820042
+
+M      src/ibusinputcontext.c
+
+commit 61f0894c3555478117e9d5f286d0085bd5afdad3
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-27 07:58:29 +0900
+
+    Fix API compatibility issue in ibus_config_new.
+    
+    On ibus-1.3, ibus_config_new returns NULL when ibus-gconf is not started yet, but on 1.4 it returns a valid, non-NULL IBusConfig object. This patch fixes the discrepancy by changing the behavior of ibus_config_new of 1.4.
+    
+    If we don't return NULL when ibus-gconf does not exist, successive calls e.g. ibus_config_set_value will fail with a cryptic error message like 'IBUS-WARNING **: org.freedesktop.IBus.Config.SetValue: Cannot invoke method; proxy is for a well-known name without an owner and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag'. I believe returning NULL makes it easier to use the ibusconfig.h APIs.
+    
+    Please note that this patch is particularly important for Chromium OS. Since ibus_config_new is called shortly after ibus-daemon starts on the OS, ibus_config_new is sometimes called before ibus-memconf starts actually. This change helps the glue between chrome and ibus-daemon to remain clean.
+    
+    BUG=none
+    TEST=manually on Chromium OS
+    
+    Review URL: http://codereview.appspot.com/3784043
+
+M      src/ibusconfig.c
+
+commit 19247aac5a348185a0e180f254ab3858c5f85703
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-27 07:57:09 +0900
+
+    Create an instance of GDBusProxy with G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag.
+    
+    Without the flag, on_name_owner_changed() in glib-2.26.x/gio/gdbusproxy.c might invoke a remote method named GetAll in org.freedesktop.DBus.Properties interface, but the method is not implemented in ibus-daemon. Since ibus-daemon ignores the method call, the caller, which is UI thread of Chrome on Chromium OS, will block for 25 seconds (i.e. the default timeout of GDBus) waiting for a reply.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3836042
+
+M      src/ibusconfig.c
+M      src/ibusinputcontext.c
+
+commit 7a8b3d722b83221168a339f46c7e8a617c735ade
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-12-25 22:05:13 -0700
+
+    Fix Alt+Shift hotkey issue for chrome os
+    
+    BUG=chromium-os:6225
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3741043
+
+M      src/ibushotkey.c
+
+commit 911490b3f8adac433a91153000a63a0a7143fff2
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-22 23:03:03 +0900
+
+    Fix hot-key handling in inputcontext.c.
+    
+    Without the fix, some key combinations might not trigger a hot-key event.
+    For example, one of Chrome OS hot-keys, "press Shift, then press Alt, then release Alt", does not work without the fix.
+    
+    BUG=none
+    TEST=manually checked using ChromeOS and IBus-1.4
+    
+    Review URL: http://codereview.appspot.com/3828041
+
+M      bus/inputcontext.c
+
+commit 2c3021469f770666e54e72bf8e6c306c7dd3a046
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-21 01:04:49 +0900
+
+    Add comments to ibusproxy.[ch] and related functions.
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3802042
+
+M      bus/ibusimpl.c
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+
+commit e4d8612776dbb5eca85ab35d9ad71ddd68db63e4
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-21 01:04:05 +0900
+
+    Fix ibus_input_context_get_input_context() so IBus.Service.Destroy will not be called when the returned object is disposed.
+    
+    BUG=none
+    TEST=verified that calling g_object_unref(the_returned_object) does not result in the remote method call.
+    
+    Review URL: http://codereview.appspot.com/3803041
+
+M      src/ibusinputcontext.c
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+
+commit fb0aee6d9f04e2b9e3177cfbd6cff359d40af879
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2010-12-20 18:19:04 +0900
+
+    Don't call nonexistent org.freedesktop.IBus.InputContext.Destroy.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3800041
+
+M      ibus/inputcontext.py
+
+commit 7ca2d0f5b8fe5eb395fdff850d482d44b6216300
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-20 15:02:20 +0900
+
+    Fix typo in introspection_xml[] for InputContext.
+    
+    https://github.com/ibus/ibus/commit/ed778cd7cfc78eb39fc74167f2169b69f4d72a6b was incomplete, sorry.
+    
+    BUG=none
+    TEST=verified that properties can be changed via input context on Chrome OS.
+    
+    Review URL: http://codereview.appspot.com/3795041
+
+M      bus/inputcontext.c
+
+commit 6a8b35d0d0ffd4c130a849a86e8c3e50cbeba14a
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2010-12-15 18:33:33 +0900
+
+    Init GError before calling g_dbus_proxy_call*().
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3669041
+
+M      src/ibusinputcontext.c
+
+commit c3c20f8e45c27440e188e2bac3baca05cc966d71
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2010-12-15 18:32:17 +0900
+
+    Fix gtk version check for deprecated keysyms.
+    
+    From the git log of gtk3, they started adding _KEY from 2.91.0 not 2.90.0.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3670041
+
+M      client/gtk2/ibusimcontext.c
+
+commit bd5ead57debd3165d7dd89b099a1faadaa223eb3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-12-15 17:04:43 +0800
+
+    Disconnect closed signal from GDBusConnection before creating a new connection.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3668041
+
+M      src/ibusbus.c
+
+commit 4de438c3dbb35399b479b78ada3398c5319fb7ba
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-15 15:13:00 +0900
+
+    Fix assertion failure in ibusbus.c.
+    
+    The following code does not work since the underlying connection for IBus-1.4 is not a sub class of IBusObject.
+    
+            ibus_object_destroy ((IBusObject *)priv->connection);
+            g_assert (priv->connection == NULL);
+    
+    BUG=none
+    TEST=ran Chrome for Chrome OS.
+    
+    Review URL: http://codereview.appspot.com/3658041
+
+M      src/ibusbus.c
+
+commit 872aec110599de061e587746e8500e98f59feed9
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-15 14:36:19 +0900
+
+    Fix type mismatch in src/ibuspanelservice.c.
+    
+    BUG=none
+    TEST=ran candidate_window for Chrome OS.
+    
+    Review URL: http://codereview.appspot.com/3661041
+
+M      src/ibuspanelservice.c
+
+commit ed778cd7cfc78eb39fc74167f2169b69f4d72a6b
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-15 14:09:20 +0900
+
+    Use unsigned for the parameter of the PropertyActivate message.
+    
+    unsigned would be better since the Python binding and engine proxy use unsigned for this purpose.
+    
+    BUG=none
+    TEST=ran Chrome for Chrome OS.
+    
+    Review URL: http://codereview.appspot.com/3660041
+
+M      bus/inputcontext.c
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+
+commit 2ce1bd05306e416d243c49eed5608b18b12f62cf
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-15 11:55:16 +0900
+
+    Fix type mismatch in the PropertyActivate message.
+    
+    src/ibusinputcontext.c sends the massage with "(si)" but the daemon use the massage as "(&su)". This triggers assertion failure on Chrome OS.
+    
+    BUG=none
+    TEST=change ibus-mozc's property on Chrome OS via the IME menu.
+    
+    Review URL: http://codereview.appspot.com/3636041
+
+M      bus/inputcontext.c
+
+commit c2c4c6df3c0b650406be0615adb738540ebaf7af
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-12-02 13:12:53 +0800
+
+    Fix crash in im-ibus.so
+    
+    BUG=chromium-os:9868
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3401041
+
+M      client/gtk2/ibusimcontext.c
+
+commit e0b882f5fb5e274f8ae909c2b2c3b634890c31b5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-21 19:26:18 +0900
+
+    Focus out/in fake input context if the input window changed.
+    
+    BUG=chromium-os:8855
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3199042
+
+M      client/gtk2/ibusimcontext.c
+
+commit 93ceb44131ad5cef4691dae151259f268f3ba986
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-12-14 10:16:32 +0800
+
+    Focus out the fake context in im-ibus.so, when a real context gets the focus.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3561042
+
+M      client/gtk2/ibusimcontext.c
+
+commit 856bd2ea703a27fb88a82022392dbcd366a56d95
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-12-14 10:14:45 +0800
+
+    Add fake context back in IBusIMContext.
+    
+    The fake context is removed by mistake in ibus-1.4. It is necessary for Chrome OS.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3574042
+
+M      client/gtk2/ibusimcontext.c
+
+commit ac1be736ab513b46c642e9ceb8bfc3bf4dc50de4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-12-13 17:37:09 +0800
+
+    Fix typo and annotation.
+    
+    Fix typo in IBusEngineDesc:rank doc and GI transfer mode for
+    ibus_component_get_engines().
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3614041
+
+M      src/ibuscomponent.h
+M      src/ibusenginedesc.c
+
+commit 98419a4133f6358ec2e8ad56c62aacf3e3754c3e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-12-08 16:37:42 +0800
+
+    Fix GI transfer mode annotation in ibus_bus_list_*engines() comment.
+    
+    See https://bugzilla.gnome.org/show_bug.cgi?id=635248.  Also, do not mark those
+    functions as "not implemented", since they are apparently implemented.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3274044
+
+M      src/ibusbus.h
+
+commit 9b0e04d311f9e3e65cbdd245332502a7d36e9739
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-03 00:42:45 +0900
+
+    Add #include <ibuspanelservice.h> to ibus.h.
+    
+    Add #include <ibuspanelservice.h> to ibus.h so an external project (e.g. Chromium OS project) could implement its own panel component in C/C++.
+    
+    Review URL: http://codereview.appspot.com/3411041
+
+M      src/ibus.h
+
+commit 036554a6106ba28bf2282ad63711a277c0abfe85
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-03 00:41:15 +0900
+
+    Remove unused header file, src/ibusconfigprivate.h
+    
+    Review URL: http://codereview.appspot.com/3412041
+
+M      src/Makefile.am
+D      src/ibusconfigprivate.h
+
+commit 4f1f7e241edf9c41bc158c1367380e5b0da9a670
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-12-01 22:00:44 +0900
+
+    Fix compile errors on Chromium OS.
+    
+    This is for the master branch of ibus.
+    
+    BUG=crosbug.com/9685
+    TEST=ran emerge-x86-generic ibus.
+    
+    Review URL: http://codereview.appspot.com/3368041
+
+M      bus/inputcontext.c
+
+commit 50ceef360174ab6709a4215706ea527735f10c7e
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-29 12:04:27 +0900
+
+    Do not call g_critical when ibus->config is NULL since it's not an error.
+    
+    The change is originally for chromeos branch of ibus (http://codereview.appspot.com/3304043/) but I believe this is also good for the master branch of ibus.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3269043
+
+M      bus/ibusimpl.c
+
+commit cf2c9302528b9ece00eb3430600e8391f05f2a5c
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-26 16:07:56 +0900
+
+    Add the "destroy" signal handler back following Peng's suggestion at http://codereview.appspot.com/3293042/.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3335041
+
+M      bus/panelproxy.c
+
+commit 85b5e0e92104d921f161bac22349db7f1f89790a
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-26 10:15:08 +0900
+
+    Add function comments to bus/panelproxy.[ch].
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3293042
+
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+
+commit ede7506ad1e69092a334bbd5b90a9f4b6c6349df
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-25 17:54:19 +0900
+
+    Fix unexpected client capabilities in ibus-daemon.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3323041
+
+M      bus/inputcontext.c
+M      src/ibusinputcontext.h
+
+commit a902bf42cb1bb8ce2ba9db147435cb52228281b4
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-25 17:40:43 +0900
+
+    Change the order of engine method calls for consistency.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3304042
+
+M      bus/inputcontext.c
+
+commit 9ff18b80fdb3be5ed1209698c9f22d06cad4dc47
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-25 16:55:04 +0900
+
+    Add function comments to bus/inputcontext.[ch] and bus/engineproxy.[ch].
+    
+    Removed a temporary hack for PREEDIT_CONDITION by adding bus_ibus_impl_is_embed_preedit_text function to ibusimpl.c.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3321041
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+
+commit 21c14908e7f274c32d1e454e57cd51840b15ed14
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-24 18:50:57 +0900
+
+    Re-enable the use_sys_layout feature.
+    
+    Currently use_sys_layout cannot be disabled.
+    
+    BUG=none
+    TEST=manually
+    
+    Review URL: http://codereview.appspot.com/3306041
+
+M      bus/engineproxy.c
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+
+commit 5d4f22c81caad3ea6503fa8e0862aacf7fc2107a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-24 17:46:12 +0900
+
+    Pass cancellable object to bus_factory_proxy_create_engine
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3304041
+
+M      bus/engineproxy.c
+
+commit 5f1d5dd0089094f4ace175b451387d646ce81877
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-24 11:33:10 +0900
+
+    Clean up the code of focus switch logic, and fix a crash when focused context is destroyed.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3192042
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+
+commit b483041c3b8b01ccc6a11dd97d313d191cb11093
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-24 11:29:19 +0900
+
+    Fix some crashs when engine processes are killed.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3152042
+
+M      bus/component.c
+M      bus/engineproxy.c
+M      bus/ibusimpl.c
+M      bus/registry.c
+M      client/gtk2/ibusimcontext.c
+M      src/ibusobject.h
+M      src/ibusproxy.c
+
+commit ee09d6331a4816044da78d8f5394da2b9d318989
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-24 10:29:26 +0900
+
+    Use g_object_add_weak_pointer to make code simpler.
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3252041
+
+M      client/gtk2/ibusimcontext.c
+
+commit 3460cc569fc5e58ed538c23b23582166ed796fba
+Author: Jim Huang <jserv@0xlab.org>
+Date:   2010-11-22 01:37:04 +0800
+
+    Add generated files into .gitignore
+
+M      .gitignore
+M      bus/.gitignore
+A      src/tests/.gitignore
+
+commit 50c0d8399e7f31135647999fc9cd78f8a888264a
+Author: Jim Huang <jserv@0xlab.org>
+Date:   2010-11-22 01:24:08 +0800
+
+    Avoid comparison of unsigned expression
+    
+    comparison of unsigned expression < 0 is always false
+
+M      src/ibuskeymap.c
+
+commit 5fc6d9b8459ce47634012a42a638b6a091c205ee
+Author: Jim Huang <jserv@0xlab.org>
+Date:   2010-11-22 01:15:25 +0800
+
+    Add assertions to connection_destroy callback
+
+M      bus/inputcontext.c
+
+commit be50bec410f0b4730dd80c69c4037521eceae9d9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-21 19:13:34 +0900
+
+    Remove some unused header files.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3218041
+
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+
+commit 4830992d531347f6cd464c384364e9b2cf7e96a6
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-11-18 12:23:45 +0900
+
+    Fix NULL of focused input context
+
+M      bus/inputcontext.c
+
+commit b1b50dbbf0d3117da388e8035b490fb4c3e19ab2
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-17 19:15:38 +0900
+
+    Add comments to bus/connection.[ch].
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3164041
+
+M      bus/connection.c
+M      bus/connection.h
+
+commit 96cc5ab07c5c84e9807f3fb195166b7a5b09f2f5
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-17 19:14:44 +0900
+
+    Add comments to bus/factoryproxy.[ch].
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3163041
+
+M      bus/factoryproxy.c
+M      bus/factoryproxy.h
+
+commit f8416ad2ed6bf581a1f746b4205eda25804ee9b9
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-17 17:34:29 +0900
+
+    Add comments to bus/registry.[ch].
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3162041
+
+M      bus/registry.c
+M      bus/registry.h
+
+commit 2242d0279e7cc71c653c673acaedd4c47305ec17
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-17 17:12:32 +0900
+
+    Add comments about thread safety.
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3156041
+
+M      bus/dbusimpl.c
+
+commit a632d5e774eef4f5384f62580a682192c46ac9a9
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-17 16:01:17 +0900
+
+    Add comments to bus/component.[ch].
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3161041
+
+M      bus/component.c
+M      bus/component.h
+
+commit e237282d262d27d97c441885c62aaacc4ae90f76
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-17 13:49:55 +0900
+
+    Add comments to bus/ibusimpl.[ch].
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3154041
+
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+
+commit 90305393b3862fdb9d5860fa81aab59bb5d1eccc
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-11-16 18:11:37 +0900
+
+    Fix no defined '_' in EngineAbout
+
+M      ui/gtk/engineabout.py
+
+commit 60c0bc54c0654ac89b56e94b756bbba95e8f3521
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-16 17:59:48 +0900
+
+    Add introspection data for org.freedesktop.IBus.Panel and remove Destroy method.
+    
+    Add introspection data for org.freedesktop.IBus.Panel interface.
+    And remove Destroy method from Panel interface, because it is moved to
+    org.freedesktop.IBus.Service interface.
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3137041
+
+M      src/ibuspanelservice.c
+M      src/ibuspanelservice.h
+
+commit 217d2b49264d5335f8a0b5e8c70ff417547364aa
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-16 15:43:12 +0900
+
+    Add comments to bus/dbusimpl.[ch].
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3132041
+
+M      bus/dbusimpl.c
+M      bus/dbusimpl.h
+
+commit 7ccb594a14ff3e2f189af80a34c92e6b1113f577
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-16 14:22:23 +0900
+
+    Make sure send the reply of method IBus.Exit out before the daemon exits.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3133041
+
+M      bus/ibusimpl.c
+
+commit ac3ff55b7e4c23dd6ccd634b5b5eda683c0b2f43
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-16 14:02:34 +0900
+
+    Add global variable DOMAINNAME to replace "ibus10" in everywhere.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3093042
+
+M      setup/main.py
+M      ui/gtk/i18n.py
+
+commit 97fe1c47e189178b10c23fb18b575813f60fe72a
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-11-16 12:08:53 +0900
+
+    Fix ibus_version in configure and translation domain in ibus-setup.
+
+M      configure.ac
+M      setup/main.py
+
+commit 6e848591c101cbf6e14ed12f0e50deac7a486d71
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-11-11 18:09:52 +0900
+
+    Always read Window as 32 bits integer to fix problem in ppc64.
+
+M      client/x11/main.c
+
+commit a72b99373425872bc7a0a4b2659ac8cb5ccb546e
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-16 11:17:33 +0900
+
+    Use "org.freedesktop.IBus" instead of "org.freedesktop.DBus" for the well-known bus name for the input context proxy.
+    
+    Though "org.freedesktop.DBus" works fine, since bus_dbus_impl_connection_filter_cb in bus/dbusimpl.c treats the two bus names equally, "org.freedesktop.IBus" which matches the interface name looks more natural.
+    
+    BUG=none
+    TEST=manually done
+    
+    Review URL: http://codereview.appspot.com/3128041
+
+M      src/ibusinputcontext.c
+
+commit 5e823fcbff6b29286babc99e783d13af7ba505b3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-16 10:24:03 +0900
+
+    Remove block call in ibus-daemon, and use async call instead and clean up code.
+    
+    1. Do not use poll factory of a component. Sometime, it will cause a dead lock of ibus: ibus-daemon are waiting reply from engine, and engine are also waiting for reply from ibus-daemon.
+    2. Move some API from IBusComponent to BusComponent, Because of those API is for internal using only
+    3. Add a fake input context in server side to support switching input method when no context has focus.
+    4. Remove fake input context in imcontext, because we added the server side fake context
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/3077042
+
+M      bindings/vala/test/Makefile
+M      bus/Makefile.am
+A      bus/component.c
+A      bus/component.h
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/factoryproxy.c
+M      bus/factoryproxy.h
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/main.c
+M      bus/registry.c
+M      bus/registry.h
+M      client/gtk2/ibusimcontext.c
+M      debian/libibus-1.0-0.symbols
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusenginedesc.h
+M      src/ibusproxy.h
+
+commit 911a104d0597435fb090d6079b60b47863c3ea0b
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-15 17:39:51 +0900
+
+    Add function comments to bus/server.[ch]
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3040041
+
+M      bus/server.c
+M      bus/server.h
+
+commit 2ba1c99304b1b91a1b533a222b160febe650003f
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-15 13:05:27 +0900
+
+    Add function comments to bus/main.c.
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3036041
+
+M      bus/main.c
+
+commit d495f82052dda24cb96181aa42e1a0d2e82b08f9
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-11-15 13:02:23 +0900
+
+    Delete src/ibusserver.[ch] that are no longer used.
+    
+    BUG=none
+    TEST=none
+    
+    Review URL: http://codereview.appspot.com/3018042
+
+D      src/ibusserver.c
+D      src/ibusserver.h
+D      src/tests/ibus-server.c
+
+commit 4bddbd04d850ad7891ad3620f8ce0d7e34070ecd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-12 10:12:22 +0900
+
+    Disable snooper in chromium, chrome, firefox and gnome-do
+    
+    Those applications has problems with snooper enabled. So update the
+    NO_SNOOPER_APPS to disable snooper for those applications by default.
+    
+    BUG=ibus:1140
+    TEST=manual
+
+M      configure.ac
+
+commit 26f62c002fcc9f7c8cc00a735dc78e6d74eb7924
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-04 12:58:13 +0900
+
+    Remove a debug output
+
+M      client/gtk2/ibusimcontext.c
+
+commit 420b7b4a80d37b1fb277d1922d3a669f28bb5a9d
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-11-02 14:12:06 +0900
+
+    Remove GDK_DISPLAY, this macro has been removed in gtk3
+    
+    http://live.gnome.org/GnomeGoals/RemoveDeprecatedSymbols/GTK%2B
+
+M      client/x11/main.c
+
+commit 6670716f7307084972796b00feb0781827f6636c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-04 12:05:39 +0900
+
+    Update python test scripts for gobject-introspection
+
+M      src/python/ibus.py
+M      src/python/test.py
+
+commit 5d8096b8464f98038827f71429c489ae2aae49f7
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-11-04 11:07:36 +0900
+
+    Remove the ability to attach to a status icon with libnotify 0.7.0
+
+M      ui/gtk/main.py
+
+commit 071dab2be51ae1142a75adc7a595a3ee9ef4230a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-04 09:38:23 +0900
+
+    Refine some code and remove some dead code.
+
+M      bus/ibusimpl.c
+M      src/ibusinputcontext.c
+
+commit c464170208fee4abfb577bfaa8585b6f45d5c7ee
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-03 13:37:57 +0900
+
+    Fix some issues within codereview.
+
+M      bus/connection.c
+M      bus/dbusimpl.c
+M      bus/dbusimpl.h
+M      bus/engineproxy.c
+M      bus/factoryproxy.h
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/main.c
+M      bus/matchrule.c
+M      bus/registry.c
+M      bus/server.c
+M      bus/server.h
+M      bus/test-client.c
+M      client/gtk2/ibusimcontext.c
+M      debian/rules
+M      docs/reference/ibus/ibus-sections.txt
+M      gconf/config.c
+M      memconf/config.c
+M      src/ibusbus.c
+M      src/ibusconfigservice.c
+M      src/ibusengine.c
+M      src/ibusfactory.c
+M      src/ibuspanelservice.c
+M      src/ibusservice.c
+
+commit f1c4fcb0e0cd7427999c5c97e47d85a60544a4be
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-02 20:30:02 +0900
+
+    Fix crash when icon of property is Null
+
+M      bus/factoryproxy.c
+M      src/ibusproperty.c
+
+commit a0e4923aa8c3dd3865bac7ba67b9a3979432c7fb
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-11-01 18:16:25 +0900
+
+    Fix UnsetValue name.
+
+M      ibus/config.py
+M      ibus/interface/iconfig.py
+
+commit 2cac54a2a77459ec5f3e0fdbed376249fee0d2a4
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-11-01 16:13:55 +0900
+
+    Fix serialized order.
+
+M      src/ibusenginedesc.c
+
+commit 7fa9f32f3157176a90505749426416d440e39a69
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-01 15:05:29 +0900
+
+    Rename ibus_engine_desc_new2 and ibus_component_new2 to *_new_varargs.
+    
+    wip.
+
+M      debian/libibus-1.0-0.symbols
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+
+commit 0a0668a92a5710435e93587bb5534f25a04ab120
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-11-01 14:03:17 +0900
+
+    Fix a typo.
+
+M      ibus/common.py
+
+commit 8d8ea067c7809bd95ee69401af9960a5ea05c71e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-29 17:28:13 +0900
+
+    Fix a typo in client/gtk3/Makefile.am
+
+M      client/gtk3/Makefile.am
+
+commit 7e07c6d87e3e9b7612d74c1ba4a71bdb3fa4565f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-29 17:08:38 +0900
+
+    Fix some problems in debian packages.
+
+M      debian/control
+A      debian/libibus-1.0-0.install
+A      debian/libibus-1.0-0.symbols
+D      debian/libibus1.install
+D      debian/libibus1.symbols
+M      debian/rules
+
+commit d00fb1d1ce308f4848ede89ca4ff3cd3994923d6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-29 14:25:50 +0900
+
+    Add i18n.py.
+
+A      setup/i18n.py
+A      ui/gtk/i18n.py
+
+commit 841f83c9918c2cd44d3054d1e9742be98fbd5f22
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-29 12:16:52 +0900
+
+    Fix some merge failed.
+
+M      src/tests/ibus-global-engine.c
+
+commit 955c2c2df5516aeba951a91c607d0705dd1c877f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-28 13:00:54 +0900
+
+    Rewrite memconf in c languages.
+
+M      gconf/Makefile.am
+M      gconf/config.c
+M      gconf/config.h
+M      memconf/Makefile.am
+A      memconf/config.c
+D      memconf/config.cc
+M      memconf/config.h
+A      memconf/main.c
+D      memconf/main.cc
+M      src/Makefile.am
+
+commit a9b24316d5deb7a1358885ea37f76cd1dc68ef13
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-27 14:36:30 +0900
+
+    Emit NameOwnerChanged signal with non-zero serial to make libdbus happy.
+
+M      bus/dbusimpl.c
+
+commit e4044fa0a00e7d7fa8f691fbbb727f25edf514aa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-27 14:35:36 +0900
+
+    Add metadata file to fix some object ownership correctly
+
+M      bindings/vala/Makefile.am
+M      bindings/vala/ibus-1.0.vapi
+M      bindings/vala/ibus-1.0/ibus-1.0.metadata
+M      bindings/vala/test/config.vala
+
+commit 21185b24f07b1757960fec383b5db4edbda4695d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-26 13:50:36 +0900
+
+    Add vala test for config module
+
+M      bindings/vala/test/Makefile
+A      bindings/vala/test/config.vala
+M      memconf/main.cc
+
+commit 7a0f88ca2e4d841cd65a67d150b3b892a4bb5a95
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-21 21:03:37 +0900
+
+    Fix vala and gir build issues.
+
+M      bindings/vala/Makefile.am
+M      bindings/vala/test/enchant.vala
+M      src/Makefile.am
+M      src/ibusconfigservice.h
+
+commit 8854d5039f25bf791731c5e3f125a6100a9374ef
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-20 20:48:07 +0900
+
+    Remove ibusdbus.h
+
+M      bindings/vala/ibus-1.0.vapi
+M      bindings/vala/ibus-1.0/ibus-1.0.gi
+M      src/Makefile.am
+D      src/ibusdbus.h
+
+commit 16304d0882068d01f897a64451041aebc389d045
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-20 19:48:01 +0900
+
+    wip.
+
+M      bindings/vala/Makefile.am
+A      bindings/vala/ibus-1.0.deps
+M      bindings/vala/ibus-1.0.vapi
+A      bindings/vala/ibus-1.0/ibus-1.0.defines
+M      bindings/vala/ibus-1.0/ibus-1.0.files
+M      bindings/vala/ibus-1.0/ibus-1.0.gi
+M      bindings/vala/ibus-1.0/ibus-1.0.metadata
+M      bindings/vala/test/enchant.vala
+
+commit f85753ee33d44b805a956d283079ef41189f9d8c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-20 17:15:56 +0900
+
+    wip.
+
+M      bindings/vala/test/Makefile
+A      bindings/vala/test/enchant.vala
+D      bindings/vala/test/test.vala
+
+commit 3b2bf6f4a389fb2a10d9da9a9a55430ebfca882d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-19 21:19:06 +0900
+
+    Fix some runtime errors.
+
+M      bus/dbusimpl.c
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+M      bus/ibusimpl.c
+M      bus/matchrule.c
+M      bus/panelproxy.c
+M      bus/registry.c
+M      bus/server.c
+M      debian/rules
+M      gconf/config.c
+M      gconf/main.c
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      setup/Makefile.am
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      setup/keyboardshortcut.py
+M      setup/main.py
+M      src/ibuscomponent.c
+M      src/ibusconfig.c
+M      src/ibusengine.c
+M      src/ibuspanelservice.c
+M      src/ibuspanelservice.h
+M      src/ibusservice.c
+M      src/ibusxml.c
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/languagebar.py
+M      ui/gtk/main.py
+M      ui/gtk/panel.py
+
+commit 3b3f56d0248d9772c581e42d7efadfd7ac223874
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-19 18:23:19 +0900
+
+    Change version to 1.3.99
+
+M      Makefile.am
+M      bindings/vala/Makefile.am
+A      bindings/vala/ibus-1.0.vapi
+A      bindings/vala/ibus-1.0/ibus-1.0-custom.vala
+A      bindings/vala/ibus-1.0/ibus-1.0.excludes
+A      bindings/vala/ibus-1.0/ibus-1.0.files
+A      bindings/vala/ibus-1.0/ibus-1.0.gi
+A      bindings/vala/ibus-1.0/ibus-1.0.metadata
+A      bindings/vala/ibus-1.0/ibus-1.0.namespace
+D      bindings/vala/ibus-2.0.vapi
+D      bindings/vala/ibus-2.0/ibus-2.0-custom.vala
+D      bindings/vala/ibus-2.0/ibus-2.0.excludes
+D      bindings/vala/ibus-2.0/ibus-2.0.files
+D      bindings/vala/ibus-2.0/ibus-2.0.gi
+D      bindings/vala/ibus-2.0/ibus-2.0.metadata
+D      bindings/vala/ibus-2.0/ibus-2.0.namespace
+M      bindings/vala/test/Makefile
+M      bus/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/x11/Makefile.am
+M      configure.ac
+M      debian/clean
+M      debian/control
+A      debian/libibus1.install
+A      debian/libibus1.symbols
+D      debian/libibus2.install
+D      debian/libibus2.symbols
+M      debian/rules
+M      docs/reference/ibus/Makefile.am
+M      gconf/Makefile.am
+A      ibus-1.0.pc.in
+D      ibus-2.0.pc.in
+M      ibus/_config.py.in
+M      ibus/common.py
+M      memconf/Makefile.am
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/pt_BR.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      src/Makefile.am
+M      src/ibusversion.h.in
+M      src/tests/Makefile.am
+M      ui/gtk/Makefile.am
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/engineabout.py
+M      ui/gtk/languagebar.py
+M      ui/gtk/main.py
+M      ui/gtk/notifications.py
+M      ui/gtk/panel.py
+
+commit eb0c12036b8806c1e0587dba1744cd4998f66d4e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-19 10:26:08 +0900
+
+    Use va_list in IBusEngineDesc and IBusComponent for back compatibility.
+    
+    Provided by fujiwarat <takao.fujiwara1@gmail.com>
+    
+    Conflicts:
+    
+       bus/engineproxy.c
+       bus/factoryproxy.c
+       bus/ibusimpl.c
+       src/ibuscomponent.c
+       src/ibusenginedesc.c
+       src/test-bus.c
+       src/tests/ibus-global-engine.c
+
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+M      bus/ibusimpl.c
+M      bus/registry.c
+M      ibus/component.py
+M      ibus/enginedesc.py
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+M      src/tests/ibus-global-engine.c
+
+commit 164fc1f12467a73c32552292076fd8226873252e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-16 23:47:09 +0800
+
+    Use gdbus in glib, and get rid of libdbus
+
+M      Makefile.am
+M      autogen.sh
+M      bindings/vala/Makefile.am
+D      bindings/vala/ibus-1.0.vapi
+D      bindings/vala/ibus-1.0/ibus-1.0-custom.vala
+D      bindings/vala/ibus-1.0/ibus-1.0.excludes
+D      bindings/vala/ibus-1.0/ibus-1.0.files
+D      bindings/vala/ibus-1.0/ibus-1.0.gi
+D      bindings/vala/ibus-1.0/ibus-1.0.metadata
+D      bindings/vala/ibus-1.0/ibus-1.0.namespace
+A      bindings/vala/ibus-2.0.vapi
+A      bindings/vala/ibus-2.0/ibus-2.0-custom.vala
+A      bindings/vala/ibus-2.0/ibus-2.0.excludes
+A      bindings/vala/ibus-2.0/ibus-2.0.files
+A      bindings/vala/ibus-2.0/ibus-2.0.gi
+A      bindings/vala/ibus-2.0/ibus-2.0.metadata
+A      bindings/vala/ibus-2.0/ibus-2.0.namespace
+M      bindings/vala/test/Makefile
+M      bus/Makefile.am
+M      bus/connection.c
+M      bus/connection.h
+M      bus/dbusimpl.c
+M      bus/dbusimpl.h
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/factoryproxy.c
+M      bus/factoryproxy.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/main.c
+A      bus/marshalers.list
+M      bus/matchrule.c
+M      bus/matchrule.h
+M      bus/option.h
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+M      bus/registry.c
+M      bus/registry.h
+M      bus/server.c
+M      bus/server.h
+M      bus/test-matchrule.c
+A      bus/types.h
+M      client/gtk2/Makefile.am
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+M      client/gtk3/Makefile.am
+M      client/x11/Makefile.am
+M      configure.ac
+M      debian/libibus-dev.install
+M      debian/libibus2.install
+M      debian/libibus2.symbols
+M      debian/rules
+M      docs/reference/ibus/Makefile.am
+M      docs/reference/ibus/ibus-sections.txt
+M      docs/reference/ibus/ibus.types
+M      gconf/Makefile.am
+M      gconf/config.c
+M      gconf/config.h
+M      gconf/main.c
+D      ibus-1.0.pc.in
+A      ibus-2.0.pc.in
+M      ibus.spec.in
+M      ibus/common.py
+A      m4/introspection.m4
+M      memconf/main.cc
+M      po/POTFILES.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/pt_BR.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      src/Makefile.am
+M      src/ibus.h
+M      src/ibusattribute.c
+M      src/ibusattribute.h
+M      src/ibusattrlist.c
+M      src/ibusattrlist.h
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusconfigprivate.h
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+D      src/ibusconnection.c
+D      src/ibusconnection.h
+M      src/ibusdbus.h
+M      src/ibusdebug.h
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+M      src/ibusenumtypes.c.template
+D      src/ibuserror.c
+D      src/ibuserror.h
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+D      src/ibusinternal.c
+M      src/ibusinternal.h
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+M      src/ibuskeysyms.h
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+D      src/ibusmainloop.c
+D      src/ibusmainloop.h
+M      src/ibusmarshalers.list
+D      src/ibusmessage.c
+D      src/ibusmessage.h
+M      src/ibusobject.c
+M      src/ibusobject.h
+M      src/ibusobservedpath.c
+M      src/ibusobservedpath.h
+M      src/ibuspanelservice.c
+M      src/ibuspanelservice.h
+D      src/ibuspendingcall.c
+D      src/ibuspendingcall.h
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+M      src/ibusproplist.c
+M      src/ibusproplist.h
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+M      src/ibusserializable.c
+M      src/ibusserializable.h
+M      src/ibusserver.c
+M      src/ibusservice.c
+M      src/ibusservice.h
+M      src/ibusshare.c
+M      src/ibusshare.h
+M      src/ibustext.c
+M      src/ibustext.h
+M      src/ibustypes.h
+M      src/ibusxml.h
+D      src/test-attribute.c
+D      src/test-bus.c
+D      src/test-engine.c
+D      src/test-global-engine.c
+D      src/test-keymap.c
+D      src/test-keynames.c
+D      src/test-lookuptable.c
+D      src/test-proxy.c
+D      src/test-server.c
+D      src/test-text.c
+A      src/tests/Makefile.am
+A      src/tests/ibus-bus.c
+A      src/tests/ibus-configservice.c
+A      src/tests/ibus-engine.c
+A      src/tests/ibus-factory.c
+A      src/tests/ibus-global-engine.c
+A      src/tests/ibus-keymap.c
+A      src/tests/ibus-keynames.c
+A      src/tests/ibus-proxy.c
+A      src/tests/ibus-serializable.c
+A      src/tests/ibus-server.c
+A      src/tests/ibus-share.c
+
+commit 0f6fd61b6ee06e070a739e5315318e6af2b72ddd
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-11-02 11:21:24 +0900
+
+    Replace s/gdk_drawable_get_size/gdk_window_get_height/ for GTK3.
+
+M      client/gtk2/ibusimcontext.c
+
+commit fd7e899c327ba9e1bf33fa79ce6027e35ac3bccc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-29 18:46:07 +0900
+
+    Use block mode of g_main_context_iteration to avoid consuming too much cpu time.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/2768043
+
+M      bus/ibusimpl.c
+
+commit 9cf6eed3c3fc7a40d0c6f75117fd2c4784b60536
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-26 19:27:56 +0900
+
+    Use the automake 1.10 in autogen.sh
+    
+    BUG=ibus:1039
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/2746041
+
+M      autogen.sh
+
+commit f0ee4f8e8460e234cabafc8cb76df6de05d65761
+Author: Peng Wu <alexepico@gmail.com>
+Date:   2010-10-25 14:52:21 +0800
+
+    sort combo box by locale strcoll
+
+M      setup/enginecombobox.py
+M      setup/main.py
+
+commit 243211310fb771ba55453a1b4e101490597e2397
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-10-26 11:49:48 +0900
+
+    Fix s/python/@PYTHON@/ in libexec scripts.
+    
+    The patch is provided by federico.schwindt@google.com
+
+M      setup/ibus-setup.in
+M      ui/gtk/ibus-ui-gtk.in
+
+commit 537b4dc1b8c20ec5cc5a03ce949b807035a65880
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-10-26 11:45:29 +0900
+
+    Fix ENV value for NetBSD
+
+M      bus/Makefile.am
+M      configure.ac
+M      setup/Makefile.am
+
+commit 5f5017accfb859cac8829ef9d8b19547b5cc1c41
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-22 15:15:39 +0900
+
+    Bump the version to 1.3.8
+
+M      configure.ac
+
+commit 4ed0cee9a76e1123fc116ba4a251c8cfba407990
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-22 15:15:12 +0900
+
+    Comment out test-keymap test case.
+    
+    Comment out test-keymap test case, because it is not automatic test
+    case. it will cause make distcheck failed.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/2667041
+
+M      src/test-keymap.c
+
+commit 2b1fa3dc2a2cb57484de5506f4081f933ba1c0a4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-22 14:56:12 +0900
+
+    Limit typing rate to 800 hits/minutes, and fix make distcheck error.
+    
+    The old version test-stress will send key events to ibus-daemon as fast as possible. It will take all CPU resources, and the daemon, UI and input methods will not get enouch CPU resources to process those events. So all key events will be putted in the buffer. It will causes out of system memory. So I add a limitation of typing rate as 800 hits/minute.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/2662042
+
+M      bus/Makefile.am
+M      bus/test-stress.c
+
+commit 74cf9101c7d1700d6add470df9db59fe3593f3a1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-22 12:27:37 +0900
+
+    Catch exceptions from os.kill.
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/2659042
+
+M      ui/gtk/panel.py
+
+commit acf2a46cdce536945d56ecc2a581fda38470dfe5
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-10-21 18:44:40 +0900
+
+    Fix CPU 100% usage with signal.SIGCHLD
+
+M      client/gtk2/ibusimcontext.c
+M      ui/gtk/panel.py
+
+commit 15db48fc217cb6e91c91e1819f2347dfdac905e0
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-10-21 17:30:42 +0900
+
+    Fix keyval and state in __keycode_button_clicked_cb
+
+M      data/ibus.schemas.in
+M      setup/keyboardshortcut.py
+
+commit 96b64a2eff1fb4c9bec4e712b47b23a7900f44e7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-21 17:27:12 +0900
+
+    Destroy existing connection before creating a new connection, and only create the fake context once.
+    
+    BUG=chromium-os:7998
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/2640041
+
+M      client/gtk2/ibusimcontext.c
+M      src/ibusbus.c
+
+commit 8c131cfee02c9104495f11456eb40dc162458a2f
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-10-21 13:27:06 +0900
+
+    Move the candidate window just above the cursor when the window and a preedit string overlap.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1106
+    TEST=manually done.
+    
+    Review URL: http://codereview.appspot.com/2599041
+
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/panel.py
+
+commit 1c2b65dd3fde6891eff44b7b3bf3371897e3a582
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-10-21 10:35:07 +0900
+
+    Remove compiler warnings.
+    
+    BUG=none
+    TEST=checked by ./autogen.sh && make
+    
+    Review URL: http://codereview.appspot.com/2632041
+
+M      bus/ibusimpl.c
+
+commit 9ae13a3d95c7dc775084c58339e42375622df83e
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-10-20 22:21:00 +0900
+
+    Enable key snooper by default again, except Chrome/Chromium browsers, to fix application compatibility issues like 1068.
+    
+    This change is logically a revert of http://github.com/ibus/ibus/commit/7e715146794d5fa5324885f8d1dcebb8805bc31b
+    
+    The new behavior is:
+    
+    1) If IBUS_DISABLE_SNOOPER environment variable is set, and the value of the variable is "" (an empty string) or "0" or "false" or "False" or "FALSE", key snooper is enabled.
+    2) If IBUS_DISABLE_SNOOPER environment variable is set, and the value of the variable is other than the 5 above, e.g. "1", "true", .., key snooper is disabled.
+    3) If IBUS_DISABLE_SNOOPER environment variable is not set, and ibus-daemon is explicitly configured with --disable-key-snooper, key snooper is disabled.
+    4) If IBUS_DISABLE_SNOOPER environment variable is not set, and ibus-daemon is not configured with --disable-key-snooper, the GTK_IM_MODULE, im-ibus.so, checks IBUS_NO_SNOOPER_APPS environment variable:
+      4-a) if IBUS_NO_SNOOPER_APPS environment variable is not set, and the application name matches ".*chrome", key snooper is disabled.
+      4-b) if IBUS_NO_SNOOPER_APPS environment variable, which should be comma-separated regexps, is set, and one of the regexps matches the application name, key snooper is disabled.
+      4-c) otherwise, key snooper is enabled.
+    
+    Please note that when no configure options nor no environment variables are set, key snooper is enabled on all applications except Chrome/Chromium web browsers. For example, key snooper would be enabled on xchat and gedit by default. I believe the new default behavior would satisfy both Linux desktop and Chromium OS requirements.
+    
+    Test:
+    
+    - With ibus built without --disable-key-snooper:
+    
+    yusukes@harapeko:~$ gedit  # snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER= gedit  # snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER=0 gedit  # snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="0" gedit  # snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="false" gedit  # snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="False" gedit  # snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="FALSE" gedit  # snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="1" gedit  # no-snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="true" gedit  # no-snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="unknownstring" gedit  # no-snoop
+    
+    yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS=gedit gedit  # no-snoop
+    yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS='g.*dit' gedit  # no-snoop
+    yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS='foobar,g.*dit' gedit  # no-snoop
+    yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS=foobar gedit  # snoop
+    
+    yusukes@harapeko:~$ google-chrome  # no-snoop
+    yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS=foobar google-chrome  # snoop
+    
+    - With ibus built with --disable-key-snooper:
+    
+    yusukes@harapeko:~$ gedit  # no-snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="false" gedit  # snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="true" gedit  # no-snoop
+    yusukes@harapeko:~$ IBUS_DISABLE_SNOOPER="unknownstring" gedit  # no-snoop
+    yusukes@harapeko:~$ IBUS_NO_SNOOPER_APPS=foobar gedit   # no-snoop, because IBUS_NO_SNOOPER_APPS is ignored when --disable-key-snooper is specified.
+    
+    BUG=http://code.google.com/p/ibus/issues/detail?id=1068
+    TEST=manually done. see above.
+    
+    Review URL: http://codereview.appspot.com/2568043
+
+M      client/gtk2/ibusimcontext.c
+M      configure.ac
+
+commit 4be55968e7f98d1b042068b47be82395715bf9bc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-20 20:53:36 +0900
+
+    Always consume the hotkey, even if the hotkey associated engine already activated.
+    
+    BUG=6376
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/2596042
+
+M      bus/ibusimpl.c
+
+commit 2100c1f781fec3a2157e57514d413a977042d84c
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-10-19 20:30:09 +0900
+
+    Fix race condition in bus_ibus_impl_create_engine()
+    
+    If the bus_ibus_impl_create_engine() function is called right after an ibus_component_start() call, the function might fail getting a factory object.
+    
+    To avoid the problem, we should use the busy-wait logic even when ibus_component_is_running() returns true.
+    
+    BUG=http://crosbug.com/7244
+    TEST=see the bug (comment #4,7,9)
+    
+    Review URL: http://codereview.appspot.com/2562041
+
+M      bus/ibusimpl.c
+
+commit 65fb5ea4f009d29c688b2be6d87849209beb77fa
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-10-13 14:05:02 +0900
+
+    Fix a build error of IBus-1.0.gir with gobject-introspection 0.9.6
+
+M      bus/dbusimpl.h
+M      bus/main.c
+M      bus/matchrule.c
+M      bus/matchrule.h
+M      bus/server.c
+M      configure.ac
+M      src/Makefile.am
+M      src/ibusdbus.h
+M      src/ibusenumtypes.c.template
+M      src/ibuserror.c
+M      src/ibuserror.h
+M      src/ibusmessage.h
+M      src/ibuspendingcall.h
+
+commit 27d8ca4935b75269ca9480806942819381f5a140
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-13 08:14:58 +0900
+
+    Fix a typo.
+
+M      ibus/property.py
+
+commit 53e303cf41236186b43e4e9c9e90c52582c020c0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-10-08 10:41:41 +0800
+
+    Remove unused dbus-1 package in gir includes
+    
+    BUG=none
+    TEST=manual
+    
+    Review URL: http://codereview.appspot.com/2331041
+
+M      src/Makefile.am
+
+commit bcfa545f0789573e805f721a953c6864f1f62a1b
+Author: Hirotake Kobayashi <hkobayash@google.com>
+Date:   2010-10-02 00:45:49 +0900
+
+    Implement stress tool for ibus.
+    
+    A test-stress.c sends key message each time by client.
+    Client.h and client.c store modifier key and send key event.
+    They check ibus-daemon and engine is alive.
+    
+    Review URL: http://codereview.appspot.com/2204051
+    Patch from Hirotake Kobayashi <hkobayash@google.com>.
+
+M      bus/Makefile.am
+A      bus/test-client.c
+A      bus/test-client.h
+A      bus/test-stress.c
+
+commit 92f838c697ff9470d403537b22e15d55a403c6e0
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-09-30 10:58:31 +0900
+
+    Fix a build error with GTK3 gdkkeysyms.h
+
+M      client/gtk2/ibusimcontext.c
+
+commit cf48af79ba606352d22238f556cb667c62b4258e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-09-21 06:57:10 +0800
+
+    Update gu.po from Sweta Kothari <swkothar@redhat.com>
+
+M      po/gu.po
+
+commit a0694521739f91666f663e5538f06462e49eef3f
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-09-17 22:26:50 +0900
+
+    Fix g_assertion failure in bus_ibus_impl_{load,save}_global_engine_name functions.
+    
+    Add NULL checks to the functions so they don't abort with assertion failure even if the functions are called before the ibus configuration daemon gets ready.
+    See http://code.google.com/p/chromium-os/issues/detail?id=6689#c27 for details.
+
+M      bus/ibusimpl.c
+
+commit 1396c4649255efb8c48abe39bf09ef7ffbbed7af
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-09-10 19:04:25 +0800
+
+    Add some comments about registry
+    
+    BUG=none
+    TEST=built fine
+    
+    Review URL: http://codereview.appspot.com/2159046
+
+M      bus/ibusimpl.c
+M      bus/registry.c
+
+commit 37ed695bfcaa764c6fd80d4f3d29f3df9032f83f
+Author: Satoru Takabayashi <satorux@chromium.org>
+Date:   2010-09-09 13:24:42 +0900
+
+    Add Emacs modeline for .c and .h files.
+    
+    /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+    
+    TEST=confirmed that the modelines for vim and emacs both worked.
+    BUG=none
+    
+    Review URL: http://codereview.appspot.com/2168042
+
+M      bus/connection.c
+M      bus/connection.h
+M      bus/dbusimpl.c
+M      bus/dbusimpl.h
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/factoryproxy.c
+M      bus/factoryproxy.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/main.c
+M      bus/matchrule.c
+M      bus/matchrule.h
+M      bus/option.h
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+M      bus/registry.c
+M      bus/registry.h
+M      bus/server.c
+M      bus/server.h
+M      bus/test-matchrule.c
+M      bus/test-registry.c
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+M      client/x11/gdk-private.c
+M      client/x11/gdk-private.h
+M      client/x11/locales.h
+M      client/x11/main.c
+M      gconf/config.c
+M      gconf/config.h
+M      gconf/main.c
+M      memconf/config.h
+M      src/ibus.h
+M      src/ibusattribute.c
+M      src/ibusattribute.h
+M      src/ibusattrlist.c
+M      src/ibusattrlist.h
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusconfigprivate.h
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusdbus.h
+M      src/ibusdebug.h
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+M      src/ibuserror.c
+M      src/ibuserror.h
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibusinternal.c
+M      src/ibusinternal.h
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+M      src/ibuskeynames.c
+M      src/ibuskeysyms.h
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+M      src/ibusmainloop.c
+M      src/ibusmainloop.h
+M      src/ibusmessage.c
+M      src/ibusmessage.h
+M      src/ibusobject.c
+M      src/ibusobject.h
+M      src/ibusobservedpath.c
+M      src/ibusobservedpath.h
+M      src/ibuspanelservice.c
+M      src/ibuspanelservice.h
+M      src/ibuspendingcall.c
+M      src/ibuspendingcall.h
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+M      src/ibusproplist.c
+M      src/ibusproplist.h
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+M      src/ibusserializable.c
+M      src/ibusserializable.h
+M      src/ibusserver.c
+M      src/ibusserver.h
+M      src/ibusservice.c
+M      src/ibusservice.h
+M      src/ibusshare.c
+M      src/ibusshare.h
+M      src/ibustext.c
+M      src/ibustext.h
+M      src/ibustypes.h
+M      src/ibusxml.c
+M      src/ibusxml.h
+M      src/test-attribute.c
+M      src/test-bus.c
+M      src/test-engine.c
+M      src/test-global-engine.c
+M      src/test-keymap.c
+M      src/test-keynames.c
+M      src/test-lookuptable.c
+M      src/test-proxy.c
+M      src/test-server.c
+M      src/test-text.c
+
+commit a751fd3ee3d0273a70d09a616d62b1dbbf3e4cbb
+Author: Satoru Takabayashi <satorux@chromium.org>
+Date:   2010-09-09 11:05:55 +0900
+
+    Move the log handler code from bus/main.cc to src/ibusshare.cc.
+    
+    The log handler is useful for IBus client programs. For instance,
+    the log handler was used inside the chromium browser for debugging
+    IBus startup issue:
+    
+    http://code.google.com/p/chromium-os/issues/detail?id=6375#c29
+    
+    (chrome:11824): IBUS-DEBUG: 00:00:46.929430: The socket file is now created (monitoring done).
+    
+    BUG=none
+    TEST=manually ran ibus-daemon with and without -v
+    
+    Review URL: http://codereview.appspot.com/2122047
+
+M      bus/main.c
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 7c5f46e3e8580d080aac0a25d8e97a0fc7fc70a7
+Author: Satoru Takabayashi <satorux@chromium.org>
+Date:   2010-09-08 15:58:31 +0900
+
+    Add codereview.settings.
+    
+    This is for us to use codereview.appspot.com for code reviews.
+    
+    Instructions to use codereview.appspot.com:
+    
+    1. Get depot_tools and add PATH to the directory
+    http://dev.chromium.org/developers/how-tos/depottools
+    
+    2. In your local IBus git repository,
+    
+    % git checkout master
+    % git checkout -b somefix
+    make changes
+    % git cl upload
+    do code reviews at codereview.appspot.com
+    once it's done, run "git cl push" if you can commit.
+    otherwise, ask committers to commit on behalf.
+    
+    Review URL: http://codereview.appspot.com/2166043
+
+A      codereview.settings
+
+commit f0f50b5b003adfc062fef5781a9646e9eea67d78
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-09-07 08:35:03 +0800
+
+    Add time info in log message from satorux@chromium.org
+
+M      bus/main.c
+
+commit 888189eba783ac014e7c367004a70dad6f7b8ac0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-09-06 17:17:24 +0800
+
+    Fix memory leak in ibus_input_context_process_key_event by Fujiwarat
+
+M      src/ibusinputcontext.c
+
+commit 85565b7a146e5ccbd484273b647b6195b6c08b03
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-09-02 12:58:42 +0900
+
+    Fix segv in bus_engine_proxy_process_key_event_reply_cb
+
+M      bus/engineproxy.c
+
+commit 0b8d9594d5fb3afa6e988e321d5d124e5da1eee2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-09-06 16:16:51 +0800
+
+    Set CFLAGS to "-Wall -Werror" in autogen.sh
+
+M      autogen.sh
+
+commit c8794994fde7f52dc29a7b9ebea926e66cf093da
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-08-12 15:22:00 +0800
+
+    Fix property issue.
+
+M      bus/inputcontext.c
+
+commit 9bb5c58da874dcd3293476726201a54498fc92e1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-08-06 14:02:25 +0800
+
+    Update fr.po
+
+M      po/fr.po
+
+commit 733a0b12388aa4cc4092a4f9b4f2cce9e0fd7383
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-08-05 17:13:56 +0800
+
+    Fix a build warning
+
+M      bus/ibusimpl.c
+
+commit 19d03011e00db27753aa874c1404a858605b4a87
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-08-03 16:59:32 +0800
+
+    Release 1.3.7
+
+M      configure.ac
+
+commit b0a71e50d6e343c8a8ad3385a49087ba695ebc78
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-08-03 14:43:42 +0800
+
+    Update ko.po
+
+M      po/ko.po
+
+commit 14aa3cc0d4fd12a9aa0ee4db3dfc085b77672811
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-08-03 10:04:19 +0800
+
+    Update po files.
+
+M      po/bn_IN.po
+M      po/ml.po
+
+commit 8706da8a65274da26ac3b593501ff3d44e81087a
+Author: James Su <suzhe@chromium.org>
+Date:   2010-06-28 19:39:31 -0700
+
+    Make sure that we won't wrongly match a hotkey after losing and getting focus.
+    
+    BUG=http://crosbug.com/3892
+    TEST=manually
+    
+    Review URL: http://codereview.chromium.org/2884006
+
+M      bus/inputcontext.c
+
+commit b2fcd7eeb13676b0cbffeca37bfcfb142bcac3f6
+Author: satorux <satorux@chromium.org>
+Date:   2010-05-26 18:03:29 +0900
+
+    When the previous engine name is unknown, switch to the next engine in menu.
+    
+    Before the change, hitting the "previous-engine" key does nothing if the
+    previous engine name is unknown. The behavior is not good for users as
+    they think the hot key is not working.
+    
+    TEST=manually on the netbook
+    BUG=3579
+    
+    Review URL: http://codereview.chromium.org/2255002
+
+M      bus/ibusimpl.c
+
+commit e2793f52bf3da7a22321f053f3ba8154026fd6fa
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-11 13:41:59 -0700
+
+    Support engine specific hotkey.
+    
+    BUG=http://crosbug.com/2543
+    TEST=none
+    
+    With this CL, each engine can specify one or more special activation hotkeys. This CL doesn't support customizing global hotkeys per engine.
+    I'd still prefer to customize the global hotkeys based on current locale rather than input method engine.
+    
+    Add hotkeys property to IBusEngineDesc, so that each engine can specify their own special hotkeys. This is useful for input methods that have dedicated hotkeys, such as Japanese input methods, which has a dedicated hotkey key: Kana.
+    
+    Review URL: http://codereview.chromium.org/1702015
+
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      ibus/component.py
+M      ibus/enginedesc.py
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+
+commit 1350806a4d1a23036ea7e4dac9e0169b77127cb1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-30 23:32:20 +0800
+
+    Update po files.
+
+M      po/hi.po
+M      po/ja.po
+
+commit beedeb4e19409555b4bc2cff98fb0be1976a04f6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-30 07:12:15 +0800
+
+    Fake IC does not grab focus, if other real IC has focus.
+
+M      bus/inputcontext.c
+
+commit 353d36626f81389d0e70fea3ed58a65d367e6115
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-27 15:57:05 +0800
+
+    Keep input window for fake IC
+
+M      client/gtk2/ibusimcontext.c
+
+commit 519e649849d7ce1f1550f5a653238080f3b0f67e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-23 16:11:22 +0800
+
+    Support switching keyboard by hotkey without input focus Add fake input context in im module. The fake input context will hold the focus if no other input context has focus. This change for fixing input method switch issue if no focus input context.
+    
+    BUG=http://crosbug.com/4381
+    
+    Review URL: http://codereview.chromium.org/3052003
+
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      client/gtk2/ibusimcontext.c
+
+commit 3609568f318b0d6ae831d0d4eb2a24398f81531f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-23 11:41:44 +0800
+
+    Add memcomf/main.cc
+
+A      memconf/main.cc
+
+commit d400b92229e7c03d7a893bc8ed33382c933e32d3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-23 15:25:45 +0800
+
+    Fix a problem in build script of memconf
+
+M      Makefile.am
+M      memconf/config.cc
+
+commit 810037e12a5b00712e5d01c576deca4a36c18527
+Author: Yusuke Sato <yusukes@chromium.org>
+Date:   2010-03-30 13:45:19 +0900
+
+    Reimplement ibus-gconf so it does not depend on GConf-2 database.
+    
+    (Please review the README.chromium first.)
+    
+    BUG=crosbug.com/1638
+    TEST=run autotest/files/config/site_tests/desktopui_IBusTest
+    
+    Review URL: http://codereview.chromium.org/1539001
+
+M      Makefile.am
+M      configure.ac
+A      memconf/Makefile.am
+A      memconf/config.cc
+A      memconf/config.h
+A      memconf/memconf.xml.in.in
+
+commit 6372ea214bc0c3d60f7059727b4848b809257f7e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-30 17:46:51 +0800
+
+    Update po files.
+
+M      po/te.po
+
+commit 565a01828be2837c8de1d2b16c8a7232355bb734
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-30 17:34:41 +0800
+
+    Update po files
+
+M      po/or.po
+M      po/ta.po
+
+commit bd86020a1e5f545db666c24fda837fff7361f704
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-30 11:55:03 +0800
+
+    Update po files.
+
+M      po/ja.po
+M      po/mr.po
+M      po/pt_BR.po
+M      po/ru.po
+M      po/zh_CN.po
+
+commit 81562759e8ad57e6d2ac71188369d0e991514428
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-30 07:15:30 +0800
+
+    Update po files.
+
+M      po/de.po
+M      po/it.po
+
+commit 8c764551ff81b084d0595922f840544a374c5ca2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-29 21:25:52 +0800
+
+    Update po files.
+
+M      po/gu.po
+M      po/kn.po
+
+commit 652cd0ca10ce9a203ab578e24847aa52f4b6c4b8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-27 11:23:30 +0800
+
+    Add pt_BR.po from Glaucia Freitas <gcintra@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/pt_BR.po
+
+commit d9923c07be7248f1fc7d8458c9025df8cf8e282d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-15 15:04:25 +0800
+
+    Fix a memory leak in IBusConfigService.
+
+M      src/ibusconfigservice.c
+
+commit eca8735df7909cffba4184eef8bafdb0d3a37142
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-13 13:57:40 +0800
+
+    Add a new ibus-daemon option to set cache mode.
+    
+    --cache=[auto/refresh/none]
+    auto:
+          Loads registry from cache. If the cache does not exist or the cache is
+          outdated, ibus-daemon will recreate the cache.
+    refresh:
+          Does not load the cache, force load components information from
+          /usr/share/ibus/components/*.xml and write registry to cache file.
+    none:
+          Always loads components from /usr/share/ibus/components/*.xml, does not read
+          or write cache.
+
+M      bus/main.c
+M      bus/option.h
+M      bus/registry.c
+
+commit 4a7dff9b49d7305312c0167027b281d3d533765f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-08 18:01:38 +0800
+
+    Use dbus.Interface.
+
+M      ibus/bus.py
+M      ibus/config.py
+M      ibus/inputcontext.py
+
+commit 674bc53c30c8ac40e021da660f2af533ab015587
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2010-06-30 12:05:32 +0900
+
+    Fix "Show language panel: Embedded in menu" behavior.
+    
+    Signed-off-by: Daiki Ueno <ueno@unixuser.org>
+
+M      ui/gtk/languagebar.py
+M      ui/gtk/menu.py
+
+commit f7ad6dfbff87a138d4857d7cfc9520b8541456e2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-05 13:44:22 +0800
+
+    Release 1.3.6
+
+M      configure.ac
+
+commit 22c3c5f1077130f5da2cb17e774755ba90fdf4d1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-05 13:42:38 +0800
+
+    Set interface for config and inputcontext proxy
+
+M      src/ibusconfig.c
+M      src/ibusinputcontext.c
+
+commit 6c5945fb67f098be70e1a28eb5accc2b580b2427
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-05 13:42:27 +0800
+
+    Update gtk-doc
+
+M      docs/reference/ibus/ibus-sections.txt
+
+commit 179e1642186dcddf877871f66521978c3a08005c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-05 13:42:10 +0800
+
+    Update libibus2.symbols
+
+M      debian/libibus2.symbols
+
+commit c9ab368469d2fbf54f723c74295d2a6abefa3f35
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-05 13:10:00 +0800
+
+    Remove some patches.
+
+M      debian/patches/00list
+D      debian/patches/01_ubuntu_desktop.dpatch
+
+commit 887aa04857544e98b1f7a0b380349483e6a60733
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-07-01 11:52:30 +0800
+
+    Update es.po from daniel cabrera <logan@fedoraproject.org>
+
+M      po/es.po
+
+commit e54703b537d3b94b3c2a7c5e77b6837da87ef303
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-28 13:16:02 +0800
+
+    Update zh_TW.po from Tseng, Cheng-Chia <pswo10680@gmail.com>
+
+M      po/zh_TW.po
+
+commit 817399605bdeeb83fa4729018b2b17ad7870576d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-24 11:11:51 +0800
+
+    Fix next_engine & prev_engine settings problems.
+
+M      bus/ibusimpl.c
+M      setup/main.py
+
+commit 2e19fbadd285ae2d81d3ba5612da4d7357bb5139
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-23 13:35:00 +0800
+
+    Update po files
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 8b6cc2e285655471cc340e15bc3871a3043d59a6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-23 13:32:04 +0800
+
+    Update desktop files.
+
+M      bus/ibus.desktop.in
+M      setup/ibus-setup.desktop.in
+
+commit 06114fef552bc5ec3f94704580d59e926d04a43d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-23 10:35:32 +0800
+
+    fill right value of GdkEventKey::is_modifier
+
+M      client/gtk2/ibusimcontext.c
+
+commit a25970bc951768c44271b7e6c2b54ef22c49d76c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-20 08:02:58 +0800
+
+    workaround for applications do not set client window and refine code.
+
+M      client/gtk2/ibusimcontext.c
+
+commit f16baaffebe6af29f23ef537c071150acf2397bc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-18 09:14:18 +0800
+
+    Check gtk2 too if configure with --enable-xim
+
+M      configure.ac
+
+commit 9bc7166f81cf77b369f9610166839c0ae1aa953b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-17 20:19:23 +0800
+
+    Use IBUS_TYPE_OBJECT_PATH for return value of CurrentInputContext
+
+M      bus/ibusimpl.c
+M      ibus/interface/iibus.py
+M      src/ibusbus.c
+
+commit cad8e70c3928eec31837215696dfa40ec3475734
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-15 17:02:31 +0800
+
+    Preload all values.
+
+M      gconf/config.c
+
+commit 92949de6497247add592a4a790bddda439791fc3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-15 16:21:29 +0800
+
+    Fix conflict between --restart and --replace
+
+M      bus/main.c
+
+commit a842158b3dc01855cb1ad194dd8b75f744f7d037
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-15 16:18:10 +0800
+
+    Set release = 0
+
+M      configure.ac
+
+commit c7608cb5dfa683328d8f0ce9c2e16283464e36b0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-15 00:23:44 +0800
+
+    Update es.po from daniel cabrera <logan@fedoraproject.org>
+
+M      po/es.po
+
+commit 9d99fa7db69e81e05164d55bf20fbf265ea1c03c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-14 22:47:21 +0800
+
+    Add --restart option by satorux@chromium.org
+
+M      bus/main.c
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+
+commit 2dfd255535c8367d210409b3a16ddbba1dbb166a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-12 09:00:00 +0800
+
+    read env IBUS_SNOOPER_APPS
+
+M      client/gtk2/ibusimcontext.c
+
+commit 7e715146794d5fa5324885f8d1dcebb8805bc31b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-12 08:53:43 +0800
+
+    Disable snooper by default.
+
+M      client/gtk2/ibusimcontext.c
+M      configure.ac
+
+commit 79438c1322520b3a468bba296512972c16d60f7b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-12 08:10:25 +0800
+
+    prepare to release 1.3.5
+
+M      configure.ac
+
+commit 3234f71aa8c00fcbb3eaa43b06032784ed480ac6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-12 08:06:22 +0800
+
+    Update ibus.spec.in
+
+M      ibus.spec.in
+
+commit 49a848a70cc1e0393438fe7cfb3b118d1de24476
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-12 07:50:22 +0800
+
+    Use regex for no snooper applications, and disable snooper in chrome
+
+M      client/gtk2/ibusimcontext.c
+M      configure.ac
+
+commit e3b576d1bd8255eaef153e69996665a7eef75b55
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-10 14:43:44 +0800
+
+    Update document of ibus_bus_new
+
+M      src/ibusbus.h
+
+commit 07e9d903c1856d8379da29c7966c040b8aaf34a0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-10 07:09:02 +0800
+
+    Check connection state before call ibus_connection_call
+
+M      src/ibusproxy.c
+
+commit a30e416bfac3915858626a122c0b1688f0ea5df8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-09 07:16:33 +0800
+
+    Emit FORWARD_KEY_EVENT signal correctly
+
+M      client/x11/main.c
+M      src/ibusinputcontext.c
+
+commit 46a8b5a1bc9f2024beab573ef141bd2bc9a6565c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-09 00:09:51 +0800
+
+    Update debian build scripts
+
+M      debian/ibus.install
+
+commit d34559042ddd44a64dc415426ea9ef581cf50469
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-08 22:16:53 +0800
+
+    Refine coding style
+
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+
+commit 7606b92e05e3216d09bc4b96c2efcbc5560134cb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-08 21:43:55 +0800
+
+    Fix problem of create GdkEventKey from keyval keycode and state
+
+M      client/gtk2/ibusimcontext.c
+
+commit d8a4d1d348184d6e7c96fcb46ab431d9a020c61f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-08 21:16:15 +0800
+
+    Ignore handled key event in xim server
+
+M      client/x11/main.c
+
+commit ca20ca904fb0264f9b8ac7da97ca4e782ed31ab1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-08 20:55:27 +0800
+
+    Fix keycode in xim server
+
+M      client/x11/main.c
+
+commit 92f8191f2b0f4186131ce13c6b42ff2ec68a9412
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-08 16:17:15 +0800
+
+    Unify compare expression in configure.ac
+
+M      configure.ac
+
+commit b921d7b7f7299356ae0984ad6d526a2cb0339f6d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-08 10:58:53 +0800
+
+    Refine log message of configure.
+
+M      configure.ac
+
+commit 5f4506ee2f61f66cce877ac44316c11b8a4d6326
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-07 15:10:06 +0800
+
+    Only test global-engine, when global-engine is enabled.
+
+M      src/test-global-engine.c
+
+commit d1238aedeb8c2f5a55bc118691862ff8a7044fa3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-07 15:08:55 +0800
+
+    Update debian build scripts
+
+M      configure.ac
+M      debian/control
+M      debian/libibus-dev.install
+M      debian/libibus2.install
+
+commit bc341df136da59524e97693078019ba7100f779d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-07 08:49:56 +0800
+
+    Update vala demo engine
+
+M      bindings/vala/test/Makefile
+M      bindings/vala/test/test.vala
+
+commit 35e3104bc4f67fe327e6e9e6c3454163eb6821e7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-07 07:53:57 +0800
+
+    Add Makefile
+
+A      bindings/vala/test/Makefile
+
+commit c4728ba8399d25812d53ff7ca176253758cfcc4f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 20:25:11 +0800
+
+    Refine demo engine
+
+M      bindings/vala/test/test.vala
+
+commit 48c4e43560e0a7990922ca4d610bff49095bd109
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 19:37:38 +0800
+
+    Regenerate vapi from header files.
+
+M      bindings/vala/ibus-1.0.vapi
+M      bindings/vala/ibus-1.0/ibus-1.0.files
+M      bindings/vala/ibus-1.0/ibus-1.0.gi
+
+commit d3f227722f621feced89c453fdb701188469f1fc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 19:37:28 +0800
+
+    Add a demo vala engine
+
+A      bindings/vala/test/test.vala
+
+commit 4b976f8b048dfb10fb86368d59c09bb84f60190d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 18:29:00 +0800
+
+    Fix ibus_service_get_connections in vala binding
+
+M      bindings/vala/ibus-1.0.vapi
+M      bindings/vala/ibus-1.0/ibus-1.0.metadata
+
+commit a8a6709da393b4d61203f0811be35cc8455d48a5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 16:31:25 +0800
+
+    Fix coding style
+
+M      src/ibusinputcontext.h
+
+commit 0ef49cb255babb6845db6120fd41332d8c02b95a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 16:26:38 +0800
+
+    Update vala files
+
+M      bindings/vala/ibus-1.0.vapi
+M      bindings/vala/ibus-1.0/ibus-1.0.metadata
+
+commit 2743296f5a52f723334a8c09b0812944526563ee
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 16:02:38 +0800
+
+    Add some annotation for g-ir-scanner
+
+M      src/ibusattrlist.h
+M      src/ibusbus.h
+M      src/ibuscomponent.h
+M      src/ibuslookuptable.h
+M      src/ibusproplist.h
+M      src/ibusproxy.h
+M      src/ibusservice.h
+
+commit e84375407a6675890113cffec81837b8c289dc60
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 14:42:29 +0800
+
+    Fix problem in ibus_bus_get_name_owner
+
+M      src/ibusbus.c
+
+commit 42b5828d2aa0057b6a6979e8f93148a25d00be51
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 13:44:07 +0800
+
+    Add --disable-vala in configure
+
+M      Makefile.am
+M      bindings/Makefile.am
+M      configure.ac
+D      ibus.sh
+
+commit 230c5b4439d765acc3a4e1064ff66e6800af8b81
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 13:35:51 +0800
+
+    Add ibus-1.0-custom.vala
+
+M      bindings/vala/Makefile.am
+M      bindings/vala/ibus-1.0/ibus-1.0-custom.vala
+
+commit c4c565dc706a0c262beba447095950485a4d6a55
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 13:24:27 +0800
+
+    Add vala in rpm spec file
+
+M      Makefile.am
+M      ibus.spec.in
+
+commit 85231d5f85f298bfbb2805f6f1f851e82fb75a66
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 12:30:06 +0800
+
+    Add vala support
+
+M      bindings/Makefile.am
+A      bindings/vala/Makefile.am
+A      bindings/vala/ibus-1.0.vapi
+A      bindings/vala/ibus-1.0/ibus-1.0-custom.vala
+A      bindings/vala/ibus-1.0/ibus-1.0.excludes
+A      bindings/vala/ibus-1.0/ibus-1.0.files
+A      bindings/vala/ibus-1.0/ibus-1.0.gi
+A      bindings/vala/ibus-1.0/ibus-1.0.metadata
+A      bindings/vala/ibus-1.0/ibus-1.0.namespace
+M      configure.ac
+
+commit 1b06b1f9b1ae304d82a5658a6e2dfb92b51da481
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-06 11:14:42 +0800
+
+    Remove python in bindings
+
+M      bindings/Makefile.am
+D      bindings/python/Makefile.am
+D      bindings/python/common.h
+D      bindings/python/gendefs.sh
+D      bindings/python/ibus-types.defs
+D      bindings/python/ibus-virtual-methods.defs
+D      bindings/python/ibus.defs
+D      bindings/python/ibus.override
+D      bindings/python/ibusmodule.c
+
+commit ea2e5113453f6cef5d93ff3b7e533d62fbc3c115
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-05 21:44:54 +0800
+
+    Update rpm spec file.
+
+M      ibus.spec.in
+
+commit cbe5540dd8c8a1b25522c1592d076ed3ffe0bfa4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-05 21:28:04 +0800
+
+    Support gtk3
+
+M      Makefile.am
+M      client/Makefile.am
+M      client/gtk2/Makefile.am
+A      client/gtk3/Makefile.am
+A      client/gtk3/ibusim.c
+A      client/gtk3/ibusimcontext.c
+A      client/gtk3/ibusimcontext.h
+M      configure.ac
+M      debian/control
+M      ibus.spec.in
+M      util/Makefile.am
+
+commit e9bf772df8cdb3c06520dcc0e0dccee067e3a776
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-05 20:44:32 +0800
+
+    Repace some deprecated macros to fix build errors with gtk3
+
+M      client/gtk2/ibusimcontext.h
+
+commit 190074f40707c0a2aa8ba7156217121a3d5023bd
+Merge: 2d6eeb6 683f8d0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-05 09:41:30 +0800
+
+    Merge branch 'async_process_key_event'
+
+commit 2d6eeb67267c65a9bc7c537d80a6970121af714a
+Merge: 3f64078 9dabf25
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-05 09:41:10 +0800
+
+    Merge branch 'singleton_bus'
+
+commit 683f8d03ecbf6de5a031fdec3bc89999db857faa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-04 19:40:59 +0800
+
+    Set keycode in GdkEvent correctly.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 3f6407877244f390fc3f4c3da4c2d279983795c4
+Author: Julien Humbert <julroy67@gmail.com>
+Date:   2010-06-04 12:07:42 +0200
+
+    Minor changes to the previous commited translation
+
+M      po/fr.po
+
+commit 637fc2473c80f44cf6bbb760e90fae2370c4c660
+Author: Julien Humbert <julroy67@gmail.com>
+Date:   2010-06-04 12:01:15 +0200
+
+    Update French tranlation
+
+M      po/fr.po
+
+commit 72b07456b95198201fae43c222a8aaecad453ab9
+Merge: 42b31b8 978325d
+Author: Julien Humbert <julroy67@gmail.com>
+Date:   2010-06-04 11:26:07 +0200
+
+    Merge branch 'master' of git://github.com/phuang/ibus
+
+commit 554e35e6dcbee874fbcaebd81b7558ca4ff48d5d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-04 15:04:12 +0800
+
+    Make ibus_input_context_process_key_event in async mode
+
+M      src/ibusinputcontext.c
+
+commit 978325de556641717f4d75d3f58053d9747a977d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-03 23:16:46 +0800
+
+    Remove unused define in ibusxml.c
+
+M      src/ibusxml.c
+
+commit 9dabf25c5a9265523b96d517a4d39753f679898c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-03 18:12:26 +0800
+
+    Share one IBusBus instance in whole process.
+
+M      src/ibusbus.c
+
+commit 0ac0c0a91d5a50f8286b9aff662a46e51cc8ae6e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-03 18:13:14 +0800
+
+    Use g_assert to check if connection is alive
+
+M      src/ibusconnection.c
+
+commit 9d9b4e240a34b31daea7a73f4b3ec5d75920f68c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-03 23:12:13 +0800
+
+    Fix function name typo
+
+M      src/ibusxml.c
+
+commit 54fa37f9b1497a380ce10c140c1c992b3e6c8786
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-03 21:18:50 +0800
+
+    Add all classes in ibus.py
+
+M      src/python/ibus.py
+
+commit adda25656efac6357ff1f1f3d697fec5cf26b21b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-03 17:52:32 +0800
+
+    Fix document of IBusConfig
+
+M      src/ibusconfig.c
+
+commit efad0c3e731da7a3ca46a68d04ffb60614752fa5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-03 08:43:08 +0800
+
+    Add a small test code for gir
+
+A      src/python/ibus.py
+A      src/python/test.py
+
+commit 5d7869453a1c2305291bedcb2edf5e567bbcb5b8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-02 21:19:48 +0800
+
+    Add --version -V option for ibus-daemon
+
+M      bus/main.c
+
+commit ad3e270a3e1f3d56b824fad4ab4b4f40a8979649
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-02 14:17:57 +0800
+
+    Fix build warnings
+
+M      src/ibusproxy.h
+
+commit dab9563a6fb8a70b916fe565c97f73990eea86c4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-02 14:14:00 +0800
+
+    Remove _DummyStruct
+
+M      src/ibusdbus.h
+
+commit 28b8525b00107c04a52254e26082a43d713a5920
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-02 10:37:59 +0800
+
+    Update zh_TW.po from Tseng, Cheng-Chia
+
+M      po/zh_TW.po
+
+commit ef3bc4281040a29be58b58e697362a8c05d575be
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 21:40:47 +0800
+
+    Fix coding style.
+
+M      src/ibusenginedesc.h
+
+commit 2f7901c539ce97b718b002f39c8398179225026b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 21:36:08 +0800
+
+    Remove dbus in pc file, and fix spec file.
+
+M      configure.ac
+M      ibus-1.0.pc.in
+M      ibus.spec.in
+
+commit 45834ea4cb7f2900c847e97ff86391bc4a50780f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 20:40:25 +0800
+
+    Require gobject-introspection 0.6.9
+
+M      configure.ac
+
+commit 741867f30c3e4586f17816176c696f2024872cc2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 19:47:19 +0800
+
+    Fix build errors
+
+M      bus/dbusimpl.c
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/matchrule.c
+M      bus/panelproxy.c
+M      bus/test-matchrule.c
+M      gconf/config.c
+
+commit 23825e6f50f41f9e0eeb40f067153bdebe57b7fa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 19:17:46 +0800
+
+    Add annotation for some return types
+
+M      src/ibusbus.h
+M      src/ibuscomponent.h
+M      src/ibusobservedpath.h
+M      src/ibusservice.h
+
+commit d91324c034e83e17715cfa5aa9f8434aacd05a23
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 18:37:09 +0800
+
+    Add gobject-introspection support
+
+M      configure.ac
+M      src/Makefile.am
+M      src/ibusattrlist.c
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibuscomponent.c
+M      src/ibusconfig.c
+M      src/ibusconfigservice.c
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+A      src/ibusdbus.h
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibuserror.c
+M      src/ibuserror.h
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+M      src/ibushotkey.c
+M      src/ibusinputcontext.c
+M      src/ibusinternal.c
+M      src/ibusinternal.h
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+M      src/ibuslookuptable.c
+M      src/ibusmainloop.h
+M      src/ibusmessage.c
+M      src/ibusmessage.h
+M      src/ibuspanelservice.c
+M      src/ibuspendingcall.c
+M      src/ibuspendingcall.h
+M      src/ibusproplist.c
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+M      src/ibusserializable.c
+M      src/ibusserver.c
+M      src/ibusserver.h
+M      src/ibusservice.c
+M      src/ibusservice.h
+M      src/test-lookuptable.c
+
+commit b899ae494cc354c2748762b9de31abfebc41e873
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 16:39:39 +0800
+
+    refine coding style
+
+M      src/ibusproxy.h
+
+commit 7842b20b3e268227826dd4249f6c1e73a5d71248
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 20:50:19 +0800
+
+    Fix problem in ibus_engine_update_lookup_table_fast.
+
+M      src/ibusengine.c
+
+commit 42b31b806fc86f04a4810c5819ad2ec7ca75e1da
+Author: Julien Humbert <julroy67@gmail.com>
+Date:   2010-06-01 12:38:23 +0200
+
+    Updated French translation
+
+M      po/fr.po
+
+commit a7b42886ca6a8dba90fd9387bca585f8e5388aaf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 14:28:18 +0800
+
+    Update po files.
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 6cd06247077cdec320f32e1891cbfe6c4156079a
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-26 20:34:16 -0700
+
+    Add a test for global engine related functions in ibusbus.c.
+
+M      src/Makefile.am
+A      src/test-global-engine.c
+
+commit 389f6704d3950174fec78c1f22304edd9de11fc6
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-26 20:06:53 -0700
+
+    Add "global-engine-changed" signal.
+
+M      src/ibusbus.c
+
+commit b606f91b1f455ce7bae8d4e4904dd9ce922a9fa1
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-26 19:17:03 -0700
+
+    Fix global engine related functions.
+
+M      src/ibusbus.c
+
+commit c5705b4c037d7fc14bd38ded069a8437f1256250
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-21 14:56:36 -0700
+
+    Implement the ability to manipulate the global engine. lib parth.
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/test-bus.c
+
+commit 9aacf3588d39400ab75a481ff9ada5bb868fc460
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-21 14:53:36 -0700
+
+    Implement the ability to manipulate the global engine, daemon part.
+
+M      bus/ibusimpl.c
+
+commit d2e8791f78227058e211c6b7db338ec521cb6c22
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-03 21:34:57 -0700
+
+    Part 1 of XKB support.
+    
+    This change includes:
+    1. Adds hotkey for switching to previous engine (renaming the old unused "prev_engine" to previous_engine).
+    2. Renames next_engine hotkey to next_engine_in_menu.
+    3. Saves/loads current and previous global engine names to/from config.
+    4. Adds enable_by_default config to enable the input method by default.
+    5. Moves hotkey filter function from inputcontext.c into ibusimpl.c.
+
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      data/ibus.schemas.in
+
+commit 99f9e06bb995b406ad3d4498971bec2c58878f16
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-06-01 11:37:18 +0800
+
+    Fix some exceptions in setup ui
+
+M      setup/keyboardshortcut.py
+
+commit 6c32af7c6f151aad64f339abdecfce10498ea701
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-31 16:42:36 +0800
+
+    Fix problem in ibus_lookup_table_set_label
+
+M      src/ibuslookuptable.c
+
+commit 5da6aa482b5429da2162921a3893b14bcebf7b22
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-29 07:34:06 +0800
+
+    Update po files.
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 61f0c9611c37a189681f2e1b3a8f896e83a52009
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-29 06:44:16 +0800
+
+    Release 1.3.4
+
+M      configure.ac
+
+commit 7af503aaba624c26aff791943490f2aee410cd99
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-28 16:38:01 +0800
+
+    Add include <string.h>
+
+M      bus/ibusimpl.c
+
+commit 9372a7c64bea26f19ae6bcda9395aa86da60071b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-28 16:37:50 +0800
+
+    Remove changelog
+
+D      debian/changelog
+
+commit aec6c3a1fb241810e0dc9e58d7da34299eb0f200
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-28 10:18:24 +0800
+
+    Add ppa target to generate debian source package.
+
+M      Makefile.am
+M      configure.ac
+A      debian/README.source
+M      debian/changelog
+A      debian/changelog.in
+M      debian/clean
+M      debian/control
+D      debian/libibus1.install
+D      debian/libibus1.symbols
+A      debian/libibus2.install
+A      debian/libibus2.symbols
+A      debian/patches/00list
+A      debian/patches/01_ubuntu_desktop.dpatch
+M      debian/rules
+A      debian/source/format
+M      debian/xinput/ibus
+
+commit dc1e9d38ce4612ee7fb05a39f25ae5dfb499dd4a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-27 06:47:34 +0800
+
+    Remove some unused variables.
+
+M      src/ibusbus.c
+M      src/ibusconnection.c
+
+commit 7912b45a0526f78467098b36022adfb203d587b0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-26 12:20:29 +0800
+
+    Fix restart problem when the image file is removed.
+
+M      bus/ibusimpl.c
+
+commit e502b41e2fedd11bccd739ed9d7257d88073904e
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-26 15:38:37 -0700
+
+    Change ibus_bus_hello() to return const gchar*.
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+
+commit c91d8429a01725dd881abe7014fbf5c1fdba07d6
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-26 14:56:15 -0700
+
+    Fix memory issues in ibusconnection.* and ibusproxy.c
+
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusproxy.c
+
+commit 1c50507a2f0a0bfcc74d99dec3706605d211119d
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-26 12:41:43 -0700
+
+    Fix memory issues in ibusbus.c
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/test-bus.c
+
+commit 0ba0b49831c38772884cdad787a596c4ddc23a23
+Author: James Su <james.su@gmail.com>
+Date:   2010-05-21 14:44:41 -0700
+
+    Fix typos in ibus_bus_current_input_context().
+
+M      src/ibusbus.c
+M      src/test-bus.c
+
+commit 3c491bce532059391429c17c46a96f723a0a1270
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-05-17 18:17:57 +0900
+
+    Fix not to emit property-activate when state is not changed.
+
+M      ui/gtk/menu.py
+M      ui/gtk/toolitem.py
+
+commit 5326f3c05c4ef69cbf88ca8e3d91f9eb3efc1f96
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-15 20:05:51 +0800
+
+    Update pl.po from Piotr Drąg <piotrdrag@gmail.com>
+
+M      po/pl.po
+
+commit 9026db8da82df0229cd3c7f9055bccad338f6a91
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-15 20:02:19 +0800
+
+    Refine some build options.
+
+M      Makefile.am
+M      client/Makefile.am
+M      configure.ac
+M      gconf/Makefile.am
+M      ibus/Makefile.am
+M      ibus/interface/Makefile.am
+M      setup/Makefile.am
+M      ui/Makefile.am
+M      ui/gtk/Makefile.am
+M      util/Makefile.am
+
+commit c75f40f35168f752ba5380e229d889bfb7bf4074
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-15 19:48:37 +0800
+
+    Add --disable-clients to disable gtk x11 clients
+
+M      client/Makefile.am
+M      configure.ac
+
+commit 1477bcd22f7a9896348d6f67a4f98af0e829ed66
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-14 20:52:53 +0800
+
+    Add ibus_lookup_table_set_label.
+
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+
+commit 86d4cf8b4e1d8485952172ebcda455d64351f575
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-10 09:09:42 +0800
+
+    Make version in ibus-docs configurable.
+
+M      configure.ac
+D      docs/reference/ibus/ibus-docs.sgml
+A      docs/reference/ibus/ibus-docs.sgml.in
+
+commit facc441f48a9f6ed385578106daa1eef7e1cd8c5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-07 22:13:46 +0800
+
+    Update kn.po from Shankar Prasad Venkateshbhat <svenkate@redhat.com>
+
+M      po/kn.po
+
+commit a847b223c4b220ae36ba3f565df3de5c93857dcc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-07 15:35:36 +0800
+
+    Update zh_TW.po from Tseng, Cheng-Chia <pswo10680@gmail.com>
+
+M      po/zh_TW.po
+
+commit 19a8c3ae2e11005bb20c1dd98e4ffe5b02d5c06d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-06 16:44:49 +0800
+
+    Update hi.po from Rajesh Ranjan <rranjan@redhat.com>
+
+M      po/hi.po
+
+commit 4be5b98dab33b351bc22d91e3f6cfa5e1c5787fd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-06 16:35:04 +0800
+
+    Update ja.po from Kiyoto James Hashida <khashida@redhat.com>
+
+M      po/ja.po
+
+commit 1ce102f4e3ee675f8d3a2329db52da81a09e4b72
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-06 16:04:05 +0800
+
+    Update ml.po from Ani Peter <apeter@redhat.com>
+
+M      po/ml.po
+
+commit ddf4c9462a044561cbb4632f722c52bf9c28a2a5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-06 15:05:43 +0800
+
+    Update mr.po from sandeep shedmake <sandeep.shedmake@gmail.com>
+
+M      po/mr.po
+
+commit 704747b00f8b41d1099574c856e55d4c7f29016d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-06 10:32:20 +0800
+
+    Update ru.po from Yulia Poyarkova <yulia.poyarkova@redhat.com>
+
+M      po/ru.po
+
+commit 93b3ab9b433fa9540af140a08ae6f81eec5ae531
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-06 10:31:19 +0800
+
+    Update te.po from Krishnababu Krothapalli <k.meetme@gmail.com>
+
+M      po/te.po
+
+commit c924bf47d4f227baf4fe4938a4467d26c2d633b7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-05 19:09:39 +0800
+
+    Fix a typo in setup.ui
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/setup.ui
+
+commit 6b76860b86cfb45aedf8a010a4af45335396441c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-05 19:03:19 +0800
+
+    Update pa.po from Jaswinder Singh
+
+M      po/pa.po
+
+commit 74e5fcace7101354b560e0aa2bc0c0d2b91d5fc3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-04 13:33:46 +0800
+
+    Release 1.3.3
+
+M      configure.ac
+
+commit fd5289885358aebcffac82a71494bcb72193aded
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-04 11:16:31 +0800
+
+    Revert "Remove dbus library from ibus-1.0.pc"
+    
+    This reverts commit 1a60516d29bae164213c2337e4d877079b1c3ba0.
+
+M      ibus-1.0.pc.in
+
+commit d8d386f6bd2823e96e0380e065ccc0b522b7e9e6
+Merge: 1a60516 80c35b5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-04 07:29:45 +0800
+
+    Merge branch 'no_snooper_apps'
+
+commit 80c35b5fc53672a0791f847d811c71843e1c7156
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-04 07:27:53 +0800
+
+    Add configure --disable-key-snooper
+
+M      client/gtk2/ibusimcontext.c
+M      configure.ac
+
+commit 1a60516d29bae164213c2337e4d877079b1c3ba0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-03 17:45:05 +0800
+
+    Remove dbus library from ibus-1.0.pc
+
+M      ibus-1.0.pc.in
+
+commit 550d0adb701d456c1097be805cd010b95e60f9c8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-02 15:44:13 +0800
+
+    ibus-x11 does not call g_error, when it connects to ibus-daemon failed.
+
+M      client/x11/main.c
+
+commit aab40e06078512c7a70b071e3eb5acfe47921ca4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-01 20:58:36 +0800
+
+    Refine comments
+
+M      configure.ac
+
+commit 180371b895cc9217710220e1a2dce5d91f86cf2b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-01 17:22:46 +0800
+
+    add configure option to disable keyboard snooper in some applications
+
+M      client/gtk2/ibusimcontext.c
+M      configure.ac
+
+commit 14bf7bdb80920c7cf8f4fd38aabfa8c5b6deee33
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-05-01 09:00:27 +0800
+
+    include ignore and handled mask in IBUS_MODIFIER_MASK
+
+M      src/ibustypes.h
+
+commit 9111a6cfcd6b1357a4c288366661faef7d757add
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-30 15:05:29 +0800
+
+    Check if client connection is alive, when engine replies the
+    process_key_event
+
+M      bus/inputcontext.c
+
+commit 670693885a114ba3c3455db695dee52edfc605d8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-29 17:09:58 +0800
+
+    mark ibus_free_strv as depracated
+
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 479ef38a166a8e9fe72fdc52024b3676deedf16d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-27 07:37:42 +0800
+
+    Update es.po from daniel cabrera <logan@fedoraproject.org>
+
+M      po/es.po
+
+commit f823193fb424797554cc4953807f65bf038b10a9
+Author: Julien Humbert <julroy67@gmail.com>
+Date:   2010-04-26 13:30:38 +0200
+
+    Updated French translation
+
+M      po/fr.po
+
+commit 5d699f3d6d530cc5a709530c28fef3cedc086cb9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-26 09:00:47 +0800
+
+    Remove option [Never] for language bar.
+
+M      data/ibus.schemas.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/main.py
+M      setup/setup.ui
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+
+commit 269a0bb0ad207fc484b1867c53bc72f200a7cc15
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-24 08:18:58 +0800
+
+    Update kn.po from Shankar Prasad Venkateshbhat <svenkate@redhat.com>
+
+M      po/kn.po
+
+commit e2c1359c02f975ea5cb7a51c7baa313b27b2e6c7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-24 08:16:16 +0800
+
+    Add librsvg2 as requires in rpm spec file.
+
+M      ibus.spec.in
+
+commit c0f4071d17351e4076fdbe476fff7030bfd1d3a9
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-04-23 16:02:54 +0900
+
+    Update ja.po
+
+M      po/ja.po
+
+commit 633f5d03fcdd1206855a3a4071ee75d37829e619
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-22 16:54:03 +0800
+
+    Update API references of IBusEngine
+
+M      src/ibusengine.c
+
+commit c0fe2773c4c750c871785e3ca07745fe76d51faf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-21 22:06:23 +0800
+
+    Update es.po from daniel cabrera <logan@fedoraproject.org>
+
+M      po/es.po
+
+commit a48386426142a6645b9beae712572dc1adfc082a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-21 13:19:23 +0800
+
+    Release 1.3.2
+
+M      configure.ac
+
+commit 4cd33ff5d4c8adcde22364365f0d892f013e5b01
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-21 13:18:34 +0800
+
+    workaround: set focus if context does not have focus.
+
+M      bus/inputcontext.c
+
+commit 416f9ac05d2edab41379dad40315c0feb2d47406
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-21 11:04:43 +0800
+
+    Update string in UI
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/setup.ui
+
+commit caefdc15452b63e87e5816c888b86be72feb5a56
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-21 10:56:19 +0800
+
+    Update po files.
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 943df5a35b5fa73f6195b362993a479b611116bb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-21 10:44:32 +0800
+
+    Fix issue - application does not response key events randomly.
+
+M      bus/inputcontext.c
+
+commit fd38e7622440cbd7c78ba62fe92281edcea6a76e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-21 10:42:40 +0800
+
+    Add iso-codes-dev as BR in spec file.
+
+M      ibus.spec.in
+
+commit 5be6364bb79d77fc21c799ea728be7d6ff24de5e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-20 17:58:05 +0800
+
+    Adjust setup dialog for better looking
+
+M      setup/setup.ui
+
+commit 74f8f71853b215c3d2e9945be60f5c9ff6285415
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-20 17:21:41 +0800
+
+    Fix crash in registry
+
+M      bus/registry.c
+M      src/ibuscomponent.c
+
+commit e74ec5611e26b509c990024e919de21ec33976b5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-15 17:06:55 +0800
+
+    Update or.po from Manoj Giri <mgiri@redhat.com>
+
+M      po/or.po
+
+commit b69765ccf8417413678ad35e3e41710e8ed6d37b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-12 06:42:13 +0800
+
+    Fix some mistakes
+
+M      po/zh_CN.po
+
+commit 473da4136f36dc344033723b8217a7b3003b6827
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-11 20:48:59 +0800
+
+    Fix mistakes in zh_CN.po
+
+M      po/zh_CN.po
+
+commit 6d7f49c57e7013dabcd88c810eaa2fc49f94c87d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-11 17:48:49 +0800
+
+    Do not hardcode iso-codes anymore
+
+M      configure.ac
+M      ibus/_config.py.in
+M      ibus/lang.py
+
+commit 064eb48804f34f1c2249d93b5df4b129d536febd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-11 17:04:19 +0800
+
+    Fix build warnings
+
+M      src/test-bus.c
+
+commit 3b2f45a9abeffebdb4f583ce6ddfed674e74b4c6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-11 17:02:55 +0800
+
+    Add X11_CFLAGS and X11_LIBS
+
+M      client/x11/Makefile.am
+M      util/IMdkit/Makefile.am
+
+commit 292c62c32e8e71383fafe09881c2ff247d460bb7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-11 16:41:03 +0800
+
+    Fix make distcheck errors.
+
+M      Makefile.am
+M      configure.ac
+M      gconf/Makefile.am
+M      ibus/Makefile.am
+M      ibus/interface/Makefile.am
+M      po/POTFILES.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/Makefile.am
+M      src/test-bus.c
+M      ui/gtk/Makefile.am
+
+commit 271f02d9ee09477f61dcec43196c52768665f062
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-11 11:39:48 +0800
+
+    Use = in shell test expression
+
+M      configure.ac
+
+commit 4d791dd6846f7610c0797f508d9760df49c710dd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-10 07:15:04 +0800
+
+    Update es.po from daniel cabrera <h.daniel.cabrera@gmail.com>
+
+M      po/es.po
+
+commit eee4f66a4557dfb825b1ba3dac1cf021699d4e5d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-09 18:44:35 +0800
+
+    Update mr.po from sandeep shedmake <sandeep.shedmake@gmail.com>
+
+M      po/mr.po
+
+commit c1697ada529e5cf2dcf8c6292f6e3bef6ccbb5b2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-09 12:01:19 +0800
+
+    Fix two build warnings
+
+M      bus/registry.c
+M      src/ibusbus.c
+
+commit 616c07538b3ea8cf0d5979bb4a22afa8e9d9220a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-09 11:30:50 +0800
+
+    Add some git targets
+
+M      Makefile.am
+
+commit 39bf9044019b342380c32986c12ffc5a41ac29f3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-09 11:23:42 +0800
+
+    Update some strings and po files.
+
+M      data/ibus.schemas.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/setup.ui
+M      ui/gtk/languagebar.py
+
+commit 1dfaf677e210452056569ccfb0d47ef236771254
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-09 11:05:57 +0800
+
+    Update ru.po from Yulia Poyarkova <yulia.poyarkova@redhat.com>
+
+M      po/ru.po
+
+commit f7fe659fc8bd974fb609d66784e301cf3efca590
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-09 09:27:57 +0800
+
+    Fix AM_CONDITIONAL error in configure.ac
+
+M      configure.ac
+
+commit 8db336807712dba41cbf3de37ae87a3fb084d39e
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-04-08 18:40:54 +0900
+
+    Narrow the width of ibus-setup for ja
+
+M      setup/setup.ui
+
+commit ff8cdb6f36a6f1024c3295ca75be6c444209d407
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-08 17:47:31 +0800
+
+    Clear the code for preedit text mode
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      src/ibusmarshalers.list
+
+commit e4d02bb966788291168e51225aaeab24f80ff424
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-04-08 16:09:00 +0900
+
+    Commit preedit text when bus_input_context_disable is called.
+
+M      bus/inputcontext.c
+
+commit 56968f1b9560298667d95908f2773ddec2c04c2a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-08 11:10:02 +0800
+
+    Try to create dir $(HOME)/.config/ibus/bus every time to avoid apps wake
+    up once per second.
+
+M      src/ibusbus.c
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 413afeb66e23acf06ffd8819b74895582c8d68a7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-04-08 10:37:10 +0800
+
+    Insensitive 'Turn off input methon' menu item if ic is disabled already.
+
+M      ui/gtk/panel.py
+
+commit 619283cc93725cfbfff598013671da0e6a2c3728
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-31 17:48:45 +0800
+
+    Update pa.po from Jaswinder Singh <jsingh@redhat.com>
+
+M      po/pa.po
+
+commit fc59bca7eb6606abac94ffa5a3b4638edf87b22b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-31 12:26:40 +0800
+
+    Update po files.
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit dc505c75ae1eb182a0376b959ce4330628f06b54
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-31 12:26:24 +0800
+
+    Update ko.po from Hyunsok Oh <hoh@redhat.com>
+
+M      po/ko.po
+
+commit 11a4055f2050019266516c4b83b7c671144189e4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-30 12:55:27 +0800
+
+    Release 1.3.1
+
+M      configure.ac
+
+commit 06b8aeabdbd347396ea5526abca70229cb2a47e9
+Merge: 39782a6 2b25925
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-30 12:49:27 +0800
+
+    Merge remote branch 'origin/master' into 1.3.y
+
+commit 2b25925df7c193731afeb43fbee777a2fa9c2d13
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-29 15:28:26 +0800
+
+    Add configure option --disable-gconf
+
+M      Makefile.am
+M      configure.ac
+
+commit 39782a6a4ae6221868e2430d9085dacba98b8548
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-26 15:32:23 +0800
+
+    Set lookup table's orientation before updating candidates.
+
+M      ui/gtk/candidatepanel.py
+
+commit 24e6c7643157440d3ad78fb07e140cd305683f35
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-26 09:24:18 +0800
+
+    Update from "Runa Bhattacharjee" <runab@redhat.com>
+
+M      po/bn_IN.po
+
+commit 3154257e4335e92e47f7305f6ce43c2167a4abbd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-24 19:28:32 +0800
+
+    Update ml.po from Ani Peter <apeter@redhat.com>
+
+M      po/ml.po
+
+commit 487546090ad6ccff09b17e6d42395dc8ea7198bd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-26 15:32:23 +0800
+
+    Set lookup table's orientation before updating candidates.
+
+M      ui/gtk/candidatepanel.py
+
+commit f509f658aa24b50426eaa0b34850a9153e6a7c63
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-23 14:41:50 +0800
+
+    Update gu.po from Sweta Kothari <swkothar@redhat.com>
+
+M      po/gu.po
+
+commit b84c2405f6fcd22576950cebe1d56ab7a06bc85e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-26 09:24:18 +0800
+
+    Update from "Runa Bhattacharjee" <runab@redhat.com>
+
+M      po/bn_IN.po
+
+commit 86e48f31bce0faa4ef8310b63a501b2bfc2f2de5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-25 10:29:44 +0800
+
+    Always setup ibus_datedisplay
+
+M      configure.ac
+
+commit e321f2844feeaa303f26b0072c508db26e065cbf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-25 10:29:44 +0800
+
+    Always setup ibus_datedisplay
+
+M      configure.ac
+
+commit 70e975d44532ff706fb563c4d93afa66afeb4862
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-24 19:28:32 +0800
+
+    Update ml.po from Ani Peter <apeter@redhat.com>
+
+M      po/ml.po
+
+commit 468f7cca1e53e6db3b2b2ef002010bc5c334a9da
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-23 17:10:02 +0800
+
+    Make make output look's better
+
+M      docs/reference/ibus/Makefile.am
+M      gconf/Makefile.am
+M      src/Makefile.am
+M      ui/gtk/Makefile.am
+
+commit 69e4a62041dbf8f78bc73a58ebd38a4ab78af72d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-23 16:30:19 +0800
+
+    Refine coding style and change source file header.
+
+M      src/ibusinternal.c
+
+commit 8e2e49dd0a5a4560f10fb13fa660c28345d17195
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-23 15:02:33 +0800
+
+    Add configure --disable-python to disable build for python modules.
+
+M      Makefile.am
+M      configure.ac
+
+commit 1217396567a9b8dbbdf9efecb7c0550df57371ae
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-23 14:41:50 +0800
+
+    Update gu.po from Sweta Kothari <swkothar@redhat.com>
+
+M      po/gu.po
+
+commit 219adb293a275b4e02e21e7bc2111a0706ad99a2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-22 21:21:36 +0800
+
+    Add AM_SILENT_RULES([yes])
+
+M      configure.ac
+
+commit a0988fc77bf1ba472c7b75b0321f1550f3e824c7
+Merge: 6af061d 1d01af4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-22 16:12:00 +0800
+
+    Merge branch '1.3.y'
+
+commit 1d01af4bba89868b5803a20f6d6c77474dabfec2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-22 16:11:37 +0800
+
+    Does not check glib micro version anymore.
+
+M      client/gtk2/ibusim.c
+
+commit 6af061df3987cf8f50870f28a6666dbd24d6e0b2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-22 10:22:53 +0800
+
+    Set release to 0
+
+M      configure.ac
+
+commit 4e4d859a55236b670245a734c4a9a873d37e9b15
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-22 10:20:41 +0800
+
+    Bump version to 1.3.0
+
+M      configure.ac
+
+commit f41d86de36a38356d8ae3f1f9ee1035ef786545e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-22 10:07:32 +0800
+
+    Change version number in api document.
+
+M      docs/reference/ibus/ibus-docs.sgml
+
+commit 0f2f4b7a8b30470b6f1c5e019e0af6de28e36dd1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-22 09:52:14 +0800
+
+    ibus setup will execute ibus-daemon with --xim
+
+M      setup/main.py
+
+commit f74809323895668329088ad2e627a62e90eb8b99
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-22 09:20:15 +0800
+
+    Fix deb build problem.
+
+M      debian/libibus1.install
+
+commit 4a57966042e142a643bd5e9b7939fa8880d0a6c6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-19 11:06:45 +0800
+
+    Avoid crash if the engine is destroyed
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+
+commit ebc47d54bf5be8bbbaf2ec523ad7f82abf44f0c8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-17 13:50:22 +0800
+
+    Always put setup dialog in center of screen.
+
+M      setup/setup.ui
+
+commit 0211cdaa80721aac1aade8c76c90ace9c9ccce3d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-16 15:45:00 +0800
+
+    Call ibus_engine_update_preedit_text_with_mode in ibus_engine_update_preedit_text
+
+M      src/ibusengine.c
+
+commit 8ee38642d8e0b861cf03d60374a3462de201d16a
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-03-16 16:33:26 +0900
+
+    Add ibus_engine_update_preedit_text_with_mode
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/inputcontext.c
+M      ibus/common.py
+M      ibus/engine.py
+M      ibus/interface/iengine.py
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibustypes.h
+
+commit 701265d6db597388b7ad7dfa697aa55de29ebd08
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-16 10:32:06 +0800
+
+    Add Categories in ibus.desktop
+
+M      bus/ibus.desktop.in
+
+commit 8ba5979f404725b684a005ab747c0fbf5baced87
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-03-12 10:55:34 +0900
+
+    Update ja.po
+
+M      po/ja.po
+
+commit 43b68f70dc10a493b011bf106a40ce3318dab9cf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-03-10 10:24:01 +0800
+
+    Update version in document
+
+M      docs/reference/ibus/ibus-docs.sgml
+
+commit 53a04bfb66c316df74132c0c1bcc1f97cbb26788
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-28 10:22:51 +0800
+
+    Update zh_TW.po from Tseng, Cheng-Chia <pswo10680@gmail.com>
+
+M      po/zh_TW.po
+
+commit 314eb4a1a31fd7fc1bd6769c7f7b92afe6622e00
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-28 10:19:16 +0800
+
+    Update pl.po from Piotr Drąg <piotrdrag@gmail.com>
+
+M      po/pl.po
+
+commit be47cfcceb6352001877e79d530514baa299d08e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-24 16:07:06 +0800
+
+    Remove unused code.
+
+M      ui/gtk/panel.py
+
+commit f6aee0a3605f44336f881a3d133d176e6f890518
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-24 09:57:41 +0800
+
+    Refine inline document
+
+M      src/ibusproxy.h
+
+commit 12d98ba000f29027b2d33cdef719906bbcb0e0b8
+Merge: 80077fe 5454785
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-23 13:27:29 +0800
+
+    Merge remote branch 'epico/master'
+
+commit 80077fe1eae883bf5ae12e38a216dd1634c2db01
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-23 13:19:57 +0800
+
+    Fix a typo in API document
+
+M      src/ibusproxy.h
+
+commit 54547855ee226bab4e7593acbc670496202013a7
+Author: Peng Wu <epico@dhcp-65-116.nay.redhat.com>
+Date:   2010-02-23 12:41:37 +0800
+
+    change gtk-im client name.
+
+M      client/gtk2/ibusimcontext.c
+
+commit b6567c635ccad90f3d669577f51074530f33c02d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-23 08:10:28 +0800
+
+    Remove the occurence of dbus_message_iter_get_array_len() due to its obsolescence.
+    
+    In Header <dbus/dbus-message.h>
+      #ifndef DBUS_DISABLE_DEPRECATED
+      /* This function returns the wire protocol size of the array in bytes,
+       * you do not want to know that probably
+       */
+      DBUS_DEPRECATED int dbus_message_iter_get_array_len (DBusMessageIter *iter);
+      #endif
+
+M      src/ibusbus.c
+
+commit 6a546df559a59ba02ff0c59fa47bea8417f63355
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-19 13:51:53 +0800
+
+    Use G_N_ELEMENTS in for loop
+
+M      bus/ibusimpl.c
+M      bus/panelproxy.c
+M      src/ibuspanelservice.c
+
+commit 5380820cb5da1c63799115141aae55e32d5e9139
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-15 19:39:17 +0800
+
+    Remove --rebuild-sections
+
+M      docs/reference/ibus/Makefile.am
+
+commit dabf52c07a80e04f12ad72dd972558130f164f68
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-15 19:36:57 +0800
+
+    Fix cursor location problem.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 200de0a7c338149afac26fcba46949103f1f70ba
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-15 17:43:45 +0800
+
+    Close child process in IBusComponent.Destroy
+
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+
+commit 173b2e830201e837185aa06df9394ab0bc0cea5e
+Author: Peng Wu <epico@dhcp-65-116.nay.redhat.com>
+Date:   2010-02-11 11:12:11 +0800
+
+    update zh_CN.po for embedding preedit.
+
+M      po/zh_CN.po
+
+commit fb8f42382426f11a6bf0b52f0eb4b8775c4afc56
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-11 10:37:53 +0800
+
+    Change the default setting of use_global_engine, and remove some unused
+    code.
+
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      data/ibus.schemas.in
+
+commit ef68517390c94d254458097ee3c6bd3849e93b4f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-11 10:24:51 +0800
+
+    Upddate es.po from daniel cabrera <logan@fedoraproject.org>
+
+M      po/es.po
+
+commit 4e8235543be28d8e4c06e7af236da3aceed85839
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-10 14:52:01 +0800
+
+    Make sure the engine was not destroyed before real set the global
+    engine.
+
+M      bus/ibusimpl.c
+
+commit 31d31a736d818c2ed04fdc7f60b64ccc96f6b723
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-02-10 12:06:24 +0900
+
+    Fix default use_system_keyboard_layout
+
+M      setup/main.py
+
+commit 115eedaa73e1880ac10991fbdc7dfa7ff0fb29e4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-09 17:07:49 +0800
+
+    simplify preedit condition
+
+M      bus/inputcontext.c
+
+commit ea9b9f21ae1a29224169e8f95f4a5e7fbd8c83e2
+Author: Peng Wu <epico@dhcp-65-116.nay.redhat.com>
+Date:   2010-02-09 10:26:20 +0800
+
+    Add embed_preedit support to ibus.
+
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      data/ibus.schemas.in
+M      setup/main.py
+M      setup/setup.ui
+
+commit 51f8f4fb734292e568650464c2ba645bed21d988
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-05 08:08:28 +0800
+
+    Fix gtk-doc problems.
+
+M      docs/reference/ibus/.gitignore
+M      docs/reference/ibus/Makefile.am
+A      docs/reference/ibus/ibus-sections.txt
+M      src/ibuscomponent.h
+M      src/ibusconfig.h
+M      src/ibusconnection.h
+M      src/ibusengine.h
+M      src/ibusenginedesc.h
+M      src/ibusfactory.h
+M      src/ibusinternal.h
+M      src/ibuskeymap.h
+M      src/ibuskeysyms.h
+M      src/ibusobject.h
+M      src/ibuspendingcall.h
+M      src/ibusproperty.h
+M      src/ibusproplist.h
+
+commit 43e5004f54dc4dc3e1b2cad4836eab0d8357501d
+Author: Peng Wu <epico@dhcp-65-116.nay.redhat.com>
+Date:   2010-02-03 11:41:39 +0800
+
+    fixes a typo.
+
+M      bus/ibusimpl.c
+
+commit d6bbeabf9d9e77a19a8f310bcf2573a24037096f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-03 07:29:51 +0800
+
+    Update es.po from Daniel Cabrera
+
+M      po/es.po
+
+commit 85faf60e2981ce49bc88a3ba15ac81f919f370f4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-02 10:21:20 +0800
+
+    Add property connection and fix crash in IBusFactory
+
+M      src/ibusfactory.c
+
+commit 05ea126837cd4b879a2c0ada29f0f1db8fa9172d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-02 08:40:56 +0800
+
+    Remove duplication g_object_ref in ibus_keymap_get
+
+M      src/ibuskeymap.c
+
+commit 813d0c5feb5d5750057ea92631e999bcb6c502bb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-02 08:25:57 +0800
+
+    Refine ibus_keymap_get
+
+M      src/ibuskeymap.c
+
+commit 4966dfdd9637dc1e18f00ae9b5e4248de863d56f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-02 08:20:29 +0800
+
+    Refine ibus_connection_open
+
+M      src/ibusconnection.c
+
+commit 71e91075c4ce4e11867cba84939b668112bb35eb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-02 08:15:39 +0800
+
+    Does not increase references in ibus_keymap_get
+
+M      src/ibuskeymap.c
+
+commit d7d8096d71073e30652774efffe45a92d5178c3d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-01 18:23:11 +0800
+
+    Fix a type in comment
+
+M      bus/inputcontext.c
+
+commit d11c577d31ab92e859cf6e01ae24105f6fb12d3c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-01 17:40:30 +0800
+
+    Update so version in common.py
+
+M      ibus/common.py
+
+commit 9befb29b0e1a356b069ebc80cfe8813179bf5914
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-01 15:09:14 +0800
+
+    Bump version and so version
+
+M      configure.ac
+
+commit ea5f939ccb49c58af28337a707e7e81e9a458b55
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-02-01 13:02:28 +0800
+
+    Add G_GNUC_DEPRECATED mark on ibus_keymap_new
+
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+
+commit 3aec8b5cc40ac1552472aa23468f54093fb64765
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-31 11:03:10 +0800
+
+    Workaround for cursor following problem in some Java applications.
+
+M      ui/gtk/candidatepanel.py
+
+commit f73d06cc030e0ecef761cd0862deccecfce2baa9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-31 09:21:21 +0800
+
+    Workaround for autohide problem with metacity
+
+M      ui/gtk/languagebar.py
+
+commit 7b7e338cf52578a24b6f50fbcfd80e1ced4dce1d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-31 09:19:13 +0800
+
+    Update fr.po from julroy67
+
+M      po/fr.po
+
+commit 44ef7c2035502f17c8bfb608d2d8c4eb672adc27
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-30 23:19:32 +0800
+
+    Use G_DEFINE_TYPE to simplify code.
+
+M      bus/connection.c
+M      bus/dbusimpl.c
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/matchrule.c
+M      bus/registry.c
+M      bus/server.c
+M      src/ibusattribute.c
+M      src/ibusattrlist.c
+M      src/ibusbus.c
+M      src/ibuscomponent.c
+M      src/ibusconnection.c
+M      src/ibusengine.c
+M      src/ibusenginedesc.c
+M      src/ibusfactory.c
+M      src/ibusinputcontext.c
+M      src/ibuskeymap.c
+M      src/ibuslookuptable.c
+M      src/ibusobject.c
+M      src/ibusobservedpath.c
+M      src/ibuspanelservice.c
+M      src/ibusproperty.c
+M      src/ibusproplist.c
+M      src/ibusproxy.c
+M      src/ibusserializable.c
+M      src/ibusserver.c
+M      src/ibusservice.c
+M      src/ibustext.c
+
+commit d48116864621e93072b4fb9ff60198f27bd201c5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-30 22:22:30 +0800
+
+    Refine comment in configure.ac
+
+M      configure.ac
+
+commit 9e1ffbf2b3b4d43d4f299db73068875bda6846cc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-28 16:06:30 +0800
+
+    Fix some problems of sharing global engine among contexts.
+
+M      bus/ibusimpl.c
+
+commit c4f538017f8e1589c204688c2a4e20450db399a6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-28 06:41:58 +0800
+
+    Attach/Detach global engine when switch focus.
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+
+commit 85c107194f3f99be7ad5bbd986c71abc71ba6975
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-27 17:11:59 +0800
+
+    Add global engine in setup UI from Su Zhe.
+
+M      data/ibus.schemas.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/main.py
+M      setup/setup.ui
+
+commit cb216cedd6ee92c18384eded25766dee47d941a1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-27 17:09:15 +0800
+
+    Support share global engine in all input context from Su Zhe.
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+
+commit 501b24ed272993838d7c774275feb9a1d2efb403
+Author: Peng Huang <phuang@phuang-laptop.(none)>
+Date:   2010-01-30 08:27:05 +0800
+
+    Fix a typo
+
+M      debian/changelog
+
+commit cda6b25a135f964304aa328f0cb3bad473d9cac6
+Author: Peng Huang <phuang@phuang-laptop.(none)>
+Date:   2010-01-30 08:12:54 +0800
+
+    Update debian pacakge scripts
+
+M      debian/changelog
+M      debian/libibus1.symbols
+
+commit 90a9b33c336dcd067b9289de11f5f33c5bde2c19
+Merge: b873dec 80f5d32
+Author: Peng Huang <phuang@phuang-laptop.(none)>
+Date:   2010-01-29 21:15:20 +0800
+
+    Merge branch 'G_DEFINE_TYPE'
+
+commit b873dec849e758dc376ad2a5588c6b3fefd6daa4
+Author: Peng Huang <phuang@phuang-laptop.(none)>
+Date:   2010-01-29 21:07:43 +0800
+
+    Refine API document of IBusInputContext
+
+M      src/ibusinputcontext.c
+
+commit 80f5d32159e53623da82c868304f7bb23e9b1a02
+Author: Peng Huang <phuang@phuang-laptop.(none)>
+Date:   2010-01-29 20:48:17 +0800
+
+    Use G_DEFINE_TYPE to simplified code.
+
+M      bus/inputcontext.c
+M      bus/matchrule.c
+M      bus/registry.c
+M      bus/server.c
+
+commit f0a7973f66a2031a7a02c65659402d13ed6b689e
+Author: Peng Huang <phuang@phuang-laptop.(none)>
+Date:   2010-01-29 20:34:05 +0800
+
+    Use G_DEFINE_TYPE to simplified code.
+
+M      bus/connection.c
+M      bus/dbusimpl.c
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+M      bus/ibusimpl.c
+M      bus/panelproxy.c
+
+commit ba48d22a1441c5b55efd4162b4447acdb65c3c7e
+Author: Peng Huang <phuang@phuang-laptop.(none)>
+Date:   2010-01-29 19:58:38 +0800
+
+    Fix typo in API document
+
+M      src/ibusengine.h
+
+commit 11099ced762a498d3a805264431a6fe8cf6fd6ac
+Author: Peng Huang <phuang@phuang-laptop.(none)>
+Date:   2010-01-29 19:49:44 +0800
+
+    Refine API document for IBusEngine
+
+M      src/ibusengine.h
+
+commit 8fd4a54b11c5bf9cd279bebed229d65124969303
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-28 07:35:22 +0800
+
+    Release floating objects in IBusEngine
+
+M      src/ibusengine.c
+
+commit 93726dd3d8eade4c05d0d620110dccc3fc3b95b2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-26 21:22:06 +0800
+
+    Use GInitiallyUnowned correctly
+
+M      bus/Makefile.am
+M      bus/dbusimpl.c
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/matchrule.c
+M      bus/panelproxy.c
+M      bus/registry.c
+M      client/gtk2/ibusimcontext.c
+M      src/ibusattrlist.c
+M      src/ibuscomponent.c
+M      src/ibusconfigservice.c
+M      src/ibusconnection.c
+M      src/ibusengine.c
+M      src/ibusfactory.c
+M      src/ibusinputcontext.c
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+M      src/ibuslookuptable.c
+M      src/ibusobservedpath.c
+M      src/ibuspanelservice.c
+M      src/ibusproperty.c
+M      src/ibusproplist.c
+M      src/ibusproxy.c
+M      src/ibusserver.c
+M      src/ibusservice.c
+M      src/ibustext.c
+M      src/test-keymap.c
+
+commit bfdbf9855dea8a53ad47f4cf04f971335a73de9e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-28 09:03:31 +0800
+
+    Fix a typo.
+
+M      bus/inputcontext.c
+M      bus/panelproxy.c
+
+commit 07f8e8a54ca676f7b0cc8ee489a15044205f280d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-28 08:59:35 +0800
+
+    Fix typos.
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/panelproxy.c
+
+commit 0ba7c1ddc696ea7042657a0084c60a5e2961bfa5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-28 08:42:47 +0800
+
+    Use G_N_ELEMENTS.
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/panelproxy.c
+
+commit 90553c93bb21387b257ce3e36ff8f6bfed521146
+Merge: 7c842d9 59b2900
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-27 14:26:02 +0800
+
+    Merge branch 'master' of github.com:phuang/ibus
+
+commit 7c842d9a3e0db5ce6349b3b5bb003c95db8aa97f
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2010-01-27 10:17:11 +1000
+
+    Fix some APIDOC
+
+M      src/ibusbus.h
+M      src/ibusfactory.h
+M      src/ibusinputcontext.h
+M      src/ibusinternal.h
+M      src/ibusservice.h
+
+commit 59b2900f7336082b5690db4195e939b99a009a1f
+Author: fujiwarat <takao.fujiwara1@gmail.com>
+Date:   2010-01-26 12:35:16 +0900
+
+    Fix destroy about menu item
+
+M      ui/gtk/languagebar.py
+
+commit 0caac1e5fbb85d11b51c01ee8e4f826219faefa4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-25 16:20:16 +0800
+
+    Show recommended engines with bold font
+
+M      setup/enginecombobox.py
+
+commit 331e34332e9099121cfac689f40f71e3ca98f72b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-25 16:19:33 +0800
+
+    Only enable engines with rank > 0 at frist time startup
+
+M      bus/ibusimpl.c
+
+commit 482be2ae0b50f423f1d172b4c13dcdad1beafea4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-19 16:11:35 +0800
+
+    Show properties on systray menu by Fujiwara
+
+M      setup/setup.ui
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+
+commit 425bd8288079e58314c935a46c5920c3118ac25a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-19 13:25:22 +0800
+
+    Remove some symbols for debian package.
+
+M      debian/libibus1.symbols
+
+commit ba13596c99ead9f24afd334552f8710edc5cad7e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-15 14:56:59 +0800
+
+    Unify the help message.
+
+M      bus/main.c
+
+commit dbc992ba0bab3253032fbcd9fc1a477dec80b855
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-15 14:55:25 +0800
+
+    Check argument to avoid crash
+
+M      gconf/config.c
+
+commit 157598a25f7c493313482868af9b800e6951ff14
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-15 14:35:15 +0800
+
+    Fix typo.
+
+M      ibus/enginedesc.py
+
+commit 883bc5ed5ddfd96e0f8a15abc9748f06d2fbd86b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-14 08:31:37 +0800
+
+    Fix coding style
+
+M      ui/gtk/candidatepanel.py
+
+commit 02ceec9193952243f0e05e3c2a25284600dba9b9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-12 21:56:58 +0800
+
+    Change Title of IBusAttrList and IBusPropList
+
+M      src/ibusattrlist.h
+M      src/ibusproplist.h
+
+commit 54cc7180226dc93466ba9b69e2bbc5499ca7645b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-12 21:46:29 +0800
+
+    Fix gtk-doc issues.
+
+M      docs/reference/ibus/Makefile.am
+M      src/ibusmessage.h
+M      src/ibuspendingcall.h
+
+commit c35651093e7e647c64dc2d54e870c4b8ddf6bc8b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-12 21:05:02 +0800
+
+    Fix gtk-doc problems.
+
+M      src/ibusattrlist.h
+M      src/ibusobject.h
+M      src/ibusproperty.h
+M      src/ibusproplist.h
+
+commit 07becd621cbf54bbc6faddf268a7d6e798ce6d69
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-12 20:27:11 +0800
+
+    Ignore some header files.
+
+M      docs/reference/ibus/Makefile.am
+M      docs/reference/ibus/ibus-docs.sgml
+
+commit 7e3e5d22c637de28cda17d8179b0c4edc80d93aa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-12 18:32:56 +0800
+
+    Separate IBusProperty and IBusPropList.
+
+M      src/Makefile.am
+M      src/ibus.h
+M      src/ibusengine.h
+M      src/ibusinputcontext.c
+M      src/ibuspanelservice.h
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+A      src/ibusproplist.c
+A      src/ibusproplist.h
+
+commit 6b1acacb23c8bef1fbf34197fb0fcb43774c03c0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-12 18:08:42 +0800
+
+    include ibusattrlist.h in ibus.h
+
+M      src/ibus.h
+
+commit 75c5ea98a9c67f616a8f252b8eff795ba18c7203
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-12 18:06:45 +0800
+
+    Separate IBusAttribute and IBusAttrList
+
+M      src/Makefile.am
+M      src/ibusattribute.c
+M      src/ibusattribute.h
+A      src/ibusattrlist.c
+A      src/ibusattrlist.h
+M      src/ibustext.h
+
+commit 7e7a45b333ae667e79647842d3e8c3e6412c33d7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-12 17:07:21 +0800
+
+    Remove Class IBusFactoryInfo
+
+M      docs/reference/ibus/ibus.types
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+
+commit 6de5677aec441c30f52a7b0cf3a573571145b8b4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-12 16:27:43 +0800
+
+    remove IBusFactoryInfo
+
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+
+commit 8c7c06ecc3932f048a4961a9cce401073e9ee0df
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-11 14:06:34 +0800
+
+    Fix string
+
+M      po/zh_CN.po
+
+commit 70d202a8fa75f3ae246435fe041664cc33623c2c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-11 13:26:19 +0800
+
+    Update pl.po by Piotr Drąg <piotrdrag@gmail.com>
+
+M      po/pl.po
+
+commit 1df86898b54fcacfa6a14039a3fe46b4cbef1631
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-10 05:31:40 +0800
+
+    Refine coding style
+
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+
+commit 1cbdea8d5f3183cc51c1d96e57ea9add4efcdfc3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-10 05:20:27 +0800
+
+    Try Cython
+
+M      ui/gtk/main.py
+
+commit 7f93fe7650a6721aaf8ccecf3803ca00bb7075ff
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-10 03:29:59 +0800
+
+    Update copyright.
+
+M      Makefile.am
+M      bindings/Makefile.am
+M      bindings/python/Makefile.am
+M      bus/Makefile.am
+M      bus/connection.c
+M      bus/connection.h
+M      bus/dbusimpl.c
+M      bus/dbusimpl.h
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/factoryproxy.c
+M      bus/factoryproxy.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/main.c
+M      bus/matchrule.c
+M      bus/matchrule.h
+M      bus/option.h
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+M      bus/registry.c
+M      bus/registry.h
+M      bus/server.c
+M      bus/server.h
+M      client/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+M      client/x11/Makefile.am
+M      client/x11/main.c
+M      configure.ac
+M      data/Makefile.am
+M      data/icons/Makefile.am
+M      data/keymaps/Makefile.am
+M      docs/Makefile.am
+M      docs/reference/Makefile.am
+M      gconf/Makefile.am
+M      ibus/Makefile.am
+M      ibus/__init__.py
+M      ibus/_config.py.in
+M      ibus/_gtk.py
+M      ibus/application.py
+M      ibus/attribute.py
+M      ibus/bus.py
+M      ibus/common.py
+M      ibus/component.py
+M      ibus/config.py
+M      ibus/engine.py
+M      ibus/enginedesc.py
+M      ibus/exception.py
+M      ibus/factory.py
+M      ibus/inputcontext.py
+M      ibus/interface/Makefile.am
+M      ibus/interface/__init__.py
+M      ibus/interface/iconfig.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+M      ibus/interface/iinputcontext.py
+M      ibus/interface/inotifications.py
+M      ibus/interface/ipanel.py
+M      ibus/lang.py
+M      ibus/lookuptable.py
+M      ibus/modifier.py
+M      ibus/notifications.py
+M      ibus/object.py
+M      ibus/observedpath.py
+M      ibus/panel.py
+M      ibus/property.py
+M      ibus/serializable.py
+M      ibus/text.py
+M      ibus/utility.py
+M      m4/Makefile.am
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/Makefile.am
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      setup/ibus-setup.in
+M      setup/icon.py
+M      setup/keyboardshortcut.py
+M      setup/main.py
+M      src/Makefile.am
+M      src/ibus.h
+M      src/ibusattribute.c
+M      src/ibusattribute.h
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusconfigprivate.h
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusdebug.h
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+M      src/ibuserror.c
+M      src/ibuserror.h
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibusinternal.h
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+M      src/ibuskeysyms-update.pl
+M      src/ibuskeysyms.h
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+M      src/ibusmainloop.c
+M      src/ibusmainloop.h
+M      src/ibusmessage.c
+M      src/ibusmessage.h
+M      src/ibusobject.c
+M      src/ibusobject.h
+M      src/ibusobservedpath.c
+M      src/ibusobservedpath.h
+M      src/ibuspendingcall.c
+M      src/ibuspendingcall.h
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+M      src/ibusserializable.c
+M      src/ibusserializable.h
+M      src/ibusserver.c
+M      src/ibusserver.h
+M      src/ibusservice.c
+M      src/ibusservice.h
+M      src/ibusshare.c
+M      src/ibusshare.h
+M      src/ibustext.c
+M      src/ibustext.h
+M      src/ibustypes.h
+M      src/ibusversion.h.in
+M      src/ibusxml.c
+M      src/ibusxml.h
+M      ui/Makefile.am
+M      ui/gtk/Makefile.am
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/engineabout.py
+M      ui/gtk/handle.py
+M      ui/gtk/ibus-ui-gtk.in
+M      ui/gtk/icon.py
+M      ui/gtk/languagebar.py
+M      ui/gtk/main.py
+M      ui/gtk/menu.py
+M      ui/gtk/notifications.py
+M      ui/gtk/panel.py
+M      ui/gtk/propitem.py
+M      ui/gtk/toolitem.py
+M      util/IMdkit/Makefile.am
+M      util/Makefile.am
+
+commit 344ed80466ddd0be3735bdcc5877cf703efb89c2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-09 18:04:14 +0800
+
+    Adjust pad to avoid break ABI
+
+M      src/ibusconfigservice.h
+
+commit d61d13cbc8ae7fba461cfde1bc7e256bf9c96c7f
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2010-01-07 18:06:48 +0900
+
+    Add IBusConfigService#unset().
+    
+    Add a new method unset() to IBusConfigService, which removes existing entry to
+    a configuration option.  This also adds ibus.Config.unset() to the Python API
+    and ibus_config_unset() to the C API.
+
+M      gconf/config.c
+M      ibus/config.py
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+
+commit 515fcdb8e57d493ea06ac97111165d5b607a9090
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-09 17:36:14 +0800
+
+    Do not store arguments in global vars.
+
+M      client/x11/main.c
+
+commit 6510918a09d502f9449288cc70fb20d892890396
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-09 17:12:56 +0800
+
+    Fix problems in XIM server.
+
+M      client/x11/main.c
+
+commit f5519ff8f096e470780e70bfe6fcd5d24ecc2d0c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-07 14:39:18 +0800
+
+    Add ibus_input_context_property_activate by Yusuke
+    <yusukes@chromium.org>
+
+M      bus/inputcontext.c
+M      src/ibusinputcontext.h
+
+commit 363e7f76183473943199575db128deaa12936a20
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-07 13:02:44 +0800
+
+    Only install signal handler for NORMAL, RADIO and TOGGLE
+
+M      ui/gtk/menu.py
+
+commit ab1267e1f2b3c578e513423d8370a120ed609521
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-07 12:51:00 +0800
+
+    Fix a typo.
+
+M      ui/gtk/menu.py
+
+commit 3bd1ea69cb0eb6fc730c2a0aebad05d483e4df26
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-07 12:25:04 +0800
+
+    Fix PROP_MENU problem. Patch from Fujiwara-san
+
+M      ui/gtk/menu.py
+
+commit b501b31efda5f925d40ae04f102b5e006e0fdecf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-05 15:50:23 +0800
+
+    Add ibus_engine_delete_surrounding_text in ibusengine.h
+
+M      src/ibusengine.h
+
+commit 71643e6f699ac4e60f41bd8e1739b4dea90ccd86
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-05 14:06:32 +0800
+
+    Use 5 scounds as default dbus reply timeout
+
+M      bus/main.c
+
+commit 066d8ae1246002d051c0015ed2b46478c3a9eeed
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 20:54:22 +0800
+
+    Do not update lookup table in recreate_ui
+
+M      ui/gtk/candidatepanel.py
+
+commit c637c6f4bcc9df92571f26580a225e23d0ab27ba
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 20:53:36 +0800
+
+    Refine code of update_lookup_table
+
+M      ui/gtk/candidatepanel.py
+
+commit fd001d559a7af08ac1da54daad6c3da48d90e86e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 20:47:59 +0800
+
+    Remove gproperties from CandidatePanel
+
+M      ui/gtk/candidatepanel.py
+
+commit 1b0f7f2093990ab829b826a4ab592856bac4770f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 19:28:27 +0800
+
+    Refine some code
+
+M      ibus/lookuptable.py
+
+commit 15bc382dd95e7bb4cee52b45022f5fb89c652d1f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 19:25:54 +0800
+
+    Use ibus.ORIENTATION_* in panel.py
+
+M      ui/gtk/panel.py
+
+commit 59106caf2ce397ab8f42278336a283eddfb3fcf7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 18:58:40 +0800
+
+    Remove some unused code.
+
+M      ui/gtk/candidatepanel.py
+
+commit acdc9fbefb6435678587674a5a0c83c227875447
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 16:46:05 +0800
+
+    Rename system_orientation to orientation, and use current_orientation
+
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/panel.py
+
+commit f094435f25e900d66f8a7ea6dea401eef5064bad
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 16:39:17 +0800
+
+    Use ibus.ORENTATION_*
+
+M      ui/gtk/candidatepanel.py
+
+commit 6814942030df916a425838d6d8169b2781dbca18
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2010-01-01 13:22:58 +0900
+
+    Apply CandidatePanel orientation change request from IME.
+    
+    This version also saves the system orientation setting for a later IME switch.
+
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/panel.py
+
+commit d8273edce75cf5a0b37b444efceef0ea5ac932ef
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 16:17:09 +0800
+
+    Fix bug in ibus_engine_update_lookup_table_fast.
+
+M      src/ibusengine.c
+
+commit 0531502772192aa442f2fd3fe2057797970bc197
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2010-01-01 16:16:37 +0800
+
+    Add getter and setter methods of orientation.
+
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+
+commit 4c97ef4ee02866c5b2fe44e5a5b15bd85cb9be97
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2009-12-31 15:04:51 +0900
+
+    Merge double-defined im_ibus_la_LIBADD.
+
+M      client/gtk2/Makefile.am
+
+commit 85ec75bba808580c6dd86f9a335eb7d910760d8c
+Author: Daiki Ueno <ueno@unixuser.org>
+Date:   2009-12-31 15:03:16 +0900
+
+    Set CFLAGS/LDADD for test-matchrule properly.
+
+M      bus/Makefile.am
+
+commit 205d07ca2928e798ad303daa59a0481674424eb8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-31 07:03:25 +0800
+
+    Fix typo.
+
+M      client/x11/main.c
+
+commit 1277dca5b68853712026b837c3ce257cd8f96861
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-30 10:19:51 +0800
+
+    Currect use of autotools: Use *_LIBADD and *_LDADD to replace some *_LDFLAGS.
+
+M      bus/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/x11/Makefile.am
+M      gconf/Makefile.am
+M      src/Makefile.am
+
+commit 84229373ed5ac6dbb132f6bd83260b6378437530
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-30 10:06:09 +0800
+
+    Fix _FORTIFY_SOURCE warnings, from galtgendo
+
+M      client/x11/main.c
+
+commit 89ff52ef5492bb1b767faf3c9eaac49913285322
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-27 18:34:07 +0800
+
+    Fix link errors in Ubuntu
+
+M      bus/Makefile.am
+M      client/x11/Makefile.am
+M      gconf/Makefile.am
+M      src/Makefile.am
+
+commit 3b140a91098560f569fe62b89895a9d5850a6845
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-27 09:53:27 +0800
+
+    Fix rpmlint warnings in spec file.
+
+M      ibus.spec.in
+
+commit 7182448378b644bfe12e778c71333975055322bd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-25 08:33:11 +0800
+
+    Catch KeyboardInterrupt Exception
+
+M      ui/gtk/main.py
+
+commit b0f395d7039bf29d87437b2d272ad67e486a3182
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-25 08:24:30 +0800
+
+    Change pinyin.xml to gtkpanel.xml
+
+M      ui/gtk/gtkpanel.xml.in.in
+
+commit f167b19216dd3845674155169ecc2eeaa41c0e75
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-24 17:19:51 +0800
+
+    Process engine method call correctly.
+
+M      src/ibusengine.c
+M      src/ibusinputcontext.c
+
+commit 252e0e4217cf81903bb121bb0af804d810c43cf4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-24 16:49:17 +0800
+
+    Fix coding style.
+
+M      ibus/enginedesc.py
+
+commit d00778b6842e24da83f590130bec5c55e97147ab
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-24 15:02:31 +0800
+
+    Fix some typos.
+
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      setup/main.py
+
+commit 043f6fe0b41e5c29d5e6bd7760ff2e301c00bf73
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-24 14:18:20 +0800
+
+    Sort engines in setup ui.
+
+M      ibus/enginedesc.py
+M      setup/enginecombobox.py
+M      src/ibusenginedesc.c
+
+commit ae0a66775f2ce27c4355739167aca1f4e3b9faa1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-24 14:05:14 +0800
+
+    Use 2 xpad in engine combobox
+
+M      setup/enginecombobox.py
+
+commit 94c9b7a07a9f6eab6c02376d614768391e008943
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-24 13:59:27 +0800
+
+    Fix coding style and remove useless line.
+
+M      setup/enginecombobox.py
+
+commit 1c02e76a0f5cca127fd34cad63aecce7b686e8c2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-24 10:42:23 +0800
+
+    Make some buttons disabled, when they are not useful.
+
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      setup/main.py
+M      setup/setup.ui
+
+commit d789a01a2c6cb13e088b1bf7ea04a530c42cd070
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-24 10:41:19 +0800
+
+    Update UI.
+
+M      setup/setup.ui
+
+commit 4ec2a988a6546a73b92c8c6eed7985e19d550ce2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-23 15:55:49 +0800
+
+    Do not init gthread if undefine G_THREADS_ENABLED.
+
+M      bus/main.c
+
+commit f580326150d486f9dd86961d1bcb80daa4612519
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-23 15:39:17 +0800
+
+    Poll engine changes in different thread.
+
+M      bus/Makefile.am
+M      bus/ibusimpl.c
+M      bus/main.c
+M      bus/registry.c
+M      bus/registry.h
+M      configure.ac
+
+commit d3f11c5b489b63d26a8cc9c6c4fb6dba9881e53a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-22 17:56:31 +0800
+
+    ibus will poll changes of engines, and show notification to user.
+
+M      bus/ibusimpl.c
+M      bus/main.c
+M      bus/registry.c
+M      bus/registry.h
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      ui/gtk/main.py
+
+commit ea664de646e5d1d24ecb4ba465279861f77bdafd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-20 18:40:42 +0800
+
+    Remove space before and after =
+
+M      xinput-ibus.in
+
+commit 69b0425825bce479cfb9923934f24c2e382231c8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-20 18:37:21 +0800
+
+    Fix build rpm errors.
+
+M      configure.ac
+D      xinput-ibus
+A      xinput-ibus.in
+
+commit 8b0d36cf4202b79d965095817c04354e069e25eb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-20 18:16:15 +0800
+
+    Fix build errors if ./configure is not executed in top src dir.
+
+M      bus/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/x11/Makefile.am
+M      docs/reference/ibus/Makefile.am
+M      gconf/Makefile.am
+
+commit d0d97b819cd64e4693bdac1124e15a2cc2c379f5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-17 07:35:09 +0800
+
+    Use bold style to display current engine in engine menu.
+
+M      ui/gtk/panel.py
+
+commit 5cfbb5077f51397d30b271946f81bb05dbf3f067
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-16 20:35:17 +0800
+
+    Do not use sub menu to list input methods.
+
+M      ui/gtk/panel.py
+
+commit d23e87402abe96659cd402cdfd8db9417a4c1a40
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-16 07:37:58 +0800
+
+    Update es.po from daniel cabrera <logan@fedoraproject.org>
+
+M      po/es.po
+
+commit f869a58793c4b760173e5423e60ee1982b9d893b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-15 17:16:39 +0800
+
+    Fix a problem in document
+
+M      src/ibusmessage.h
+
+commit fd395556c82b954d05029457f85e4640b65326d6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-14 17:16:06 +0800
+
+    Remove comment
+
+M      data/keymaps/kr
+
+commit f47f619901639955c6e084138925282e90f912d6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-14 17:13:37 +0800
+
+    Define hangul and hanja key
+
+M      data/keymaps/kr
+
+commit f20212a9c7444aa5835f542620352d04f44beaac
+Merge: 7645a2f abac005
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-14 16:41:37 +0800
+
+    Merge remote branch 'definite/master'
+
+commit abac005cc73683ecf638b33fb30ebaec4e6d82d1
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-12-14 18:11:03 +1000
+
+    Modify zh_TW.po
+    APIDOC:
+       new:
+         ibusenumtypes,ibuspanelservice
+         ibusshare, ibusservice,
+         ibus-type, ibus-version,
+         ibusxml
+       revised:
+         ibusconfig, ibusmessage, ibusoproxy, ibustext
+
+M      docs/reference/ibus/Makefile.am
+M      docs/reference/ibus/ibus-docs.sgml
+M      docs/reference/ibus/ibus.types
+M      po/zh_TW.po
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusenumtypes.h.template
+M      src/ibusmessage.h
+M      src/ibuspanelservice.h
+M      src/ibusproxy.h
+M      src/ibusservice.c
+M      src/ibusservice.h
+M      src/ibusshare.h
+M      src/ibustext.h
+M      src/ibusversion.h.in
+M      src/ibusxml.h
+
+commit 7645a2f493a84fd01c4e3ca394a0b4cb0272ffd9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-14 16:00:04 +0800
+
+    Fix some problems in document
+
+M      src/ibuslookuptable.h
+M      src/ibuspanelservice.h
+
+commit 34609d92c063f55c94cf9ac59af13825a97b5b5b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-14 15:14:51 +0800
+
+    Move specification from doc to docs
+
+D      doc/specification
+A      docs/specification
+
+commit 49524f3ee29c0560656ada984e49b0a9643c75d7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-13 13:12:16 +0800
+
+    Add a script for get keycode in Xorg
+
+A      data/keymaps/keycode.py
+
+commit e1313c472472757131bdcf3f00ccafbd5f7b2f4f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-13 12:56:06 +0800
+
+    Add kr keymap
+
+M      data/keymaps/Makefile.am
+A      data/keymaps/kr
+
+commit 3e84effb5930c75d2fe566cd8e6ff9f8d5933244
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-13 09:59:00 +0800
+
+    Remove qt immodule source code
+
+D      client/qt3/ibus-client.cpp
+D      client/qt3/ibus-client.h
+D      client/qt3/ibus-input-context.cpp
+D      client/qt3/ibus-input-context.h
+D      client/qt3/im-ibus-qt.cpp
+D      client/qt4/.gitignore
+D      client/qt4/Makefile.am
+D      client/qt4/ibus-client.cpp
+D      client/qt4/ibus-client.h
+D      client/qt4/ibus-input-context.cpp
+D      client/qt4/ibus-input-context.h
+D      client/qt4/ibus.pro
+D      client/qt4/im-ibus-qt.cpp
+M      configure.ac
+M      ibus.spec.in
+
+commit 1259c054ab4e1bd37b348d43325738de6b8bbdf2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-12 14:30:56 +0800
+
+    Add ibus.pot into gitignore
+
+M      po/.gitignore
+
+commit 7f7a29a70f3bff0a968fdefc94903e8a58418cf9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-12 14:29:21 +0800
+
+    Add property orientation of IBusLookupTable.
+
+M      ibus/common.py
+M      ibus/lookuptable.py
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+M      src/ibustypes.h
+
+commit 2effc2aa01d1dd99f736075c12b5de15d070e8bf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-12 13:34:57 +0800
+
+    Use g_assert to replace some g_return_
+
+M      src/ibusattribute.c
+M      src/ibusproperty.c
+
+commit 233d33874f8105a9656b235d6e3b07b76fcf7803
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-12 13:25:55 +0800
+
+    Use g_assert to replace some g_return_if_fail
+
+M      src/ibuslookuptable.c
+
+commit 485502020a18870fb83717d3ff45c499fadf2a57
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-12 13:23:49 +0800
+
+    Add setter and getter for IBusLookupTable->round
+
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+
+commit 52f4a8ee785ccd6a1e2e3eec72305d9b6f50af67
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-11 22:35:33 +0800
+
+    Update es.po from daniel cabrera <logan@fedoraproject.org>
+
+M      po/es.po
+
+commit 07f37d27a7f5a5d93f9d690e123592ff9fa37d90
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-11 20:47:15 +0800
+
+    Update as.po from Amitakhya Phukan <aphukan@fedoraproject.org>
+
+M      po/as.po
+
+commit 8f3bb8e840941448c03dbde0c7fa99f3b6f5be4a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-11 15:46:56 +0800
+
+    Use gettext replace locale
+
+M      ui/gtk/Makefile.am
+M      ui/gtk/ibus-ui-gtk.in
+M      ui/gtk/main.py
+
+commit 1e150708c942de094ca7d1582546b36ddcc17d05
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-11 15:29:59 +0800
+
+    Add ibus_lookup_table_get_number_of_candidates
+
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+
+commit 5c41d02dfa9b17457d0dc77ab31785cf0441d3bd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-11 15:29:45 +0800
+
+    Fix build error in bsd
+
+M      bus/main.c
+
+commit 4a950b9e63775beaa12f24d1cd3c43f8bbbf7f3b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-11 15:11:35 +0800
+
+    Fix typo.
+
+M      ibus/_config.py.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 6c2fb8c081d936d1bc2ceb26f2111fd7ec7b0de9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-10 20:15:16 +0800
+
+    Update kn.po from Shankar Prasad Venkateshbhat <svenkate@redhat.com>
+
+M      po/kn.po
+
+commit c27745189ba77a29be1cfff5a6ef848551c8d3d9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-10 16:31:18 +0800
+
+    Change file mode.
+
+M      debian/rules
+
+commit 36a7755099d3888105b1a156b82e3c40e66410fc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-10 16:30:36 +0800
+
+    Use correct GType to replace gint
+
+M      src/ibusconfigprivate.h
+
+commit ed0623375526ca560b93f273aeaae592c78054c8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-10 16:18:05 +0800
+
+    Remove ibus.pot file.
+
+D      po/ibus.pot
+
+commit 7b1954516aa7c048ef7914d3516b75b72810bbf2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-10 16:16:21 +0800
+
+    Touch ChangeLog in autogen.sh.
+
+M      autogen.sh
+
+commit 4a6b0fc71454c495be7480fb8016b5965d66fa35
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-10 15:24:38 +0800
+
+    Update te.po from Krishnababu Krothapalli <k.meetme@gmail.com>
+
+M      po/te.po
+
+commit f1053036156245887fd9e031d9d5427dd146ddb3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-10 07:54:49 +0800
+
+    Update de.po from Hedda Peters <hpeters@redhat.com>
+
+M      po/de.po
+
+commit f5be96a8ad885d38598ea95dd46d8e4f6b9c3b04
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-10 07:37:52 +0800
+
+    Update it.po from Francesco Valente <fvalen@redhat.com>
+
+M      po/it.po
+
+commit e400f03d84a17896d2ecb98fc6b88399ff808cff
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-09 21:52:44 +0800
+
+    Update mr.po from sandeep shedmake <sandeep.shedmake@gmail.com>
+
+M      po/mr.po
+
+commit 80de02f3825df95f2e85481a66531c8ca4f4b21b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-09 21:51:00 +0800
+
+    Fix build error for rpm
+
+M      src/Makefile.am
+
+commit cae9cf027e0b52411c3e27304a30b5826f7f523d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-09 21:47:09 +0800
+
+    Fix some warnings in ibus document
+
+M      src/ibusinputcontext.h
+M      src/ibuspanelservice.h
+
+commit 87523477c2ad6375ce6cb898fa74eb7f6592ace6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-09 21:33:07 +0800
+
+    Add document about IBUS_CAP_SURROUNDING_TEXT
+
+M      src/ibustypes.h
+
+commit 71286a807c8d0d2d9cd2808461ae332edbf9f8f0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-09 21:33:00 +0800
+
+    Fix build warning
+
+M      src/test-bus.c
+
+commit a872035ff00d05309b6b1545f7f62c521f53cabc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-09 19:29:08 +0800
+
+    Update ta.po from Felix <ifelix@redhat.com>
+
+M      po/ta.po
+
+commit 953551a3bd5ae8e9b6b83fcd06799944ff231cb2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-09 13:18:17 +0800
+
+    Update pa.po from Jaswinder Singh <jsingh@redhat.com>
+
+M      po/pa.po
+
+commit 057b75f8160e3a2ff840ea21fce0084758681850
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-09 06:44:46 +0800
+
+    Update vi.po Lê Quốc Tuấn <mr.lequoctuan@gmail.com>
+
+M      po/vi.po
+
+commit 83129254fac22bdb62037d34eea7386a5b5ccd33
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-08 17:29:14 +0800
+
+    Implemented some methods of IBusBus and IBusInputContext from yusukes@chromium.org
+
+M      src/Makefile.am
+M      src/ibusbus.c
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/test-bus.c
+
+commit 129c6d6d5c96a1c3beff1a3c1920a262186658b7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-08 16:11:57 +0800
+
+    Update hi.po from Rajesh Ranjan <rranjan@redhat.com>
+
+M      po/hi.po
+
+commit 31ab5a5fea9ab3bcf9801408ea48aa1a91b739ed
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-08 11:16:40 +0800
+
+    Update bn_IN.po from Runa Bhattacharjee <runab@redhat.com>
+
+M      po/bn_IN.po
+
+commit 80e2e6b89c00837437d0c19b9b6481cda53d4d5a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-07 19:07:55 +0800
+
+    Update gu.po from Sweta Kothari <swkothar@redhat.com>
+
+M      po/gu.po
+
+commit 08c2118064163dcacee738c903fb12df5a246469
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-07 06:51:42 +0800
+
+    Update po files.
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/it.po
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit c97856b3d6368f7029c9f1bd578af087dbaf99d2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-07 06:51:23 +0800
+
+    Update es.po from Domingo Becker <domingobecker@gmail.com>
+
+M      po/es.po
+
+commit cd492ae8be91a7dbb9e9d62ee10d2fe564545a82
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-07 06:49:40 +0800
+
+    Fix the typo.
+
+M      data/ibus.schemas.in
+
+commit 8b2fce304a55cb07da51bb0198abfb90fc010daa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-06 08:11:57 +0800
+
+    Avoid calling ibus_message_is_signal in loop.
+
+M      bus/engineproxy.c
+
+commit 1bafbd10fc15ba3a53a317a9899b139145ce29b4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-06 08:00:59 +0800
+
+    Refine code, and remove goto statements.
+
+M      src/ibusengine.c
+
+commit ce4873dd2c9349e0fa31efdbf3c113237fa21393
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 19:42:46 +0800
+
+    Do not use deprecated Tooltips
+
+M      po/ibus.pot
+M      po/zh_CN.po
+M      ui/gtk/candidatepanel.py
+
+commit 918d0b4dc706c230f42909a2410f1d646d57f3ef
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 19:31:31 +0800
+
+    Fix a typo.
+
+M      src/ibusinputcontext.c
+
+commit 837692d4a6d09c0142a5eedd20faf8fa7bc1f1a4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 19:22:22 +0800
+
+    Change lib version info back.
+
+M      configure.ac
+
+commit e643c74f5df52c7b51e3ba4f01801c78f4b038fc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 15:44:34 +0800
+
+    Use offset of member function in IBusPanelServiceClass.
+
+M      src/ibuspanelservice.c
+
+commit 01d50beafcbb2cf404c128c8478a1dbbc670f6ca
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 15:16:02 +0800
+
+    Add panel class from Satoru
+
+M      src/Makefile.am
+A      src/ibuspanelservice.c
+A      src/ibuspanelservice.h
+
+commit 8c29821f9fea969f1979406221ad42d43baa4b2d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 18:30:44 +0800
+
+    Remove some goto statement
+
+M      src/ibusconnection.c
+M      src/ibusengine.c
+M      src/ibusinputcontext.c
+M      src/ibusxml.c
+
+commit 348b8c98eb7e509549c7d012bd221f6b01d5f1af
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 17:17:33 +0800
+
+    Adjust the condition test order to get better performance
+
+M      src/ibusengine.c
+M      src/ibusinputcontext.c
+
+commit b3d54e82d4bca1420cbcae20dc8a15844655b0c0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 17:08:03 +0800
+
+    Avoid using ibus_message_is in loop to get better performance.
+
+M      src/ibusengine.c
+M      src/ibusinputcontext.c
+
+commit 51a6ff5d19e1639592e2b41fdbb0da749502e660
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 16:55:31 +0800
+
+    Fix typo
+
+M      src/ibusmessage.h
+
+commit b57aac8eb2157a3720c36f9a2de81409c6d234ca
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 12:21:28 +0800
+
+    Add age of lib version
+
+M      configure.ac
+
+commit 89521b240ca3ff519488fbcb0c4f04c7d3ea83c1
+Merge: 7a9f000 c57f7dd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 12:15:00 +0800
+
+    Merge remote branch 'hindlemail/master'
+
+commit c57f7dd9dc06512ac3ab1a6792afe1e0c294dca2
+Author: tom hindle <hindlemail@gmail.com>
+Date:   2009-12-04 18:38:48 -0700
+
+    Added python client code for CurrentInputContext method
+
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+
+commit 33a07df73f4cdf48cd4b979c4ef2333554466bd4
+Author: tom hindle <hindlemail@gmail.com>
+Date:   2009-12-04 18:38:41 -0700
+
+    Added c client side code for CurrentInputContext method
+
+M      src/ibusbus.c
+M      src/ibusbus.h
+
+commit 1c10d9fca8759495c7d6b6e1b2630a6fdee3d6ce
+Author: tom hindle <hindlemail@gmail.com>
+Date:   2009-12-04 18:38:20 -0700
+
+    Added CurrentInputContext method
+
+M      bus/ibusimpl.c
+
+commit 7a9f000aa6b4d8677179a17b1a61ccc94d9d1808
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-05 08:42:28 +0800
+
+    Update fr.po from Julroy67
+
+M      po/fr.po
+
+commit 6ff956dc491cec33d0059ad16f93671a6c0c6222
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-04 23:05:19 +0800
+
+    Refine coding style.
+
+M      src/ibusengine.c
+
+commit 97ff497f1a40f2d7b3d63a0fc8c87019b90ae6b8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-04 15:52:57 +0800
+
+    Move panel into the screen if the screen become small.
+
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+
+commit d2792de2f01bae5bf380dba02636d73cc967f3e1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-04 11:27:39 +0800
+
+    Fix problem with forward key event
+
+M      client/x11/main.c
+
+commit 0dbc1252cd6e723cad776a5d76861c08d4ba2133
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-04 11:24:24 +0800
+
+    Add it.po from Milo Casagrande <milo@ubuntu.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/it.po
+
+commit bbd1d1d8573ac14bc73b4a0df639f71aae066bae
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-12-04 10:28:21 +0800
+
+    Add delete surrounding text feature.
+    Fix forward key event.
+    Developed by Doug Rintoul <courtjestr@gmail.com>
+    Thanks for Doug Rintoul
+
+M      bus/engineproxy.c
+M      bus/inputcontext.c
+M      client/gtk2/ibusimcontext.c
+M      client/x11/main.c
+M      src/ibusengine.c
+M      src/ibusinputcontext.c
+M      src/ibusmarshalers.list
+M      src/ibustypes.h
+
+commit 80946b75ffa111de77d6c83d70373296bbce77f0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-30 10:34:43 +0800
+
+    Remove tooltip for AuxString
+
+M      ui/gtk/candidatepanel.py
+
+commit 0cee090020bb71156a11d8f8f85514de30ea9734
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-29 22:51:51 +0800
+
+    Return correct address in _ibus_get_address
+
+M      bus/ibusimpl.c
+
+commit 4294a7a6351cb0b3ca7ce97d14da68ebda93f9fb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-29 22:43:31 +0800
+
+    Remove unused code.
+
+M      src/ibusbus.c
+
+commit 819199427fecd2c03557b36404d3fe63ce2ad8d5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-28 15:45:50 +0800
+
+    Update translate msgs
+
+M      data/ibus.schemas.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 89a1e54e0761d7d4d0bb5c3ac3dd6c6893ab2c68
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-28 15:38:41 +0800
+
+    Remember panel position
+
+M      data/ibus.schemas.in
+M      setup/main.py
+M      setup/setup.ui
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+
+commit 234e7f3768e8f4e8252bcf473fc199af971f0b9d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-27 16:45:58 +0800
+
+    Update ja.po by Fujiwarat
+
+M      po/ja.po
+
+commit a1508b9d78311e9cf23bcdf07b00441186030864
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-25 12:49:24 +0800
+
+    Do not set engine if focus_ic is None
+
+M      ui/gtk/panel.py
+
+commit 4d66a8cb4c8b2462cb9621401454d7b7369b758c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-24 11:10:57 +0800
+
+    Adjust some code order.
+
+M      src/ibusconnection.c
+
+commit a3098789ff716ccc0c4b6c6211492ff586066158
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-24 11:06:06 +0800
+
+    Do not crash when bus is disconnected.
+
+M      src/ibusbus.c
+
+commit cfcc63c927502501b069ca8a0556c636e61a5598
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-24 10:56:03 +0800
+
+    Do not abort when connection is closed.
+
+M      src/ibusconnection.c
+
+commit d8541c58f5564f7f766ade13f6366de3017707d6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-16 15:18:40 +1000
+
+    Update te.po from Krishnababu Krothapalli
+
+M      po/te.po
+
+commit d8c129b99a8d459765a120c30b79906610aa21c9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-16 15:17:31 +1000
+
+    Update hi.po from Rajesh Ranjan
+
+M      po/hi.po
+
+commit c9584c322f56cff832050d3c1ff04839ec1dfbdd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-16 15:16:27 +1000
+
+    Update or.po from Manoj Giri
+
+M      po/or.po
+
+commit d53ceb0123e158849f57a3c181853a2387877665
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-16 15:14:57 +1000
+
+    Update ta.po by Felix
+
+M      po/ta.po
+
+commit 2fcf990fd447a9cb9a7a1a5b49d1365f8e8142bb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-12 18:17:29 +1000
+
+    Fix compile error.
+
+M      src/ibusbus.c
+
+commit 5b358d8f1ddf425278706171d321b5dc2a5f8e94
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-12 14:31:09 +1000
+
+    Check CREATED event
+
+M      src/ibusbus.c
+
+commit 0058d0f6a91b78845b3a9831b74a7fd2050a5ccf
+Merge: 4b2c6ed d494b47
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-11-12 08:38:08 +1000
+
+    Merge remote branch 'XueWei/master'
+
+commit d494b47eea331b8bc06c03dd06be24adb72149ce
+Author: william <william@opensolaris.(none)>
+Date:   2009-11-12 00:08:26 +0800
+
+    Fixed on Solaris cannot re-connect after ibus-daemon restart.
+
+M      src/ibusbus.c
+
+commit 4b2c6ed7c52e24f019e9ea6167c0d570be781c65
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-25 07:44:01 +0800
+
+    Update es.po from Domingo Becker
+
+M      po/es.po
+
+commit 29a2503e4b47f41e4596fbc2124d425f789ca368
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-24 11:23:29 +0800
+
+    Fix problem in POTFILES.in
+
+M      po/POTFILES.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 1da3d970c145e4b10059346754851afcacb5d10d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-24 11:16:29 +0800
+
+    Add mkinstalldirs in .gitingore
+
+M      .gitignore
+
+commit 67939f0b1d678bcbbeaf510b0f8d368f438b11b9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-24 07:30:07 +0800
+
+    Update pl.po from Piotr Drąg
+
+M      po/pl.po
+
+commit 2a2566b68d671469e7291306185c9ef1180ff139
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-23 15:58:14 +0800
+
+    Modify copying information
+
+M      AUTHORS
+M      README
+M      client/qt4/ibus.pro
+M      configure.ac
+M      doc/specification
+M      ibus/_config.py.in
+M      po/Makevars
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/ibus-setup.in
+M      src/ibuskeysyms-update.pl
+M      src/ibusversion.h.in
+M      ui/gtk/ibus-ui-gtk.in
+
+commit 8b2b2613e13258d7535bf09e818aebe9361ba52b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-23 14:42:16 +0800
+
+    Add Copying for Red Hat
+
+M      Makefile.am
+M      bindings/Makefile.am
+M      bindings/python/Makefile.am
+M      bus/Makefile.am
+M      bus/connection.c
+M      bus/connection.h
+M      bus/dbusimpl.c
+M      bus/dbusimpl.h
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/factoryproxy.c
+M      bus/factoryproxy.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/main.c
+M      bus/matchrule.c
+M      bus/matchrule.h
+M      bus/option.h
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+M      bus/registry.c
+M      bus/registry.h
+M      bus/server.c
+M      bus/server.h
+M      client/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+M      client/qt4/Makefile.am
+M      client/qt4/ibus-client.cpp
+M      client/qt4/ibus-client.h
+M      client/qt4/ibus-input-context.cpp
+M      client/qt4/ibus-input-context.h
+M      client/qt4/im-ibus-qt.cpp
+M      client/x11/Makefile.am
+M      client/x11/gdk-private.c
+M      client/x11/gdk-private.h
+M      client/x11/main.c
+M      data/Makefile.am
+M      data/icons/Makefile.am
+M      data/keymaps/Makefile.am
+M      docs/Makefile.am
+M      docs/reference/Makefile.am
+M      gconf/Makefile.am
+M      ibus/Makefile.am
+M      ibus/__init__.py
+M      ibus/_config.py.in
+M      ibus/_gtk.py
+M      ibus/application.py
+M      ibus/attribute.py
+M      ibus/bus.py
+M      ibus/common.py
+M      ibus/component.py
+M      ibus/config.py
+M      ibus/engine.py
+M      ibus/enginedesc.py
+M      ibus/exception.py
+M      ibus/factory.py
+M      ibus/inputcontext.py
+M      ibus/interface/Makefile.am
+M      ibus/interface/__init__.py
+M      ibus/interface/iconfig.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+M      ibus/interface/iinputcontext.py
+M      ibus/interface/inotifications.py
+M      ibus/interface/ipanel.py
+M      ibus/lang.py
+M      ibus/lookuptable.py
+M      ibus/modifier.py
+M      ibus/notifications.py
+M      ibus/object.py
+M      ibus/observedpath.py
+M      ibus/panel.py
+M      ibus/property.py
+M      ibus/serializable.py
+M      ibus/text.py
+M      ibus/utility.py
+M      m4/Makefile.am
+M      setup/Makefile.am
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      setup/icon.py
+M      setup/keyboardshortcut.py
+M      setup/main.py
+M      src/Makefile.am
+M      src/ibus.h
+M      src/ibusattribute.c
+M      src/ibusattribute.h
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusconfigprivate.h
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusdebug.h
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+M      src/ibuserror.c
+M      src/ibuserror.h
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibusinternal.h
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+M      src/ibuskeysyms.h
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+M      src/ibusmainloop.c
+M      src/ibusmainloop.h
+M      src/ibusmessage.c
+M      src/ibusmessage.h
+M      src/ibusobject.c
+M      src/ibusobject.h
+M      src/ibusobservedpath.c
+M      src/ibusobservedpath.h
+M      src/ibuspendingcall.c
+M      src/ibuspendingcall.h
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+M      src/ibusserializable.c
+M      src/ibusserializable.h
+M      src/ibusserver.c
+M      src/ibusserver.h
+M      src/ibusservice.c
+M      src/ibusservice.h
+M      src/ibusshare.c
+M      src/ibusshare.h
+M      src/ibustext.c
+M      src/ibustext.h
+M      src/ibustypes.h
+M      src/ibusxml.c
+M      src/ibusxml.h
+M      ui/Makefile.am
+M      ui/gtk/Makefile.am
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/engineabout.py
+M      ui/gtk/handle.py
+M      ui/gtk/icon.py
+M      ui/gtk/languagebar.py
+M      ui/gtk/main.py
+M      ui/gtk/menu.py
+M      ui/gtk/notifications.py
+M      ui/gtk/panel.py
+M      ui/gtk/propitem.py
+M      ui/gtk/toolitem.py
+M      util/IMdkit/Makefile.am
+M      util/Makefile.am
+
+commit 95493e7c2a24898d5eaafd9c5cb2177afb2fec29
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-23 14:17:30 +0800
+
+    Change file header
+
+M      Makefile.am
+M      bindings/Makefile.am
+M      bindings/python/Makefile.am
+M      bus/Makefile.am
+M      bus/connection.c
+M      bus/connection.h
+M      bus/dbusimpl.c
+M      bus/dbusimpl.h
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/factoryproxy.c
+M      bus/factoryproxy.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/main.c
+M      bus/matchrule.c
+M      bus/matchrule.h
+M      bus/option.h
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+M      bus/registry.c
+M      bus/registry.h
+M      bus/server.c
+M      bus/server.h
+M      client/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+M      client/qt4/Makefile.am
+M      client/qt4/ibus-client.cpp
+M      client/qt4/ibus-client.h
+M      client/qt4/ibus-input-context.cpp
+M      client/qt4/ibus-input-context.h
+M      client/qt4/im-ibus-qt.cpp
+M      client/x11/Makefile.am
+M      client/x11/gdk-private.c
+M      client/x11/gdk-private.h
+M      client/x11/main.c
+M      data/Makefile.am
+M      data/icons/Makefile.am
+M      data/keymaps/Makefile.am
+M      docs/Makefile.am
+M      docs/reference/Makefile.am
+M      gconf/Makefile.am
+M      ibus/Makefile.am
+M      ibus/__init__.py
+M      ibus/_config.py.in
+M      ibus/_gtk.py
+M      ibus/application.py
+M      ibus/attribute.py
+M      ibus/bus.py
+M      ibus/common.py
+M      ibus/component.py
+M      ibus/config.py
+M      ibus/engine.py
+M      ibus/enginedesc.py
+M      ibus/exception.py
+M      ibus/factory.py
+M      ibus/inputcontext.py
+M      ibus/interface/Makefile.am
+M      ibus/interface/__init__.py
+M      ibus/interface/iconfig.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+M      ibus/interface/iinputcontext.py
+M      ibus/interface/inotifications.py
+M      ibus/interface/ipanel.py
+M      ibus/lang.py
+M      ibus/lookuptable.py
+M      ibus/modifier.py
+M      ibus/notifications.py
+M      ibus/object.py
+M      ibus/observedpath.py
+M      ibus/panel.py
+M      ibus/property.py
+M      ibus/serializable.py
+M      ibus/text.py
+M      ibus/utility.py
+M      m4/Makefile.am
+M      po/POTFILES.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/Makefile.am
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      setup/icon.py
+M      setup/keyboardshortcut.py
+M      setup/main.py
+M      src/Makefile.am
+M      src/ibus.h
+M      src/ibusattribute.c
+M      src/ibusattribute.h
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusconfigprivate.h
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusdebug.h
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+M      src/ibuserror.c
+M      src/ibuserror.h
+M      src/ibusfactory.c
+M      src/ibusfactory.h
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibusinternal.h
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+M      src/ibuskeysyms.h
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+M      src/ibusmainloop.c
+M      src/ibusmainloop.h
+M      src/ibusmessage.c
+M      src/ibusmessage.h
+M      src/ibusobject.c
+M      src/ibusobject.h
+M      src/ibusobservedpath.c
+M      src/ibusobservedpath.h
+M      src/ibuspendingcall.c
+M      src/ibuspendingcall.h
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+M      src/ibusserializable.c
+M      src/ibusserializable.h
+M      src/ibusserver.c
+M      src/ibusserver.h
+M      src/ibusservice.c
+M      src/ibusservice.h
+M      src/ibusshare.c
+M      src/ibusshare.h
+M      src/ibustext.c
+M      src/ibustext.h
+M      src/ibustypes.h
+M      src/ibusxml.c
+M      src/ibusxml.h
+M      ui/Makefile.am
+M      ui/gtk/Makefile.am
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/engineabout.py
+M      ui/gtk/handle.py
+M      ui/gtk/icon.py
+M      ui/gtk/languagebar.py
+M      ui/gtk/main.py
+M      ui/gtk/menu.py
+M      ui/gtk/notifications.py
+M      ui/gtk/panel.py
+M      ui/gtk/propitem.py
+M      ui/gtk/toolitem.py
+M      util/IMdkit/Makefile.am
+M      util/Makefile.am
+
+commit 921b29ef089c8cb9fb3fc60b8177ba479e0fb174
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-20 14:45:28 +0800
+
+    Update es.po by Domingo Becker <domingobecker@gmail.com>
+
+M      po/es.po
+
+commit 50ad31397479119c02fce6892cd7cb6a6de06531
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-16 07:58:48 +0800
+
+    Change tooltip of shortcut keys.
+
+M      setup/main.py
+
+commit 916f2eb94c56d9f699578a2630b4e20c1b3843fb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-16 07:22:55 +0800
+
+    Update some English strings.
+
+M      data/ibus.schemas.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/setup.ui
+
+commit c592ccade047fe82e149399132bd70e7fc05f8f3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-15 07:08:23 +0800
+
+    Update es.po from daniel cabrera <h.daniel.cabrera@gmail.com>
+
+M      po/es.po
+
+commit dfa70649d00084de5cbb29a1613817d9cb5bbcbc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-14 14:12:33 +0800
+
+    Update ru.po from Alexey Kotlyarov
+
+M      po/ru.po
+
+commit a3a2bc47fb1da462f4df17b9c7bb4c311f832483
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-14 13:11:38 +0800
+
+    Update po files.
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/ru.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 3b8770ec863615b67d410abc34e379f0b44de259
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-14 13:11:21 +0800
+
+    Update some descriptions text
+
+M      data/ibus.schemas.in
+M      setup/setup.ui
+
+commit 36c6dc76bd83eb4c2fa7f39f00d486a03aeca9f5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-14 10:59:16 +0800
+
+    Fix show icon on systray option
+
+M      setup/main.py
+
+commit fe6bb742651bc50bae0c26dd80073d0442bd4042
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-14 09:32:41 +0800
+
+    Update ja.po
+
+M      po/ja.po
+
+commit e3955616b1fb15152478dc99a8b81c6b9b345212
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-14 09:26:18 +0800
+
+    Update fr.po from julroy67
+
+M      po/fr.po
+
+commit 3de9055a53185309885ede71824677fc78fa3aee
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-13 14:15:57 +0800
+
+    Dont need set "" to icon anymore.
+
+M      src/ibusproperty.c
+
+commit 18d497a03d58b694f5713be41dc8cdef705a0326
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-13 14:11:46 +0800
+
+    Do not crash if append NULL string to IBusMessage.
+
+M      src/ibusenginedesc.c
+M      src/ibusmessage.c
+
+commit 563b82f8ea37bbcda78d40701dec667137e3c234
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-13 10:22:06 +0800
+
+    Update some icons.
+
+A      data/icons/16/ibus-keyboard.png
+D      data/icons/16/ibus-off.png
+A      data/icons/22/ibus-keyboard.png
+D      data/icons/22/ibus-off.png
+A      data/icons/24/ibus-keyboard.png
+D      data/icons/24/ibus-off.png
+A      data/icons/32/ibus-keyboard.png
+D      data/icons/32/ibus-off.png
+A      data/icons/48/ibus-keyboard.png
+D      data/icons/48/ibus-off.png
+M      data/icons/Makefile.am
+D      data/icons/ibus-engine.svg
+D      data/icons/ibus-off.svg
+D      data/icons/ibus-setup.svg
+D      data/icons/ibus.svg
+A      data/icons/scalable/ibus-engine.svg
+A      data/icons/scalable/ibus-keyboard.svg
+D      data/icons/scalable/ibus-off.svg
+A      data/icons/scalable/ibus-setup.svg
+A      data/icons/scalable/ibus.svg
+M      ibus.spec.in
+M      setup/setup.ui
+M      ui/gtk/panel.py
+
+commit 9c81b2d7974a135075aa9be4d5dcdb49bc9bbb4f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-13 10:03:34 +0800
+
+    Update some icons.
+
+M      data/icons/ibus-engine.svg
+M      data/icons/ibus-setup.svg
+
+commit e00cf06ca3248478b6b98bc24edea695d3c38e2b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-13 08:30:29 +0800
+
+    Update po files
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 9d6faacab96ec30678556ddc7a8670306855b09d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-13 08:30:17 +0800
+
+    Add ru.po from koterpillar
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/ru.po
+
+commit 289c8fd7480c05eac28cc806099202676f461d55
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 16:06:21 +0800
+
+    Use ibus-engine as default icon for engine
+
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+M      ui/gtk/engineabout.py
+
+commit ecc591e78defcf65b7ec073c3c2f2d10ff7f10b6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 16:01:49 +0800
+
+    Update ibus-engine.svg
+
+M      data/icons/ibus-engine.svg
+
+commit 4d50b88437ab9f503724f8278c7fc08e2077ee94
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 15:57:49 +0800
+
+    Update ibus-setup.svg
+
+T      data/icons/ibus-setup.svg
+
+commit 520ece79238373d87480cd15bafdde2568a44b6e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 13:48:59 +0800
+
+    Remove unused code.
+
+M      setup/main.py
+
+commit 7aef3c3efb2653af2ecc93f8350f9c5c95e92ac7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 13:47:33 +0800
+
+    Remove setup.glade
+
+M      setup/Makefile.am
+D      setup/setup.glade
+
+commit 2806c626f47bd15c4cf8168166d66aa9d2f86a61
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 13:44:33 +0800
+
+    Use gnome-autogen.sh
+
+M      autogen.sh
+M      configure.ac
+M      src/Makefile.am
+
+commit 9c98bfc23772bd92388c94c23f3ee90c0e4dd82a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 13:37:04 +0800
+
+    Update po files.
+
+M      po/POTFILES.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit 1a6b0f4b13b055571a54daa6c3fd121f534011bf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 11:34:30 +0800
+
+    Fix some problems.
+
+M      setup/main.py
+M      setup/setup.ui
+
+commit 5c64d26273fae00360347e9da1efa486396be1f8
+Author: Xingshen Luo <luoxsbupt@gmail.com>
+Date:   2009-10-10 11:29:35 +0800
+
+    migrate from libglade to libgtkbuilder
+
+M      setup/main.py
+A      setup/setup.ui
+
+commit c8f1385638e66e7c96fce82988ee1dd7995efde8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 07:53:47 +0800
+
+    Change .ibus to ibus
+
+M      bus/registry.c
+
+commit 0cecc08f0dc547f1431d0e1d4efe2fbb66d1f672
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 07:47:01 +0800
+
+    use XDG floder.
+
+M      bus/registry.c
+
+commit 7366591b9673450315efc97d1b5000a2628137ea
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-10 07:23:54 +0800
+
+    Move all tmp file to ~/.config/ibus
+
+M      src/ibusshare.c
+
+commit 797248a19b88833fe00a46a0c8c926a15df093c5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-09 19:30:10 +0800
+
+    Update zh_CN.po
+
+M      po/zh_CN.po
+
+commit 8dd8a11667e1dd5e2c1f821a70fb3c6d99f8c784
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-09 07:35:00 +0800
+
+    Add option to show/hide icon on system tray
+
+M      data/ibus.schemas.in
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ko.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/main.py
+M      setup/setup.glade
+M      ui/gtk/panel.py
+
+commit ee8685e8b7c71a7b3fc3551e0590d9d0835e64a1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-04 08:03:02 +0800
+
+    Put all files in $(HOME)/.ibus
+
+M      bus/registry.c
+M      src/ibusshare.c
+
+commit 55971a86028f3d3856cac8508db9b88a9502dc1f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-04 07:19:15 +0800
+
+    Update pl.po from Piotr Drąg <piotrdrag@gmail.com>
+
+M      po/pl.po
+
+commit 9df6be63e0aa76867ce81b5e383d23b737167709
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-03 10:12:46 +0800
+
+    Use 2 second as default timeout
+
+M      bus/main.c
+
+commit 8d630d2c1725264056adf0a07683cff5035536ad
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-03 10:11:59 +0800
+
+    Add --timeout option.
+
+M      bus/Makefile.am
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+M      bus/ibusimpl.c
+M      bus/main.c
+A      bus/option.h
+M      bus/registry.c
+
+commit 90bd8060ecb83a86dccc8662389736e12563cbe0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-10-03 06:54:44 +0800
+
+    Build rpm in subfolder
+
+M      .gitignore
+M      Makefile.am
+
+commit ad718c65b5088308036baf50079ef8c753f3abdc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-30 13:38:58 +0800
+
+    Restore ibus.pot
+
+A      po/ibus.pot
+
+commit fd1fe90c0d71f5e721efbf69a6630542afc9176c
+Author: Peng Huang <phuang@phuang-laptop.(none)>
+Date:   2009-09-30 13:36:19 +0800
+
+    Update debian packaging scripts from ubuntu
+
+D      debian/README.Debian
+M      debian/changelog
+A      debian/clean
+M      debian/compat
+M      debian/control
+M      debian/copyright
+D      debian/cron.d.ex
+D      debian/dirs
+M      debian/docs
+D      debian/emacsen-install.ex
+D      debian/emacsen-remove.ex
+D      debian/emacsen-startup.ex
+A      debian/ibus-daemon.1
+D      debian/ibus-default.ex
+A      debian/ibus-gconf.1
+A      debian/ibus-gtk.install
+A      debian/ibus-setup.1
+A      debian/ibus-ui-gtk.1
+A      debian/ibus-x11.1
+A      debian/ibus.1
+D      debian/ibus.doc-base.EX
+A      debian/ibus.install
+A      debian/ibus.manpages
+A      debian/ibus.postinst
+A      debian/ibus.prerm
+D      debian/im-switch/ibus
+D      debian/init.d.ex
+D      debian/init.d.lsb.ex
+A      debian/libibus-dev.install
+A      debian/libibus1.install
+A      debian/libibus1.symbols
+D      debian/manpage.1.ex
+D      debian/manpage.sgml.ex
+D      debian/manpage.xml.ex
+D      debian/menu.ex
+D      debian/postinst
+D      debian/postinst.ex
+D      debian/postrm.ex
+D      debian/preinst.ex
+D      debian/prerm
+D      debian/prerm.ex
+A      debian/python-ibus.install
+A      debian/pyversions
+M      debian/rules
+A      debian/watch
+D      debian/watch.ex
+A      debian/xinput/ibus
+D      po/ibus.pot
+
+commit 9c96cfcd5c94125cc2ff84830748bec876dd11cb
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-09-28 09:47:48 +1000
+
+    Update zh_TW.po
+
+M      po/zh_TW.po
+
+commit 08289ea083a0793ce7818b27ae2910e704d80ccc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-16 15:33:24 +0800
+
+    Restore ibus.pot
+
+A      po/ibus.pot
+
+commit c03249bd8ac36b542ab93fd767a6e7bc9d2359d5
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-08-31 18:09:49 +1000
+
+    Modify APIDOC chapters.
+    APIDOC IBusServer
+
+D      po/ibus.pot
+
+commit c51a34c296b23e8a2607c056ee0d046fd3269d78
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-27 15:06:00 +0800
+
+    Update zh_TW.po
+
+M      po/zh_TW.po
+
+commit a2a5aa15bd38dd7d0ab43c9e4b464861977074a9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-27 13:33:49 +0800
+
+    Write empty string instead "(null) in xml.
+
+M      src/ibusenginedesc.c
+
+commit dbe90576e6980b05c8777c79719c2c80c96cd9b3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-25 14:17:53 +0800
+
+    Update pa.po from A S Alam <apreet.alam@gmail.com>
+
+M      po/pa.po
+
+commit 1674211fc8b5fe8ec3ecebf20d89c0ca3fba5f99
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-24 15:45:53 +0800
+
+    Update zh_CN.po
+
+M      po/zh_CN.po
+
+commit 8b97e9ecbad917af69fd4f70af7ad305d44e48ee
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-22 13:01:42 +0800
+
+    Fix restart problem in Unix
+
+M      bus/Makefile.am
+M      bus/ibusimpl.c
+
+commit 68206ef43cd0e7b7b441821bacf85da4774bb0d5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-20 07:54:25 +0800
+
+    Update ca.po by Xavi Conde <xavi.conde@gmail.com>
+
+M      po/ca.po
+
+commit a58dbb8b6ef693a086006a797c569571dfa61b9d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-19 15:17:35 +0800
+
+    Update one string.
+
+M      po/zh_CN.po
+
+commit 8e465a32567bc16eae33e56fbd75f8bb41d037d8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-16 16:09:45 +0800
+
+    Supports G_TYPE_LONG and G_TYPE_ULONG in ibus_message_iter_get
+
+M      src/ibusmessage.c
+
+commit d922542114b11a2489967e34ceb66a610e43b453
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-16 15:33:24 +0800
+
+    Restore ibus.pot
+
+A      po/ibus.pot
+
+commit bbc1f736a4ab818b45e2c3a19d45f100d3e45802
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-09-15 17:55:39 +1000
+
+    Correct keymaps/commons: Add KP_Decimal and KP_Divide
+
+M      data/keymaps/common
+
+commit cf28ece8b12de5fe3acf673a7f9a7a5f8b313fae
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-08-31 18:09:49 +1000
+
+    Modify APIDOC chapters.
+    APIDOC IBusServer
+
+M      docs/reference/ibus/ibus-docs.sgml
+D      po/ibus.pot
+M      src/ibusmainloop.h
+M      src/ibusserver.c
+M      src/ibusserver.h
+
+commit c2157aceb20024b61b22cd27691432ce3925f7a7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-12 17:49:37 +0800
+
+    Add error underline.
+
+M      ibus/attribute.py
+M      src/ibusattribute.h
+
+commit b559c801479bab0baf3586e3c78bc47f58624526
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-12 12:53:09 +0800
+
+    Update test_client.py
+
+M      ibus/inputcontext.py
+M      test/test_client.py
+
+commit fa348d0a4691ede253d3a203e20498d7bcb973b8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-11 11:41:20 +0800
+
+    Use GInitiallyUnowned as super parent
+
+M      src/ibusobject.c
+M      src/ibusobject.h
+
+commit 186e0ba948f3070ca52a7ab1eca13331e1c5a8c9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-11 06:31:28 +0800
+
+    Add ko.po by Eun Ju Kim <eukim@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/ko.po
+
+commit 3f570085e9e8cecc74341d47ad07f27569d19290
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-10 16:40:59 +0800
+
+    Rix memory leak in toolitem.py
+
+M      ui/gtk/toolitem.py
+
+commit 36cc87ec7c896708c3cc67dc3573f043a54fa2e4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-10 09:09:37 +0800
+
+    Update te.po by Krishnababu Krothapalli <k.meetme@gmail.com>
+
+M      po/te.po
+
+commit ee19dd0b9a1ea9d11c936796f8f9f5dc4b47eaac
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-09 14:52:35 +0800
+
+    Use system layout setting by default.
+
+M      data/ibus.schemas.in
+
+commit b7d9d063ec5ff9b161f13628a649f304db469364
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-09 14:44:31 +0800
+
+    Use defualt icon for some engine without icon
+
+M      ui/gtk/engineabout.py
+
+commit 9331a2a452f5ed2026f9e704c0edd52e952c2649
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-09 07:12:16 +0800
+
+    Update bn_IN.po by Runa Bhattacharjee <runab@redhat.com>
+
+M      po/bn_IN.po
+
+commit 464e3736a0211ea6fe0709b4d7550d2008bd6709
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-08 17:32:16 +0800
+
+    Update ja.po
+
+M      po/ja.po
+
+commit bfd5227bbc987c348a122b5ef2774f81d649c2e3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-08 16:59:34 +0800
+
+    Update ja.po by Fujiwarat
+
+M      po/ja.po
+
+commit 5bb8423124c09f023feb21a200235b97aab21d85
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-07 19:34:53 +0800
+
+    Update kn.po Shankar Prasad Venkateshbhat <svenkate@redhat.com>
+
+M      po/kn.po
+
+commit 194441146c603f530e4d4523b9944afd7d8ee87d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-04 13:47:12 +0800
+
+    Update hi.po by Rajesh Ranjan <rranjan@redhat.com>
+
+M      po/hi.po
+
+commit 51bc1d2bbbefde9906fd26fdef13ca19f5387d49
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-04 12:05:10 +0800
+
+    Add new icons.
+
+A      data/icons/16/ibus-off.png
+A      data/icons/22/ibus-off.png
+A      data/icons/24/ibus-off.png
+A      data/icons/32/ibus-off.png
+A      data/icons/48/ibus-off.png
+M      data/icons/Makefile.am
+A      data/icons/scalable/ibus-off.svg
+M      ibus.spec.in
+
+commit ced70161303a54c02dbb78215918887edab82262
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-03 21:30:01 +0800
+
+    Update gu.po by Sweta Kothari <swkothar@redhat.com>
+
+M      po/gu.po
+
+commit a84a051d9d8d106ab47b96ab073032719b05240c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-03 21:27:47 +0800
+
+    Update ml.po by Ani Peter <apeter@redhat.com>
+
+M      po/ml.po
+
+commit f774c0d184a9583dc540e969f87bfca3a32c70a6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-03 10:22:07 +0800
+
+    Update ja.po by Fujiwarat
+
+M      po/ja.po
+
+commit cae9d409e38d7fe3137f9c469a27a76aae8d94ac
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-03 07:09:29 +0800
+
+    Update or.po by Manoj Giri <mgiri@redhat.com>
+
+M      po/or.po
+
+commit 75cee9fb96e32766bfb33e4b0e5d7791631a191a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-02 19:28:47 +0800
+
+    Update ta.py by Felix <ifelix@redhat.com>
+
+M      po/ta.po
+
+commit 2ea7f145bda36e72432e0829fa3407adc23b4564
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-02 16:30:57 +0800
+
+    Remove '_' from begin of some keynames start with numbers
+
+M      ibus/keysyms.py
+
+commit 606210b7cf9f8d024a301fd0a21a7f64fb259dd8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-02 09:12:16 +0800
+
+    Update mr.po by sandeep shedmake <sandeep.shedmake@gmail.com>
+
+M      po/mr.po
+
+commit d84054c330a0562d8d7f4bd0fe52fac156be07c0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-01 13:00:58 +0800
+
+    Update vi.po by Lê Quốc Tuấn <mr.lequoctuan@gmail.com>
+
+M      po/vi.po
+
+commit 1254a61a2c9d5cddb79d77293f365c75a0065e81
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-09-01 11:00:54 +0800
+
+    Update pl.po by Piotr Drąg <piotrdrag@gmail.com>
+
+M      po/pl.po
+
+commit a893830a35d2ddc4466d3088caa966dc8cfcbf55
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-31 15:08:19 +0800
+
+    Does not include bindings folder.
+
+M      Makefile.am
+M      configure.ac
+
+commit 58c9159a3db6222f1acdbb9fcf4120f14e0be632
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-31 15:08:00 +0800
+
+    Set icon of about dialog.
+
+M      ui/gtk/panel.py
+
+commit b09f27f817ebd2871cea4fac60473d5d43048c6a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-31 07:07:28 +0800
+
+    Update es.po by Domingo Becker <domingobecker@gmail.com>
+
+M      po/es.po
+
+commit c6e4ffeda1a40f985dd3f176f69d495050b4052a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-31 07:04:31 +0800
+
+    Update fr.po by julroy67
+
+M      po/fr.po
+
+commit b7f4da664ae7ae299d35b8a4c0303473acd8d9c3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-29 08:18:37 +0800
+
+    Change ibus.svg path in xinput-ibus
+
+M      xinput-ibus
+
+commit f4ee9d7f299b08480831036c973119f52ec4b173
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-29 08:14:46 +0800
+
+    Update po files.
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit faa86f388b5dcc1536431e5478618ab3bbfe21d7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-29 08:14:08 +0800
+
+    Unify some describions.
+
+M      data/ibus.schemas.in
+
+commit c49067cb890a58250f9e77aeef34261578d42f5b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-29 06:39:03 +0800
+
+    Change timeout of engine reply
+
+M      bus/engineproxy.c
+M      bus/factoryproxy.c
+
+commit f7815b0c66dda855cc229ae2593498620338006c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-28 18:44:49 +0800
+
+    Fix a memory leak.
+
+M      bus/engineproxy.c
+
+commit 99328a4f4ba501e1aed7604c9c687eb9e567738c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-28 16:58:21 +0800
+
+    Add an popup menu when no input window
+
+M      po/ibus.pot
+M      po/zh_CN.po
+M      ui/gtk/panel.py
+
+commit ca911d79e22bf318754f28cfb6104a96f772090d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-28 16:31:07 +0800
+
+    Fix build warnings
+
+M      src/ibusproperty.c
+
+commit 644fb9e22b252c0ef5f0331999b4db40e8d7c9a4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-28 16:29:13 +0800
+
+    Update inline API document.
+
+M      src/ibusattribute.h
+M      src/ibuslookuptable.h
+M      src/ibusproperty.h
+
+commit cf994c799fad1ef7b29575798d7232bfd309fff2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-28 12:55:28 +0800
+
+    Remove empty line
+
+M      src/ibusinputcontext.c
+
+commit d8dbd7cda906805c65d8f45c198984db54b428d7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-28 11:36:28 +0800
+
+    Fix memory leak in ibus-daemon
+
+M      bus/engineproxy.c
+
+commit 4da6b8628e65ced954b0ed5f5c3220194591e106
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-28 11:36:13 +0800
+
+    Fix memory leak in libibus.so
+
+M      src/ibusattribute.c
+M      src/ibustext.c
+
+commit b4acd49576acce9bc73a67dcb8e90d5aacf5f4f4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-28 10:55:17 +0800
+
+    Fix typos.
+
+M      ibus/inputcontext.py
+
+commit 93e07d55c0094005e5077c8a865cf7112a95a8f1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-28 07:19:47 +0800
+
+    Add method in inputcontext.py to detach signals.
+
+M      ibus/inputcontext.py
+
+commit 026fd461fcd7f6d7165be8b1198198ab75540fcf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-27 06:23:37 +0800
+
+    Update es.po by Domingo Becker <domingobecker@gmail.com>
+
+M      po/es.po
+
+commit 65c0269615e5f2596601dd9c1d2f4e2d170f28c9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-26 17:25:29 +0800
+
+    Update po files.
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/setup.glade
+
+commit 4d7d493e5035f58efeaca2d59253aed456593be5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-26 16:57:40 +0800
+
+    Rename icon ibus-keyboard to ibus-off
+
+M      data/icons/Makefile.am
+D      data/icons/ibus-keyboard.svg
+A      data/icons/ibus-off.svg
+M      ui/gtk/panel.py
+
+commit e10aff2bd97dee1cdbc738500936ef2e39132702
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-26 15:53:29 +0800
+
+    Use icon name instead of the icon path in source code.
+
+M      data/icons/Makefile.am
+D      data/icons/engine-default.svg
+A      data/icons/ibus-engine.svg
+M      ui/gtk/panel.py
+
+commit a2e981a07dde4a7a36a88df452d43ccb31cbfeef
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-26 11:07:15 +0800
+
+    Update all po files by 'make update-po'
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ja.po
+M      po/kn.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/vi.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+
+commit b88474d59fd13ef21257230707ccd5fe3754bfc6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-26 11:06:42 +0800
+
+    Update the label  "No input method"
+
+M      po/.gitignore
+A      po/ibus.pot
+M      ui/gtk/panel.py
+
+commit cefdc5806d333fbaab89a7cb0ba607796e1bb24c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-26 11:03:50 +0800
+
+    Update zh_CN.po
+
+M      po/zh_CN.po
+
+commit 418b49dfa47e7711254e34000549e23f83a918cc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-25 07:26:03 +0800
+
+    Update ca.po
+
+M      po/ca.po
+
+commit 168c58770d274d80b8d457b7b55330849424ddfa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-24 21:24:52 +0800
+
+    Fix build error on freebsd
+
+M      src/test-keymap.c
+
+commit 7444c329d719687059280259b12d7bce95150c3d
+Merge: c06938c cca94cf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-24 16:11:07 +0800
+
+    Merge commit 'definite/master'
+
+commit cca94cfa8938e7b07f84ba402a6e33db45b7ea5b
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-08-24 17:55:57 +1000
+
+    APIDOC: New: IBusSerializable.
+            Revised: IBusAttribute, IBusFactory, IBusObject, IBusObservedPath,
+                     IBusProperty
+
+M      src/ibusattribute.h
+M      src/ibusfactory.h
+M      src/ibusobject.h
+M      src/ibusobservedpath.h
+M      src/ibusproperty.h
+M      src/ibusserializable.c
+M      src/ibusserializable.h
+
+commit c06938c850ee199d258a18b63cbaa6d7c186052e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-24 13:44:59 +0800
+
+    Use a symbol link for ibus-keyboard.svg
+
+T      data/icons/ibus-keyboard.svg
+
+commit 8b5ee69eb13365493172257ecf26e566144420d4
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-08-05 17:33:35 +1000
+
+    APIDOC IBusPendingCall
+
+M      src/ibuspendingcall.h
+
+commit f2452bfeedf06b4548b3d905a18e3147358eb13a
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-08-03 18:06:06 +1000
+
+    APIDOC: IBusObject IBusObservedPath
+
+M      src/ibusobject.c
+M      src/ibusobject.h
+M      src/ibusobservedpath.h
+
+commit 7518126ca57c1a10b19d8e9264a14f55d2e1189a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-20 15:39:51 +0800
+
+    call bindtextdomain to resolve i18n issue.
+
+M      setup/Makefile.am
+M      setup/ibus-setup.in
+M      setup/main.py
+
+commit d44f4585a63b2aa4a05ba9a4daab9185b3361191
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-20 10:07:19 +0800
+
+    Update es.po - Domingo Becker <domingobecker@gmail.com>
+
+M      po/es.po
+
+commit 75401a434a0034f7b85f8fc2e25b6c9fd12126ad
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-19 10:31:36 +0800
+
+    Watch on the right socket file.
+
+M      src/ibusbus.c
+
+commit 3ec0f62c97d18473397dba62bc9f6f5f6a07d4c3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-18 17:27:03 +0800
+
+    Add some setter functions for IBusProperty
+
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+
+commit 4078e209d00748a57a2dc0683320de63b8c7d911
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-17 10:12:03 +0800
+
+    Fix segment fault in ibus_hotkey_profile_destroy.
+
+M      src/ibushotkey.c
+
+commit 943a75b343c398ee6d45cd4d66a8f0bdfec777d7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-14 08:01:14 +0800
+
+    Add * in default locales of ibus gtk immodule
+
+M      client/gtk2/ibusim.c
+
+commit 8bbe9f77257508af7593ea4ca1c7102d53fc3333
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-13 15:44:14 +0800
+
+    Comment test-registry
+
+M      bus/Makefile.am
+
+commit dc86b755b60a55d76585cab79f99699e046d851f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-13 15:41:54 +0800
+
+    Disable qt im module.
+
+M      client/Makefile.am
+M      configure.ac
+
+commit 276353d1e882a29325680e672320ef964d816c0b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-12 09:30:54 +0800
+
+    Fix some build warnings.
+
+M      bus/server.c
+M      src/ibusbus.c
+M      src/ibusshare.c
+
+commit c3fa97f4172d9b490ea0d1060d151eb5d6df9fe2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-12 09:23:24 +0800
+
+    Duplicate address.
+
+M      src/ibusshare.c
+
+commit 38e28e06c2b8a34e5a12aabb3ff8e849865976f4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-12 09:06:30 +0800
+
+    Only connect to the exist bus if the ibus_get_address return != NULL
+
+M      bus/main.c
+
+commit b0899c2f7f27aa14a64e8ac85197e7a6ae9b923a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-12 08:31:38 +0800
+
+    Use one fprintf.
+
+M      src/ibusshare.c
+
+commit a08eafeffd5aa889b2d7276d48af84aa546c1b58
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-12 07:51:41 +0800
+
+    Use %ld for pid
+
+M      src/ibusshare.c
+
+commit e319143f168fb6c248ff691a18760f7cae8a9124
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-12 07:44:55 +0800
+
+    call g_unlink before write address.
+
+M      src/ibusshare.c
+
+commit 049ca9f0830304bfb0907071804c2bc40942c86e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-12 07:43:59 +0800
+
+    Check if the daemon is alive in ibus_get_socket_address
+
+M      src/ibusshare.c
+
+commit 33f77a4980486ade7bb0194ccfe79477814e3b14
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-12 07:33:31 +0800
+
+    Write IBUS_DAEMON_PID in address file.
+
+M      src/ibusshare.c
+
+commit 5ec6b95170f15f66a553a97c02cb94cc3c3e6b91
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-11 17:23:04 +0800
+
+    Disable mkdir code in ibusbus.c
+
+M      src/ibusbus.c
+
+commit 05e3fe4d90826c7b0234e17f691e6bb0734c1faf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-11 17:20:06 +0800
+
+    Create right path in ibusbus.c
+
+M      src/ibusbus.c
+
+commit 669ff970d226e9dc8da6afa51e916c85d98bc8b2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-11 17:01:31 +0800
+
+    Remove ibus_get_socket_folder
+
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 332b49d1ae363a85321b553d9e3ea5e9e8e745da
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-11 16:57:03 +0800
+
+    Do not mkdir in ibusbus.c
+
+M      src/ibusbus.c
+
+commit 74b5b2007b28341db2c7997824a7322fc9d0a336
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 13:57:52 +0800
+
+    Add argument --mem-profile to get memory profile of ibus-daemon
+
+M      bus/main.c
+
+commit ab37f4ad671049bd5b24da6500b9727ccf61e3d6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 13:29:46 +0800
+
+    Fix soem typos.
+
+M      src/ibushotkey.c
+
+commit 7096cb14e2b9fb659ab79ab1d2b65e55493d3e19
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 13:26:45 +0800
+
+    Make code more readable.
+
+M      src/ibuslookuptable.c
+
+commit f1cc9bb311d3ea765541e208b7f629e44e4c5e31
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 13:25:55 +0800
+
+    Remove some unused variables.
+
+M      src/ibusbus.c
+M      src/ibuskeymap.c
+
+commit 7c09e3922851d153887b9e3bf531d05661ef0877
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 13:25:19 +0800
+
+    Make code more readable.
+
+M      src/ibushotkey.c
+
+commit 42c766c1c293e8b2ff8d191de927b462abcb3411
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 13:08:16 +0800
+
+    Fix error in ibus_prop_list_destroy function.
+
+M      src/ibusproperty.c
+
+commit 605f48bbe15d79e7c3af0bb6fdf632f8d395034b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 13:05:47 +0800
+
+    Fix memory leak in ibusproperty.c
+
+M      src/ibusproperty.c
+
+commit 43b532911e600a6d31b35777c747a65b8a4fd140
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 12:38:07 +0800
+
+    Disable memory debug.
+
+M      src/ibusobject.c
+
+commit 6cdc132b142f9c8ef17c20b4f78201b2b21c8223
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 12:36:30 +0800
+
+    Fix memory leak in ibuslookuptable.c
+
+M      src/ibuslookuptable.c
+
+commit 2f32f8c0f8c3c9719aad120bb83650d093cbdc5f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 12:36:21 +0800
+
+    Count all objects.
+
+M      src/ibusobject.c
+
+commit b248c2ad1a63902caddbf4b046347919c366c3e9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 12:31:17 +0800
+
+    Add code to debug memory
+
+M      src/ibusobject.c
+
+commit 27dabca24a4e10670960c5c820df44da139471ee
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 11:23:06 +0800
+
+    Remove some debug output.
+
+M      bus/dbusimpl.c
+
+commit 49df5913820f47c4918c4001e9dea8c264106367
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 10:05:51 +0800
+
+    Fix numlock problem.
+
+M      src/ibuskeymap.c
+
+commit 955c700f193571a58f391b06106d37bee0c50b2c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-10 09:47:40 +0800
+
+    Remove some debug verbose.
+
+M      bus/ibusimpl.c
+
+commit 70a720de606721687f1c995ea50692d58bb3d101
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-07 14:34:43 +0800
+
+    Do not emit preedit changed signal if preedit text is still invisible
+
+M      client/gtk2/ibusimcontext.c
+
+commit c11f58727996c134a4e27bd7c7c360320c7f6927
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-07 11:15:52 +0800
+
+    Fix a bug in name_to_keycode
+
+M      ibus/keysyms.py
+
+commit c5ad08e89cf0c64f35ee1081d44a0f76246b4447
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-06 11:13:50 +0800
+
+    Include org.freedesktop.{DBus,IBus} in ListNames' return
+
+M      bus/dbusimpl.c
+
+commit 3d30c8a28b27aac298bbdeb81488dfec1ca27df0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-06 11:10:20 +0800
+
+    Change the order of the unique names and well know names.
+
+M      bus/dbusimpl.c
+
+commit 2f4bfb99dc9e21a74ebc98961186cde240c75ca1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-06 11:09:07 +0800
+
+    Use macros.
+
+M      bus/dbusimpl.c
+
+commit e58348a1cba659b448ce04bc2c3ad8c032a64803
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-06 11:04:13 +0800
+
+    Do not allow RequstName org.freedesktop.{IBus, DBus}
+
+M      bus/dbusimpl.c
+
+commit b6a8fa25027df23090e5d6f21017fa8df43fa1fc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-06 10:54:08 +0800
+
+    Fix bug in org.freedesktop.DBus.ListNames.
+
+M      bus/dbusimpl.c
+
+commit c8f92c1d9c1bdc61413fa7f6fba62aa9e2da6358
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-04 18:26:48 +0800
+
+    Reduce size of keysyms.py
+
+M      ibus/keysyms.py
+
+commit 6ee8bb59c4485d054017feb60eecfae06fe1a6df
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-08-03 14:47:50 +0800
+
+    Fix bug in keymap: Press number with Shift & CapsLock modifiers.
+
+M      data/keymaps/common
+M      src/ibuskeymap.c
+M      src/ibuskeymap.h
+
+commit 4b607482f562f4a2306d3b3e659bd1350395911c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-28 14:38:36 +0800
+
+    Change summary for for ibus-devel.rpm
+
+M      ibus.spec.in
+
+commit 5be7c11bf6664d810300bb3965039a8c4c1201f2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-27 17:57:14 +0800
+
+    set QT_IM_MODULE=ibus if the qt ibus im module exist
+
+M      xinput-ibus
+
+commit 56b73694a90215618f00ec3233acd7548ff8af1e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-23 08:07:25 +0800
+
+    Fix dead loop in _from_dbus_value
+
+M      src/ibusconfigprivate.h
+M      src/ibusmessage.c
+
+commit 4b09c335f61a280a6b84331bbeb74a4132f2442e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-21 10:44:06 +0800
+
+    Use libibus.so.1 replace libibus.so
+
+M      ibus/common.py
+
+commit 53ad8d6cb7ba02de86814a28564e764a5874a078
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-21 10:43:58 +0800
+
+    Fix typo.
+
+M      bus/ibusimpl.c
+
+commit 01b3391e99f63762e3498f901d65d70c65d72352
+Merge: 306f615 708737a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-21 10:42:39 +0800
+
+    Merge branch 'master' of git@github.com:phuang/ibus
+
+commit 708737a8a15a9aaf0b158fd110e6f2a72790812f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-19 12:50:22 +0800
+
+    Fix some build warnings.
+
+M      src/ibusshare.c
+
+commit e35f363a366d5fc78d7f0851348f8cc86924cce5
+Merge: cf56e57 2ec3479
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-19 09:40:42 +0800
+
+    Merge branch 'master' of git@github.com:phuang/ibus
+
+commit cf56e576fde975606f709cc731d2b256c45a15b4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-18 08:39:50 +0800
+
+    Fix a typo.
+
+M      bus/inputcontext.c
+
+commit 306f615f4d5b5e8ce32a734d899acde76134c8f2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-17 10:35:18 +0800
+
+    Add gitignore
+
+M      .gitignore
+M      bus/.gitignore
+M      bus/ibusimpl.c
+A      data/.gitignore
+A      docs/.gitignore
+M      po/.gitignore
+M      src/.gitignore
+
+commit 2ec3479e1647d7cfb5cf60043a94a5d546c90032
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-17 06:47:01 +0800
+
+    Add include <stdio.h> to fix build warning.
+
+M      src/ibusshare.c
+
+commit fbcc20f320a0ebba9b95658f7efa8cc52cf1476e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-16 10:37:32 +0800
+
+    Add introspect_dbus method.
+
+M      ibus/bus.py
+
+commit a1da7b9ad9af3144911d145334d8eec49c9b4c88
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-16 10:36:53 +0800
+
+    Remove unimplemented methods and signals from DBus.Introspect return data
+
+M      bus/dbusimpl.c
+
+commit 3beb987781d921902b4e20d9c844b75a9e962abe
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-15 18:04:11 +0800
+
+    Use c version ibus_get_address in python directly
+
+M      ibus/common.py
+M      src/ibusshare.c
+
+commit d2ed9a3740a8b9e809615f99318ee14132a3159a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-15 16:31:09 +0800
+
+    Use abstract socket in ibus-daemon
+
+M      bus/server.c
+M      ibus/application.py
+M      ibus/bus.py
+M      ibus/common.py
+M      src/ibusbus.c
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit b3160e0b563c132347b1c97ce91d3d3882041fca
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-15 11:19:08 +0800
+
+    Add ibus_get_local_machine_id function
+
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 1a007604992f4e2cb58e0d9eb5d37b8086445bf4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-15 08:21:23 +0800
+
+    Update ml.po by Ani Peter <apeter@redhat.com>
+
+M      po/ml.po
+
+commit 780752efb2ca64ce4e87f28b85394ab1cef13b70
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-14 16:30:50 +0800
+
+    Remove debug output
+
+M      bus/ibusimpl.c
+
+commit 4e7a1f9dfb0dfbe1310422bc322ea97b19bd3664
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-10 11:00:41 +0800
+
+    Fix a typo, Add introspect method.
+
+M      bus/inputcontext.c
+M      ibus/inputcontext.py
+
+commit f22552752d3ffdb693c223c61679061528a84fff
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-10 10:48:39 +0800
+
+    Implement Introspect in inputcontext.c
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      ibus/interface/iinputcontext.py
+
+commit fdebe6da41d3ad4a347d64cfa30a14a92446c3fb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-09 17:38:16 +0800
+
+    Add introspect_ibus
+
+M      ibus/bus.py
+
+commit bbc54dcc2d1a3ece69ff191b4818aa549f27309e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-09 17:37:18 +0800
+
+    Add args' names, and remove out arg of org.freedesktop.IBus.Exit
+
+M      bus/ibusimpl.c
+
+commit f5cb3df2a2c31c54a9e3b97ac32ecbbb933bcda3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-09 17:09:37 +0800
+
+    Remove some deprecated methods.
+
+M      ibus/interface/iibus.py
+
+commit 8fedd83a82049427c241d8dd8687ba75429b7111
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-09 17:09:03 +0800
+
+    Implemented Introspect of /org/freedesktop/IBus
+
+M      bus/ibusimpl.c
+
+commit 3dbc3d46bb1166115ba40a6ef6ab98042b1c14f5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-09 11:29:46 +0800
+
+    Implememnt org.freedesktop.IBus.Ping method.
+
+M      bus/ibusimpl.c
+M      ibus/bus.py
+M      ibus/serializable.py
+M      src/ibusattribute.c
+M      src/ibuscomponent.c
+M      src/ibusenginedesc.c
+M      src/ibusfactory.c
+M      src/ibushotkey.c
+M      src/ibuslookuptable.c
+M      src/ibusmessage.c
+M      src/ibusmessage.h
+M      src/ibusobservedpath.c
+M      src/ibusproperty.c
+M      src/ibusserializable.c
+M      src/ibustext.c
+
+commit a25038fd60358cf06905ffd535eba2d2f2737efe
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-08 11:43:22 +0800
+
+    Fix some typoes.
+
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+
+commit ad8b19522dd6851d9854f7bdcc04441a1925b5d9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-08 11:32:01 +0800
+
+    Add ibus_message_iter_copy method;
+    Add Ping method of org.freedesktop.IBus interface.
+
+M      bus/ibusimpl.c
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+M      src/ibusmessage.c
+M      src/ibusmessage.h
+
+commit ec640a5e4658419e1183b14e89f3419e5735a742
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-07-08 16:58:36 +1000
+
+    APIDOC: Revised IBusMessage
+
+M      src/ibusmessage.h
+
+commit da8f546d010bff2298eda65d75c44f6fcf5992b6
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-07-07 18:07:54 +1000
+
+    APIDOC: completed IBusMessage.
+
+M      docs/reference/ibus/ibus-docs.sgml
+M      src/ibuskeymap.h
+M      src/ibusmessage.h
+
+commit 7a1cb83c9812107334f82b59e1092fe670e9ef3a
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-07-06 18:09:22 +1000
+
+    APIDOC continuing IBusMessage
+
+M      src/ibusmessage.h
+
+commit 3b8b42bf79a4e780947af1b67e7f28f866de7a30
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-07-03 18:03:17 +1000
+
+    APIDOC: completed: IBusInternal, IBusKeymap.
+            starts: IBusMessage
+
+M      src/ibusinternal.h
+M      src/ibuskeymap.h
+M      src/ibuskeysyms.h
+M      src/ibusmainloop.h
+M      src/ibusmessage.h
+
+commit 9c6b7e75a45ccc88c26c35fc7958e2f92931748f
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-07-01 18:07:54 +1000
+
+    APIDOC: IBusKeymap
+
+M      src/ibuskeymap.h
+
+commit 2cbd86e10a9f823cf4de47d5a95555cc45ca7776
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-06-30 18:07:12 +1000
+
+    APIDOC: IBusInternal, IBusKeymap
+
+M      src/ibusinternal.c
+M      src/ibusinternal.h
+M      src/ibuskeymap.h
+
+commit 1ad3051b149bbc5e916ec794f7638be7f5563e59
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-01 12:32:08 +0800
+
+    Update buttons' states correctly
+
+M      setup/keyboardshortcut.py
+
+commit 59d99c2e73f4c0d54967e4f9291cb0cfc4c4a923
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-01 12:17:18 +0800
+
+    Add PY prefix in gtype names.
+
+M      ibus/attribute.py
+M      ibus/bus.py
+M      ibus/component.py
+M      ibus/config.py
+M      ibus/enginedesc.py
+M      ibus/factory.py
+M      ibus/inputcontext.py
+M      ibus/lookuptable.py
+M      ibus/object.py
+M      ibus/observedpath.py
+M      ibus/property.py
+M      ibus/serializable.py
+M      ibus/text.py
+
+commit a1a43490c284f40b7b2135b4346aeb80dbea5708
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-07-01 12:11:38 +0800
+
+    Update Add & Apply buttons' states on time.
+
+M      setup/keyboardshortcut.py
+
+commit 4ffd3c3fb6b51da9c18f2b2a45325ade08ce9c0d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-30 16:45:45 +0800
+
+    Use MetaClass to register serializable classes automatically
+
+M      ibus/attribute.py
+M      ibus/component.py
+M      ibus/enginedesc.py
+M      ibus/factory.py
+M      ibus/lookuptable.py
+M      ibus/observedpath.py
+M      ibus/property.py
+M      ibus/serializable.py
+M      ibus/text.py
+
+commit 1abb0f892a0429aafb42dbca09bd1e4b90f8081a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-30 10:54:16 +0800
+
+    Fix some coding style problems.
+
+M      ui/gtk/notifications.py
+M      ui/gtk/panel.py
+M      ui/gtk/propitem.py
+M      ui/gtk/toolitem.py
+
+commit 6cf406a376a88e8360fe5b073a481f31af06878a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-30 10:42:05 +0800
+
+    Fix CheckMenuItem problems and some coding style problems.
+
+M      ui/gtk/menu.py
+
+commit 6138aab2d1c6209feddc5c65de8b844aff220cd1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-30 07:40:37 +0800
+
+    Change some classes' name
+
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+
+commit 34596d74e4ddcafe0b038d4600508806e569c8a1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-30 07:19:22 +0800
+
+    Add __gtype_name__ for some gobject classes
+
+M      ibus/attribute.py
+M      ibus/bus.py
+M      ibus/component.py
+M      ibus/config.py
+M      ibus/enginedesc.py
+M      ibus/factory.py
+M      ibus/inputcontext.py
+M      ibus/lookuptable.py
+M      ibus/object.py
+M      ibus/observedpath.py
+M      ibus/property.py
+M      ibus/serializable.py
+M      ibus/text.py
+
+commit 0eafa5985555827818b0fd8de58a01d672151934
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-29 20:49:32 +0800
+
+    Use __gtype_name__ to replace gobject.type_register
+
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/handle.py
+M      ui/gtk/languagebar.py
+M      ui/gtk/menu.py
+M      ui/gtk/panel.py
+M      ui/gtk/toolitem.py
+
+commit 15ce741d370b815047e3ad06d9806131acbb40c0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-29 17:57:47 +0800
+
+    Remove useless code.
+
+M      ui/gtk/candidatepanel.py
+
+commit fb13ca28b412a15691ee2ab2bafd5b10df453c9b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-25 16:03:26 +0800
+
+    Modify introspect interface.
+
+M      bus/ibusimpl.c
+
+commit 0c1e0848a2a20b4bc9d48f33830001ffc10e0fe0
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-06-25 17:58:08 +1000
+
+    APIDOC: Completed IBusInputContext
+            Revised IBusBus, IBusConnection, IBusProxy, IBusService
+    Keymap: Add dvorak, dvorak-classic, and dvorak-programmer
+
+A      data/keymaps/dvorak-common
+A      data/keymaps/us-dvorak
+A      data/keymaps/us-dvorak-classic
+A      data/keymaps/us-dvorak-programmer
+D      po/ibus.pot
+M      src/ibusbus.c
+M      src/ibusconnection.c
+M      src/ibusengine.c
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibusproxy.c
+M      src/ibusservice.c
+
+commit 00b32660ee5552ff804c99c990ec0fe1278d6e8a
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-06-24 18:04:56 +1000
+
+    APIDOC: revised IBusEngine, IBusLookupTable.
+            continuing IBusInputContext
+
+M      src/ibusengine.c
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+M      src/ibuslookuptable.h
+
+commit d72689240398232387187e383938186cda47ff99
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-06-22 18:08:55 +1000
+
+    APIDOC: revised IBusEngine, IBusInputContext
+
+M      ibus.spec.in
+M      src/ibusengine.c
+M      src/ibusinputcontext.h
+
+commit 5a026c6221286139cae08b5799bc80fe1d1c9444
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-25 09:48:37 +0800
+
+    Add keycode argument in forward_key_event signal.
+
+M      bus/engineproxy.c
+M      bus/inputcontext.c
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusinputcontext.c
+
+commit 64c7a4f4ed05010d32b521660302b5a85e083c35
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-24 07:49:50 +0800
+
+    Disable qt4 im module.
+
+M      configure.ac
+
+commit 3193a8747492eccac75a245e5075644469cfbfef
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-24 07:34:17 +0800
+
+    Add ibusversion.h.in
+
+M      configure.ac
+M      src/Makefile.am
+M      src/ibus.h
+A      src/ibusversion.h.in
+
+commit a79c7e87ee9ff80c673ce43bf2b0aa65775e8e07
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-24 07:33:53 +0800
+
+    Remove private struct in ibus-daemon.
+
+M      bus/connection.c
+M      bus/connection.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+
+commit 96f502bcfb6d23a2adc2b28d7bcd52fb01a9407e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-18 10:17:42 +0800
+
+    Fix a typo.
+
+M      ui/gtk/engineabout.py
+
+commit 16fe6e02256a88d83be5bb59515fde86d20f4e12
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-18 09:53:58 +0800
+
+    Hide keyboard layout column in setup UI
+
+M      setup/enginetreeview.py
+
+commit f435a80cee0877c2cee3dcd1920984deab2f51ff
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-17 19:21:10 +0800
+
+    Avoid block in bus_factory_proxy_create_engine.
+
+M      bus/factoryproxy.c
+
+commit 7606df8212c436c04044f3e0f864e37333540942
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-17 17:58:10 +0800
+
+    Add setup/enginetreeview.py into po/POTFILES.in
+
+M      po/POTFILES.in
+
+commit 358008baa4777cd3eecf4aff5111bdbabb875ffc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-17 17:03:02 +0800
+
+    Remove IBUS_SESSION_ID from xinput-ibus
+
+M      xinput-ibus
+
+commit a567430e1e2b61d0872bad3503041424d4832e16
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-17 15:42:06 +0800
+
+    Add --enable-gtk-doc in autogen.sh
+
+M      autogen.sh
+
+commit 65b2fdeafc00bae17bddfc366a2cd1a012b85abc
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-17 15:40:57 +0800
+
+    Fix problems for 'make rpm'
+
+M      Makefile.am
+M      ibus.spec.in
+
+commit 77c8da8df0ccde997b896338f2adf501e1576976
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-17 11:34:15 +0800
+
+    Remove two useless lines.
+
+M      data/keymaps/common
+
+commit 4875bab43ca75f656268cd74d9ec629657d58ff2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-17 10:41:00 +0800
+
+    Add configure item for keyboard layout
+
+M      bus/engineproxy.c
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      data/ibus.schemas.in
+M      setup/enginetreeview.py
+M      setup/main.py
+M      setup/setup.glade
+
+commit 9bf091463fc7084bee3733ab2c91bb0f1cfe6f9d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-16 11:00:52 +0800
+
+    Remove altgr in jp keymap
+
+M      data/keymaps/jp
+
+commit a634c759b6d5588c1922db1c16fc635cc25410ca
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-16 10:52:57 +0800
+
+    Fix problems in jp keymap. keycode 124 = yen
+
+M      data/keymaps/jp
+
+commit 0f66ccbb471efed568f67dcaf5f2ce3f04aaf170
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-16 07:36:04 +0800
+
+    Fix build warnings.
+
+M      client/gtk2/ibusimcontext.c
+M      src/ibusconnection.c
+M      src/ibusmainloop.c
+M      src/ibusserver.c
+
+commit e7c0f1b4e4730a97431f4835606a9278a914a43a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-16 07:27:37 +0800
+
+    Add translation in pl.po
+
+M      po/pl.po
+
+commit 114fb2cbe792d6dac360875cc60d6895b7af9d64
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 19:02:25 +0800
+
+    Add code to handle changing of engine's layout
+
+M      setup/enginetreeview.py
+
+commit 0264e1e0c2615c2b17893ef95fe355b2170d5b50
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 16:34:26 +0800
+
+    Translate some messages.
+
+M      po/zh_CN.po
+
+commit 94cedd30a5a67ab3558e822eb3621ba4ee630541
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 16:20:26 +0800
+
+    Fix some typos
+
+M      po/zh_CN.po
+
+commit 73456141387d7d88e639978a091ea46380f243f4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 16:18:57 +0800
+
+    Update ibus.pot
+
+M      po/ibus.pot
+
+commit 186977b7abfeffc45157c02a9a586458a3f76c58
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 15:20:59 +0800
+
+    Update messages in zh_CN.po
+
+M      po/zh_CN.po
+
+commit 6683283f521535710311ce2ec91ba4525a56a6a0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 15:10:10 +0800
+
+    Add some tooltips in setup dialog.
+
+M      setup/setup.glade
+
+commit b6b278d02c3ceb15581fbc6385a6e15a91079422
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 15:00:12 +0800
+
+    Show engines' keyboard layout in setup UI
+
+M      setup/enginetreeview.py
+M      setup/main.py
+M      ui/gtk/engineabout.py
+
+commit 21d4b09a3b0f130af963fcfc6481ffc059b869ff
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 06:50:12 +0800
+
+    Remove some 'shift keycode' item in common
+
+M      data/keymaps/common
+
+commit e9cbd9bf8d74820ae4b1d02f13a547b5ed2a0f8f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 06:44:14 +0800
+
+    Autogen the ChangeLog from git
+
+D      ChangeLog
+M      Makefile.am
+M      autogen.sh
+
+commit b389f0dcf7aff8e506a264500d0b5a95170c2254
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 06:11:08 +0800
+
+    Fix error in keymap
+
+M      bus/inputcontext.c
+M      data/keymaps/modifiers
+M      src/ibuskeymap.c
+
+commit f19db832c2f3b9a5887712688b0f63618d79715d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-15 05:23:05 +0800
+
+    Fix some keycode error in common keymap.
+
+M      data/keymaps/common
+
+commit c59be8eeb10b38bea8126986b652102045ea3dc7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-14 14:29:27 +0800
+
+    Implement keymaps, merged keymaps branch
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/ibusimpl.c
+M      bus/ibusimpl.h
+M      bus/inputcontext.c
+M      client/gtk2/ibusimcontext.c
+M      client/x11/main.c
+M      configure.ac
+M      data/Makefile.am
+A      data/keymaps/Makefile.am
+A      data/keymaps/ar
+A      data/keymaps/common
+A      data/keymaps/da
+A      data/keymaps/de
+A      data/keymaps/de-ch
+A      data/keymaps/en-gb
+A      data/keymaps/es
+A      data/keymaps/et
+A      data/keymaps/fi
+A      data/keymaps/fo
+A      data/keymaps/fr
+A      data/keymaps/fr-be
+A      data/keymaps/fr-ca
+A      data/keymaps/fr-ch
+A      data/keymaps/hr
+A      data/keymaps/hu
+A      data/keymaps/is
+A      data/keymaps/it
+A      data/keymaps/jp
+A      data/keymaps/lt
+A      data/keymaps/lv
+A      data/keymaps/mk
+A      data/keymaps/modifiers
+A      data/keymaps/nl
+A      data/keymaps/nl-be
+A      data/keymaps/no
+A      data/keymaps/pl
+A      data/keymaps/pt
+A      data/keymaps/pt-br
+A      data/keymaps/ru
+A      data/keymaps/sl
+A      data/keymaps/sv
+A      data/keymaps/th
+A      data/keymaps/tr
+A      data/keymaps/us
+M      ibus/engine.py
+M      ibus/inputcontext.py
+M      ibus/interface/iengine.py
+M      src/Makefile.am
+M      src/ibus.h
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusinputcontext.c
+M      src/ibusinputcontext.h
+A      src/ibuskeymap.c
+A      src/ibuskeymap.h
+M      src/ibusmarshalers.list
+A      src/test-keymap.c
+
+commit 0c1592432090cd232c8a0367ae5a853ffdf66ea9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-14 14:19:33 +0800
+
+    Fix a typo in src/Makefile.am
+
+M      src/Makefile.am
+
+commit 95e3cc13377467b00c183a8c21d2f84b3b30d622
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-13 06:10:44 +0800
+
+    Do not restore states when focus_in, if the enable is disabled.
+
+M      bus/inputcontext.c
+
+commit 7cd6ba06d9a19c663d123982245947162441f8d6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-13 05:27:51 +0800
+
+    Update da.po.
+
+M      po/da.po
+
+commit a296b6a82b445dfb5ba7f213c4490b960092132e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-12 14:43:32 +0800
+
+    Add vi.po
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/vi.po
+
+commit 59500bdeb5ecaa7324c8a910fe633e6a25dc7252
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-12 09:54:47 +0800
+
+    Support mouse click on lookup table.
+
+M      bus/engineproxy.c
+M      bus/engineproxy.h
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+M      bus/panelproxy.c
+M      bus/panelproxy.h
+M      ibus/engine.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibus/panel.py
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibusmarshalers.list
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/panel.py
+
+commit eeed16080380d7e206f46a26cec8635e2b651e8b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-11 10:31:10 +0800
+
+    Redefine the arrow buttons meaning as PageUp & PageDown.
+
+M      ui/gtk/candidatepanel.py
+M      ui/gtk/panel.py
+
+commit 05c7deef8a7deb3ffd1b66ceefa044d61e511337
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-09 18:24:03 +0800
+
+    Add source files into POTFILES.in
+
+M      po/POTFILES.in
+
+commit 8bd33642e1e95107f48206a95ef9a99e07149f44
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-09 15:42:36 +0800
+
+    Update kn.po
+
+M      po/kn.po
+
+commit 5ade818e2724c763c85be4ff8ee1ebfeb38459d4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-09 09:10:35 +0800
+
+    Add show_im_name schema in ibus.shemas.in
+
+M      data/ibus.schemas.in
+
+commit be5bebbff7aa3de6f656a97ba34d10afd75f6dff
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-09 09:08:04 +0800
+
+    Show im name on languagebar
+
+M      setup/main.py
+M      setup/setup.glade
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+
+commit df464d2b06026dcfcb0d215238333d40bcecd29e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-08 16:52:38 +0800
+
+    Filter release key events follow the hotkey.
+
+M      bus/inputcontext.c
+
+commit a556c9d0eda7a4118ea14e66ce5bfd4175f5f90c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-08 16:22:50 +0800
+
+    Update hi.po
+
+M      po/hi.po
+
+commit d295fde64a1a95de3df72a0dc918be9e8432c37f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-07 11:32:20 +0800
+
+    Add About button in language bar.
+
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+
+commit 1d58c734d7d2f649786078f3158ee2999c5347a2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-07 10:58:57 +0800
+
+    Move engineabout dialog into a new python file.
+
+M      setup/Makefile.am
+A      setup/engineabout.py
+M      setup/main.py
+M      ui/gtk/Makefile.am
+A      ui/gtk/engineabout.py
+
+commit e61302623e9315bea1b71d45d6f547ac17bd3a55
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-05 20:34:35 +0800
+
+    Fix some build warnings.
+
+M      bus/connection.c
+M      bus/dbusimpl.c
+M      bus/ibusimpl.c
+M      client/gtk2/ibusimcontext.c
+M      client/x11/main.c
+M      src/ibus.h
+M      src/ibushotkey.c
+M      src/ibusproperty.c
+
+commit 8317b65c5e45e3a4385d08bdd2047e9c04ee414a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-04 15:24:42 +0800
+
+    Update as.po.
+
+M      po/as.po
+
+commit 943d46f3b9c0a2d2ac63bbc6ffd08d822bd990ea
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-04 15:13:33 +0800
+
+    Use custom dialog to display engine information
+
+M      setup/main.py
+M      setup/setup.glade
+
+commit eb329bbb039cd0af2f0c53ca4ed8679b387495af
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-04 10:19:55 +0800
+
+    Set the default candidates' label to '1234567890abcdef'
+
+M      ui/gtk/candidatepanel.py
+
+commit 548a1c3a72d2ba9e01872a690b9cbd78f84be9d1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-04 10:08:45 +0800
+
+    Update doc for ibus_lookup_table_new
+
+M      src/ibuslookuptable.h
+
+commit b3691888a8686f53529f4faa66d8f51c2a89b98d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-04 10:04:16 +0800
+
+    Add labels attribute in LookupTable object.
+
+M      ibus/lookuptable.py
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+M      ui/gtk/candidatepanel.py
+
+commit f5d64481c00aeaa11680a0b95a08d1eef8e8e512
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-03 16:08:29 +0800
+
+    Add help button for showing help message for input method.
+
+M      setup/enginetreeview.py
+M      setup/main.py
+M      setup/setup.glade
+
+commit d2e8f17929a047177e16f4295d957565efc2c3fa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-06-02 19:49:34 +0800
+
+    Catch exception __sigchld_cb in panel.py
+
+M      ui/gtk/panel.py
+
+commit 523f3fdd19f65195ed39aee7857871bfb9b9b72b
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-06-01 18:21:05 +1000
+
+    APIDOC: Finished IBusConnection, IBusHotKey, IBusProxy
+            Started IBusInputContext
+            Revised IBusAttribute IBusBus IBusConfigServices, IBusEngine, ..
+
+M      docs/reference/ibus/Makefile.am
+M      docs/reference/ibus/ibus-docs.sgml
+M      docs/reference/ibus/ibus.types
+M      src/ibusattribute.h
+M      src/ibusbus.c
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusengine.c
+M      src/ibuserror.h
+M      src/ibusfactory.h
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+M      src/ibusinputcontext.h
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+M      src/ibusservice.c
+M      src/ibusservice.h
+
+commit bcf7868d4a42de8b7c2a54b74615dbe54e83e00d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-31 11:13:11 +0800
+
+    Add verbose argument for ibus_component_start function
+    Do not use g_usleep
+
+M      bus/ibusimpl.c
+M      bus/main.c
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+
+commit 01736b4eb9069045e2ec3fc34c295594836726e6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-31 10:33:47 +0800
+
+    Update pa.po by A S Alam
+
+M      po/pa.po
+
+commit 6878a785ebdb1a16ba3f243e9781d067ee861172
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-30 15:54:46 +0800
+
+    Update or.po by Manoj Giri
+
+M      po/or.po
+
+commit de063eadad301d28901aad9563791436f4611010
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-26 19:47:11 +0800
+
+    Update mr.po & te.po
+
+M      po/mr.po
+M      po/te.po
+
+commit ec1b33141d583c384a655e03d330a4436ff0179f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-26 15:07:05 +0800
+
+    Update bn_IN.po by Runa Bhattacharjee <runab@redhat.com>
+
+M      po/bn_IN.po
+
+commit 04cf7519643521fe013b9c82991c87935a924032
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-26 14:57:58 +0800
+
+    Update gu.po by Sweta Kothari <swkothar@redhat.com>
+
+M      po/gu.po
+
+commit f7a607cd69526beec4b174d067dbd5c685474e0f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-26 08:17:42 +0800
+
+    Add information label in setup dailog to tell user the top one is the
+    default
+
+M      po/ar.po
+M      po/as.po
+M      po/bn_IN.po
+M      po/ca.po
+M      po/da.po
+M      po/de.po
+M      po/es.po
+M      po/fr.po
+M      po/gu.po
+M      po/hi.po
+M      po/hu.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/ml.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/ta.po
+M      po/te.po
+M      po/zh_CN.po
+M      po/zh_HK.po
+M      po/zh_TW.po
+M      setup/setup.glade
+
+commit 7ea778e4466087fe20d0e8a30d72dd369a226662
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-25 16:08:23 +0800
+
+    Raise set dialog when click preference in menu.
+
+M      setup/main.py
+M      ui/gtk/panel.py
+
+commit fef66db0cc4784d8cddec6df48fed12bc262a27f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-25 15:34:54 +0800
+
+    Show default IME with BOLD font.
+
+M      setup/enginetreeview.py
+
+commit fd6aa7466f47efb9821333fd52a4a0870a0ac060
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-25 15:09:05 +0800
+
+    Append engine as last one in the engines list.
+
+M      setup/enginetreeview.py
+M      setup/main.py
+
+commit 18760665f021d57d27395275fac729f4f8b3ffff
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-22 11:03:28 +0800
+
+    Remove prop copy in inputcontext, to fix properties bug.
+
+M      bus/inputcontext.c
+
+commit affec926199d46d524c32cd144d13893078207fe
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-19 11:30:30 +0800
+
+    Make code more readable.
+
+M      bus/inputcontext.c
+
+commit e7136ceb43c16c6553baffba668f1c9c8f00b7ff
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-08 14:25:12 +0800
+
+    Keep same order of shortcut keys list.
+
+M      setup/keyboardshortcut.py
+M      setup/main.py
+
+commit 374d4c6ece04c39bc3e828fa19c580a2af9da309
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-08 14:11:19 +0800
+
+    Add git-tag target in Makefile.am
+
+M      Makefile.am
+
+commit 9175186092778e081ea68c732bfd9618221a71a5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-08 13:19:10 +0800
+
+    Remove old locales define in main.c
+
+M      client/x11/main.c
+
+commit d4a2cd3562bb475c8b70742df9443cad5ed8c2ed
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-08 13:12:46 +0800
+
+    Update locale and add --locale-append argument of ibus-x11
+
+M      client/x11/Makefile.am
+A      client/x11/locales.h
+M      client/x11/main.c
+
+commit 196dac356027448f6128bf94104ba98d9b9de84a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-08 09:31:53 +0800
+
+    Refine coding style.
+
+M      bus/main.c
+
+commit 656299118952511397240102445272fd04d79555
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-07 12:38:41 +0800
+
+    Only print out debug and warning messages when with --verbose
+
+M      bus/main.c
+
+commit 840b71c45255c2b2824b3c6f9449b2e9a87d0d1c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-07 12:02:24 +0800
+
+    Replace strcmp with g_strcmp0
+
+M      bus/main.c
+
+commit b26f7ed2ac38ff31e805ad0a6706c5ac743d5bbf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-05-06 09:18:43 +0800
+
+    Update fr.po by julroy67
+
+M      po/fr.po
+
+commit b61cabbccb496efcd54b82564fbc74100a9d7b1b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-30 15:43:50 +0800
+
+    Destroy the BusServer during exit.
+
+M      bus/ibusimpl.c
+
+commit cb57c882840036ccc2d357e5cdd8a4d58db40f9f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-30 11:09:41 +0800
+
+    Make main loop setupable.
+
+M      src/Makefile.am
+M      src/ibus.h
+M      src/ibusconnection.c
+A      src/ibusmainloop.c
+A      src/ibusmainloop.h
+M      src/ibusserver.c
+
+commit fd9b6b854b310ddcc4d54d5ef6d83f0aea0a57de
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-28 15:43:45 +0800
+
+    Add zh_TW.po by Ding-Yi Chen <dingyichentw@yahoo.com>
+
+M      AUTHORS
+M      po/LINGUAS
+M      po/zh_TW.po
+
+commit b666ce4f9dfedffbfc16561948cf550f5e356764
+Merge: 3b3f6ac 8825754
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-28 15:40:24 +0800
+
+    Merge commit 'definite/master'
+
+commit 3b3f6ac869f364a09233f9d2ef963a4fe6899484
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-28 15:36:12 +0800
+
+    Fix wrong args of trigger signal callbacks
+
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+
+commit 4c11520ea2bb118ce66b97a214bb835b32de70e9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-28 15:30:02 +0800
+
+    Fix wrong argument when emit IBusHotkeyProfile::trigger signal
+
+M      src/ibushotkey.c
+
+commit 88257549f3ee87c8c935b1792eac92bc0bb0d7e5
+Author: Ding-Yi Chen <dingyichentw@yahoo.com>
+Date:   2009-04-28 14:15:53 +1000
+
+    Add back zh_TW.po
+
+A      po/zh_TW.po
+
+commit 17d438103bf4c52ebb20f2b545dd40c2b894060f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-28 08:28:25 +0800
+
+    Add document for IBusModifiersType.
+
+M      src/ibustypes.h
+
+commit 871ed0c8ef5da7eb3c71b51b669cb059d36aa4f4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-28 08:22:34 +0800
+
+    Refine coding style in ibusinternal.c
+
+M      src/ibusinternal.c
+
+commit 09cc67f8ac7caa624d57d11593de991bc4342088
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-27 07:43:21 +0800
+
+    Update fr.po by Charles-Antoine (cacouret@wanadoo.fr)
+
+M      po/fr.po
+
+commit f9d3b06fbb591093b4df522b8c8e7ab3792bee85
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-23 10:45:18 +0800
+
+    Fix preedit problem in evolution
+
+M      client/gtk2/ibusimcontext.c
+
+commit 0568e398bcd2e6996f900d12c3c61063a8350784
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-22 13:52:01 +0800
+
+    Read the iso_639_2 codes from iso-codes.
+
+M      ibus/lang.py
+
+commit 471683a787afbfa18750e40ea0861349cf20e2c5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-21 17:13:03 +0800
+
+    Add ml.po by Ani Peter <apeter@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/ml.po
+
+commit 2fa0dbb207f5f7d0fac83ab3a052a5245625255b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-21 14:48:56 +0800
+
+    Support drag and drop in engines view.
+
+M      setup/enginetreeview.py
+
+commit 50696ba1d755363ed1f0c07dd44b6bf6fa53b8fb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-21 07:03:41 +0800
+
+    Update ca.po by Xavier Conde Rueda <xavi.conde@gmail.com>
+
+M      po/ca.po
+
+commit 0c000dab6c34d865eba45723e1706204a753deb1
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-20 17:31:09 +0800
+
+    Check ownership of socket file.
+
+M      src/ibusbus.c
+
+commit c6abf0ef1a84e35fd88e31f4626ee70f6b650d2c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-20 16:07:22 +0800
+
+    Check socket's ownership when client connects to the daemon
+
+M      src/ibusbus.c
+M      src/ibusconnection.c
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 164626ec6ff95341acbdbaef96f9e48016f0fe85
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-20 15:00:19 +0800
+
+    Add authentication code. Only allow root & same user connect to ibus-daemon.
+
+M      bus/connection.c
+M      bus/server.c
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusmarshalers.list
+M      src/ibusserver.c
+M      src/ibusserver.h
+
+commit 1e4f119f94e8f3a7016500586480b7d292a21223
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-20 11:02:13 +0800
+
+    Remove ibusenumtypes.[ch], they are generated during make.
+
+D      src/ibusenumtypes.c
+D      src/ibusenumtypes.h
+
+commit 97aa04260e00f62f005e420aa601b7e1f43891b8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-20 10:50:37 +0800
+
+    Create an new engine in bus_input_context_enable if the engine == NULL
+
+M      bus/inputcontext.c
+
+commit 2eb2b3debaff98a6d077186deee5e5f6fcd9ae87
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-20 10:28:58 +0800
+
+    If im is not active, ibus will do nothing when prev engine hotkey
+    is pressed.
+
+M      bus/inputcontext.c
+
+commit fdb88e36b31dd943093a948999bf9eaabd2786fa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 19:04:19 +0800
+
+    Add de.po by Fabian Affolter <fab@fedoraproject.org>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/de.po
+
+commit 44e599c7014ec357777b2c61d264515321457fb2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 18:41:42 +0800
+
+    Extend tab to spaces.
+
+M      docs/reference/ibus/Makefile.am
+
+commit 606a6386a9fa56cde3204108dd580a1e1aafb3bb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 18:40:29 +0800
+
+    Fix 'make distcheck' errors.
+
+M      docs/reference/ibus/Makefile.am
+
+commit 2a9be24af686724b33520dbaea0b00a4397ae5c7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 17:12:14 +0800
+
+    Change the logic for add & apply buttons.
+
+M      setup/keyboardshortcut.py
+
+commit eb83881e9b8299165f0f113e4f62e133f8a9cf69
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 16:23:08 +0800
+
+    Add scrolledwindow for shortcut key list.
+
+M      setup/keyboardshortcut.py
+
+commit f94a7a084edfd08362cca8692826baf24ba06d69
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 14:29:39 +0800
+
+    Remove zh_TW.po
+
+M      po/LINGUAS
+
+commit a40e368ccc4c413094ac090d02d4fe8e7eac065f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 14:26:54 +0800
+
+    Update coding style.
+
+M      src/ibusengine.h
+
+commit a52bf160d5545c54537ce6fd15e1595b5852a7f0
+Merge: a4f5ccb 912f742
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 14:19:05 +0800
+
+    Merge commit 'definite/master'
+
+commit 912f742d1224bd02167c3da707a3167767e22bc4
+Author: dchen@redhat.com <dchen@dchen.redhat.com>
+Date:   2009-04-17 16:10:21 +1000
+
+    API DOC-new: ibusdebug IBusError IBusFactory; and revised.
+
+M      docs/reference/ibus/Makefile.am
+M      src/ibusbus.c
+M      src/ibusconfigservice.h
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusdebug.h
+M      src/ibusengine.c
+M      src/ibuserror.h
+M      src/ibusfactory.h
+
+commit a4f5ccb5db331e12edba798499315b569764233e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 13:56:11 +0800
+
+    Do nothing if the IM is not active.
+
+M      bus/inputcontext.c
+
+commit 9b823482f4c60ac98e7509eb638c62b1019f4fa8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-17 10:27:23 +0800
+
+    Change ibus startup phrase to Applications.
+
+M      bus/ibus.desktop.in
+
+commit 03aa34685379928ba07ce354db8de272d1d87183
+Author: dchen@redhat.com <dchen@redhat.com>
+Date:   2009-04-15 18:38:51 +1000
+
+    API DOC for IBusConnection.
+
+M      docs/reference/ibus/Makefile.am
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+
+commit fc560cda9aa9f6f75c681c21c925a4fea8e4723a
+Author: dchen@redhat.com <dchen@redhat.com>
+Date:   2009-04-15 10:11:36 +1000
+
+    Translation zh_TW updated; API DOC for IBusConfigServices; Modify Makefile.am for gtk-doc
+    
+        Surpress tmpl-build.stamp and trim ibus-sections.txt, so no need to keep ibus-sections.txt now.
+        Revised some API DOC,
+    
+    Fix the API DOC of IBusEngine
+    
+    Add zh_TW translation, Add back some API DOC
+    
+    Add back some APIDOC
+    
+    API-DOC IBusBus IBusComponent IBusConfig IBusLookupTable
+    Corrected spelling in ibuscompnent.[ch]
+    Add documentation of ibusbus.c
+
+M      docs/reference/ibus/.gitignore
+M      docs/reference/ibus/Makefile.am
+D      docs/reference/ibus/ibus-sections.txt
+M      ibus.spec.in
+M      po/LINGUAS
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibuscomponent.c
+M      src/ibuscomponent.h
+M      src/ibusconfig.c
+M      src/ibusconfig.h
+M      src/ibusconfigservice.c
+M      src/ibusconfigservice.h
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusengine.c
+M      src/ibusengine.h
+M      src/ibuslookuptable.h
+M      src/ibusobject.h
+M      src/ibusproperty.c
+M      src/ibusservice.h
+M      src/ibustypes.h
+
+commit e451b44e05244c673638cf9f54af4252adca55a8
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-15 11:29:20 +0800
+
+    Use mktemp replace $RANDOM
+
+M      xinput-ibus
+
+commit 304e55afe5987e447941cb6aa5ba99c631801b8c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-15 11:09:07 +0800
+
+    Set $IBUS_SESSION_ID if it does not exsit.
+
+M      xinput-ibus
+
+commit a18ca6fecb3180a188bb3571fbb67e6b72b30c67
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-15 11:02:27 +0800
+
+    Fix some problem when use IBUS_SESSION_ID
+
+M      bus/server.c
+M      src/ibusbus.c
+M      src/ibusshare.c
+M      xinput-ibus
+
+commit e61932c0922b189d8680b8cdc6e12d1881c98528
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-15 10:15:10 +0800
+
+    Add $IBUS_SESSION_ID in socket path.
+
+M      bus/server.c
+M      ibus/common.py
+M      src/ibusbus.c
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 25ffd2b7f1952e07a072d94d6ab3409f82d3e8f0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-15 07:54:28 +0800
+
+    Update te.po by krishna k
+
+M      po/te.po
+
+commit cb890ef456badacbb72f19155b78e7c91f665f27
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-15 07:52:35 +0800
+
+    Add Alt+Release+Alt_R as trigger for Korean people.
+
+M      data/ibus.schemas.in
+
+commit fd94b969dc64594a2d0d7af0518540bc742f65da
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-15 07:50:09 +0800
+
+    Add HANDLED_MASK and IGNORED_MASK in python lib
+
+M      ibus/modifier.py
+
+commit 590bb3a8993b029a4b4e46e05c2bfed7d200a8b4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-15 07:48:06 +0800
+
+    Add IBUS_IGNORED_MASK and IBUS_HANDLED_MASK.
+
+M      client/gtk2/ibusimcontext.c
+M      src/ibusenumtypes.c
+M      src/ibusinputcontext.c
+M      src/ibustypes.h
+
+commit 44fe66329502e318d2a7fd78f80303b122c8def6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-15 07:47:34 +0800
+
+    Add release mask if the hotkey is a signal key.
+
+M      setup/keyboardshortcut.py
+
+commit 350be1a2e35669a483843fd2a3c9cc86415b3f11
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-14 18:42:38 +0800
+
+    Add IBUS_FORWARD_MASK for ignored key events.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 4332069bdd62573f6411c4912c7a0e15730e9f9b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-14 17:26:19 +0800
+
+    Add break in switch block
+
+M      client/gtk2/ibusimcontext.c
+
+commit 1a0b3f8392ca94099534fc1e6ebcbc66d5d2f443
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-14 17:06:24 +0800
+
+    Add as.po by Amitakhya Phukan
+
+M      po/as.po
+
+commit e1f5dc528e9063b9fbab8c01c2e1a2f313a9bced
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-13 18:52:41 +0800
+
+    Change socket file permission to avoid securty issues.
+
+M      bus/server.c
+
+commit 39ae49d1da9de17794021e5f118a7253f1897914
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-13 15:23:55 +0800
+
+    Fix a typo.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 9a69d238ff4ef62cbaeed2627a82e234b7cb5ad8
+Merge: 9149a03 584c5c2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-13 12:34:14 +0800
+
+    Merge commit 'iwaim/master'
+
+commit 9149a03e72629e77f676552bda7feb3a4293340f
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-13 12:29:35 +0800
+
+    Add hu.po by Sulyok Peti <sulyokpeti@gmail.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/hu.po
+
+commit 15767b6c2ee265ea92b9bd17e52d91c1c960664d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-13 12:27:10 +0800
+
+    Store prev_key event in inputcontext object.
+
+M      bus/inputcontext.c
+
+commit 584c5c27c739a5c759d8e62865d40c4bb618492b
+Author: IWAI, Masaharu <iwaim.sub@gmail.com>
+Date:   2009-04-11 03:33:11 +0900
+
+    update ja.po
+
+M      po/ja.po
+
+commit 0d0dfd5f17b5b947a8b66dc9f10464bb386e1516
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-09 13:30:38 +0800
+
+    Add as.po by Amitakhya Phukan <aphukan@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/as.po
+
+commit 6553465ac314dd5d10703bc3bacb61a9bdb715ef
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-09 12:22:45 +0800
+
+    Add ta.po by Felix <ifelix@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/ta.po
+
+commit dab4cf2ae4c17a5de7603de88d57446b0b7ce6e4
+Merge: 34db2e0 88e85a7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-08 17:15:51 +0800
+
+    Merge commit 'origin/master'
+
+commit 34db2e09f5f1460e567e61060a6b6a86da750709
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-08 17:13:37 +0800
+
+    Rename te_IN.po to te.po.
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/te.po
+D      po/te_IN.po
+
+commit 88e85a79259c463ec40536b3c9a962fd44a751a0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-08 11:25:20 +0800
+
+    Update pl.po by Piotr Drąg
+
+M      po/pl.po
+
+commit 1e989dfd70001fb19d0e35ac8700b270ad23fdf7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-08 11:23:54 +0800
+
+    Update or.po by Manoj Giri
+
+M      po/or.po
+
+commit e47c703020e3cb3291ca04b256c108c68e796fa4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 18:29:53 +0800
+
+    Make lookup table vertical for all locales.
+
+M      data/ibus.schemas.in
+
+commit e25cd87e8b2aed89e687cdf971e25523c93a5165
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 18:01:56 +0800
+
+    Update kn.po by Shankar Prasad Venkateshbhat
+
+M      po/kn.po
+
+commit b64ba0bbd722f4ff117c56cc9b9e6958f4d5afbf
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 17:56:02 +0800
+
+    Add Telugu translation by krishna k <k.meetme@gmail.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/te_IN.po
+
+commit 53dd4d5ff8d749cf407f7ae20782064561f2dfc9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 17:41:26 +0800
+
+    Do not crash when ibus-daemon is not running.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 6a2b633a718e16fe7a20c469d715120142b05f28
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 15:43:56 +0800
+
+    Update default trigger & next engine hotkeys.
+
+M      data/ibus.schemas.in
+
+commit 2604910179fc49b17075d8440611fd33dc2780de
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 15:42:10 +0800
+
+    Add zh_HK.po by cchance@redhat.com
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/zh_HK.po
+
+commit 62305a25fcd96bab55c4b91c0b8cc542b2b1d28a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 15:38:13 +0800
+
+    Add bn_IN.po by Runa Bhattacharjee <runab@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/bn_IN.po
+
+commit bd9ed2c374711cc8c2958e8f46cf36da02dbf744
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 10:45:42 +0800
+
+    Rename gu_in to gu
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/gu.po
+D      po/gu_IN.po
+
+commit 9e3211bb4773c604c6b2b2f69732731df47f85f0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 10:44:57 +0800
+
+    Update mr.po
+
+M      po/mr.po
+
+commit 46e24a871d03179e4525fc420a044855512d55aa
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 10:41:02 +0800
+
+    Add Hindi translation by Rajesh Ranjan <rranjan@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/hi.po
+
+commit 45aba8bcc27b8ff47d8ca1e4cf9835491e107c17
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 10:38:36 +0800
+
+    Update da.po by Kris Thomsen <lakristho@gmail.com>
+
+M      po/da.po
+
+commit 01d5412ba373ae545be55ba35c49e2692537ee6b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 10:37:02 +0800
+
+    Add ar.po by muayyad.alsadi@ojuba.org
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/ar.po
+
+commit 646193035b3754997db71b9d97756b2a70879731
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-07 10:33:18 +0800
+
+    Update mr.po by sandeep shedmake <sandeep.shedmake@gmail.com>
+
+M      po/mr.po
+
+commit 2690a3c1bea2453c90e4ff841e0e8193452d16a5
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-06 15:09:07 +0800
+
+    Do not translate '[Control+space]'
+
+M      po/ca.po
+
+commit ebfac70977b6f4d368f919f0f2d4561862deeeac
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-06 15:07:46 +0800
+
+    Add gujarati translation by Sweta Kothari <swkothar@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/gu_IN.po
+
+commit 16b03eb2c9973c0f2f5b96842687c96b6218f98b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-06 11:59:29 +0800
+
+    Add catalan translation by Xavier Conde Rueda <xavi.conde@gmail.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/ca.po
+
+commit 7e78500ba5dd76387dcf58c65be68fd75f02317a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-06 11:47:44 +0800
+
+    Update po files.
+
+M      po/da.po
+M      po/es.po
+M      po/fr.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/zh_CN.po
+
+commit 8af16adfcc0d83af6c2cb528dd79db815281c99d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-06 11:44:45 +0800
+
+    Make desktop files translated
+
+M      bus/ibus.desktop.in
+M      setup/ibus-setup.desktop.in
+
+commit 9d0b73db025e460eb289a887ab66d3d2f2714431
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-06 11:33:44 +0800
+
+    Use 'Shift+space' in ko locale as trigger.
+
+M      data/ibus.schemas.in
+
+commit 777c42af86476706d56b40d787d6fd1bd891d8a0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-06 11:26:58 +0800
+
+    Add 'Alt+Zenkaku_Hankaku' and 'Alt+grave' as trigger in ja locale.
+
+M      data/ibus.schemas.in
+
+commit c5f6c7b041051eeecbdb02d2480e72e62ac598e9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-06 09:40:04 +0800
+
+    Change "previous input method:" to "Previous input method:" in setup.
+
+M      po/da.po
+M      po/es.po
+M      po/fr.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/zh_CN.po
+M      setup/setup.glade
+
+commit 46780949a15c4e2e525dabb6e54b0ff0c1a2c737
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-06 09:35:58 +0800
+
+    Change 'engine' to 'input method' in language panel.
+
+M      po/da.po
+M      po/es.po
+M      po/fr.po
+M      po/ibus.pot
+M      po/ja.po
+M      po/kn.po
+M      po/mr.po
+M      po/or.po
+M      po/pa.po
+M      po/pl.po
+M      po/sr.po
+M      po/sr@latin.po
+M      po/zh_CN.po
+M      setup/main.py
+M      ui/gtk/languagebar.py
+
+commit 40b52f16b54171492ba76bb257f544b8122fd3a4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-05 23:10:18 +0800
+
+    Update pl.po by Piotr Drąg <piotrdrag@gmail.com>
+
+M      po/pl.po
+
+commit 87ca08bfacb5af34df40594dba2b79fe81503676
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-04 13:39:31 +0800
+
+    Change the comment of Modifiers mask
+
+M      src/ibustypes.h
+
+commit a5bc4b13cbc22baecb41836e643abdc9e2faeaf2
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-04 13:28:08 +0800
+
+    Fix crash when engine is destroyed.
+
+M      src/ibusfactory.c
+
+commit 23a12b33ad321da4db75a058b9d5010f8190f1ca
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-04 13:00:43 +0800
+
+    Just call ibus_input_context_process_key_event in snooper callback.
+
+M      client/gtk2/ibusimcontext.c
+
+commit f6cc29cabc88f968ff9a8196e135934e7b3ca83e
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-04 09:24:56 +0800
+
+    Update fr.po by julroy67
+
+M      po/fr.po
+
+commit 4429e4d1bb6de1c6aea5c5080b346ce8bdd51713
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 20:16:20 +0800
+
+    Add Kannada translation by Shankar Prasad Venkateshbhat <svenkate@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/kn.po
+
+commit 1104f938d8906688e2a32c9204d7205e90803225
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 16:19:30 +0800
+
+    Does not translate [Control+space]
+
+M      po/sr.po
+M      po/sr@latin.po
+
+commit f89a71220141320b4f5f59268ee19a25b3c5208d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 16:15:19 +0800
+
+    Add Danish translation by Kris Thomsen <lakristho@gmail.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/da.po
+
+commit 5ec29c3ddc44816f932ab1ae57ba4b1ce8695cfd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 13:13:06 +0800
+
+    Fix crash when ibus-daemon shutdown or restart
+
+M      client/gtk2/ibusimcontext.c
+M      src/ibusbus.c
+
+commit aa0a469afe49da00dc1be96809df91fc74dc60e9
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 10:48:50 +0800
+
+    In ko locale, the lookup table will be vertical by default
+
+M      data/ibus.schemas.in
+
+commit c3177a4b9d3fd2ca4150dcca96225df9303d96d0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 10:39:22 +0800
+
+    Add Spanish translation by Domingo Becker <domingobecker@gmail.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/es.po
+
+commit e2194783810fc3b572a419ea3027a938f7357959
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 10:23:19 +0800
+
+    Use 'make update-po' to update po files.
+
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/pl.po
+
+commit 11d929a343036a33d62a04ee865e18774b154e13
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 10:21:56 +0800
+
+    Tranlsate some msg in zh_CN.po
+
+M      po/zh_CN.po
+
+commit 457bd430bf8f6f0338cc3ded1cfc61fb53c63ce6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 10:10:11 +0800
+
+    Add Polish translation by Piotr Drąg <piotrdrag@gmail.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/pl.po
+
+commit cae3c41d789705c814dd0cd15c9d9a559fec7ba0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-03 10:03:46 +0800
+
+    Add Oriya translation by Manoj Giri <mgiri@redhat.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/or.po
+
+commit c964bc75c2308ad4355b753e256f4aa0684f0050
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-02 15:16:07 +0800
+
+    Add mr.po by sandeep shedmake <sandeep.shedmake@gmail.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/mr.po
+
+commit 68ce68c02044cbb50fa970dc3dec668954ebec35
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-02 15:14:23 +0800
+
+    Add ibus.pot
+
+M      po/.gitignore
+A      po/ibus.pot
+
+commit cc84817859e933d8728ec773898737d07786cd72
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-02 15:09:12 +0800
+
+    Add Serbian translations by Miloš Komarčević <kmilos@gmail.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/sr.po
+A      po/sr@latin.po
+
+commit 86be0ab7838a9b00ebf6c26675aa01007020bf43
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-02 15:04:50 +0800
+
+    Remove some useless code.
+
+M      src/keyname-table.h
+
+commit ec032b9d8a80bb313ea10f13fd161b4022c2899a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-04-02 14:57:57 +0800
+
+    Update pa.po by A S Alam <apreet.alam@gmail.com>.
+
+M      po/pa.po
+
+commit bff536620bd48884160f0186ee048d98feddf725
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-31 11:13:03 +0800
+
+    Fix make distcheck errors.
+
+M      bus/Makefile.am
+M      data/Makefile.am
+M      po/POTFILES.in
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+M      setup/Makefile.am
+
+commit 9397b0a70a8b645da67f7aab3d1c113c1b21ecf6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-30 21:15:33 +0800
+
+    Use a global focus_im_context to track the focus, and deliver the key
+    event to the focus_im_context.
+
+M      client/gtk2/ibusimcontext.c
+
+commit d6ffbc6f62d9599a710801d3dc6c5132f1b5cccb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-30 17:43:29 +0800
+
+    Update po files.
+
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+
+commit ccf200f97d67716f5cab683f6c035bf9a089a542
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-30 17:41:35 +0800
+
+    Localize desktop files and gconf schemas file.
+
+M      autogen.sh
+M      bus/Makefile.am
+D      bus/ibus.desktop
+A      bus/ibus.desktop.in
+M      configure.ac
+M      data/Makefile.am
+D      data/ibus.schemas
+A      data/ibus.schemas.in
+M      setup/Makefile.am
+D      setup/ibus-setup.desktop
+A      setup/ibus-setup.desktop.in
+
+commit 2456d5b4d3a3d2dc97411551b871e6de1fd3e506
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-30 16:09:59 +0800
+
+    Fix indent problem in ibus.schemas.
+
+M      data/ibus.schemas
+
+commit 0a16fb72e94db3115796db65afff10aad141371b
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-30 14:47:09 +0800
+
+    Fix problem when create socket address.
+
+M      client/gtk2/ibusimcontext.c
+M      src/ibusshare.c
+
+commit aab43511420f04c37d96c39b6b807fe799036b9c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-30 14:31:15 +0800
+
+    Get display name from gdk_display_get_name
+
+M      client/gtk2/ibusimcontext.c
+M      src/ibusshare.c
+M      src/ibusshare.h
+
+commit 81963e23e2688f28ef0acbdbf72d831be097bd62
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-30 14:13:30 +0800
+
+    Use "unix" as hostname if hostname is empty.
+
+M      ibus/common.py
+M      src/ibusshare.c
+
+commit 15e6b996bc63dcc6cf97802ce1905d2aa582144c
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-30 14:07:27 +0800
+
+    Does not include X screen number in socket address.
+
+M      ibus/common.py
+M      src/ibusshare.c
+
+commit 7600d42c7cb5ccd91f1da694e8196fc8f57cba7d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-29 13:44:25 +0800
+
+    Use gtk key snooper to get the key events.
+
+M      client/gtk2/ibusimcontext.c
+
+commit a3b47259c4bf15d5e0afb759acb2a68ebb7724b4
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-29 09:25:39 +0800
+
+    Change ibuscontext => ibusimcontext; ibus_context => ibuscontext
+
+M      client/gtk2/ibusimcontext.c
+
+commit e48dfe9377db9c40fbfdf81515e730072cef362a
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-29 09:15:10 +0800
+
+    Remove private struct.
+
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+
+commit 0236cd777e6088296a2ac51caf8d859eeac5d557
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-29 08:27:11 +0800
+
+    Emit preedit-start & preedit-end signals.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 56760794ebe6bb23e2fe2fdc5e3dca825be54df7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-28 12:12:47 +0800
+
+    exit 1 when some command failed.
+
+M      autogen.sh
+
+commit 483ebd376b30e905998c72c4e9c3dd095707d63e
+Author: dchen@redhat.com <dchen@dchen.redhat.com>
+Date:   2009-03-27 14:19:04 +1000
+
+    Add ibus-sections.txt as gtk-doc needs it to show the title correctly.
+
+A      docs/reference/ibus/ibus-sections.txt
+
+commit e3fe226e2ddbe7754ed9cb0c60301e4959075eb1
+Author: dchen@redhat.com <dchen@dchen.redhat.com>
+Date:   2009-03-27 14:17:35 +1000
+
+    API-DOC and Fix iBus Google issue 320.
+
+M      .gitignore
+M      configure.ac
+M      docs/reference/ibus/.gitignore
+M      docs/reference/ibus/Makefile.am
+M      docs/reference/ibus/ibus-docs.sgml
+M      ibus.spec.in
+M      src/ibusattribute.h
+M      src/ibusconnection.h
+M      src/ibusengine.c
+M      src/ibusenginedesc.h
+M      src/ibusobject.h
+M      src/ibusproperty.h
+M      src/ibustext.h
+M      src/ibustypes.h
+
+commit 7c6b337ece598b5c0cf9c92b0888b45f8770ff83
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-26 14:20:08 +0800
+
+    Fix problem when remove all hotkeys.
+
+M      setup/main.py
+
+commit 11e8e771f4de51fabfed74f1b2e9a66215751da0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-23 14:51:06 +0800
+
+    Set cursor pos to zero in ibus_lookup_table_clear.
+
+M      src/ibuslookuptable.c
+
+commit 3dc5912b21668edb0c7f9656b40c2c4586f75557
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-03-23 10:17:04 +0800
+
+    Check reply of ProcessKeyEvent.
+
+M      bus/engineproxy.c
+
+commit 2bd2d52476f4828f915ee54182cc0a654f05af53
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-22 20:31:06 +0800
+
+    Add method ibus_engine_update_lookup_table_fast, it only sends current page.
+
+M      src/ibusengine.c
+M      src/ibusengine.h
+
+commit bdb7e54c92b6a111a69889b85a17452b6e9d9abf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-22 19:22:32 +0800
+
+    Use GO_DOWN & GO_UP icons when candidates window is horizontal
+
+M      ui/gtk/candidatepanel.py
+
+commit 4ecbd9354383b58a6345e3f3ac43552112c42897
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-22 09:30:34 +0800
+
+    Fix a typo.
+
+M      bus/inputcontext.c
+
+commit 1b8433a38bb1bca0b2378a6a06568b73fc307991
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-20 18:34:05 +0800
+
+    Update fr.po by Julien <julroy67@gmail.com>
+
+M      po/fr.po
+
+commit 203bc91e596a24d3935ace3f8f6827eace79b58e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-20 17:25:42 +0800
+
+    Open a new line after </rank>
+
+M      src/ibusenginedesc.c
+
+commit ab417dd043ee6ba338518758c1c833f6ccbb7bdf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-20 11:24:27 +0800
+
+    Update ja.po by iwaim.sub
+
+M      po/ja.po
+
+commit bf9ed69bfa4ee7c82397ba28b18869e1c80cc1a7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-20 09:52:51 +0800
+
+    Change "Dynamically" to "When active" in setup window.
+
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+M      setup/setup.glade
+
+commit 4b3a45829005626d9f6e23dfde97731b70e2bdeb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-11 15:56:47 +0800
+
+    Remove is_press argument from gtk im module.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 9f2ca25b5638cc1e3f10a2671472dbd72e45e479
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-11 15:54:39 +0800
+
+    Remove is_press from ForwardKeyEvent signal.
+
+M      src/ibusinputcontext.c
+
+commit 6af7e9f2f1ff18e4a6334d15f14c27e3edf2111c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-11 15:51:34 +0800
+
+    Implement ibus_engine_forward_event_key function.
+
+M      src/ibusengine.c
+M      src/ibusengine.h
+
+commit 3a560b8f18128c28fa759eb32d10bee7fd86e008
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-11 14:39:30 +0800
+
+    Update po files.
+
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+
+commit 0dc9376baaf67e8fcb363b1c9623bd634e35ccff
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-11 14:38:14 +0800
+
+    Fix problems during making distcheck
+
+M      src/Makefile.am
+
+commit 09c1fe4ecaf790633d76408c4754ce535da6f4c5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-11 14:28:50 +0800
+
+    Fix translation msg in zh_CN.po.
+
+M      po/zh_CN.po
+
+commit a8f1c7d06886f282ceeb2637a843935287eaa46e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-11 14:18:11 +0800
+
+    Change sensitive of custom font label.
+
+M      setup/main.py
+M      setup/setup.glade
+
+commit cd8f83a89ae5f80a60fe344a56ef82206dc45725
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-11 14:14:27 +0800
+
+    Update setup ui, follow gnome UI guidelines.
+
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+M      setup/main.py
+M      setup/setup.glade
+
+commit edbab2fa45e5775249e426309cee6b5254ab0342
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-09 17:23:50 +0800
+
+    Remove some debug output.
+
+M      bus/matchrule.c
+
+commit 21b79630873c79ced591cf5e909660cf4c1bda69
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-09 17:21:45 +0800
+
+    Implement ibus_bus_get_config function.
+
+M      bus/dbusimpl.c
+M      bus/matchrule.c
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibusproxy.c
+M      src/ibusproxy.h
+M      src/test-proxy.c
+
+commit a1ac8682c81051518ad0ff613958a0b96054091c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-06 10:42:28 +0800
+
+    Implement language panel: Always hide feature.
+
+M      data/ibus.schemas
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+M      setup/main.py
+M      setup/setup.glade
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+
+commit d415e945d62d69c097cf6aae701f42806529dfb7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-05 14:39:12 +0800
+
+    Process release key event correctly.
+
+M      bus/inputcontext.c
+M      src/ibushotkey.c
+M      src/ibushotkey.h
+
+commit 740acea3c7103af63f4e572c4e4c3ae39153430e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-05 14:26:10 +0800
+
+    Fix name error.
+
+M      src/ibuskeynames.c
+
+commit 5b4fafc09b31022d8eb031faf40692007e49e319
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-05 13:18:40 +0800
+
+    Do not restore preedit in _enabled_cb.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 57f551e57f9cc8c11a8e572f1db73036ad0e4d2b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-05 13:16:06 +0800
+
+    Save lookup table in input context.
+
+M      bus/inputcontext.c
+
+commit 839bc5b981f72e391c1e33bda9a12d37d17a0d7f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-04 18:16:05 +0800
+
+    Store and restore properties for input context.
+
+M      bus/inputcontext.c
+
+commit fa8b528ae670b04ec75f3c634dec032e7eee0cca
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-04 18:11:55 +0800
+
+    Implement ibus_prop_list_update_property.
+
+M      src/ibusproperty.c
+M      src/ibusproperty.h
+
+commit 2fd4b2e2a4c53fb51e3c9b2a2909e1425bcd3252
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-04 17:27:12 +0800
+
+    Save and restore status of InputContext in focus_in & out.
+
+M      bus/inputcontext.c
+
+commit 9f58762089f0a4b5ec887cd972b4762e7e46455b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-02 13:29:32 +0800
+
+    Limit numeber of hotkey.
+
+M      setup/keyboardshortcut.py
+
+commit 9c00f8f1d762db1cd61dd1a758e587df6c7dde96
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-02 13:13:09 +0800
+
+    Refine coding style.
+
+M      bus/main.c
+
+commit e1c8775b084f3c5080e185a94d0e41f185526eba
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-03-02 13:05:22 +0800
+
+    Fix some compile problems with Sun C compiler.
+
+M      bus/Makefile.am
+M      bus/main.c
+M      client/x11/main.c
+M      configure.ac
+M      src/ibushotkey.c
+M      src/ibusmessage.c
+M      src/ibuspendingcall.c
+M      util/IMdkit/i18nX.c
+
+commit cd4d9b6ebfa4a66ba6bd89c5b7d2b34eb25864af
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-28 21:42:11 +0800
+
+    Assert input of ibus_text_new_*
+
+M      src/ibustext.c
+
+commit 3ff6035410d535ec17e5049be43c09dcd229e7b9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-28 19:15:49 +0800
+
+    Sort the languages in input methods combobox.
+
+M      setup/enginecombobox.py
+
+commit c28cb8a517b8edb835b5d4b37c914ce6b93e39bd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-28 19:08:12 +0800
+
+    Clear preedit when input context is disabled.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 0b8d0067b475aade2bf5f8de7db5dd47d8a59b5e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-28 18:32:59 +0800
+
+    Fix make distcheck failed.
+
+M      Makefile.am
+M      data/Makefile.am
+M      ibus/Makefile.am
+
+commit a5087b245906efd4f63800a6f5e701f84c218d6e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-28 18:27:36 +0800
+
+    Fix compile warnings.
+
+M      bus/server.c
+
+commit 0eea8dfe33c68589406f71d411875b862ddfb377
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-27 16:55:26 +0800
+
+    Load default input method engine in right moment.
+
+M      bus/dbusimpl.c
+M      bus/ibusimpl.c
+
+commit be022f73729a0405d1bdba7fb3ef2549ff418977
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-27 13:46:06 +0800
+
+    Close all fds before restart
+
+M      bus/ibusimpl.c
+
+commit 23c1bfcf064909af2075ebc02fc0772fb07a5a1f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-27 09:37:49 +0800
+
+    Add data/Makefile.am.
+
+A      data/Makefile.am
+
+commit 8db276818d12776ba0cd7819972fa5ce30005164
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-27 09:07:18 +0800
+
+    Move icons to data/icons. Install schemas.
+
+M      Makefile.am
+M      configure.ac
+A      data/ibus.schemas
+A      data/icons/Makefile.am
+A      data/icons/engine-default.svg
+A      data/icons/ibus-help.png
+A      data/icons/ibus-keyboard.svg
+A      data/icons/ibus-locale.svg
+A      data/icons/ibus-setup.svg
+A      data/icons/ibus-zh.svg
+A      data/icons/ibus.svg
+D      icons/Makefile.am
+D      icons/engine-default.svg
+D      icons/ibus-help.png
+D      icons/ibus-keyboard.svg
+D      icons/ibus-locale.svg
+D      icons/ibus-setup.svg
+D      icons/ibus-zh.svg
+D      icons/ibus.svg
+D      setup/ibus.schemas
+
+commit fc9e5a5b087f68dc1239ad7629a1575fb83510ac
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-27 08:11:05 +0800
+
+    Add lookup_table_oritation schema.
+
+M      setup/ibus.schemas
+
+commit dbf277afecb71c3117f4c4280a30c11b7febddba
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-27 07:58:56 +0800
+
+    Fix indent of ibus.schemas.
+
+M      setup/ibus.schemas
+
+commit e899ad130ee90887c5d3b3e59417d18c5d5c041c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-27 07:56:23 +0800
+
+    Fix a typo in ibus.schemas.
+
+M      setup/ibus.schemas
+
+commit 7bfdbbc429dbbb02ef7b38d0381ef578e6252509
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-27 07:51:06 +0800
+
+    Add ibus.schemas for gconf
+
+A      setup/ibus.schemas
+
+commit 6e92cdd6c64954f5d21e9c73f444b0ca3ecdd9ec
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-27 07:01:02 +0800
+
+    Change some methods of matchrule
+
+M      bus/dbusimpl.c
+M      bus/matchrule.c
+M      bus/matchrule.h
+
+commit 7e8d1bfad188854ad45550a2c2467b5caf83923c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-27 06:29:26 +0800
+
+    Check dbus-python in configure.ac.
+
+M      configure.ac
+
+commit f3eb21d578df711c707a333714d7e05a50d7e39c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-25 18:32:49 +0800
+
+    Check ucs4 and unichar when create IBusText object.
+
+M      src/ibustext.c
+
+commit 1afc03e795559a06be1ed117fa2e8c52db016b66
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-25 14:37:09 +0800
+
+    Change title of API docs.
+
+M      docs/reference/ibus/ibus-docs.sgml
+
+commit 9620c9eecd4b435ec1f3434a43e4d06807275f82
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-25 11:24:50 +0800
+
+    Update po files.
+
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+
+commit e21e45aee092fa6681aafeea9c30013977a88deb
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-25 11:11:24 +0800
+
+    Give out more information when server listens failed.
+
+M      bus/server.c
+M      src/ibusserver.c
+
+commit 957b778d361fa270e37bc403c2640698f4718e29
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-25 11:03:31 +0800
+
+    Check current uid during startup.
+
+M      bus/main.c
+
+commit 9ec145ef02562f9f42618e86c751141d860d3db6
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-25 10:30:03 +0800
+
+    Refine coding style.
+
+M      src/ibusserver.c
+
+commit d9d401145a59e095753e86d05c55bd57e3735596
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-24 17:04:27 +0800
+
+    Replace priority in EngineDesc with rank.
+
+M      bus/ibusimpl.c
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+
+commit 8df6310b6eaf26d31daf6d4fdf4d4c41265e64ec
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-24 16:50:13 +0800
+
+    Fix typo.
+
+M      src/ibusenginedesc.c
+
+commit add104e86d0c4c53d5eea3f5b4dcc9db95b0f604
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-24 16:38:47 +0800
+
+    Sort the default preload engines by priority.
+
+M      bus/ibusimpl.c
+
+commit 388debd8ad1fdaefd2ad42c872f9d7c5577fb73c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-24 16:38:22 +0800
+
+    Add priority in IBusEngineDesc.
+
+M      src/ibusenginedesc.c
+M      src/ibusenginedesc.h
+
+commit db492c157773af0a932ca1fe6b9a6b8b977e6194
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-24 16:28:22 +0800
+
+    Enable default engines by locale name.
+
+M      bus/ibusimpl.c
+M      bus/registry.c
+M      bus/registry.h
+
+commit 0ea4adadcba4a81bfca597d6aa587d461c3c6644
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-24 08:27:55 +0800
+
+    Fix crash when parse component.
+
+M      src/ibuscomponent.c
+
+commit f0409715607bd13f9c0819e59fe19f3ae8864bc4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-24 08:21:56 +0800
+
+    Update ibus.desktop.
+
+M      bus/ibus.desktop
+
+commit 9265deb7c084c5e37b8402de8d38c0e7b0671e2b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-24 08:13:18 +0800
+
+    implement next_engine & prev_engine hotkeys.
+
+M      bus/ibusimpl.c
+M      bus/inputcontext.c
+M      bus/inputcontext.h
+
+commit cc16419cf27d12f2be12774d71399fd82cf497e3
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 19:08:47 +0800
+
+    Hide "Auto start ibus on login" checkbox.
+
+M      setup/setup.glade
+
+commit 1e554a00e8bbdc363246b1fbb7261810bce1b819
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 18:49:28 +0800
+
+    Do not install ibus.sh.
+
+M      Makefile.am
+
+commit 035272400f729b04e7be439974d6cc1b9eb4a005
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 18:45:31 +0800
+
+    Install ibus.desktop in $(sysconfdir/xdg/autostart
+
+M      bus/Makefile.am
+M      bus/ibus.desktop
+
+commit 7ba4f03df637ff1df2b441c5f754917b334130f7
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 16:36:20 +0800
+
+    Install ibus.sh to /etc/X11/xinitrc.d.
+
+M      Makefile.am
+A      ibus.sh
+
+commit 72c1294372247736f566ed35cee45710d738a5fd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 15:17:58 +0800
+
+    Use "Input Methods" replace "Engines" in setup ui.
+
+M      setup/setup.glade
+
+commit 1e9afd4067805cb1f2bbdfd64f1b0d93e6e39692
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 15:09:11 +0800
+
+    Use "No input method" replace "Disable" in im menu.
+
+M      ui/gtk/panel.py
+
+commit f86438bf0ee2f83f4744226e4d640503ff985b12
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 15:05:50 +0800
+
+    Add Disable menu item on Input Menu. Use it to disable InputContext.
+
+M      bus/inputcontext.c
+M      ibus/inputcontext.py
+M      ibus/interface/iinputcontext.py
+M      ui/gtk/panel.py
+
+commit 4c180f55b8e485aa0ac1bc1af2aa0d1b99886470
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 14:37:19 +0800
+
+    Update tooltip of status icon.
+
+M      po/zh_CN.po
+M      ui/gtk/panel.py
+
+commit 65672c00388ba8c3e98a39e700d097c9c7472172
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 14:23:47 +0800
+
+    Change default valut of panel/auto_hide to True.
+
+M      setup/main.py
+
+commit 72effa14e025424caad3e94c4b76408c803f27be
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 14:19:57 +0800
+
+    Auto hide panel by default.
+
+M      ui/gtk/panel.py
+
+commit 7720f5b1cb5f32776938dd79424d5c443c1bd7fd
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 14:17:21 +0800
+
+    ./configure will be failed when miss gconf-2.0
+
+M      configure.ac
+
+commit 77085349e1145913b0e162c9676b5852fa7878a0
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 11:30:00 +0800
+
+    Only export symbols start with ibus_
+
+M      src/Makefile.am
+
+commit d7d49a217a5d2b11487a09d38c12fb34b487827d
+Author: Peng Huang <shawn.p.huang@gmail.com>
+Date:   2009-02-23 11:18:36 +0800
+
+    Remove unused dependence pygobject
+
+M      configure.ac
+
+commit af0e05bbd5590fcb8b5255ab30ca0b109ba31f09
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-18 17:50:16 +0800
+
+    Show IM language & name in engine list.
+
+M      setup/enginetreeview.py
+
+commit 1e13b3091c7b474c8b51c46eae83074002c0c0cf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-18 17:26:19 +0800
+
+    Show default icon on language bar for engine without icon.
+
+M      ui/gtk/panel.py
+
+commit fb135922afab3b86365a251ea708cb4108f93835
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-18 16:37:19 +0800
+
+    Call ibus_object_destroy in bus_input_context_unset_engine.
+
+M      bus/inputcontext.c
+
+commit 3e72c5d339c5ca998bf06f0ebc91466dd90c16e6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-18 16:21:26 +0800
+
+    Fix BusEngineProxy leak.
+
+M      bus/ibusimpl.c
+
+commit b680ae1c4bcd1ed2ce72ee8e0bfcae4d929be64d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-18 12:54:16 +0800
+
+    Remove unused code in ibusconfig.c
+
+M      src/ibusconfig.c
+
+commit b88b8cecf5c0bbfacad2d0ca24c5af2b4b6a1915
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-18 11:25:13 +0800
+
+    Change the title fo setup dialog.
+
+M      setup/setup.glade
+
+commit 7e2c540cf96674b14db24ab8763654a915a590a1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-18 11:16:08 +0800
+
+    Hide about tab in setup dialog.
+
+M      setup/setup.glade
+
+commit 4899394c4fe37bf17551c8b153f9bd9d8a08cfaf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-18 11:14:22 +0800
+
+    Adjust setup UI.
+
+M      setup/setup.glade
+
+commit 02600a546271422a3c679f3344073412755f60c4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-18 10:53:08 +0800
+
+    Change title of ibus-setup dialog.
+
+M      setup/setup.glade
+
+commit 07b85f13393332b60d785a2f41c3222e0f4b25b7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-17 17:52:16 +0800
+
+    Update po files.
+
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+
+commit bef0025c90f721937bcd98d354974f0082026ed6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-17 17:47:47 +0800
+
+    Add ibus-docs.sgml.
+
+M      docs/reference/ibus/.gitignore
+M      docs/reference/ibus/Makefile.am
+A      docs/reference/ibus/ibus-docs.sgml
+
+commit d509f1529f316165e239ac49caaaa05c08d6853c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-17 16:06:22 +0800
+
+    Update zh_CN.po.
+
+M      po/zh_CN.po
+
+commit be16cc6eb48ea98e1104abf77f2adb85e5976493
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-17 16:05:30 +0800
+
+    Add setup/enginecombobox.py.
+
+M      po/POTFILES.in
+
+commit b5596bae0e81ccdd023999fbc15e7976ad88abbe
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-17 13:19:47 +0800
+
+    Use engine-default.svg for IM without icon
+
+M      ui/gtk/icon.py
+M      ui/gtk/panel.py
+
+commit 65188367b7ae20b0c7a79d8c3dc9649e76ea433c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-17 12:55:12 +0800
+
+    Show 'Select an input method' in Engine select ComboBox.
+
+M      setup/enginecombobox.py
+
+commit 2a608292745a8caedbb1b19e019346e27c535725
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-17 12:45:30 +0800
+
+    Use right icon for engine without icon.
+
+M      setup/enginecombobox.py
+M      setup/enginetreeview.py
+
+commit d19d55944eed84a32a874b6e9b080f9bddb67a5b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-17 09:51:24 +0800
+
+    Use DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE in introspect.
+
+M      bus/inputcontext.c
+
+commit 180f762a1b0a6a4caedec37e126376008e46da19
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-16 14:18:01 +0800
+
+    Fix typo.
+
+M      src/ibusengine.c
+M      src/ibusmarshalers.list
+
+commit fcf4af4736529e4a65f3213cd1f1157b7c258811
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-17 09:37:35 +0800
+
+    Use NULL to replace 0 as the last argument of g_object_new.
+
+M      src/ibusattribute.c
+M      src/ibusfactory.c
+M      src/ibushotkey.c
+M      src/ibusproperty.c
+M      src/ibusserializable.c
+M      src/ibustext.c
+
+commit 50453e4380288f343af04e02bf9e50ea438f198c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-16 13:55:12 +0800
+
+    Disable inputcontext when the engine is destroyed.
+
+M      bus/inputcontext.c
+
+commit 57d3b559648c3674a64a8031d30456c69cb29eae
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-16 13:26:55 +0800
+
+    Use guint to replace gint for state argument of property_activate
+    method.
+
+M      src/ibusengine.c
+M      src/ibusengine.h
+
+commit 0228a5cf757e59fda62e32cfd91282b74d258605
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-16 13:22:01 +0800
+
+    Use ibus_message_new_error_printf correctly in ibusengine.c
+
+M      src/ibusengine.c
+
+commit be4490a1893be27c65c35285776644902f466310
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-16 12:47:48 +0800
+
+    Create PROPERTY_* signals correctly and refine coding style.
+
+M      src/ibusengine.c
+
+commit aa46b3e3a1956074ce4ddbb22dae1af25f3f094e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-16 10:36:03 +0800
+
+    Fix compile warnings.
+
+M      client/x11/main.c
+
+commit a8869d09f5764d1bf2d37ef6c4d90caa1dc35c11
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-16 10:35:37 +0800
+
+    Do not call ibus_connection_flush in ibus_bus_exit to avoid crash.
+
+M      src/ibusbus.c
+
+commit f77a0cb12e8349e097d7869528f57c29d05d02d9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 16:31:26 +0800
+
+    Add --copy arguments on gtkdocize command.
+
+M      autogen.sh
+
+commit 227f950b2fae0ff5c37d773cb41f864a15138967
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 16:28:26 +0800
+
+    Move ldconfig from main to libs rpm.
+
+M      ibus.spec.in
+
+commit 6b7c922f315c7817a6c64533f8b8eed7946eaa3d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 16:11:30 +0800
+
+    Refine coding style.
+
+M      bus/ibusimpl.c
+M      bus/main.c
+M      src/ibusbus.c
+
+commit c4d1ac55757c91abb56682a4c349abe2711d0cea
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 15:59:50 +0800
+
+    Adjust the languagebar extend policy.
+
+M      ui/gtk/languagebar.py
+
+commit 27600c499fdf8a57ffa4e27f436099ad4eaa89f0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 15:51:16 +0800
+
+    Update rpm spec to move libibus.so to ibu-libs.rpm.
+
+M      ibus.spec.in
+
+commit 2cc05f88271b213d98b6fada10283f1a2fe39caa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 15:40:54 +0800
+
+    Make language transparent when inactivate.
+
+M      ui/gtk/languagebar.py
+M      ui/gtk/panel.py
+
+commit 05f1fc037cd2113da03315fb863352f6cdfceee6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 15:09:53 +0800
+
+    Make language bar left extend when language is close to right edge of screen.
+
+M      ui/gtk/languagebar.py
+
+commit 06c4f228a3176b88947523bf635d49e0fee9b978
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 14:51:41 +0800
+
+    Not call FocusIn & FocusOut methods of engines, if input context is disabled.
+
+M      bus/inputcontext.c
+
+commit be18567eac632c9fd6ef6ff14576d43b02f67d17
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 14:41:23 +0800
+
+    Remove gnome-python2-gconf from requires in spec.
+
+M      ibus.spec.in
+
+commit 5eb52e011238028cb81e7c71e39b4d506c34e96e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 14:27:37 +0800
+
+    Fix a typo, and create the engine after create the input context.
+
+M      bus/engineproxy.c
+M      bus/ibusimpl.c
+
+commit fc855ccfe89d59d2d5a1dc401ef6b1074a6a74c6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 14:27:03 +0800
+
+    Add SetCapabilities on org.freedesktop.IBus.Engine interface.
+
+M      ibus/engine.py
+M      ibus/interface/iengine.py
+
+commit 3693f5e4e4066ca76cb3412ad5ddfb58b3e0994d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-15 14:25:38 +0800
+
+    Implement several methods of IBusLookupTable.
+
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+
+commit fa8ead03037eb3cd5a522db1452a847fcd32ac57
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-14 20:24:45 +0800
+
+    Refine code.
+
+M      bus/inputcontext.c
+
+commit 47c8a11d3a781478dc0f3d3f0e1d565ec63dd429
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-14 19:45:24 +0800
+
+    Use --xim replace -x.
+
+M      xinput-ibus
+
+commit 916f4a43c33d922a39e98f082214f04c36604806
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-14 19:44:32 +0800
+
+    Add G_MOSULE_EXPORT on some functions.
+
+M      client/gtk2/ibusim.c
+
+commit a871e41e512c4a977d9b6504e0f166ed08c0f216
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-14 19:41:56 +0800
+
+    Add API: ibus_lookup_table_{page,cursor}_{down,up}.
+
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+
+commit 0e4911f38f34f5580748f6cb4b5fd584d712ef8f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-14 09:22:00 +0800
+
+    Fix typo.
+
+M      configure.ac
+
+commit ef5485bd1e53fb2fbce13827928f7eecb2ea75ef
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-13 14:10:57 +0800
+
+    Flush connection to make sure IBus.Exit has been sent before process exiting.
+
+M      src/ibusbus.c
+
+commit 748b6b1f6c181a72daadbf137f1c29d77b499f2a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-13 09:37:34 +0800
+
+    set cursor location in bus_input_context_set_engine.
+
+M      bus/inputcontext.c
+
+commit 21ae0e4f8af46aa6beec24da4b8e0278d4acc1a1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-12 13:24:42 +0800
+
+    Update .gitignore files.
+
+M      gconf/.gitignore
+M      po/.gitignore
+M      src/.gitignore
+M      ui/gtk/.gitignore
+
+commit 0bc9cf6403282a4c10e9331e67be92072cf5c5c2
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-12 13:25:01 +0800
+
+    Fix restart problem
+
+M      bus/ibusimpl.c
+
+commit 5ae50478381f53431a04e662a78d9e9db91a540e
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-12 13:15:03 +0800
+
+    Try to make all child processes finished before ibus-daemon exits.
+
+M      bus/ibusimpl.c
+M      bus/main.c
+
+commit dcd4ceb33c2865ef3636565c68d97ee05ea6b1e3
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-12 11:26:04 +0800
+
+    Use label.text instead of lable to fix problem.
+
+M      ui/gtk/menu.py
+M      ui/gtk/panel.py
+M      ui/gtk/toolitem.py
+
+commit ff57aab1e19c7f89ebb6b924165f5c6ced2a2201
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-12 10:58:50 +0800
+
+    Disconnect engine handlers before context destruction.
+
+M      bus/inputcontext.c
+
+commit 24e64aa743b4be78bfffab01b69a4ee1e65918cc
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-12 09:50:44 +0800
+
+    Set cursor location for engine after create a new engine.
+
+M      bus/inputcontext.c
+
+commit 0250e8b54cf320535d218ecbc799c70dba757250
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-11 17:33:38 +0800
+
+    Add --replace option for ibus-daemon command.
+
+M      bus/main.c
+
+commit 52289db46af40821eb9092ce02a3c82f02170e74
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-11 17:33:12 +0800
+
+    Fix a typo (Change Kill to Exit).
+
+M      src/ibusbus.c
+
+commit 34b2d2f3508866ad53579e4d65af27776187ec69
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-11 14:31:44 +0800
+
+    Update po files.
+
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+
+commit 923217b4ed5aeca6950d0d56b0baa88efb13eac0
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-11 14:23:43 +0800
+
+    Make languagebar extend to left.
+
+M      ui/gtk/handle.py
+M      ui/gtk/languagebar.py
+
+commit e24356351f817c873273d11a2efbdc4e47189fff
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-11 09:05:23 +0800
+
+    Rename iBus to IBus.
+
+M      client/gtk2/ibusim.c
+M      debian/control
+M      po/fr.po
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+M      setup/setup.glade
+M      ui/gtk/panel.py
+
+commit 46dee933ac3c2b140a6d65056a5ed5876302cd25
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-10 18:02:13 +0800
+
+    Fix crash problems.
+
+M      bus/inputcontext.c
+M      src/ibusconnection.c
+M      src/ibusmessage.c
+
+commit 1e931b56967fd7f589fab3c8081b3bdf13c49f1a
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-10 17:30:27 +0800
+
+    Fix compile warnings.
+
+M      bus/engineproxy.c
+M      bus/inputcontext.c
+M      client/gtk2/ibusimcontext.c
+M      client/x11/main.c
+M      src/ibushotkey.c
+
+commit b12ce003bc273f678b5249399e515ff78af1a582
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-10 16:55:38 +0800
+
+    Fix problem on x86_64 platform.
+
+M      bus/engineproxy.c
+M      bus/panelproxy.c
+M      src/ibusbus.c
+
+commit 637b346b1697e2d1285a6a727b2ec8455cf3e0f5
+Author: Peng Huang <phuang@phuang.nay.redhat.com>
+Date:   2009-02-10 16:53:00 +0800
+
+    Fix crash on x86_64 platform.
+
+M      bus/factoryproxy.c
+M      src/ibusengine.c
+
+commit 4fdeceb51956a114a684c7a9b75db4db459c5ee4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-10 11:24:51 +0800
+
+    Fix problem with desktop files.
+
+M      bus/Makefile.am
+A      bus/ibus.desktop
+M      configure.ac
+M      setup/Makefile.am
+A      setup/ibus-setup.desktop
+D      setup/ibus-setup.desktop.in
+
+commit 566270731276e9028350dd90b6982c865490f243
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-10 10:17:01 +0800
+
+    Do not use glib main loop in ibus_input_context_process_key function.
+
+M      src/ibusconnection.c
+M      src/ibusconnection.h
+M      src/ibusinputcontext.c
+
+commit 30bff4867177ec439cb210a016e2dd416ebab963
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-09 10:28:19 +0800
+
+    Add round lookup table support.
+
+M      ibus/lookuptable.py
+M      src/ibuslookuptable.c
+M      src/ibuslookuptable.h
+M      src/test-lookuptable.c
+
+commit c9dab029a3f84fe529c0c90dcf8571f1c0c16d85
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-06 17:23:57 +0800
+
+    Change rescan to re-scan
+
+M      bus/main.c
+
+commit 2b30fe871a569b8d33d9fa2e97307f9ef6224c0d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-06 17:22:33 +0800
+
+    Implement --rescan option for ibus-daemon.
+
+M      bus/main.c
+M      bus/registry.c
+
+commit 7818373100d18f04dc049a466f9f30bb32965176
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-06 14:54:00 +0800
+
+    Add restart menu item in system menu.
+
+M      bus/dbusimpl.c
+M      bus/dbusimpl.h
+M      bus/ibusimpl.c
+M      bus/main.c
+M      bus/matchrule.c
+M      bus/matchrule.h
+M      bus/registry.c
+M      bus/registry.h
+M      bus/server.c
+M      bus/server.h
+M      client/x11/main.c
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+M      src/ibusbus.c
+M      src/ibusbus.h
+M      src/ibusobject.h
+M      ui/gtk/panel.py
+M      xinput-ibus
+
+commit 5014bc1a8e8544ec087b631b55fc4d6907051c13
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-06 10:11:28 +0800
+
+    Add French translation provided by Julroy67.
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/fr.po
+
+commit 142d69b5ff54f203bc29a3e439061a3d4726c120
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-06 09:32:50 +0800
+
+    Fix issue http://code.google.com/p/ibus/issues/detail?id=241.
+
+M      configure.ac
+M      gconf/Makefile.am
+D      gconf/gconf.xml.in
+A      gconf/gconf.xml.in.in
+M      ui/gtk/Makefile.am
+D      ui/gtk/gtkpanel.xml.in
+A      ui/gtk/gtkpanel.xml.in.in
+
+commit 0bcd2dd9d08f2ac57121c283a63180f92a735338
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-06 08:10:19 +0800
+
+    Run ibus-daemon instead of ibus.
+
+M      setup/main.py
+
+commit 33aa241841500c0b59204d905e05d55fb273486c
+Merge: aaa9a8c a07a51f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-05 11:03:39 +0800
+
+    Merge branch 'master' into c_impl
+    
+    Conflicts:
+       po/ja.po
+       po/pa.po
+       po/zh_CN.po
+
+commit aaa9a8cea3a23bca6444221192ffc52ccbff3cb8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-05 10:48:58 +0800
+
+    Add gconf/config.h
+
+A      gconf/config.h
+
+commit aedad1ea0a7fef604aa27f4b58433fd8f2ece29e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-05 10:39:56 +0800
+
+    re-implement ibus in c language.
+
+M      .gitignore
+M      Makefile.am
+M      autogen.sh
+A      bindings/Makefile.am
+A      bindings/python/Makefile.am
+A      bindings/python/common.h
+A      bindings/python/gendefs.sh
+A      bindings/python/ibus-types.defs
+A      bindings/python/ibus-virtual-methods.defs
+A      bindings/python/ibus.defs
+A      bindings/python/ibus.override
+A      bindings/python/ibusmodule.c
+A      bus/.gitignore
+A      bus/Makefile.am
+A      bus/connection.c
+A      bus/connection.h
+A      bus/dbusimpl.c
+A      bus/dbusimpl.h
+A      bus/engineproxy.c
+A      bus/engineproxy.h
+A      bus/factoryproxy.c
+A      bus/factoryproxy.h
+A      bus/ibusimpl.c
+A      bus/ibusimpl.h
+A      bus/inputcontext.c
+A      bus/inputcontext.h
+A      bus/main.c
+A      bus/matchrule.c
+A      bus/matchrule.h
+A      bus/panelproxy.c
+A      bus/panelproxy.h
+A      bus/registry.c
+A      bus/registry.h
+A      bus/server.c
+A      bus/server.h
+A      bus/test-matchrule.c
+A      bus/test-registry.c
+M      client/Makefile.am
+M      client/gtk2/Makefile.am
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+A      client/x11/.gitignore
+M      client/x11/Makefile.am
+M      client/x11/main.c
+M      configure.ac
+D      daemon/.gitignore
+D      daemon/Makefile.am
+D      daemon/_dbus.py
+D      daemon/bus.py
+D      daemon/config.py
+D      daemon/connection.py
+D      daemon/contextmanager.py
+D      daemon/engine.py
+D      daemon/enginefactory.py
+D      daemon/factorymanager.py
+D      daemon/ibus-daemon.in
+D      daemon/ibusdaemon.py
+D      daemon/inputcontext.py
+D      daemon/lookuptable.py
+D      daemon/notifications.py
+D      daemon/panel.py
+D      daemon/register.py
+A      docs/Makefile.am
+A      docs/reference/Makefile.am
+A      docs/reference/ibus/.gitignore
+A      docs/reference/ibus/Makefile.am
+A      docs/reference/ibus/ibus.types
+A      gconf/.gitignore
+M      gconf/Makefile.am
+A      gconf/config.c
+D      gconf/config.py
+A      gconf/gconf.xml.in
+D      gconf/ibus-gconf.in
+A      gconf/main.c
+D      gconf/main.py
+A      ibus-1.0.pc.in
+M      ibus.spec.in
+A      ibus/.gitignore
+M      ibus/Makefile.am
+M      ibus/__init__.py
+A      ibus/_gtk.py
+M      ibus/attribute.py
+M      ibus/bus.py
+M      ibus/common.py
+A      ibus/component.py
+M      ibus/config.py
+M      ibus/engine.py
+A      ibus/enginedesc.py
+M      ibus/factory.py
+D      ibus/gtk.py
+A      ibus/inputcontext.py
+M      ibus/interface/Makefile.am
+M      ibus/interface/__init__.py
+M      ibus/interface/iconfig.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+A      ibus/interface/iinputcontext.py
+M      ibus/interface/inotifications.py
+M      ibus/interface/ipanel.py
+M      ibus/lookuptable.py
+M      ibus/notifications.py
+M      ibus/object.py
+A      ibus/observedpath.py
+M      ibus/panel.py
+M      ibus/property.py
+A      ibus/serializable.py
+A      ibus/text.py
+D      launcher/Makefile.am
+D      launcher/ibus.desktop.in
+D      launcher/ibus.in
+D      lib/Makefile.am
+D      lib/gtk2/Makefile.am
+D      lib/gtk2/ibusattribute.c
+D      lib/gtk2/ibusattribute.h
+D      lib/gtk2/ibusimclient.c
+D      lib/gtk2/ibusimclient.h
+D      lib/gtk2/ibusmarshalers.list
+M      po/.gitignore
+M      po/POTFILES.in
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+M      setup/.gitignore
+M      setup/Makefile.am
+A      setup/enginecombobox.py
+A      setup/enginetreeview.py
+A      setup/icon.py
+M      setup/keyboardshortcut.py
+M      setup/main.py
+M      setup/setup.glade
+A      src/.gitignore
+A      src/Makefile.am
+A      src/ibus.h
+A      src/ibusattribute.c
+A      src/ibusattribute.h
+A      src/ibusbus.c
+A      src/ibusbus.h
+A      src/ibuscomponent.c
+A      src/ibuscomponent.h
+A      src/ibusconfig.c
+A      src/ibusconfig.h
+A      src/ibusconfigprivate.h
+A      src/ibusconfigservice.c
+A      src/ibusconfigservice.h
+A      src/ibusconnection.c
+A      src/ibusconnection.h
+A      src/ibusdebug.h
+A      src/ibusengine.c
+A      src/ibusengine.h
+A      src/ibusenginedesc.c
+A      src/ibusenginedesc.h
+A      src/ibusenumtypes.c
+A      src/ibusenumtypes.c.template
+A      src/ibusenumtypes.h
+A      src/ibusenumtypes.h.template
+A      src/ibuserror.c
+A      src/ibuserror.h
+A      src/ibusfactory.c
+A      src/ibusfactory.h
+A      src/ibushotkey.c
+A      src/ibushotkey.h
+A      src/ibusinputcontext.c
+A      src/ibusinputcontext.h
+A      src/ibusinternal.c
+A      src/ibusinternal.h
+A      src/ibuskeynames.c
+A      src/ibuskeysyms-update.pl
+A      src/ibuskeysyms.h
+A      src/ibuslookuptable.c
+A      src/ibuslookuptable.h
+A      src/ibusmarshalers.list
+A      src/ibusmessage.c
+A      src/ibusmessage.h
+A      src/ibusobject.c
+A      src/ibusobject.h
+A      src/ibusobservedpath.c
+A      src/ibusobservedpath.h
+A      src/ibuspendingcall.c
+A      src/ibuspendingcall.h
+A      src/ibusproperty.c
+A      src/ibusproperty.h
+A      src/ibusproxy.c
+A      src/ibusproxy.h
+A      src/ibusserializable.c
+A      src/ibusserializable.h
+A      src/ibusserver.c
+A      src/ibusserver.h
+A      src/ibusservice.c
+A      src/ibusservice.h
+A      src/ibusshare.c
+A      src/ibusshare.h
+A      src/ibustext.c
+A      src/ibustext.h
+A      src/ibustypes.h
+A      src/ibusxml.c
+A      src/ibusxml.h
+A      src/keyname-table.h
+A      src/test-attribute.c
+A      src/test-bus.c
+A      src/test-engine.c
+A      src/test-keynames.c
+A      src/test-lookuptable.c
+A      src/test-proxy.c
+A      src/test-server.c
+A      src/test-text.c
+M      ui/gtk/.gitignore
+M      ui/gtk/Makefile.am
+M      ui/gtk/candidatepanel.py
+A      ui/gtk/gtkpanel.xml.in
+M      ui/gtk/icon.py
+M      ui/gtk/languagebar.py
+M      ui/gtk/main.py
+M      ui/gtk/menu.py
+M      ui/gtk/notifications.py
+M      ui/gtk/panel.py
+M      ui/gtk/propitem.py
+M      ui/gtk/toolitem.py
+M      util/Makefile.am
+D      util/gconf/Makefile.am
+D      util/gconf/gconf-arg-types.py
+D      util/gconf/gconf-fixes.c
+D      util/gconf/gconf-fixes.h
+D      util/gconf/gconf-types.c
+D      util/gconf/gconf-types.h
+D      util/gconf/gconf.defs
+D      util/gconf/gconf.override
+D      util/gconf/gconfmodule.c
+D      util/gconf/wscript
+M      xinput-ibus
+
+commit a07a51ff63d323a7b742e30ad5368371023b4265
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-03 16:10:06 +0800
+
+    Update po files.
+
+M      po/ja.po
+M      po/pa.po
+M      po/zh_CN.po
+
+commit 41ad46305a88637dd99f00a2d2a3f455505d357b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-03 15:07:30 +0800
+
+    Set default next_engine hot key to empty.
+
+M      ibus/common.py
+
+commit f4f4c847df58ec69f1564be082f37ee980c23896
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2009-02-03 11:08:10 +0800
+
+    Fix crash in x86_64 platform.
+
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+
+commit 08470bed58fc80d186f4641817cb1dad1847fc8c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-11-23 20:59:14 +0800
+
+    Fix problem introduced by last commit.
+
+M      ui/gtk/panel.py
+
+commit 45726ffaf0e79e9d9421cb184be412df0997b319
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-11-23 13:50:58 +0800
+
+    Handle SIGCHLD in ibus-ui-gtk to fix issue 191.
+
+M      ui/gtk/panel.py
+
+commit 28dc3faad2df6dd3eb6b9f7539e3f118ef94fe42
+Author: LI Daobing <lidaobing@gmail.com>
+Date:   2008-11-04 19:32:09 +0800
+
+    fix typo in Makefile.am
+
+M      ibus/Makefile.am
+
+commit ee9926f9f3da539c4b29ef81bc1e0b4dd7e551f0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-11-01 13:34:21 +0800
+
+    Request glib2 >= 2.16
+
+M      configure.ac
+
+commit dd5d87e261ef846ebf8a311910d9de3b347277ac
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-25 13:22:24 +0800
+
+    Change email address for pa.po file.
+
+M      AUTHORS
+
+commit 6cc8017cffa65234c7016fcfb797e307cadbfd4d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-25 10:04:47 +0800
+
+    Add Punjabi (pa.po) Translation by A S Brar <amanpreetbrar@rediffmail.com>
+
+M      AUTHORS
+M      po/LINGUAS
+A      po/pa.po
+
+commit 42740b6eb84e1c8013d762c05c1ff8e5248db44e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-23 14:15:24 +0800
+
+    Update po files.
+
+M      po/ja.po
+M      po/zh_CN.po
+
+commit 45922c236364606be6d91dba30e8a54886648759
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-21 15:32:02 +0800
+
+    Get unique_name in ibus.Bus.__init__
+
+M      ibus/bus.py
+
+commit 7f88a36c28d60f3dbe231dd76d2e0c04ca740e89
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-20 13:43:25 +0800
+
+    Use UInt32 for property.
+
+M      ibus/property.py
+
+commit e3b4a0aa8e0074de826702df3b014dd27a4c2ec5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-19 09:50:05 +0800
+
+    Do not expend icons.
+
+M      setup/main.py
+
+commit 9c72c9235e37bad755174b6eeed0cf96a42d9b94
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-16 10:15:18 +0800
+
+    Fix coding style.
+
+M      util/IMdkit/Xi18n.h
+M      util/IMdkit/i18nX.c
+
+commit feb1d8f1ca5befeb66e57af86366920f0f538426
+Merge: 998cdda 3439d61
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-16 09:59:56 +0800
+
+    Merge branch 'master' into fix_xim_bug
+
+commit 3439d61d0403f18b3ede55678f7ed70a9864a3a0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-16 09:59:28 +0800
+
+    Use LOG replace g_debug
+
+M      client/x11/main.c
+
+commit 998cdda74071af6027ae5b0f2a094150343c489a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-15 22:20:47 +0800
+
+    Do not discard unread data from XGetWindowProperty
+
+M      util/IMdkit/Xi18n.h
+M      util/IMdkit/i18nUtil.c
+M      util/IMdkit/i18nX.c
+
+commit b3960020e4053ea003ef46cd98e195247cefda67
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-15 22:19:57 +0800
+
+    Revert "Do not discard unread data from XGetWindowProperty"
+    
+    This reverts commit 6ad5307d585930c79feaf5d8aaf791277df067c9.
+
+M      util/IMdkit/Xi18n.h
+M      util/IMdkit/i18nUtil.c
+M      util/IMdkit/i18nX.c
+
+commit 6ad5307d585930c79feaf5d8aaf791277df067c9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-15 22:17:53 +0800
+
+    Do not discard unread data from XGetWindowProperty
+
+M      util/IMdkit/Xi18n.h
+M      util/IMdkit/i18nUtil.c
+M      util/IMdkit/i18nX.c
+
+commit c56d1b3bf2a2bf9eb6de4bbb985c6ba58c166a04
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-15 07:56:03 +0800
+
+    Fix keyboard shortcut setup problems
+
+M      daemon/bus.py
+M      setup/main.py
+
+commit 5a2f8e1d9d0f14651d9dbd711b77e5f36756fde4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-12 09:30:20 +0800
+
+    Convert IBusAttribute for au to (uuuu)
+
+M      client/x11/Makefile.am
+M      ibus/attribute.py
+M      ibus/interface/iengine.py
+
+commit f0ef83c293511c947033e803345892ac8c4ca56e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-12 09:28:51 +0800
+
+    Convert IBusAttribute to (uuuu)
+
+M      lib/gtk2/ibusattribute.c
+M      lib/gtk2/ibusattribute.h
+M      lib/gtk2/ibusimclient.c
+
+commit 2b6cf32ad9f44a6c0b49b76687b78b30a138c707
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-09 11:42:11 +0800
+
+    Update translations.
+
+M      po/ja.po
+M      po/zh_CN.po
+
+commit a6e244cb8897de2059b938d56396415f4e8ada42
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-09 11:26:07 +0800
+
+    Modify setup ui to be consonant with GNOME HIG.
+
+M      setup/setup.glade
+
+commit 6d9c8c192da47c66090694540644b626ccfb9ced
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-09 09:02:33 +0800
+
+    Add ICON for im-chooser.
+
+M      xinput-ibus
+
+commit 76ae87c4634e7f8594fd663e6c05b369fda4948b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-07 18:48:00 +0800
+
+    Fix problem when org.freedesktop.Notifications does not exist.
+
+M      ui/gtk/notifications.py
+
+commit 796614baeb0002f77522b196e974e68f37b16646
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-07 18:42:04 +0800
+
+    Fix a typo.
+
+M      daemon/config.py
+
+commit a62abdb0bfe51e7cd09328682d2091ac37eb4987
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-07 18:32:09 +0800
+
+    Add Requries: notification-daemon in ibus.spec.in
+
+M      ibus.spec.in
+
+commit a643a4369cdc80699f20c90c1cb059aab1551bcc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-07 13:28:07 +0800
+
+    wip.
+
+M      daemon/bus.py
+
+commit 22e958627cc8216b77ce19ebebf6087d254f12a5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-07 12:59:46 +0800
+
+    Change summary in ibus.spec
+
+M      ibus.spec.in
+
+commit aeff3850e2e75bd2cdba7f18efbb964935782c81
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-07 12:27:08 +0800
+
+    Refine spec file for fedora.
+
+M      ibus.spec.in
+
+commit cd5dc96daa4cd80f1985a74a9641d82848081e10
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-07 11:12:22 +0800
+
+    Refine .desktop files.
+
+M      launcher/ibus.desktop.in
+M      setup/ibus-setup.desktop.in
+
+commit 0bb06d38664d0045e7294e4091f385fbcad723c9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 18:15:42 +0800
+
+    Remove unused variable.
+
+M      gconf/main.py
+
+commit 01754e6aa58a834f6ee4f443d45d1b4e45380de4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 18:14:31 +0800
+
+    Refine messages.
+
+M      daemon/bus.py
+M      po/ja.po
+M      po/zh_CN.po
+
+commit 0132624bd496ab37c96bf371eb828d258ca678f1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 17:45:33 +0800
+
+    Add daemon/notifications.py
+
+A      daemon/notifications.py
+
+commit aa445d730491d08cb29c39f02d97f0d2c4e8b91a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 16:17:57 +0800
+
+    Fix make rpm error.
+
+M      ibus.spec.in
+
+commit 1d677534e8efa847464325766684c6378cdb073b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 16:13:50 +0800
+
+    Complete Noifications module.
+
+M      daemon/bus.py
+M      daemon/panel.py
+M      ibus/interface/ipanel.py
+M      ibus/panel.py
+M      po/ja.po
+M      po/zh_CN.po
+M      ui/gtk/panel.py
+
+commit 7ab63e10f58b5c9c902e9f49250339a3ccc30ebf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 16:04:22 +0800
+
+    WIP
+
+M      gconf/config.py
+M      ibus/notifications.py
+M      ui/gtk/notifications.py
+
+commit d64996654cc58db9d33896e265a73e097fc2701b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 15:53:17 +0800
+
+    WIP.
+
+M      daemon/bus.py
+
+commit fd4df98ed4985767d95f2d7cdef9d89fad87894d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 15:24:59 +0800
+
+    WIP
+
+M      daemon/Makefile.am
+M      daemon/bus.py
+M      daemon/config.py
+M      daemon/panel.py
+
+commit 59a0435b1a8fbb2e2f80bfe79057cbd5eb3da815
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 15:00:01 +0800
+
+    WIP.
+
+M      ui/gtk/main.py
+M      ui/gtk/notifications.py
+M      ui/gtk/panel.py
+
+commit 61c603838a15b01011093090065ed33116cdda13
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 14:47:06 +0800
+
+    WIP.
+
+M      ui/gtk/notifications.py
+
+commit d4bb8eb1c6c36e43a5a9504717aeb64832c66538
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 14:29:37 +0800
+
+    Add notifications
+
+M      ibus/__init__.py
+M      ui/gtk/Makefile.am
+A      ui/gtk/notifications.py
+D      ui/gtk/notify.py
+
+commit 6fcaef161510134118d935f0240e4d719ba43a7a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 14:14:21 +0800
+
+    Add notifications.py
+
+M      ibus/Makefile.am
+M      ibus/common.py
+A      ibus/notifications.py
+
+commit 6a06d45e1d3956670ca9006ddfa380c176c1146f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 14:04:28 +0800
+
+    Refine coding style.
+
+M      ibus/interface/__init__.py
+M      ibus/interface/iconfig.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+M      ibus/interface/ipanel.py
+
+commit a715f71bc4171298f8e57d1b9b3f8eb42ade1938
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 13:59:52 +0800
+
+    Add INotifications interface.
+
+M      ibus/interface/Makefile.am
+A      ibus/interface/inotifications.py
+
+commit bb1339b4e2a4dd5af95bc594b4d35b83fdcbbd5f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 11:23:17 +0800
+
+    Fix a typo.
+
+M      ui/gtk/Makefile.am
+
+commit f754f7dca2dbf6fcb3cd1bc8e313c5539e8ce50c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 10:39:43 +0800
+
+    Change COPYING from LGPL 2.0 to LGPL 2.1
+
+M      COPYING
+
+commit 8a6e14d84fe318a7a2efd66d453c2b99a6299d5b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 10:24:21 +0800
+
+    ellipsize engine name in ibus-setup.
+
+M      setup/main.py
+
+commit c3d16cbe31c681001eb18191dc69368342b96b3b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-06 07:41:26 +0800
+
+    Change panel path in POFILES.in.
+
+M      po/POTFILES.in
+M      po/ja.po
+M      po/zh_CN.po
+
+commit 50d772447ab3589ff02c7e10486d11d3572c0efe
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-05 22:28:22 +0800
+
+    Update .gitignore
+
+M      ui/gtk/.gitignore
+
+commit cf8d326d0839501e0ee9eb180cddb5ca670edd85
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-05 22:24:21 +0800
+
+    Add notify in ui/gtk/Makefile.am
+
+M      ui/gtk/Makefile.am
+
+commit 8a4eb40abff0441c015f15fa864967e106868f52
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-05 22:23:42 +0800
+
+    Move notify from daemon to ui/gtk
+
+M      daemon/Makefile.am
+D      daemon/notify.py
+A      ui/gtk/notify.py
+
+commit 3d36b0eb76eafcda76082baecf34a48d6cbb0319
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-05 22:16:30 +0800
+
+    Move panel into ui folder, and rename panel to gtk.
+
+M      Makefile.am
+M      configure.ac
+M      launcher/ibus.in
+D      panel/.gitignore
+D      panel/Makefile.am
+D      panel/candidatepanel.py
+D      panel/handle.py
+D      panel/ibus-panel.in
+D      panel/icon.py
+D      panel/languagebar.py
+D      panel/main.py
+D      panel/menu.py
+D      panel/panel.py
+D      panel/propitem.py
+D      panel/toolitem.py
+A      ui/Makefile.am
+A      ui/gtk/.gitignore
+A      ui/gtk/Makefile.am
+A      ui/gtk/candidatepanel.py
+A      ui/gtk/handle.py
+A      ui/gtk/ibus-ui-gtk.in
+A      ui/gtk/icon.py
+A      ui/gtk/languagebar.py
+A      ui/gtk/main.py
+A      ui/gtk/menu.py
+A      ui/gtk/panel.py
+A      ui/gtk/propitem.py
+A      ui/gtk/toolitem.py
+
+commit 249722e4aa36837b6ff5fd1436387bc66b482228
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-05 17:34:05 +0800
+
+    Specify qt4 make flags when generate Makefile from .pro file.
+
+M      client/qt4/Makefile.am
+
+commit adc508ea4bf5c14c7f20591b4a93b5fbb18904ea
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-05 17:24:31 +0800
+
+    Handle XIM_GET_IC_VALUES event.
+
+M      client/x11/main.c
+
+commit 87f481a427702e932026fe86487679e4381d4c63
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-05 17:10:16 +0800
+
+    Fix XIM freezing problem.
+
+M      client/x11/main.c
+
+commit 9691862da2d96d009e39435dc5fc88225a92569f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-05 15:35:13 +0800
+
+    Remove debug output for japan_groups.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 601e1c4a77145144ca62d7565d834add2bdb287d
+Author: LI Daobing <lidaobing@gmail.com>
+Date:   2008-10-04 22:04:05 +0800
+
+    fix desktop file format
+    
+    This desktop entry lists a category that is not one of the registered
+    Main or Additional Categories in the FreeDesktop specification.
+    
+    Refer to http://standards.freedesktop.org/menu-spec/1.0/apa.html for
+    details.
+
+M      launcher/ibus.desktop.in
+M      setup/ibus-setup.desktop.in
+
+commit 4b413844a94df44174147a50becfeaf1c8d537ca
+Author: LI Daobing <lidaobing@gmail.com>
+Date:   2008-10-04 21:58:42 +0800
+
+    fix typo in README
+
+M      README
+
+commit ec98987a0e306bdad4ffe17e74b7d87f31ea5f7f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-04 10:29:48 +0800
+
+    Fix `make distcheck` errors.
+
+M      po/POTFILES.in
+M      po/ja.po
+M      po/zh_CN.po
+
+commit 96bc3c966179e1f816681bb6a1d02133d040e2cd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-04 10:20:04 +0800
+
+    Refine coding style.
+
+M      ibus/bus.py
+
+commit 397ff9ca92a2eaf8469b757243813849804f9290
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-04 08:51:39 +0800
+
+    WIP.
+
+M      daemon/_dbus.py
+M      daemon/config.py
+M      gconf/config.py
+M      ibus/bus.py
+M      ibus/common.py
+M      ibus/config.py
+
+commit d362fe98b9b428e21324a32e922529c8f9ac3837
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-04 07:51:38 +0800
+
+    Fix problem in ibus-setup
+
+M      setup/main.py
+
+commit ca93a90da1f2ea506f36e4ada7bd2b300e4d41e2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 23:58:31 +0800
+
+    WIP.
+
+M      ibus/bus.py
+M      launcher/ibus.in
+
+commit 0d2c788dfdd7a00f1ca2310a846357f485aa2432
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 23:50:55 +0800
+
+    WIP.
+
+M      ibus/bus.py
+M      ibus/common.py
+M      launcher/ibus.in
+
+commit 6515cb122eea13c16d5f936a346acbc1369b2d64
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 20:19:03 +0800
+
+    WIP.
+
+M      daemon/Makefile.am
+M      daemon/bus.py
+M      daemon/config.py
+M      daemon/connection.py
+D      daemon/defaultconfig.py
+M      daemon/ibusdaemon.py
+M      gconf/config.py
+M      gconf/main.py
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+
+commit 09a7df4511f12e447d1f43ad485b375a3e5b26c6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 19:16:56 +0800
+
+    Fix a typo.
+
+M      ibus/config.py
+
+commit 1fa35a56275196483ff939aa1b6f3042780d8ead
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 19:15:36 +0800
+
+    Add config.py
+
+M      ibus/__init__.py
+A      ibus/config.py
+D      ibus/config.py.in
+
+commit 386c0bf61c1ce647e3792af88ee1adab8393aedd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 19:12:15 +0800
+
+    Rename config.py.in to _config.py.in
+
+M      configure.ac
+M      ibus/Makefile.am
+M      ibus/__init__.py
+A      ibus/_config.py.in
+
+commit ecb3f104ef07e1d08b1562396a1d57cb89945d4f
+Merge: 368ff21 221f2c6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 17:53:41 +0800
+
+    Merge branch 'master' into modify_config_interface
+
+commit 221f2c6bdba92669b98cee65616d8f3837ff1a2c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 17:52:09 +0800
+
+    Return 0 when XIM_GET_IC_VALUES is received.
+
+M      client/x11/main.c
+
+commit 368ff2110216b6f968631bfa671aa1ef7de7b7b9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 17:28:00 +0800
+
+    WIP.
+
+M      daemon/bus.py
+M      gconf/config.py
+M      ibus/interface/iibus.py
+
+commit b940644dbeaec464c0dfb25948f67162fc2a2f45
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 17:07:29 +0800
+
+    Change interface for config.
+
+M      daemon/bus.py
+M      daemon/config.py
+M      daemon/ibusdaemon.py
+M      gconf/config.py
+M      ibus/bus.py
+M      ibus/interface/iconfig.py
+M      panel/panel.py
+M      setup/main.py
+
+commit 141bb4e5635d4302598fd1b4204a332a2d780d6a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 12:34:12 +0800
+
+    Return 0 if ibus does not handle xim event.
+
+M      client/x11/main.c
+
+commit 43471e1c3ffcc592f760d54ec35c99903032fbc4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 12:21:43 +0800
+
+    Remove _is_attr.
+
+M      client/x11/main.c
+
+commit bc9dbaa52ac8e4de2651eb2dd1658d731dd487f5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 12:18:33 +0800
+
+    Refine debug output.
+
+M      client/x11/main.c
+
+commit 7ff16d509e2e077ac2e26de146dbc4a7e34748a6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 10:30:08 +0800
+
+    Fix problem in ibus_attr_list_copy.
+
+M      lib/gtk2/ibusattribute.c
+
+commit 927200df0bb7f559110dd624d2e52412220447d8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 00:08:18 +0800
+
+    Refine coding style.
+
+M      lib/gtk2/ibusattribute.c
+
+commit 6f23b8b88dc103021f301a0e889739081547cf94
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 00:06:11 +0800
+
+    Fix typo.
+
+M      lib/gtk2/ibusimclient.c
+
+commit f0591a6909d68572422eb518ee13ad5a216c788d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-03 00:04:00 +0800
+
+    Use ibus_attribute_new to create IBusAttribute
+
+M      lib/gtk2/ibusimclient.c
+
+commit c1d8fdc166365afe79cf3652f156b42315440e32
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-02 20:15:13 +0800
+
+    Fix problems in ibus-x11.
+
+M      client/x11/main.c
+
+commit 624fcc1ac58ba932ea4d3418c4c79bdf991c4a18
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-02 20:15:01 +0800
+
+    Fix problem in gtk im module.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 4d9df1bea69f7d943565fbb4bb290fa08eeca821
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-02 20:08:51 +0800
+
+    Remove debug output.
+
+M      lib/gtk2/ibusattribute.c
+
+commit d74ac7f45da5d97966d1953ccd700001c5f66d3d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-02 19:59:01 +0800
+
+    Put languagebar in right bottom of root window.
+
+M      panel/languagebar.py
+
+commit 7a3a662e068029be7759d35166711702ba5290ac
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-02 19:46:40 +0800
+
+    Use IBusAttribute in ibus-x11.
+
+M      client/x11/main.c
+
+commit 1e40616f330b25266aa4794c27136fabab7e23eb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-02 19:26:23 +0800
+
+    Use IBusAttribut replace PangoAttribute.
+
+M      client/gtk2/ibusimcontext.c
+M      lib/gtk2/ibusattribute.c
+M      lib/gtk2/ibusimclient.c
+
+commit 8647538dd30ee392d9ac093b088019abcd0a656f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-02 19:00:55 +0800
+
+    Implement IBusAttribute & IBusAttrList.
+
+M      lib/gtk2/Makefile.am
+A      lib/gtk2/ibusattribute.c
+M      lib/gtk2/ibusattribute.h
+
+commit 0394896c4eaed931eaba4c444cb3a3c58a23271a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-01 14:07:03 +0800
+
+    Free preedit_string & preedit_attrs.
+
+M      client/x11/main.c
+
+commit f33d3aac4c3d6dfea5775238128278443ce2d678
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-01 12:43:50 +0800
+
+    Support input style.
+
+M      client/x11/main.c
+
+commit 21bacd40b5f6c45e137b6b3e7d6b00d8fbe96634
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-01 12:39:52 +0800
+
+    WIP.
+
+M      client/x11/main.c
+
+commit 295919568bad10b35c9013df19f9550efa06469f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-10-01 11:58:34 +0800
+
+    WIP.
+
+M      client/x11/main.c
+
+commit 8bd15c58cc3cb2e3b547f1ab1b415c529f5fc794
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-30 18:23:50 +0800
+
+    Remove commentted code.
+
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+
+commit 52e1f3d8a448ebf25b75bef2c1e51b9f69b5cf31
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-30 08:26:02 +0800
+
+    Update ibus.sepc.in.
+
+M      ibus.spec.in
+
+commit 143c3a4a3f523c503f46b62a6fa7a5711de4b462
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-30 08:14:14 +0800
+
+    Update po files.
+
+M      po/ja.po
+M      po/zh_CN.po
+
+commit 08c01a29e7096a1e9b6c553d5eaca995af48a26b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-30 08:13:55 +0800
+
+    Fix make dist error.
+
+M      util/gconf/Makefile.am
+
+commit bd27a75a0bf7120b1bdc280fda0bed9e8abdce75
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-28 15:39:46 +0800
+
+    Remove unused import
+
+M      daemon/config.py
+M      daemon/factorymanager.py
+M      daemon/panel.py
+
+commit 351224c9ef40beca8c72a4c79e68d2bde17ab727
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-28 12:57:58 +0800
+
+    Comment register_panel method.
+
+M      ibus/bus.py
+
+commit 8787bfa04f567c14afd34dea1efb8394824b42ae
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-28 12:56:17 +0800
+
+    Comment RegisterPanel method.
+
+M      ibus/interface/iibus.py
+
+commit 0a19866bcc57beb1d15bfe996b7c58fd054abdbc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-28 10:56:11 +0800
+
+    Change Panel interface.
+
+M      daemon/_dbus.py
+M      daemon/bus.py
+M      ibus/panel.py
+M      panel/main.py
+M      panel/panel.py
+
+commit 7e28ed0209cc811b7443e15304174a730f75f8d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-27 19:00:53 +0800
+
+    WIP.
+
+M      daemon/_dbus.py
+M      ibus/bus.py
+M      ibus/panel.py
+
+commit f5d073b53bff179858a0175b9e4948efad138696
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-27 17:48:05 +0800
+
+    Refine error message.
+
+M      daemon/_dbus.py
+
+commit c9d39cd617e3b766e3d0750a110d3753958a417f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-27 15:23:12 +0800
+
+    Support MatchRule
+
+M      daemon/_dbus.py
+
+commit 0b0ded27bda2a2c9ffdff6395018341d193d0f42
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-27 14:06:01 +0800
+
+    Add message routing feature for ibus.
+
+M      daemon/_dbus.py
+M      daemon/connection.py
+
+commit 4b20a204d7ce986f2ef407374320c8a3617ce582
+Merge: 593ad43 7f04c70
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-27 11:40:03 +0800
+
+    Merge branch 'master' into implement_dbus
+
+commit 7f04c7006bbe8d1526e2a32886947abbf02f1256
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-27 11:39:34 +0800
+
+    Change internal gconf install location.
+
+M      gconf/config.py
+M      util/gconf/Makefile.am
+
+commit 593ad4302ffb76aa148dd64da8df490c710b88c5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-27 11:38:58 +0800
+
+    Change dbus message handle order.
+
+M      daemon/connection.py
+
+commit 76840784c9ccb4c5e6cabc37d67ae3d1acbfdab9
+Merge: 8414a12 9b48126
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-27 10:57:13 +0800
+
+    Merge branch 'master' into implement_dbus
+
+commit 9b481260aaa102070f0377050914d2e4d0031bbc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-27 10:24:02 +0800
+
+    stop_emission dbus-signal when signal be handled.
+
+M      daemon/config.py
+M      daemon/connection.py
+M      daemon/enginefactory.py
+M      daemon/panel.py
+
+commit c44fd10f2fdf5018238e52f3e932883c403b3eea
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-25 17:14:29 +0800
+
+    Fix problem when works with imsettings.
+
+M      client/x11/main.c
+
+commit 8414a1287dfcf1d0179fb09911a99657588bd4e4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-25 17:09:02 +0800
+
+    Fix problem in org.freedesktop.DBus.GetNameOwner()
+
+M      daemon/_dbus.py
+
+commit 2408a45e9b58da644df9a893df1b4b9ca5d8b957
+Merge: d59183c 659e44f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-25 16:04:03 +0800
+
+    Merge branch 'master' into implement_dbus
+
+commit 659e44fb534ee96487d8f22598ece1a0ff1066b2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-25 16:03:22 +0800
+
+    Update po files.
+
+M      po/ja.po
+M      po/zh_CN.po
+
+commit d59183cbe87fe4eb5d9d014efc254a8163b97fb3
+Merge: 7e77e8d 9b8c9a8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-25 13:48:50 +0800
+
+    Merge branch 'master' into implement_dbus
+
+commit 9b8c9a850f271f22eb70c3ae19b202753f6c919b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-25 13:46:37 +0800
+
+    Fix problem in non-UTF8 locale.
+
+M      ibus/lang.py
+M      panel/main.py
+M      setup/main.py
+
+commit 791de25117257159a981d3220e492f17ff808186
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-25 10:53:16 +0800
+
+    Use gettext.dgettext replace locale.dgettext
+
+M      ibus/lang.py
+
+commit 7e77e8d4528f7516a50fbf5b41576d06f84d526e
+Merge: b2c95f2 70ba17b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 18:51:16 +0800
+
+    Merge branch 'master' into implement_dbus
+
+commit 70ba17bd9056014ce62948ba25a5e6579e724b7d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 18:49:18 +0800
+
+    Renove unused import
+
+M      daemon/engine.py
+
+commit b2c95f23a30d636c162fab27566d5e0c0aa11519
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 18:29:18 +0800
+
+    Fix some problems.
+
+M      daemon/_dbus.py
+
+commit 500d101d8e7016a3a81685304f7524ac884848e4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 17:58:59 +0800
+
+    Fix problem in test task in Makefile.am
+
+M      daemon/Makefile.am
+
+commit 743c41803aa27d5a9f2dee257f9831fe7239ab59
+Merge: f011322 025371d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 17:51:02 +0800
+
+    Merge branch 'master' into implement_dbus
+
+commit 025371daba5b8e51c78eff8da15bebab3c7a2e03
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 17:50:20 +0800
+
+    Remove commetted line
+
+M      debian/rules
+
+commit ff35f467c8ad3c71cae7ca351a0c31bf05f5d244
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 17:49:37 +0800
+
+    Remove --with-gtk-im-module-dir in debian build script.
+
+M      debian/rules
+
+commit f62802b72d8244e33babe2d5ac660979f534d653
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 17:44:28 +0800
+
+    Install gtk im module in ${libdir}/gtk-2.0/${gtk_binary_version}/immodules.
+
+M      configure.ac
+M      ibus.spec.in
+
+commit f011322081b6e3e932f954fc1aab3f44441a01bb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 17:26:38 +0800
+
+    wip.
+
+M      daemon/_dbus.py
+M      daemon/connection.py
+
+commit 5a13c1a773c9205172e21fb2834d31681edc09dc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 13:13:08 +0800
+
+    Remove pynotify.
+
+M      daemon/bus.py
+
+commit 16bda71dacd1c084393ad98e88e060e20708291c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-24 13:03:14 +0800
+
+    Refine coding style.
+
+M      daemon/_dbus.py
+
+commit a4e7629627be3793e58c458de1f300c3425d4bf9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-23 14:40:48 +0800
+
+    Add notify.py
+
+M      daemon/Makefile.am
+M      daemon/bus.py
+A      daemon/notify.py
+
+commit bc4d2db0ea4c00d2f5a5547de01603a1e13eec90
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-23 11:29:40 +0800
+
+    Fix problem when context focus out.
+
+M      daemon/bus.py
+
+commit ffcba4bfdc940e94efafa464201892a69c3cbddf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-23 11:25:16 +0800
+
+    Retrun 0 if can not find ic.
+
+M      client/x11/main.c
+
+commit a69071d7991b7de8f7dc29940fe55430d99a430f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-22 13:21:24 +0800
+
+    Fix warning when load setup.glade
+
+M      setup/setup.glade
+
+commit 1d8ef89e2382392333327e1136f5eab1f917f497
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-21 19:16:37 +0800
+
+    Remove _focus_ic.
+
+M      client/x11/main.c
+
+commit 899c7c56c7e37e78c907a85199a353354efc4d10
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-21 17:32:14 +0800
+
+    Implementing DBus.
+
+M      daemon/_dbus.py
+M      daemon/bus.py
+M      daemon/ibusdaemon.py
+
+commit ae0f70a239508b5be11a73dfe8747531a840836e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-21 16:42:12 +0800
+
+    split DBus object from ibusdaemon.py
+
+M      daemon/Makefile.am
+A      daemon/_dbus.py
+M      daemon/ibusdaemon.py
+
+commit 53b7c849475d589d31500953ef4544945c824add
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-21 13:27:13 +0800
+
+    Implement org.freedesktop.DBus methods.
+
+M      daemon/ibusdaemon.py
+M      doc/specification
+
+commit 6789a1f6f8bb59037206f46cbeed1a5bc552b1ea
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-20 11:14:36 +0800
+
+    set_capabilities when frontend establishs ibus connection.
+
+M      client/gtk2/ibusimcontext.c
+M      client/qt4/ibus-input-context.cpp
+M      client/qt4/ibus-input-context.h
+
+commit 54c52e2f73805029cecf34c5af5e577ba5845ab8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-20 11:02:17 +0800
+
+    Define CAPS.
+
+M      daemon/inputcontext.py
+
+commit bac2b876fe4d18448b0491babb0d5ed3bdf56102
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-20 09:37:56 +0800
+
+    Add new IBUS_CAP_FOCUS capability for input context.
+
+M      client/gtk2/ibusimcontext.c
+M      client/qt4/ibus-client.h
+M      client/qt4/ibus-input-context.cpp
+M      client/x11/main.c
+M      daemon/bus.py
+M      daemon/inputcontext.py
+M      lib/gtk2/ibusimclient.c
+M      lib/gtk2/ibusimclient.h
+
+commit 92a40e0b50c24a97d1da46c1de41e4409f7508cb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-20 09:06:53 +0800
+
+    Set focus if ic without focus.
+
+M      client/x11/main.c
+
+commit b2353c87b6eb4008c50988d253f2677c1443a95d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-19 09:57:33 +0800
+
+    Create symbol links for qt3.
+
+A      client/qt3/ibus-client.cpp
+A      client/qt3/ibus-client.h
+A      client/qt3/ibus-input-context.cpp
+A      client/qt3/ibus-input-context.h
+A      client/qt3/im-ibus-qt.cpp
+
+commit 730db205f55cb34d620fca839673a5a98f6494c1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-19 08:42:28 +0800
+
+    Output warn message if iso-codes can not be found.
+
+M      configure.ac
+
+commit 5bc961ecd47c0fdde5dba8a782d3c38cd571ef4c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-18 19:58:59 +0800
+
+    Add --disable-iso-codes-check in spec file.
+
+M      ibus.spec.in
+
+commit 0eb21f88906efd292b4ed892698f9c17c265ae8e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-18 19:57:59 +0800
+
+    Refine error message in configure.
+
+M      configure.ac
+
+commit 67813eb809537db4ef862822f691f9da5eb976f8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-18 19:48:44 +0800
+
+    Check iso-codes in configure.
+
+M      configure.ac
+
+commit 5e233e2d3efc5f961cad1c57071363c8f990eecc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-18 19:16:11 +0800
+
+    Get language names from iso-codes.
+
+M      ibus.spec.in
+M      ibus/lang.py
+M      panel/panel.py
+M      po/ja.po
+M      po/zh_CN.po
+M      setup/main.py
+
+commit b43b31301d336ee16f6a0b178879f8759136f6ed
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-18 07:21:19 +0800
+
+    Make size of StatusIcon fixed.
+
+M      panel/panel.py
+
+commit bd19dac2aa62ae94f8f03088abf9b361c1c24c82
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 21:59:21 +0800
+
+    Fix a problem in configure.ac.
+
+M      configure.ac
+
+commit 3fe32053f9d17ca1bdc3c7c3c6c46c63e5eefe4d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 21:43:56 +0800
+
+    Do install pygconf files without --enable-pygconf
+
+M      util/gconf/Makefile.am
+
+commit 79423852b295eef874c23c63162523db1c36da40
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 21:28:16 +0800
+
+    Add DISTCHECK_CONFIGURE_FLAGS
+
+M      Makefile.am
+
+commit 869cecf8429101df1bcfd026db5f1ee3feb56673
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 21:00:42 +0800
+
+    Add --enable-pygconf option.
+
+M      configure.ac
+M      util/gconf/Makefile.am
+
+commit ef96e9fec0699a8107c3f0e91956dd2738ebe46a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 20:24:27 +0800
+
+    Include gconf python binding from gnome-python2.
+
+M      client/x11/gdk-private.c
+M      configure.ac
+M      util/Makefile.am
+A      util/gconf/Makefile.am
+A      util/gconf/gconf-arg-types.py
+A      util/gconf/gconf-fixes.c
+A      util/gconf/gconf-fixes.h
+A      util/gconf/gconf-types.c
+A      util/gconf/gconf-types.h
+A      util/gconf/gconf.defs
+A      util/gconf/gconf.override
+A      util/gconf/gconfmodule.c
+A      util/gconf/wscript
+
+commit 99f3479b93f98a65e88f394c50f861a1bfb31693
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 19:21:22 +0800
+
+    Refine coding style.
+
+M      client/qt4/im-ibus-qt.cpp
+
+commit cd515c85466049b8871737e5ad97fbe7c21a69bd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 19:17:38 +0800
+
+    Refine coding style.
+
+M      client/qt4/ibus-input-context.cpp
+
+commit 947225c69112e37f945b6eae5360b95f98675930
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 19:15:14 +0800
+
+    Refine coding style.
+
+M      client/qt4/ibus-client.cpp
+M      client/qt4/ibus-input-context.cpp
+
+commit a738027852be62ca871e2065428d6ab8052703a0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 18:54:22 +0800
+
+    Refine code.
+
+M      client/qt4/ibus-client.cpp
+
+commit 1ca5958dd3afa1241eb88cc93873d1d5ddbd8824
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 10:42:59 +0800
+
+    Use g_fprintf
+
+M      client/gtk2/ibusim.c
+
+commit 7988b3a775c382f6a94c6c1b01192451649ccd76
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 10:41:39 +0800
+
+    Use g_strcmp0 replace strcmp
+
+M      client/gtk2/ibusim.c
+
+commit 323b91ee7fc07a788bc17a58c6fd44dd3a9f6f95
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 10:41:31 +0800
+
+    Refine coding style.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 60de77374517c3a717d9ed01d6283aebdae23d17
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 09:01:33 +0800
+
+    Move IBUS_FORWARD_MASH from .c to .h.
+
+M      lib/gtk2/ibusimclient.c
+M      lib/gtk2/ibusimclient.h
+
+commit c82dca7c51c11c7eaf73a89a08581b7e823bd682
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 08:59:58 +0800
+
+    Add forward mask.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 4cd3b0419cd99394fad4c445153970321b0d8c6d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-17 08:53:41 +0800
+
+    Refine coding style.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 24d8be5ecf2a89ef0523c7002ef2e82c133778f2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-16 17:28:14 +0800
+
+    Use g_slice_new to replace g_new for better performance.
+
+M      client/x11/main.c
+M      lib/gtk2/ibusimclient.c
+
+commit e528c0fd57d7afd37c6e5d27c535689bd56fd8b2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-16 16:52:15 +0800
+
+    Don't use send_event field in GdkEventKey. And fixed some compile warnings.
+
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+M      client/x11/gdk-private.c
+M      client/x11/main.c
+M      lib/gtk2/ibusimclient.c
+
+commit 2440d29dc75cf21a0a21fe7f2ad36a345941d917
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-16 16:21:48 +0800
+
+    Fix mem leak.
+
+M      client/x11/gdk-private.c
+
+commit d07849ff3ef4cfd8ee59eb7a01bdcb6173e788f0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-16 12:34:27 +0800
+
+    Call setFocusWidget to replace focusOut
+
+M      client/qt4/ibus-input-context.cpp
+
+commit d0dde689e9462a2ae5708c4e881c4b4ec29643ac
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-16 09:51:04 +0800
+
+    FocusOut widget when widgetDestroyed.
+
+M      client/qt4/ibus-input-context.cpp
+
+commit 33906829dbed822ce1d9c02caaf1e547f59b5d53
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-16 09:44:00 +0800
+
+    Remove slot setFocus.
+
+M      client/qt4/ibus-input-context.cpp
+M      client/qt4/ibus-input-context.h
+
+commit b995b397b904844e737e4bd0af84743e6a6ba381
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-15 18:01:04 +0800
+
+    Update po files.
+
+M      po/ja.po
+M      po/zh_CN.po
+
+commit 9077c76e0c531f119fb5c98d57c368e7179df479
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-15 16:34:08 +0800
+
+    Free map return by XGetKeyboardMapping.
+
+M      client/qt4/ibus-client.cpp
+
+commit c241fb6e7d9035db1b89135ddb0f2dfd2eed95db
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-15 16:31:35 +0800
+
+    Hack japan [yen bar] key for qt immodule.
+
+M      client/qt4/Makefile.am
+M      client/qt4/ibus-client.cpp
+M      client/qt4/ibus-client.h
+M      client/qt4/ibus-input-context.cpp
+M      client/qt4/ibus.pro
+
+commit 2508a1dd29e6ce8696efac8b74f4fd4517a4d96d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-15 15:30:37 +0800
+
+    Use guint for japen groups mask.
+
+M      lib/gtk2/ibusimclient.c
+
+commit ec0e311ae0311e4959acca4ff1dc823ceab642e7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-15 15:25:14 +0800
+
+    Use default cursor location.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 38c50d3093978570c9b53284cd8cb56b12a3360d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-15 11:09:01 +0800
+
+    Does not process key event if context does not have focus.
+
+M      client/gtk2/ibusimcontext.c
+
+commit f5c66bd6ac878f3b00c5117eb0e696b351439ee4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-15 10:53:49 +0800
+
+    Workaround for increase search for treeview.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 8d5a013a8a1f66f5071d2ebbfce78ed433fb2872
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-15 03:24:20 +0800
+
+    Fix problem when kill some engines.
+
+M      daemon/bus.py
+
+commit 0cdd8d3d49c0806b2fd8e625475f9f2c416d3ee4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-14 23:14:34 +0800
+
+    Use g_signal_emit to replace g_signal_emit_by_name for better performance.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 10a973c3450a736ed739d71e70bc4d4a93c475c2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-14 22:39:23 +0800
+
+    Forward event directly.
+
+M      client/gtk2/ibusimcontext.c
+
+commit da8819e7b93a080fc82de3d4d011f8c8389a9655
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-14 22:31:45 +0800
+
+    Use G_SIGNAL_TYPE_STATIC_SCOPE mask to avoid copying data for better performance.
+
+M      lib/gtk2/ibusimclient.c
+
+commit d8cfebe8dc401c588c0bf3d6fc66f711ac2049d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-14 15:56:49 +0800
+
+    Update compile option for USE_DBUS_SESSION_BUS.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 2798e96ae5c31f0328c31b7640097b1e36f08e22
+Merge: ad00c89 1aecce0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-12 09:59:16 +0800
+
+    Merge branch 'ubuntu'
+
+commit ad00c89cd9c4f975b2124e857fdbe24214cfd8cd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-12 08:42:37 +0800
+
+    Fix problem when start a program with usermode-helper.
+
+M      client/qt4/ibus-client.cpp
+M      lib/gtk2/ibusimclient.c
+
+commit bd9b695b5c81130f04f7315fcbef8a56a3c8291e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-12 08:09:49 +0800
+
+    Add debug code to output environ.
+
+M      client/gtk2/ibusim.c
+
+commit 1aecce03340cdf1292c0d0ee50f5d665f4a0f5df
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-11 18:47:23 +0800
+
+    Import debian packaging files by 一叶 <oneleaf@gmail.com>.
+
+A      debian/README.Debian
+A      debian/changelog
+A      debian/compat
+A      debian/control
+A      debian/copyright
+A      debian/cron.d.ex
+A      debian/dirs
+A      debian/docs
+A      debian/emacsen-install.ex
+A      debian/emacsen-remove.ex
+A      debian/emacsen-startup.ex
+A      debian/ibus-default.ex
+A      debian/ibus.doc-base.EX
+A      debian/im-switch/ibus
+A      debian/init.d.ex
+A      debian/init.d.lsb.ex
+A      debian/manpage.1.ex
+A      debian/manpage.sgml.ex
+A      debian/manpage.xml.ex
+A      debian/menu.ex
+A      debian/postinst
+A      debian/postinst.ex
+A      debian/postrm.ex
+A      debian/preinst.ex
+A      debian/prerm
+A      debian/prerm.ex
+A      debian/rules
+A      debian/watch.ex
+
+commit e76fbfa8b7f5dbafb532e361feec25b7ca6150e7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-10 18:22:27 +0800
+
+    Fix problem when locale is 'C'
+
+M      daemon/register.py
+
+commit 70bb0ed90060130cad4512201e3a16517531a3d8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-10 10:11:25 +0800
+
+    Add --force opt.
+
+M      autogen.sh
+
+commit 2be1293b9da7f52910969e4a7de04f1fa6b14f6b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-09 15:37:06 +0800
+
+    Add -Wl,--no-undefined in CFLAGS.
+
+M      autogen.sh
+
+commit e3d960312eb0b3e272eb3194c43a1d1b94f6fb07
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-08 22:37:59 +0800
+
+    WIP.
+
+M      test/test_client.py
+
+commit 3c0955994e98a8c0bf06d4f7e4ee06587fff1234
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-08 21:10:03 +0800
+
+    Display message in state pad.
+
+M      test/test_client.py
+
+commit 1c8ccb2cb582a71a4892b81820aff95402e8f02d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-08 21:06:07 +0800
+
+    Update demo code with curses.
+
+M      test/test_client.py
+
+commit 78bc232a82e8a9f4e175c2503c133961b1efd66e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-08 21:05:44 +0800
+
+    Fix some typos.
+
+M      daemon/inputcontext.py
+M      ibus/bus.py
+
+commit b29d6d19386286d13ff207ea05ef0d44260882a7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-08 15:02:05 +0800
+
+    Fix porblems when focus_in and focus_out.
+
+M      panel/languagebar.py
+
+commit fb038069124a1a3ad892cbd86696f963e92ad384
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-08 14:57:46 +0800
+
+    Save languagebar position.
+
+M      panel/languagebar.py
+
+commit 265a40f29c791a3345a8a2cae8b4174c465199e5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-08 09:25:04 +0800
+
+    handle aus string related signals.
+
+M      test/test_client.py
+
+commit c019af0f2d155ed2edaf600732218057cabc441e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-08 09:21:41 +0800
+
+    Add test_client.py.
+
+A      test/test_client.py
+
+commit 2874498ce5c5f59fd87e25eeff174c47047d9482
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-08 09:16:14 +0800
+
+    Work on client signals.
+
+M      daemon/inputcontext.py
+M      ibus/bus.py
+
+commit 0e5753be1b726908911a3cfea65fe14c64c00898
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-07 22:56:29 +0800
+
+    Implement signals.
+
+M      ibus/bus.py
+
+commit acdcbf3bcb6d4630367ee15a706effeac6d1e397
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-07 22:39:50 +0800
+
+    Define signals for im clients.
+
+M      ibus/bus.py
+
+commit db47f81d0a04a079047a29e4a05a118bcbd1af0f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-07 19:30:25 +0800
+
+    Add two capabilities for fbterm.
+
+M      daemon/inputcontext.py
+
+commit 9efb21471f2ff947d085cbbea4584b15bcb1be51
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-06 17:55:31 +0800
+
+    Update ibus.svg.
+
+M      icons/ibus.svg
+
+commit 9616f9713f9590a20df14b23155c477f560ed50a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-06 13:27:52 +0800
+
+    Convert Text to Path in ibus.svg.
+
+M      icons/ibus.svg
+
+commit f11370650438e486c425da5a4c7be08160ff81ab
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-06 11:30:31 +0800
+
+    Fix a typo.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 9900f05e538e71a0c37b0cfc5eae0c1585ec6486
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-06 11:23:14 +0800
+
+    Include gdk/gdk.h
+
+M      client/x11/main.c
+
+commit 3377100d05cd3f483b202c8e0ce5540e7c679ee4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-06 11:21:34 +0800
+
+    Include gdk/gdk.h
+
+M      lib/gtk2/ibusimclient.c
+
+commit 133bbf36741ab640cf0984d590671519b5914981
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-06 10:45:52 +0800
+
+    Fix sudo problem.
+
+M      client/qt4/ibus-client.cpp
+M      lib/gtk2/ibusimclient.c
+
+commit d96f994a9dbfee936f3a065b8611ec6d043f7be8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-06 10:29:59 +0800
+
+    Fix bugs if system does not have XKB.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 206b91fe7614dd3a1a40567f4b54c80a7cb327ed
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-06 10:12:58 +0800
+
+    Rename function and remove unused code.
+
+M      lib/gtk2/ibusimclient.c
+
+commit dec9b8052f3384ee2a01a82a38d947a57e8e22c9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-06 10:04:23 +0800
+
+    Hack Japan [yen bar] & [backslash underbar] keys.
+
+M      client/x11/gdk-private.c
+M      configure.ac
+M      lib/gtk2/Makefile.am
+M      lib/gtk2/ibusimclient.c
+
+commit ab07888604b9e7993ba05eace36e49e495c7e74d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-03 22:56:28 +0800
+
+    Use g_dgettext when glib2 >= 2.18.0
+
+M      client/gtk2/ibusimcontext.c
+
+commit 89fb436bf12a6525f4b7a87464a27acc7479bba7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-03 20:51:53 +0800
+
+    Fix problem in nautilus.
+
+M      client/gtk2/ibusimcontext.c
+
+commit b7f8c1b9ad312450f73bbb64eee46eb8f0c63d77
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-02 21:16:04 +0800
+
+    Remove IBusClient::slotFileChanged.
+
+M      client/qt4/ibus-client.h
+
+commit 0e1a1f5316d102c65af1dc02440ba1bb7985c32f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-02 21:10:29 +0800
+
+    Add x11 in CONFIG. To let qt im module built with x11 libraries.
+
+M      client/qt4/ibus.pro
+
+commit 21092ef6492e6a3186891bd4661ded0178b315d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-09-02 08:08:58 +0800
+
+    Fix email_hook and url_hook problem.
+
+M      panel/panel.py
+
+commit 17eeeb8dd2ba385b1a9e67beb386abc83852a7c1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-31 22:38:05 +0800
+
+    Modify categories of *.desktop
+
+M      launcher/ibus.desktop.in
+M      setup/ibus-setup.desktop.in
+
+commit 676c1b9653c9333d0e5354f9eb4b9de703da970d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-31 13:26:16 +0800
+
+    Use ibus gtk im module for ja, ko, zh.
+
+M      client/gtk2/ibusim.c
+
+commit 5b198f92c2c409b3c972ed605d7d425d3eac4eed
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-31 11:45:31 +0800
+
+    Remove empty lines.
+
+M      ibus/keysyms.py
+
+commit aeb7032c694cae6fd8e86a236e95e938ce0f0ac4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-31 11:22:49 +0800
+
+    Use name_to_keycode to convert name to keyval.
+
+M      daemon/bus.py
+M      setup/keyboardshortcut.py
+
+commit fd0e130388b93cf6c8729d88d5642060c3ec1c15
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-31 10:36:27 +0800
+
+    Fix candidates window position problem.
+
+M      panel/candidatepanel.py
+
+commit 5211d6ecc020e33a213c4d11cac1a7d2cd130a8b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-31 10:19:28 +0800
+
+    Fix a typo.
+
+M      ibus/lookuptable.py
+
+commit 1f9addc9fe67d1e41bb35395de78ac98d8b9e553
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-31 10:11:55 +0800
+
+    Refine coding style.
+
+M      ibus/lookuptable.py
+
+commit 440ff6e5aca11074575a6f19b8c846225f2798e6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-31 09:33:08 +0800
+
+    Update README.
+
+M      README
+
+commit 3137dc3e04e61162b520f473a8e70034b2f4f395
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 23:14:54 +0800
+
+    Add ibus/config.py.in.
+
+A      ibus/config.py.in
+
+commit 5ee51286a53a7c4d79d28f6280e90778535595bd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 23:13:44 +0800
+
+    Set hooks for about dialog.
+
+M      panel/panel.py
+
+commit 05cb5b1b3bed10be70016b47bb0817a2c25be9a4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 22:01:27 +0800
+
+    Update Translation.
+
+M      panel/panel.py
+M      po/ja.po
+M      po/zh_CN.po
+
+commit 2fdde080559a8b39fe2d92359ed2e125abb516d3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 21:52:06 +0800
+
+    Add about dialog in ibus menu.
+
+M      client/gtk2/ibusimcontext.c
+M      configure.ac
+M      ibus/Makefile.am
+M      ibus/__init__.py
+M      panel/panel.py
+M      po/ja.po
+M      po/zh_CN.po
+M      setup/setup.glade
+
+commit ff15b28272e8930f512a9f098b6c9970e4ae12e4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 19:21:06 +0800
+
+    Save default input engine and restore it when start ibus.
+
+M      daemon/bus.py
+M      daemon/factorymanager.py
+M      daemon/ibusdaemon.py
+
+commit dc0cf118d0ec4733ce9b12244a2e40f271195278
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 18:15:23 +0800
+
+    Update default factory when press Ctrl + Shift.
+
+M      daemon/bus.py
+
+commit 9f986d3f219a0e492a6c8a06673190de9c005603
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 16:24:38 +0800
+
+    Set default_factory when user choice a engine in im menu.
+
+M      daemon/bus.py
+M      daemon/factorymanager.py
+
+commit 248018e9a73da7c088bf80d16b9fbc32e35f51ab
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 16:09:51 +0800
+
+    Remove unused code.
+
+M      setup/main.py
+
+commit c8f995a05d1366096f0d1c95d6bae6ee18c1d83b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 16:07:27 +0800
+
+    Remoce unused code.
+
+M      daemon/bus.py
+
+commit 9f4887f8fad3b40887a99aafcf741731bc2dabef
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 10:00:17 +0800
+
+    Fix a typo.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 7e095605e42a5a614fcfb1c0d34bebcb40222ec6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 08:53:46 +0800
+
+    Fix segfault when connection is broken.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 7eac7f7367a926c24461a6185d70b744c764aaa2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-30 07:51:11 +0800
+
+    Translate im menu.
+
+M      client/qt4/ibus-input-context.cpp
+M      client/qt4/ibus-input-context.h
+M      panel/panel.py
+
+commit 825d1bfb60879f3b4c728d485df18d133c24ce58
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-29 21:15:13 +0800
+
+    reset panel when switch engine.
+
+M      daemon/bus.py
+
+commit 7759c0be236eba32bab76f5352ef3733a99ca347
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-29 20:36:28 +0800
+
+    Translate "Keyboard shortcuts"
+
+M      setup/keyboardshortcut.py
+
+commit 162e8b5cac46c2c10d167437c4b4774f8f9e581b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-29 20:33:32 +0800
+
+    Translate "Switch engine".
+
+M      launcher/ibus.in
+M      panel/languagebar.py
+M      po/ja.po
+M      po/zh_CN.po
+
+commit 96fe474472fee96070763602c44c711d90dcab5f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-29 07:21:40 +0800
+
+    Update ja.po by UTUMI Hirosi <utuhiro78@yahoo.co.jp>.
+
+M      po/ja.po
+
+commit 04e253668b792455afe722fc8ed849f663976e35
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-28 19:02:04 +0800
+
+    Change defaul keyboard shortcuts
+
+M      daemon/bus.py
+M      ibus/common.py
+M      po/ja.po
+M      po/zh_CN.po
+M      setup/main.py
+
+commit 4a2a57d638f497c8d1366faceb800cf4117aeb77
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 18:45:50 +0800
+
+    Auto hide language bar when disable input method.
+
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit 63c08d5a33e830edfe056ef22a0e802ea61e4ed3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 18:02:57 +0800
+
+    Use 0 for timestamp of XEvent.
+
+M      client/x11/main.c
+
+commit 079027556e845b04343432ccf9fcf092527c986f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 17:46:48 +0800
+
+    Update translation problems.
+
+M      po/ja.po
+M      po/zh_CN.po
+M      setup/main.py
+
+commit 64a8ed4ca32aaf70c9289fd2a91ff485936f2ea1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 17:27:56 +0800
+
+    Chang the order of LINGUAS.
+
+M      po/LINGUAS
+
+commit 5be35d26b5931a6aba2bb450cf0d100485d854ce
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 17:26:32 +0800
+
+    Replace Divehi with Dhivehi
+
+M      ibus/lang.py
+
+commit f8f5fda5d8a80617db1907df0dabe2f1b07391bf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 17:25:51 +0800
+
+    Replace Divehi with Dhivehi.
+
+M      po/ja.po
+M      po/zh_CN.po
+
+commit 4957c09a85fb06b24a64f146977b860122431bb1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 17:22:14 +0800
+
+    Update AUTHORS.
+
+M      AUTHORS
+
+commit 51feae5b105db1ad8b9f5036482166bbf22f7938
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 17:19:09 +0800
+
+    Add ja.po by UTUMI Hirosi <utuhiro78@yahoo.co.jp>.
+
+M      po/LINGUAS
+A      po/ja.po
+
+commit 34e648b843985c58b52251c72a7622175134a2f7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 17:16:53 +0800
+
+    Make gettext work for message.
+
+M      setup/main.py
+
+commit a5fba23b3d7c51db9c6d735104fbd3459253f7fd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 17:09:11 +0800
+
+    Fix selection problem in gedit.
+
+M      client/gtk2/ibusimcontext.c
+
+commit e86a77c238e631be9b91f836937bafbbdc714128
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 12:57:39 +0800
+
+    Request reload_engines.
+
+M      setup/main.py
+
+commit a6cba87494079c5d6f3b1006ddd8eafb0fa23d9e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 12:57:22 +0800
+
+    Remove unused check.
+
+M      configure.ac
+
+commit 767c03c78771ee4e7464c2c5f481a317d7da336f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-27 12:08:20 +0800
+
+    Do not print backtrace.
+
+M      daemon/ibusdaemon.py
+
+commit f9022457cbfe1f8d4341fbab45eafa74fea78c2a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 22:57:24 +0800
+
+    Update the context_name of im info.
+
+M      client/gtk2/ibusim.c
+
+commit 3ecd768dd15a5cc3db4e2b0bd8b0d2a7b1c26c4b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 22:41:01 +0800
+
+    Update headers.
+
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+M      lib/gtk2/ibusimclient.c
+M      lib/gtk2/ibusimclient.h
+
+commit 883c83211bee60ed07ad5cec63a2f7df40e89cec
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 22:40:52 +0800
+
+    Replase "The Input Bus" with iBus
+
+M      client/gtk2/ibusim.c
+
+commit 75fbad459b3bcab30820ac065d412c52412abd4f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 14:37:30 +0800
+
+    Fix problem in KDE.
+
+M      client/qt4/ibus-client.cpp
+
+commit 7e5848808ce6540325a80bef699f791501bc91d4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 11:27:55 +0800
+
+    Update po files.
+
+M      po/zh_CN.po
+
+commit 4036e16e79183d314f77e565e2727f6627aaedf2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 11:26:09 +0800
+
+    Makedirs if ~/.config/autostart is not exist.
+
+M      setup/main.py
+
+commit d1c1ea222a0dcfd966ccb6fa51f348f80e2e1a6f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 10:32:01 +0800
+
+    Fix problem in config_set_value
+
+M      gconf/config.py
+
+commit 03470e3a7d7c5c610ce9e6c6ddc1607d33fe3280
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 09:28:39 +0800
+
+    Fix problem when font_name contains unicode chars.
+
+M      gconf/config.py
+
+commit f25b1350150f0b2db51115362bbb4d3da3a8ef08
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 08:34:01 +0800
+
+    Fix problem when font_name has unicode char.
+
+M      panel/panel.py
+M      setup/main.py
+
+commit caf982d0574f27b66d1e8bc8362ee9b94c79611f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-25 06:22:39 +0800
+
+    Fix a typo.
+
+M      ibus/factory.py
+
+commit e71343d96e959eba99f880144610e3e8919c32f7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-24 16:27:06 +0800
+
+    WIP.
+
+M      setup/setup.glade
+
+commit dbf0ed9245e21a057b918d01a74d60bcece3e85d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-24 16:24:16 +0800
+
+    Change the UI.
+
+M      setup/setup.glade
+
+commit f08468fa7bbabd000d8308c2f32525764bb424cd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-24 11:46:05 +0800
+
+    Translate some msg.
+
+M      panel/panel.py
+M      po/zh_CN.po
+
+commit 905076b0976d2cb2aa8daac7f3d6de58f31f86b7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-24 10:12:12 +0800
+
+    Refine code.
+
+M      panel/panel.py
+
+commit b16711ce6ea5e94a0e001ea8446b469a42046dc5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-24 10:07:58 +0800
+
+    Support auto hide
+
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit 99261ce1e497fbd6dc20a3b61a30bb3b60bcc3eb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-24 10:00:42 +0800
+
+    Support custom font.
+
+M      panel/candidatepanel.py
+M      panel/panel.py
+
+commit b512009d51575fa189ef46eaf21b36ea951d492a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-24 08:54:42 +0800
+
+    Add custom_font and auto_hide configure items.
+
+M      setup/main.py
+M      setup/setup.glade
+
+commit ce853e02294d8d432187c2e989e165fe043e1818
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-23 09:08:50 +0800
+
+    Create engine folder in install-data-hook.
+
+M      Makefile.am
+M      ibus.spec.in
+
+commit 0bc1bab541e702d9ce438bd487260275ff8a5e53
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-23 08:29:59 +0800
+
+    Require Qt >= 4.4.0
+
+M      configure.ac
+
+commit 938981abbe11994677fc646d7146ac1d9a9413f3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-22 16:42:36 +0800
+
+    Refine Makefile.am
+
+M      client/gtk2/Makefile.am
+M      client/x11/Makefile.am
+M      po/zh_CN.po
+
+commit 0ac5c124f8cea65f5cde563c44190e8e84063421
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-22 16:31:16 +0800
+
+    Add header.
+
+M      util/IMdkit/Makefile.am
+
+commit eab834d3bfc704c4e2f80200914c32696177b120
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-22 12:01:56 +0800
+
+    internationalize engine's name
+
+M      daemon/register.py
+M      ibus/interface/iibus.py
+M      po/zh_CN.po
+M      setup/main.py
+M      setup/setup.glade
+
+commit 8bb2ae1cd7a80d7d9a9fbeb9317ca302b202e10a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-22 10:56:11 +0800
+
+    Fix gettext problem
+
+M      setup/keyboardshortcut.py
+
+commit 3d68f2129245cb03b485836ad94c30c5ba5afb2b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-22 10:55:16 +0800
+
+    Update translation.
+
+M      po/POTFILES.in
+M      po/zh_CN.po
+M      setup/main.py
+
+commit 9554d5fe1775c74b13c2027557795e7723593778
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-22 10:46:44 +0800
+
+    Translate some msg.
+
+M      po/zh_CN.po
+
+commit c4a1a72e576f268382a355ccd66b9d717aaf555f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-22 10:41:44 +0800
+
+    Fix problem when restart ibus-daemon.
+
+M      client/qt4/ibus-client.cpp
+M      client/qt4/ibus-client.h
+M      client/qt4/ibus-input-context.cpp
+
+commit 659f9387df90ebb90a9d832f8d4d86aac28573a6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-22 10:11:01 +0800
+
+    Use QString::isEmpty() replace QString::isNull() to avoiding some problems.
+
+M      client/qt4/ibus-client.cpp
+
+commit ec7331b6388817ff79860bbbac799c3fd4f97f2f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-21 18:19:11 +0800
+
+    Ignore NumLock mask.
+
+M      daemon/bus.py
+
+commit c77adbb5dea1bfd4fe275c9789623a0360677c9e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-21 13:49:34 +0800
+
+    Add configure items for keyboard shortcuts.
+
+M      daemon/bus.py
+M      ibus/modifier.py
+M      setup/keyboardshortcut.py
+M      setup/setup.glade
+
+commit 766f22120dfeaa883ef0c3346898d9a7a690dd11
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-21 11:40:05 +0800
+
+    WIP.
+
+M      client/gtk2/ibusimcontext.c
+M      daemon/bus.py
+M      lib/gtk2/ibusimclient.c
+M      setup/main.py
+
+commit 6a605c9f5fa77ab32dc74fd91afd4c46d8d92c2e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-21 11:17:06 +0800
+
+    Check CreateInputContext's return value.
+
+M      client/qt4/ibus-client.cpp
+
+commit ad31ce022214af66889f0700e617f1d2f99c2c5c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-21 11:14:36 +0800
+
+    Test CreateInputContext's return value.
+
+M      client/x11/main.c
+
+commit 9dc63065ea6b6365eccbb9ba180af4cf4f0a0d7c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-21 11:13:04 +0800
+
+    Fix segfault when starting ibus.
+
+M      client/gtk2/ibusimcontext.c
+
+commit e6f53ea154b1f155b9c448f96d8374f665ee2c87
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-21 08:59:12 +0800
+
+    Add keyboardshortcut.py in Makefile.am
+
+M      setup/Makefile.am
+
+commit 3e6fc7dde3feda5c11d67b15be3c765e15f1ea2d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-21 08:18:48 +0800
+
+    WIP.
+
+M      setup/keyboardshortcut.py
+M      setup/main.py
+M      setup/setup.glade
+
+commit feef446a21ea0e701de13d301dbe64877a91e79c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-21 07:19:36 +0800
+
+    WIP.
+
+M      setup/main.py
+M      setup/setup.glade
+
+commit cc9d726edeb71d3b002bc5a08277680516bf7191
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-20 23:34:40 +0800
+
+    WIP.
+
+M      setup/setup.glade
+
+commit 61d73891928050c071966c896de2967d5d2341ef
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-20 20:23:15 +0800
+
+    Fix problem when delete a keyboard shortcut.
+
+M      setup/keyboardshortcut.py
+
+commit ff2602cfc356474d23e4aadde00ea71e482d4731
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-20 15:08:18 +0800
+
+    Add add_shortcut method
+
+M      setup/keyboardshortcut.py
+
+commit 1ea2187d6c06f5a277149d9a6e53aa3f9c83ba2d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-20 14:57:31 +0800
+
+    WIP.
+
+M      setup/keyboardshortcut.py
+
+commit f72d9cbdc9a3a73ca39858503fcb862fdaf01661
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-20 11:14:58 +0800
+
+    Add border for the shortcut view.
+
+M      setup/keyboardshortcut.py
+
+commit 3a6a1951171016cb888817d2c8c03d6e2347a694
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-20 11:04:31 +0800
+
+    WIP.
+
+A      setup/keyboardshortcut.py
+
+commit 26097461cb2428f7c594c11fd12123705bbbbc39
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 22:05:49 +0800
+
+    Add code to work around bug http://code.google.com/p/ibus/issues/detail?id=25.
+
+M      client/gtk2/ibusimcontext.c
+M      client/x11/main.c
+M      lib/gtk2/ibusimclient.c
+M      lib/gtk2/ibusimclient.h
+
+commit 628a3d8eea5bb38beae3022cf594212e803f0d22
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 13:56:28 +0800
+
+    Add get_labels for lookuptable
+
+M      ibus/lookuptable.py
+
+commit 8c6fae5ec47bb0684c88e891e66ea070b1d0af58
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 12:58:06 +0800
+
+    Refine code of attribue.py
+
+M      ibus/attribute.py
+M      ibus/gtk.py
+
+commit 7ce436b2e33f078c3a0628aa5c06e824b81ce302
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 11:07:22 +0800
+
+    Fix Ctrl + Shift problem.
+
+M      daemon/bus.py
+
+commit 4d34dbaff9e0163ce9c1005dac11797e5ca6b7ca
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 09:23:37 +0800
+
+    Refine code.
+
+M      ibus/property.py
+
+commit 539913da27823ee2884b60db92ae87a94d654069
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 09:21:05 +0800
+
+    Translate str to unicode.
+
+M      ibus/property.py
+
+commit ec51a56f8e2e788f303e687186ffe402729081d9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 09:08:38 +0800
+
+    Fix a typo.
+
+M      panel/toolitem.py
+
+commit 399e48ae1a550a3cf3977ee62adc8a46d07c6d02
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 09:05:29 +0800
+
+    Refine code.
+
+M      panel/menu.py
+
+commit 865fc381d2210ed095bb156acdba1a6dc0fc6709
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 08:54:37 +0800
+
+    Refine code.
+
+M      panel/languagebar.py
+M      panel/propitem.py
+M      panel/toolitem.py
+
+commit d451a893a8e330253d8d71983874d9b5887d9064
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-19 08:44:23 +0800
+
+    Refine code.
+
+M      ibus/property.py
+
+commit d3cf780b44c7a2d7d32b8173f1edc2a5fe527ece
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-18 14:24:42 +0800
+
+    Disable some debug output.
+
+M      client/qt4/ibus-input-context.cpp
+
+commit db0290859be1708a2d78636820eb52f2c3bfbe67
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-18 10:12:27 +0800
+
+    Fix cursor pos problem
+
+M      client/qt4/ibus-input-context.cpp
+M      client/qt4/ibus-input-context.h
+
+commit f1390a784766ccfc5903d54e9ae03553dac5273f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-18 10:01:36 +0800
+
+    Fix some problems.
+
+M      client/qt4/ibus-client.cpp
+M      client/qt4/ibus-client.h
+M      client/qt4/ibus-input-context.cpp
+M      client/qt4/ibus-input-context.h
+
+commit 8b5edb3da30ec604d1de12ea7e2bff47c4b2f6b1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-18 09:15:52 +0800
+
+    Fix focus problem in qt im module.
+
+M      client/qt4/ibus-input-context.cpp
+
+commit 4d2fd6e6455a5b9d06e7af71d8778b6c08adbcca
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-18 09:00:27 +0800
+
+    Refine code.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 470f774fe3b1123070e791d5a4e241bbaeb83af3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-18 08:45:52 +0800
+
+    Refine code.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 57719972b69573b3fc2836c6c42d000900625c50
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 23:38:45 +0800
+
+    Add Separator in sys menu.
+
+M      panel/panel.py
+
+commit f5ee0db1fe8add2f787efc9f208738436097fcfc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 22:33:30 +0800
+
+    Panel supports changing orientation of candidates window.
+
+M      panel/panel.py
+
+commit c6412523c4921b238dff38493cb84ebe1c76f0ba
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 22:23:59 +0800
+
+    Watch config changed.
+
+M      setup/main.py
+
+commit 7b47c05b0b9cae55eb818a765dcd3aaee57d16e8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 22:15:56 +0800
+
+    Add lookup table orientation configure item.
+
+M      setup/Makefile.am
+M      setup/ibus-setup.in
+M      setup/main.py
+M      setup/setup.glade
+
+commit 95a6289bcd2c2e7ddba727d82da0fe992208c487
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 20:38:36 +0800
+
+    Add register_reload_engines method.
+
+M      daemon/bus.py
+M      daemon/register.py
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+
+commit 17782215f92846ae69a0782cf9a3ffeb246f97d7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 13:20:43 +0800
+
+    Add ibusattribute.h.
+
+A      lib/gtk2/ibusattribute.h
+
+commit 45592707639a54c731f1310398467d9d7664d739
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 12:00:24 +0800
+
+    Check event.window when forward events.
+
+M      client/gtk2/ibusimcontext.c
+
+commit d4dc319c0ce2b2e79563a23e3e12ffdeb024e2d7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 11:54:55 +0800
+
+    Fix some compile warnings.
+    Update time of forward key events.
+
+M      client/gtk2/ibusimcontext.c
+
+commit e9c171c4c01b985ec931333cfdb4fffa0a4ecc89
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 11:45:54 +0800
+
+    Refine code.
+
+M      lib/gtk2/ibusimclient.c
+
+commit 6827f1360b83d70fc0834d5129fc171e6085ba31
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 11:44:18 +0800
+
+    Use BOXED for PangoAttrList.
+
+M      lib/gtk2/ibusimclient.c
+M      lib/gtk2/ibusmarshalers.list
+
+commit 43d427e7cbbebcb0ff95dd6945602a670fdc9757
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 11:40:30 +0800
+
+    Fix segment fault when start or close ibus daemon.
+
+M      client/gtk2/ibusimcontext.c
+M      client/gtk2/ibusimcontext.h
+
+commit ce45fdc0def7c877e26136e8630601679d347529
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-17 11:17:10 +0800
+
+    Change parent of IBusIMClient.
+
+M      lib/gtk2/Makefile.am
+M      lib/gtk2/ibusimclient.c
+M      lib/gtk2/ibusimclient.h
+
+commit 41de863a20f4bb9795818c29284b32c9c0f5b474
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 21:07:17 +0800
+
+    set cursor location when forward key.
+
+M      client/x11/main.c
+
+commit fc4485f5d6bcaa150279420ee53ba4dda0b00707
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 20:34:23 +0800
+
+    WIP.
+
+M      client/x11/main.c
+M      lib/gtk2/ibusimclient.c
+
+commit 5c5f5077439017b3e4d795fedc34e51053ba6d89
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 19:09:42 +0800
+
+    Fix wrong cursor position.
+
+M      client/x11/main.c
+
+commit b9af24711bc445854fdde8aaecf78ed2cb93c802
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 18:15:10 +0800
+
+    Fix some typos in Makefile.am
+
+M      client/gtk2/Makefile.am
+M      ibus.spec.in
+
+commit 889e2190c68a4e2a4a8dce9f654d36d9ec06f138
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 17:52:07 +0800
+
+    Fix bug when do not install ibus in /usr
+
+M      daemon/ibus-daemon.in
+M      daemon/register.py
+D      gconf/ibus-gconf
+
+commit 16d674dd9f2561328ab7e1a5a42d32c12d11ec5f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 17:35:51 +0800
+
+    Fix make distcheck error.
+
+M      client/gtk2/Makefile.am
+
+commit e3b577660fbd74f7170c92e0f4f741f40b294d05
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 17:31:41 +0800
+
+    WIP.
+
+M      client/x11/main.c
+M      lib/gtk2/ibusimclient.c
+M      lib/gtk2/ibusmarshalers.list
+
+commit 66a206b56a573e0059254261d37d64204f57c6cf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 15:48:23 +0800
+
+    Fix mem leak, when finalize a ibus im context.
+
+M      client/gtk2/ibusimcontext.c
+
+commit dd63a1fc039d3751bd864a8af0a4e3128a91fb4f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 15:46:21 +0800
+
+    ibus-x11 can work now.
+
+M      Makefile.am
+D      client/x11/IMdkit/FrameMgr.c
+D      client/x11/IMdkit/FrameMgr.h
+D      client/x11/IMdkit/IMConn.c
+D      client/x11/IMdkit/IMMethod.c
+D      client/x11/IMdkit/IMValues.c
+D      client/x11/IMdkit/IMdkit.h
+D      client/x11/IMdkit/Makefile.am
+D      client/x11/IMdkit/Xi18n.h
+D      client/x11/IMdkit/Xi18nX.h
+D      client/x11/IMdkit/XimFunc.h
+D      client/x11/IMdkit/XimProto.h
+D      client/x11/IMdkit/Xtrans.h
+D      client/x11/IMdkit/i18nAttr.c
+D      client/x11/IMdkit/i18nClbk.c
+D      client/x11/IMdkit/i18nIMProto.c
+D      client/x11/IMdkit/i18nIc.c
+D      client/x11/IMdkit/i18nMethod.c
+D      client/x11/IMdkit/i18nPtHdr.c
+D      client/x11/IMdkit/i18nUtil.c
+D      client/x11/IMdkit/i18nX.c
+M      client/x11/Makefile.am
+M      client/x11/main.c
+M      configure.ac
+A      util/IMdkit/FrameMgr.c
+A      util/IMdkit/FrameMgr.h
+A      util/IMdkit/IMConn.c
+A      util/IMdkit/IMMethod.c
+A      util/IMdkit/IMValues.c
+A      util/IMdkit/IMdkit.h
+A      util/IMdkit/Makefile.am
+A      util/IMdkit/Xi18n.h
+A      util/IMdkit/Xi18nX.h
+A      util/IMdkit/XimFunc.h
+A      util/IMdkit/XimProto.h
+A      util/IMdkit/Xtrans.h
+A      util/IMdkit/i18nAttr.c
+A      util/IMdkit/i18nClbk.c
+A      util/IMdkit/i18nIMProto.c
+A      util/IMdkit/i18nIc.c
+A      util/IMdkit/i18nMethod.c
+A      util/IMdkit/i18nPtHdr.c
+A      util/IMdkit/i18nUtil.c
+A      util/IMdkit/i18nX.c
+A      util/Makefile.am
+
+commit 4f6dd0f14758d8002cb32751c5e2aeb23ed3062f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 14:58:21 +0800
+
+    WIP.
+
+M      client/gtk2/Makefile.am
+
+commit 312499e2448ba96313ec90246c0cbe6d2b9a8c4c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 14:54:28 +0800
+
+    gtk im module can work now.
+
+M      client/gtk2/ibusimcontext.c
+
+commit 81c8e05c3e4dd888d1db2f4c696fe11e6246cd64
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 14:43:15 +0800
+
+    WIP.
+
+M      client/gtk2/Makefile.am
+M      client/gtk2/ibusimcontext.c
+
+commit eea4913d52c8f4fc1ebf3173688305380e32d836
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 14:13:19 +0800
+
+    WIP.
+
+M      client/gtk2/ibusim.c
+M      client/gtk2/ibusimcontext.c
+M      lib/gtk2/ibusimclient.c
+M      lib/gtk2/ibusimclient.h
+
+commit 5f630039085256b53f9935d4d5a94de56c0deec8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 13:41:26 +0800
+
+    Remove engine dir.
+
+M      configure.ac
+
+commit 7cf0c05d10bfb465765e439cca299b8eca8d6bcb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 13:41:07 +0800
+
+    WIP.
+
+M      Makefile.am
+M      lib/gtk2/ibusimclient.c
+
+commit ad42625677ac6ed3b43598fe71dfe92232f11fed
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 13:40:58 +0800
+
+    Remove engine folder..
+
+D      engine/Makefile.am
+
+commit 44dce73dae56c19e6f21caa4bb022dba0996ff9e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 13:03:05 +0800
+
+    WIP.
+
+M      lib/gtk2/Makefile.am
+
+commit 51176a19e373c178174a6a6360ed9db3e81fba1b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 12:53:58 +0800
+
+    WIP.
+
+M      client/gtk2/Makefile.am
+D      client/gtk2/ibusimclient.c
+D      client/gtk2/ibusimclient.h
+D      client/gtk2/ibusmarshalers.list
+
+commit 931f116d5fee25f22a48cf50b13323f3bd89180b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 12:51:47 +0800
+
+    WIP.
+
+M      Makefile.am
+A      client/Makefile.am
+A      client/gtk2/Makefile.am
+A      client/gtk2/ibusim.c
+A      client/gtk2/ibusimclient.c
+A      client/gtk2/ibusimclient.h
+A      client/gtk2/ibusimcontext.c
+A      client/gtk2/ibusimcontext.h
+A      client/gtk2/ibusmarshalers.list
+A      client/qt4/.gitignore
+A      client/qt4/Makefile.am
+A      client/qt4/ibus-client.cpp
+A      client/qt4/ibus-client.h
+A      client/qt4/ibus-input-context.cpp
+A      client/qt4/ibus-input-context.h
+A      client/qt4/ibus.pro
+A      client/qt4/im-ibus-qt.cpp
+A      client/x11/IMdkit/FrameMgr.c
+A      client/x11/IMdkit/FrameMgr.h
+A      client/x11/IMdkit/IMConn.c
+A      client/x11/IMdkit/IMMethod.c
+A      client/x11/IMdkit/IMValues.c
+A      client/x11/IMdkit/IMdkit.h
+A      client/x11/IMdkit/Makefile.am
+A      client/x11/IMdkit/Xi18n.h
+A      client/x11/IMdkit/Xi18nX.h
+A      client/x11/IMdkit/XimFunc.h
+A      client/x11/IMdkit/XimProto.h
+A      client/x11/IMdkit/Xtrans.h
+A      client/x11/IMdkit/i18nAttr.c
+A      client/x11/IMdkit/i18nClbk.c
+A      client/x11/IMdkit/i18nIMProto.c
+A      client/x11/IMdkit/i18nIc.c
+A      client/x11/IMdkit/i18nMethod.c
+A      client/x11/IMdkit/i18nPtHdr.c
+A      client/x11/IMdkit/i18nUtil.c
+A      client/x11/IMdkit/i18nX.c
+A      client/x11/Makefile.am
+A      client/x11/gdk-private.c
+A      client/x11/gdk-private.h
+A      client/x11/main.c
+M      configure.ac
+D      gtk2/Makefile.am
+D      gtk2/ibusim.c
+D      gtk2/ibusimclient.c
+D      gtk2/ibusimclient.h
+D      gtk2/ibusimcontext.c
+D      gtk2/ibusimcontext.h
+D      gtk2/ibusmarshalers.list
+A      lib/Makefile.am
+A      lib/gtk2/Makefile.am
+A      lib/gtk2/ibusimclient.c
+A      lib/gtk2/ibusimclient.h
+A      lib/gtk2/ibusmarshalers.list
+D      qt4/.gitignore
+D      qt4/Makefile.am
+D      qt4/ibus-client.cpp
+D      qt4/ibus-client.h
+D      qt4/ibus-input-context.cpp
+D      qt4/ibus-input-context.h
+D      qt4/ibus.pro
+D      qt4/im-ibus-qt.cpp
+D      x11/IMdkit/FrameMgr.c
+D      x11/IMdkit/FrameMgr.h
+D      x11/IMdkit/IMConn.c
+D      x11/IMdkit/IMMethod.c
+D      x11/IMdkit/IMValues.c
+D      x11/IMdkit/IMdkit.h
+D      x11/IMdkit/Makefile.am
+D      x11/IMdkit/Xi18n.h
+D      x11/IMdkit/Xi18nX.h
+D      x11/IMdkit/XimFunc.h
+D      x11/IMdkit/XimProto.h
+D      x11/IMdkit/Xtrans.h
+D      x11/IMdkit/i18nAttr.c
+D      x11/IMdkit/i18nClbk.c
+D      x11/IMdkit/i18nIMProto.c
+D      x11/IMdkit/i18nIc.c
+D      x11/IMdkit/i18nMethod.c
+D      x11/IMdkit/i18nPtHdr.c
+D      x11/IMdkit/i18nUtil.c
+D      x11/IMdkit/i18nX.c
+D      x11/Makefile.am
+D      x11/gdk-private.c
+D      x11/gdk-private.h
+D      x11/main.c
+
+commit 6a820938ed75a8c87ba223e248cba0d552bcb8b1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 12:28:16 +0800
+
+    WIP.
+
+M      gtk2/ibusim.c
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimclient.h
+M      gtk2/ibusmarshalers.list
+
+commit ada53aa8f62f7e3bb8f635add2bccff0c4ce17f4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-16 11:12:13 +0800
+
+    WIP.
+
+M      gtk2/Makefile.am
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimclient.h
+A      gtk2/ibusmarshalers.list
+M      x11/main.c
+
+commit fd4699471ad0ab77b7eac8dff83f9c8fb11d9fed
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-15 09:44:23 +0800
+
+    Set XErrorHandler.
+
+M      gtk2/ibusimcontext.c
+M      x11/main.c
+
+commit 242ea90f5c49b83e2b7333bacba8dea37c5af7d0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 22:53:39 +0800
+
+    Fix X error with rxvt.
+
+M      x11/main.c
+
+commit 2b49eee7367483a3530d6a4b321f65d33f6d1801
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 21:47:20 +0800
+
+    Default will show cursor in lookup table
+
+M      ibus/lookuptable.py
+
+commit 4fed7048a96fa0980c85c3fe216b457b79bb1a48
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 21:33:58 +0800
+
+    Fix problem when lookup_table without show cursor.
+
+M      panel/candidatepanel.py
+M      panel/languagebar.py
+M      panel/toolitem.py
+
+commit b5adf2c75dc7033590596bbc7c1c0adf35810b32
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 21:33:08 +0800
+
+    Add CFLAGS & CXXFLAGS.
+
+M      autogen.sh
+
+commit 16bd435bfc26799784aa62a7d94816d371b28e33
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 21:31:54 +0800
+
+    Fix segfault when use ibus with urxvt.
+
+M      x11/main.c
+
+commit d0c61308117651a6c55ff5c1475d5c352a1244b1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 07:39:41 +0800
+
+    Fix compile warning.
+
+M      x11/main.c
+
+commit b8f1b34019318db89e21361896e704f22273ca85
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 07:37:32 +0800
+
+    Fix compile warning.
+
+M      autogen.sh
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimcontext.c
+
+commit 68039d1e60dfe2c3a66fddba94157b72c61fde5a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 07:25:16 +0800
+
+    Fix compile warning.
+
+M      x11/IMdkit/i18nAttr.c
+
+commit 5bc672a6c0c5ea120af9c36729f107c950c969e2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 07:20:52 +0800
+
+    Fix compile warning.
+
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimcontext.c
+
+commit b234b2be1580dac4e9cb9783ea01365c36557c52
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 07:11:50 +0800
+
+    Use g_new0 replace g_malloc0
+
+M      x11/main.c
+
+commit b4a425733ba6e4882283f2e6fcc618348536bd67
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 07:09:27 +0800
+
+    Change header of main.c
+
+M      x11/main.c
+
+commit ba6433adcd67e075df3fa435ae9596ee676d62af
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 07:07:48 +0800
+
+    Change header of gdk-private.{c,h}
+
+M      x11/gdk-private.c
+M      x11/gdk-private.h
+
+commit 7f9193b9655be9eb9cec927285eea9dac954c083
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-14 07:06:42 +0800
+
+    Change header for gdk-private.{c,h}
+
+M      x11/gdk-private.c
+M      x11/gdk-private.h
+
+commit eb9731484bc370552f9c5701023a424a4b5841fe
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 22:42:40 +0800
+
+    Translate all texts.
+
+M      po/zh_CN.po
+M      setup/main.py
+
+commit 553775b68973f3ce7449d700a34932306d3a0f15
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 22:37:33 +0800
+
+    Add *.po file in spec.
+
+M      ibus.spec.in
+
+commit 767258ca50b3d5c854db5003ada1fd7b5d8dd13b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 22:35:42 +0800
+
+    Translate all msg.
+
+M      po/zh_CN.po
+
+commit 7074df9900c035927b1b955ed677b8652f0a445c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 22:32:32 +0800
+
+    Add zh_CN.po
+
+A      po/LINGUAS
+A      po/zh_CN.po
+
+commit ff6087669a7a17dcff1f997138b1c9aa28d4de5b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 22:06:08 +0800
+
+    i18n WIP.
+
+M      po/POTFILES.in
+
+commit 12911afd7cd03e7eaf660e5e4911bef181d7035e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 16:12:16 +0800
+
+    Fix wrong path in ibus.in
+
+M      launcher/ibus.in
+
+commit ce831f93fe3fb94aac7251511d484bead784364d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 16:09:09 +0800
+
+    Install programs in @bindir@
+
+M      daemon/Makefile.am
+M      gconf/Makefile.am
+M      ibus.spec.in
+M      panel/Makefile.am
+M      x11/Makefile.am
+
+commit a5f1cd6816b4179f8e236b6b8cc9aca374bfe76c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 15:42:26 +0800
+
+    Fix problem in archlinux.
+
+M      configure.ac
+M      launcher/ibus.in
+
+commit 1b0b4528869fe3b1a46e49a38385226dba228491
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 15:15:09 +0800
+
+    Use libexecdir
+
+M      setup/ibus-setup.in
+M      setup/main.py
+
+commit 9e2c9217c60ca9c58b5071ec8a0da1a4abfef2d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 11:04:32 +0800
+
+    Refine launcher code.
+
+M      ibus/common.py
+M      launcher/ibus.in
+
+commit cb0293353d50fc3c9bd38f06f9a052cd6405924f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 10:26:12 +0800
+
+    Use g_atexit replace atexit.
+
+M      x11/main.c
+
+commit 180fd76c6ec30aa7b67d13237aaea4ca0fb7960d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-13 10:13:33 +0800
+
+    Refine ibus launcer code.
+
+M      launcher/ibus.in
+
+commit e9e8eae8b3aa14110680da08fa79ba71547bc2c3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-12 15:14:58 +0800
+
+    Add Requires gnome-python2-gconf in spec file.
+
+M      ibus.spec.in
+
+commit a47f242de14f0599c3129ba76522853231202758
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-12 14:46:22 +0800
+
+    Change ibus_micro_version to 1.
+
+M      configure.ac
+
+commit fd9924aaa1263c1f60e4a82903c6a8e1159e0c9b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-12 14:13:44 +0800
+
+    Do support move candidate window.
+
+M      panel/candidatepanel.py
+
+commit f864ac2b98ad6b51ed1ed0f1d0b4505968e56983
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-12 14:12:00 +0800
+
+    Rename StringList to CandidateList.
+
+M      ibus/lookuptable.py
+
+commit be9a339ffd21f2d333d1174e6d4171941064edbc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-12 14:10:16 +0800
+
+    Add __getslice__ method for StringList.
+
+M      ibus/lookuptable.py
+
+commit 28aa9fed6a3893af6aaa3d75aa7f9150a5fa8fa5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-11 21:03:45 +0800
+
+    Hide preedit when disable input method.
+
+M      daemon/inputcontext.py
+
+commit 22bc732fe637b2a94fc6494ec3ec9fb7ad158d4b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-11 17:49:55 +0800
+
+    Fix a problem when press Ctrl-Shift
+
+M      daemon/factorymanager.py
+
+commit 9862c178ee34df60fde6e8c7865de2aa2f8affb6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-11 17:44:43 +0800
+
+    Change candidates' attributes.
+
+M      ibus/attribute.py
+M      panel/candidatepanel.py
+
+commit 721a884b76c2958f3e144e1e2e9799f11e50e5a3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-11 17:06:54 +0800
+
+    Use Viewport in candidate window.
+
+M      panel/candidatepanel.py
+
+commit 9abe8be7da1d7a43871bfb2854088442d7023e13
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-11 09:08:21 +0800
+
+    Add hotkey in README.
+
+M      README
+
+commit 0f93a53484ae632df1c70005c03397710c791137
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-11 01:15:22 +0800
+
+    opt lookup_table transport performance.
+
+M      ibus/engine.py
+M      ibus/lookuptable.py
+
+commit ddb16588289a33eac2c52d48ac1ffd25bab04fa0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-11 00:35:28 +0800
+
+    Fix problem when unfocused context calls set_cursor_position.
+
+M      daemon/bus.py
+
+commit 80a1b629e9380b4ea24be437bad6ff0a0e5518c0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 18:17:03 +0800
+
+    Remove docs.
+
+D      doc/interfaces
+M      doc/specification
+
+commit 47e653067ba8f9146586df549ed7ce0ba590e552
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 18:14:14 +0800
+
+    Fix problem when restart ibus daemon.
+
+M      daemon/bus.py
+
+commit 26259dbd71e104ce70a28bc6cbe603b2c50806e0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 18:08:59 +0800
+
+    Focus in when reconnect to ibus.
+
+M      gtk2/ibusimcontext.c
+
+commit 8c3015afa0d86007c37ad64f1da71d8b7c62167d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 17:55:14 +0800
+
+    Add C-Shift for next factory.
+
+M      daemon/bus.py
+
+commit 34eb3a7d807a30e66a10006cc6e3071632d012f4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 13:56:06 +0800
+
+    WIP.
+
+M      icons/ibus.svg
+
+commit dfb1168993f6717e8b328ac5e3da103b09a0b2bb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 13:42:49 +0800
+
+    WIP.
+
+M      x11/main.c
+
+commit 4990988646b89535286a3fed3dc3a6840845d027
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 13:32:52 +0800
+
+    Use old engine-default.svg
+
+M      icons/engine-default.svg
+
+commit c6a545fd69f9ffac1b731344878d9fdb9f118584
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 13:26:07 +0800
+
+    Modify icon.
+
+M      icons/ibus.svg
+
+commit cd3e61c3fcf08aecfdaf78c8e1bb43931c8c07a6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 13:23:34 +0800
+
+    Use ibus icon replace engine-default.
+
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit e23221cea1e9fb568f8b6dcec18fc570419a09c8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 13:03:55 +0800
+
+    Use ibus.svg as ibus-setup.svg.
+
+T      icons/ibus-setup.svg
+
+commit 59238ae457f850ed2feecdb94ad9d7af9146be2b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-10 09:04:16 +0800
+
+    Change color of icons.
+
+M      icons/engine-default.svg
+
+commit 0f634129e935f4320bad58bf5e84f98761d9f327
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-09 23:12:06 +0800
+
+    Resume cursor_position if context has focus when reconnect to ibus.
+
+M      gtk2/ibusimcontext.c
+M      gtk2/ibusimcontext.h
+
+commit a436714004455529d6cbe00bf64c2f911e2a490c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-09 22:57:04 +0800
+
+    Refine code and fix some compile warnings.
+
+M      gtk2/ibusim.c
+M      gtk2/ibusimclient.c
+
+commit 57421462edc62256018c4ba00be26a7b531bb44f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-09 22:27:44 +0800
+
+    Remove debug output.
+
+M      panel/panel.py
+
+commit 9532e04a817cd2e42be910d6273a22d51bfa04d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-09 20:42:32 +0800
+
+    Chang color of icons.
+
+M      icons/engine-default.svg
+
+commit f167995d016658aed1e6cd08615c3820bd59a35e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-09 19:19:06 +0800
+
+    Change icons.
+
+M      icons/engine-default.svg
+M      icons/ibus.svg
+
+commit 04b81eae7c7de532b80ed68fb6e43f2554c56ce5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-09 17:09:50 +0800
+
+    Refine code.
+
+M      x11/main.c
+
+commit 8cebcc82b2b20a35da332db29f7ea70f2d5be6dc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-09 11:33:41 +0800
+
+    Fix cursor position problem
+
+M      gtk2/ibusimcontext.c
+
+commit a422f497ceae8930405c51221aa6146899c67b8a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-09 08:30:10 +0800
+
+    Refine coding style.
+
+M      configure.ac
+M      launcher/ibus.in
+
+commit c9c0d1f87e5c28b42d9b5c2422057d88d6083f37
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-08 17:20:15 +0800
+
+    Modify for packaging review.
+
+M      ibus.spec.in
+
+commit 007c8c1a495a44b2791663485c486da45f322779
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-08 17:15:15 +0800
+
+    Remove unused dependences.
+
+M      configure.ac
+M      ibus.spec.in
+
+commit ea852dbea85043bf36faeb2c0c43a5e6413c25a8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-08 15:12:22 +0800
+
+    Use LGPLv2.
+
+M      COPYING
+
+commit 3cb4c5c7813d5cb5dc593c9e1db5f8a285cb3649
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-08 12:03:35 +0800
+
+    Refine doc.
+
+M      README
+
+commit 2116f41641d605e05bd0ff4ac1f69cfce14ee319
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-08 12:01:47 +0800
+
+    Refine doc for rpm review.
+
+M      README
+M      ibus.spec.in
+
+commit 6aef6260e00c70dd3f56f6c4af186b70929e3048
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-08 10:50:50 +0800
+
+    Use atexit to kill daemon
+
+M      x11/main.c
+
+commit 0d5249970d95047e329bb44c371b488463fd167f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-08 08:02:10 +0800
+
+    Fix refresh problem.
+
+M      panel/Makefile.am
+M      panel/candidatepanel.py
+M      panel/panel.py
+
+commit f64adc44249c776fbece34d3e5c50b47eebc3ddd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 18:02:08 +0800
+
+    Sleep for every.
+
+M      xinput-ibus
+
+commit 707cd300159b6ccfde2162d6e64e259a7b134a9f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 15:46:24 +0800
+
+    Remove python_sitearch.
+
+M      ibus.spec.in
+
+commit d79633dc99cd8d94fc9655f38d27193c97d99b26
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 14:53:12 +0800
+
+    Handler X IO Error.
+
+M      launcher/ibus.in
+M      x11/main.c
+
+commit 131fbdd6c108f0931ae9a655690202ec150af81f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 14:15:11 +0800
+
+    Use sleep as fake xim server.
+
+M      xinput-ibus
+
+commit c40012c674f7d3a5fb9c519f0be63fa6427d9c77
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 13:29:32 +0800
+
+    Use cat as a fake XIM server.
+
+M      xinput-ibus
+
+commit 20376165d63220dbea7f8d3d1bee6f5a0e9ec61c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 13:00:10 +0800
+
+    Fix rpmlint errors.
+
+M      ibus.spec.in
+
+commit 9bb9a4691dca85f57ce8a7eb8e229238c4f0adb5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 10:52:10 +0800
+
+    Kill daemon when ibus-x11 exit.
+
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimclient.h
+M      launcher/ibus.in
+M      x11/main.c
+
+commit 50060320ffb1a03c08e1f88690c3670c51c7ec66
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 10:27:51 +0800
+
+    Check exist ibus, before start a new ibus.
+
+M      launcher/ibus.in
+
+commit 825081a3d719d9816e323325fabb33b0f0f36598
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 10:15:05 +0800
+
+    Implement auto start ibus.
+
+M      setup/main.py
+M      setup/setup.glade
+
+commit c93bd8b15a6368ac4aadb17e527f63c9e724f3c4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 09:33:21 +0800
+
+    Fix typos.
+
+M      panel/panel.py
+
+commit 69c9064465e0e7f0f1a52f73cdc4358dbeabfec8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 09:22:51 +0800
+
+    Add IBUS_PREFIX env in start scripts.
+
+M      daemon/ibus-daemon.in
+M      gconf/ibus-gconf
+M      gconf/ibus-gconf.in
+M      setup/ibus-setup.in
+
+commit 5d1c2f9487462405ddb5a70cfc113c39e06a5da5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 09:19:54 +0800
+
+    Add preferences item in sys menu, and implement handler function.
+
+M      panel/ibus-panel.in
+M      panel/panel.py
+
+commit 8895d15e6a26a37b31bc6e8451b6fe8351efdcc9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 09:01:01 +0800
+
+    Edit ibus desktop items.
+
+M      launcher/ibus.desktop.in
+M      setup/ibus-setup.desktop.in
+
+commit afe55e0c6245ed0e17f1ed62b489fb94dff7543c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-07 07:25:10 +0800
+
+    Add sys menu for panel.
+
+M      panel/panel.py
+
+commit f5ebcc85fdc233796fc181a63795045a7a8867d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:55:24 +0800
+
+    Kill: do reply before kill self.
+
+M      daemon/bus.py
+
+commit beea0f5f37ed291184ef83d710e378ded8b3d8f9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:53:53 +0800
+
+    Change Kill to async method.
+
+M      ibus/interface/iibus.py
+
+commit afe9f55197bc506ba3ba4bee5198cc3914d751e7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:52:47 +0800
+
+    Close ibus-xim when connection be closed.
+
+M      x11/main.c
+
+commit e9e84025b433278c35ca151d6ab9fa16ae148183
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:45:47 +0800
+
+    Add connected & disconnected signal.
+
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimclient.h
+
+commit a9db37d1fa7347475d0a85c18e62e65292c2379e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:22:09 +0800
+
+    Implement kill in ibus-daemon.
+
+M      daemon/bus.py
+
+commit e580d117d8f8b20b081ed4dad1065fa8be7c5b5f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:18:52 +0800
+
+    Add kill method.
+
+M      ibus/bus.py
+
+commit 7753b354edde682500595dbf8766751a97ce225d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:18:18 +0800
+
+    Rename IIBus.Destroy to IIBus.Kill.
+
+M      ibus/interface/iibus.py
+
+commit 49f95590fbaf72045c76846d8de08e13b488ce90
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:16:54 +0800
+
+    Add Destroy method for IBus.
+
+M      ibus/interface/iibus.py
+
+commit 910d645f07033860e9d52806b9667d915b93c2f6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:13:35 +0800
+
+    Refine messages.
+
+M      setup/main.py
+
+commit 9dcfd4267e36c30d85a815e72f0c950146f30d0a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:10:52 +0800
+
+    Add information dialog.
+
+M      setup/main.py
+
+commit 1a8fcb322556d258ee3323d062ebd467dce9ff97
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 23:03:14 +0800
+
+    Add start ibus code.
+
+M      setup/main.py
+M      setup/setup.glade
+
+commit 91fe33f5bea02a6b6fa68c37e88cc8cfd55997cc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 22:34:27 +0800
+
+    Do not start ibus in xinitrc.
+
+M      xinput-ibus
+
+commit bb9aab042d50a17f142120a0c00a7201f443924c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 22:32:04 +0800
+
+    Fix problem when start ibus with a window manager.
+
+M      configure.ac
+M      icons/Makefile.am
+M      launcher/Makefile.am
+A      launcher/ibus.desktop.in
+M      launcher/ibus.in
+M      panel/handle.py
+M      panel/languagebar.py
+
+commit aa9ad606487ac6730837f95c2c7e215329ac649d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 21:58:22 +0800
+
+    Use gtk_main to replace g_main_loop.
+
+M      x11/main.c
+
+commit 42d39a995de0cb14e566753fad273d38a3094c51
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 19:06:39 +0800
+
+    Change XIM.
+
+M      xinput-ibus
+
+commit 26a9f1aa0cc1c74304bce2a3e35055e5933666b5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 13:59:55 +0800
+
+    Scale icon size.
+
+M      setup/main.py
+
+commit 2fad828d8e377597da641f71bd58108c0360d8e5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 13:45:36 +0800
+
+    Support path as icon.
+
+M      setup/main.py
+
+commit 80bad58466cf570fb53438eb3da853912df5ad82
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 13:02:43 +0800
+
+    Fix make dist error.
+
+M      configure.ac
+
+commit 441b1524f9fbebaa2b01968289333a39de4faa89
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 13:02:30 +0800
+
+    Add pixmaps.
+
+M      ibus.spec.in
+
+commit bc8142802793feabab406c39891bdfeaf3963d5c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 10:14:47 +0800
+
+    Edit README.
+
+M      README
+
+commit 519697b564d2daeaf2d9c2a241cf64b3c66f26e0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 10:13:07 +0800
+
+    Fix configure bug of check qt.
+
+M      configure.ac
+M      gconf/ibus-gconf
+
+commit 1c41efd75961c60a9da0a27991ff0333d29965c2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 08:13:02 +0800
+
+    Show warning message in MessageDialog when can not connect to ibus-daemon.
+
+M      setup/main.py
+
+commit 9a475c6a8d89a1ebe3ee5b6a01a19f1d4b4332c7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 07:13:20 +0800
+
+    Exit when can not connect to ibus-daemon.
+
+M      setup/main.py
+
+commit eef1e0fc612342fabae4ff8a815863e3b942569a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-06 06:55:34 +0800
+
+    Refine code of creating ibus address string.
+
+M      gtk2/ibusimclient.c
+M      qt4/ibus-client.cpp
+M      qt4/ibus-client.h
+
+commit 1843f0adcf792b7eae7a11ac6787d8dfd51df72b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-05 20:47:10 +0800
+
+    Remove AC_SUBST(IBUS_BUILD_QT4)
+
+M      configure.ac
+
+commit 17e95380ba43e90fc69eea24916226ff677de38a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-05 20:44:13 +0800
+
+    Add --disable-qt4-immodule to configure.
+
+M      configure.ac
+M      gconf/ibus-gconf
+M      gtk2/Makefile.am
+M      qt4/Makefile.am
+
+commit 19d25b587099e06c7294ae62add8b5081bae2522
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-05 19:07:03 +0800
+
+    Use checking QtDBus & QtCore to replace checking Qt.
+
+M      configure.ac
+
+commit 4c9599380234ea684316ce368feff4227ce712b6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-05 19:06:23 +0800
+
+    Check reply message.
+
+M      qt4/ibus-client.cpp
+
+commit 79d89c498a426eca51dbb021c72c3a75aca9b0ef
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-05 18:28:14 +0800
+
+    Set the icon for setup dialog.
+
+M      setup/setup.glade
+
+commit 4ca407b92cc7c1b350b61accbc6924c8b8e79ce4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-05 18:18:41 +0800
+
+    Add ibus-setup.svg.
+
+M      icons/Makefile.am
+A      icons/ibus-setup.svg
+
+commit 2c436563f43482bc4ce62eee45acd8b84f8a19bd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-05 15:05:11 +0800
+
+    Use {show,hide}_all.
+
+M      panel/panel.py
+
+commit b856a258e4d5b9c3d3e7ccf1a0e08ef8dd7d92a6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-05 13:51:39 +0800
+
+    catch exception throw from os.getlogin().
+
+M      ibus/common.py
+
+commit fff9bf7070374ffb83181fd1590154a4a8090f10
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-05 12:45:41 +0800
+
+    Get usernmae form getlogin, $LOGNAME, $USER, $LNAME and $USERNAME.
+
+M      ibus/common.py
+
+commit 342e7786b0855a9ed8b8b07862761c0456cd952a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-04 21:15:51 +0800
+
+    focus_out the input context when input context is destroyed.
+
+M      daemon/bus.py
+M      setup/setup.glade
+
+commit 66d293363d06253f7d34040219e316dc3c5816d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-04 21:04:48 +0800
+
+    get username from getlogin(), $LOGNAME, $USER, $LNAME, $USERNAME.
+
+M      gtk2/ibusimclient.c
+M      qt4/ibus-client.cpp
+
+commit b5bd6f1aad49da1bd16b14c60bc2e037713e322a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-04 11:31:08 +0800
+
+    Refine the Makefile.am.
+
+M      x11/Makefile.am
+
+commit bba038e56f54721cb7438c282697d54af5f4640e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-04 11:23:02 +0800
+
+    Add dependancies of ibus-x11.
+
+M      x11/Makefile.am
+
+commit 6ef8d2e67ad4ee0086a0edf15a4d417ede9a3607
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-04 10:45:33 +0800
+
+    Fix ibus.spec problem.
+
+M      ibus.spec.in
+M      icons/Makefile.am
+
+commit 8d79e6f788d17cb77a77ba46d71b0e0b80b68ea8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-04 10:44:29 +0800
+
+    Fix build problem.
+
+M      gtk2/Makefile.am
+
+commit 3720675bc9a6c8790b0e64a0b330d9550f24d41c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-04 09:15:47 +0800
+
+    Use getlogin to get login user name.
+
+M      gtk2/ibusimclient.c
+M      qt4/ibus-client.cpp
+
+commit 5632447a202ef3a83e5b96d11cbbc653fafac99b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-04 09:07:09 +0800
+
+    Use os.getlogin to get login user name.
+
+M      ibus/common.py
+
+commit 86a5955a6f2c3b36ede74c67332a6100d8e81593
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-03 20:06:48 +0800
+
+    Fix xim protocol bug.
+
+M      x11/IMdkit/i18nIMProto.c
+
+commit b3bbfb23e37d4500df2b544ae5646abc400e1648
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-02 16:28:52 +0800
+
+    Fix build error.
+
+M      gtk2/Makefile.am
+
+commit 65ebed064c3c5ed83b9d4cd3feee0273a7a0fe20
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-01 23:00:36 +0800
+
+    Fix bug when set an empty list.
+
+M      gconf/config.py
+
+commit db891751d98c86b2ca8a996b4b8d2a9dafc840cd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-01 22:54:13 +0800
+
+    Add config_set_list method.
+
+M      ibus/bus.py
+M      setup/main.py
+
+commit a1ad647148a673f9e84f9d8ef2078eb3eb04e145
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-01 22:37:19 +0800
+
+    Fix bug when unset a config key.
+
+M      gconf/config.py
+
+commit bc962489b97edc1a84c04728ccc3f43391c28542
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-01 22:08:02 +0800
+
+    FIx a typo.
+
+M      setup/main.py
+
+commit c398123436beabd26f891df230261acfe6a250bf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-01 22:06:57 +0800
+
+    Refine coding style.
+
+M      setup/main.py
+
+commit e4daf0310d30de9bb6d90e0d91f3117dcbc856b1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-01 22:06:22 +0800
+
+    Change some const values' name.
+
+M      setup/main.py
+
+commit 2e3000526080563a6988b1cb820f4d312eeb0f17
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-01 22:02:30 +0800
+
+    Save preload engines.
+
+M      setup/main.py
+
+commit befb997c85c4dea40d05f90a90822fc3595d1269
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-08-01 19:05:04 +0800
+
+    Add preload column in setup dailog.
+
+M      setup/main.py
+
+commit 3217d7d3b4dba90f47784729a4306ef6463a2edc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-31 20:14:11 +0800
+
+    Fix typos.
+
+M      gconf/config.py
+
+commit 6f2354d049e7c39223700cd1d0e511e135f0ba77
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-31 20:12:06 +0800
+
+    Fix config bug.
+
+M      daemon/bus.py
+M      daemon/connection.py
+
+commit dda9227c7c81260395a8eeecce054bd211da2118
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-31 20:01:07 +0800
+
+    Rename get_conn to get_dbusconn.
+
+M      ibus/bus.py
+M      ibus/engine.py
+M      ibus/factory.py
+M      ibus/panel.py
+
+commit 74b3f65af54cd383f3d7a64afedb99ccf6a1453f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-31 16:12:01 +0800
+
+    Add Config{Add,Remove}Watch methods.
+
+M      daemon/bus.py
+M      daemon/panel.py
+M      gconf/config.py
+M      ibus/bus.py
+M      ibus/interface/iibus.py
+
+commit 708442bf3056513db933fdf37dd8b0f475bca83e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-31 13:02:08 +0800
+
+    Rename IBus to Bus.
+
+M      gconf/main.py
+M      ibus/bus.py
+M      ibus/engine.py
+M      ibus/factory.py
+M      ibus/panel.py
+M      panel/main.py
+M      panel/panel.py
+
+commit 67bb63aa51963b487037de820c32e3986832a309
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-31 12:09:04 +0800
+
+    Make ibus inherit from ibus.Object.
+
+M      gconf/config.py
+M      gconf/main.py
+M      ibus/bus.py
+M      ibus/engine.py
+M      ibus/factory.py
+M      ibus/panel.py
+M      panel/main.py
+
+commit 211e3f2a79e99b105ea06280c14b8a5ca9380782
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 19:12:02 +0800
+
+    focus in the engine, after enable the engine.
+
+M      daemon/inputcontext.py
+
+commit 23a468d8b07c995b3b29ed98d1999da7a8ac6554
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 17:26:22 +0800
+
+    Remove some debug print.
+
+M      gconf/config.py
+
+commit ed955da75b4c52f735a4555d8366b0f7bb3fb2aa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 17:26:09 +0800
+
+    Rename preload_engines to general/preload_engines.
+
+M      daemon/ibusdaemon.py
+
+commit 94e0692d566e21ce5a59ca94725b4c9d2f87800f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 17:12:04 +0800
+
+    Fix error when get_value from a unexist key.
+
+M      gconf/config.py
+
+commit 3d02c0e3cc32030ec93177ee6a8c39ade3554c31
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 17:11:19 +0800
+
+    Rename auto_enable_engine to preload_engines.
+
+M      daemon/ibusdaemon.py
+
+commit d2f199adc1a56b7d078ab8ca6eb1a013a305b892
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 17:05:26 +0800
+
+    Implement Server.connection_removed
+
+M      daemon/ibusdaemon.py
+
+commit 4e2adddf79bbfcfc42720c0a52c6a6a741fb1ebe
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 15:57:03 +0800
+
+    Test bool at first.
+
+M      gconf/config.py
+
+commit 950a0a8bd7b088cd50f8c60434c562044778d6fc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 15:12:24 +0800
+
+    WIP.
+
+M      daemon/ibusdaemon.py
+
+commit dfde1ca606366e3df40ad6cf3b258db44071ca0e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 15:11:27 +0800
+
+    WIP.
+
+M      daemon/bus.py
+M      daemon/ibusdaemon.py
+
+commit 9a7b369ee6b87e122ade4b6af06ed0ae8609756d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 15:06:58 +0800
+
+    Test unicode in to_gconf_value.
+
+M      gconf/config.py
+
+commit 06a6c3a8bf671e013296a044b625a558fa6bfd09
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 15:04:17 +0800
+
+    Fix typos.
+
+M      daemon/config.py
+M      daemon/ibusdaemon.py
+
+commit cc7f9b0590321b9aa8fefd2f3d10b703da8e5d03
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 14:43:08 +0800
+
+    Fix problem if pass None as reply_handler or error_handler to config_set_value.
+
+M      daemon/config.py
+
+commit 12afe7c562211c255cccf29091fe4ac3d7d7f0c5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 13:16:44 +0800
+
+    Fix a typo.
+
+M      gconf/config.py
+
+commit d77ada2151191b819d01cbb1a3736ba13c2ad3cb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 13:14:48 +0800
+
+    Fix a typo.
+
+M      ibus/bus.py
+
+commit ee5a1a54e1cd29ee87587abf9fdd150d21d200ab
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 13:10:59 +0800
+
+    Fix a typo.
+
+M      daemon/bus.py
+
+commit 6c22fecaf26a1298dc57fa62394d455c704ec70a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 12:09:50 +0800
+
+    Add ConfigReload signal.
+
+M      daemon/bus.py
+M      ibus/interface/iibus.py
+
+commit 7eb2ceebfd6c7b9521996cf58cd6b7c1ce139aaa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 12:04:50 +0800
+
+    Refactory bus.py.
+
+M      daemon/bus.py
+M      daemon/ibusdaemon.py
+
+commit 13a4d66dbf0f29cff78c9633123b483041c527be
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 12:04:33 +0800
+
+    Don't launch ibus-gconf.
+
+M      launcher/ibus.in
+
+commit 1e09758b224ec0ff1b98f08429a52fe92d703105
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 11:37:27 +0800
+
+    Make gconf as DefaultConfig.
+
+M      daemon/Makefile.am
+M      daemon/bus.py
+M      daemon/config.py
+M      gconf/config.py
+
+commit 1cc99dd2714e92d93a0fde0042d108f0b432b33a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 11:07:13 +0800
+
+    Fix problem in config.Destroy.
+
+M      gconf/config.py
+
+commit 57881cd0347f38cd6923cf5c96450c7e3bbd87fe
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 11:01:50 +0800
+
+    Add defaultconfig.py
+
+A      daemon/defaultconfig.py
+
+commit c6c4a2151e3418d2f448138ad9e06d54dfc9bb02
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 10:37:25 +0800
+
+    Remove {get,set}{string,int,bool}
+
+M      gconf/config.py
+M      ibus/bus.py
+M      ibus/interface/iconfig.py
+M      ibus/interface/iibus.py
+
+commit 11b9b08a25f3a6e16173e813315cdd68c36c1cb7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 10:27:49 +0800
+
+    Remove {get,set}_{string,bool,int} methods.
+
+M      daemon/bus.py
+M      daemon/config.py
+
+commit 89e9effbf085a19581e2aaf8a4d2da6bbf2187ef
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 09:24:19 +0800
+
+    Add {Get,Set}value interfaces.
+
+M      ibus/bus.py
+
+commit 655f07ae5274ccbc4894651a2557f2ae06274bc6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 09:22:01 +0800
+
+    Refine coding style.
+
+M      ibus/interface/iibus.py
+
+commit 070435e6d826b87dbcf8c7f6b3833a03f21ea575
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 09:21:17 +0800
+
+    Add {Get,Set}Value methods.
+
+M      daemon/bus.py
+M      daemon/config.py
+
+commit e7f1fdccdd9a7df42eb2edc15efb1c1b2508cc3e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 09:13:34 +0800
+
+    Refine coding style.
+
+M      ibus/interface/iconfig.py
+
+commit cc152299d39d52727dcb2977c1438876e9ec6b45
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-30 09:12:16 +0800
+
+    Add {Get, Set}Value.
+
+M      ibus/interface/iconfig.py
+
+commit 5bc357fad0c96e3d8d6356525230b3e869746efa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-29 20:56:41 +0800
+
+    WIP.
+
+M      setup/main.py
+M      setup/setup.glade
+
+commit 616216fefd6e208141e95564698e3716b275ca05
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-29 19:23:27 +0800
+
+    Raise Exception when receive unsupport type.
+
+M      gconf/config.py
+
+commit 03758f5cab74f7e1bba3383c48eb30616aa555da
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-29 19:19:31 +0800
+
+    Support all type value of gconf.
+
+M      gconf/config.py
+
+commit 13968a0afff59950f288fb45c453bb80a70720d1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-29 12:50:17 +0800
+
+    Make Config supports async and sync call
+
+M      daemon/config.py
+
+commit f9efa76f89029b43fc8f2498a4fb69679d9bfc4f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 14:59:17 +0800
+
+    Add Destroy for config.
+
+M      gconf/config.py
+M      gconf/main.py
+M      ibus/interface/iconfig.py
+
+commit 0514cc8f4599954fa2ef0cd88e8cf6737ca9ea56
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 14:53:46 +0800
+
+    Remove gtk.
+
+M      gconf/main.py
+
+commit e5e9f635f396f243d59afd153b131fbf6e7a69dc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 14:29:05 +0800
+
+    Use IBus replace Connection.
+
+M      panel/main.py
+M      panel/panel.py
+
+commit 7ee9eed921aed351408c480cab42aea50dee1aa2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 14:28:16 +0800
+
+    Use IBus replace Connection.
+
+M      ibus/bus.py
+M      ibus/engine.py
+M      ibus/factory.py
+
+commit 26a689fab7847801790ec9cfe621f237f75c0f3c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 14:02:39 +0800
+
+    Wrap methods of ibus.
+
+M      ibus/bus.py
+
+commit 3663f94338e1fe1a4daf55a6bffbc9e427c42463
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 13:44:09 +0800
+
+    Rename connection to bus
+
+M      ibus/Makefile.am
+M      ibus/__init__.py
+A      ibus/bus.py
+D      ibus/connection.py
+
+commit be431e9dbd8846d9620eb12e540eb1d772768337
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 13:37:08 +0800
+
+    Fix a typo.
+
+M      daemon/bus.py
+
+commit 400cf58d6af004333172c8a9699438f1c7201b5f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 11:45:16 +0800
+
+    Add header.
+
+M      gconf/config.py
+
+commit 4ae2941be4132110f30473c938ef04a25b4adaf1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 11:44:09 +0800
+
+    Refine coding style.
+    Refine structure.
+
+M      gconf/config.py
+M      gconf/main.py
+
+commit f2c7968945fc7adcef23cafc1916f37766fc8b09
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 11:38:15 +0800
+
+    Change config path.
+
+M      gconf/main.py
+
+commit 9ff51991372df5700b8d4e706cd33a3e92c3b0d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 11:37:17 +0800
+
+    Refine coding style.
+
+M      gconf/main.py
+
+commit 0dc44f16c8cc65e9beaec20230e0bcbec5758bb8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 11:36:07 +0800
+
+    Remove dbus related code.
+
+M      gconf/main.py
+
+commit 854ebc3e032ca21e3fd55d5398949a478116fcde
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 11:32:11 +0800
+
+    Remove dbus related code.
+
+M      panel/main.py
+
+commit ec621c984200ebbd157e3a6cd9e910138a3cf669
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-28 11:31:51 +0800
+
+    Set dbus mainloop.
+
+M      ibus/connection.py
+
+commit ebcd8084a5328de997bf98e06c600283d374339b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-25 16:57:35 +0800
+
+    Add register method for EngineFactoryBase class.
+
+M      ibus/factory.py
+
+commit a7d461484d8876c04db27a7b6469b35d37ce6f50
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-25 15:02:01 +0800
+
+    Refine coding style.
+
+M      daemon/config.py
+M      daemon/connection.py
+M      daemon/engine.py
+M      daemon/factorymanager.py
+M      daemon/ibusdaemon.py
+M      daemon/panel.py
+M      daemon/register.py
+
+commit 2cc8ae3671a46a2f7b58ed16e09ccb1d92c560ea
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-25 14:51:33 +0800
+
+    Refine coding style.
+
+M      daemon/bus.py
+M      daemon/inputcontext.py
+
+commit d2ad570e65e6178e4d9ff75f2a8522ff36c9ef99
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-25 14:50:03 +0800
+
+    Fix a typo.
+
+M      ibus/engine.py
+
+commit ebeca2a8f74e78c55cad36dd0ac820abb0202b42
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-24 13:44:31 +0800
+
+    Support filename as icon for menu.
+
+M      panel/menu.py
+M      panel/panel.py
+
+commit 9b009e1a08bc76274f47ce4d64d0c186b63061d9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-24 13:34:10 +0800
+
+    Support file as icon for StatusIcon.
+
+M      panel/panel.py
+
+commit 975ea39af250fee96d8dbe2991ecaef094484ab7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 16:43:06 +0800
+
+    Remove preedit related functions.
+
+M      x11/main.c
+
+commit 8aeddd1ae12262fcb3be4e41dd2c763890844970
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 16:36:31 +0800
+
+    Refine coding style.
+
+M      x11/main.c
+
+commit 7fdd7ed8c2e38070603da034cd9019aad1e01faa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 16:08:42 +0800
+
+    Start ibus-x11 in ibus script.
+
+M      launcher/ibus.in
+
+commit 35db4e965c5f795ef7dea405a07ed4e0f77f53cf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 16:08:19 +0800
+
+    Remove some output.
+
+M      x11/main.c
+
+commit 8cf5d261c1f545ca84ea2f1118510a05e02172b1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 15:12:48 +0800
+
+    Support set_use_preedit
+
+M      daemon/bus.py
+M      daemon/inputcontext.py
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimclient.h
+M      gtk2/ibusimcontext.c
+M      ibus/interface/iibus.py
+
+commit 4004fd1f9d97d5bef6fa3d8650d1873ad28242b0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 14:57:23 +0800
+
+    Add preedit code.
+
+M      daemon/inputcontext.py
+M      ibus/panel.py
+M      x11/main.c
+
+commit 4aff5583f058796a8bc233e6d391a82f2a0dbfe0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 14:54:52 +0800
+
+    Fix typo.
+
+M      panel/panel.py
+
+commit 450003e4be40a802c95adeb7d616d577664c74bf
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 14:25:56 +0800
+
+    Forward key event.
+
+M      x11/Makefile.am
+M      x11/main.c
+
+commit 2751028842c63c346d87b608b14ce99f5f7ac266
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 14:14:39 +0800
+
+    Remove python xim sources.
+
+D      x11/IMdkit.i
+D      x11/test.py
+
+commit cb388f451b8d4f9bd9e4133e73c0c98aed325692
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 14:13:37 +0800
+
+    Implement ibus xim agent.
+
+M      Makefile.am
+M      configure.ac
+M      daemon/Makefile.am
+M      x11/Makefile.am
+A      x11/gdk-private.c
+A      x11/gdk-private.h
+A      x11/main.c
+
+commit 90f1e606a70588a425bc7ff9ec6169aae847b6ec
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 14:12:55 +0800
+
+    Modify type_register functions.
+
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimcontext.c
+
+commit 34dda8e8dba47ca0fdff0ff0504893d8abefbc6e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 13:42:05 +0800
+
+    Build libibus-gtk.la.
+
+M      gtk2/Makefile.am
+
+commit 380c5cd1ee10431de9b4ff8b572d25776cb0a176
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-23 09:25:55 +0800
+
+    Set default icon.
+
+M      panel/toolitem.py
+
+commit 5f23560b18b7c1a28949dec7f56ef165bbd17552
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-22 23:15:01 +0800
+
+    Rename image.py to icon.py. Use set_icon_widget to replace set_icon_name.
+
+M      panel/Makefile.am
+A      panel/icon.py
+D      panel/image.py
+M      panel/toolitem.py
+
+commit e0eca135a0e541e2097075c548fadf01d4fbd8c0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-22 12:51:04 +0800
+
+    Add ATTR_UNDERLINE_*.
+
+M      ibus/attribute.py
+
+commit c97e02d2acf1297072b3bc33ab25d23eae205803
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-22 11:54:38 +0800
+
+    Remove useless import.
+
+M      panel/languagebar.py
+
+commit 8c410eb52de12e9ea4dd9e9e934fff726b6d2fd3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-22 11:54:16 +0800
+
+    Refine coding style.
+
+M      panel/toolitem.py
+
+commit ce961a7daa53442c2e2f2adf5956c2a45362a6c4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-22 10:23:40 +0800
+
+    Init cursor area.
+
+M      gtk2/ibusimcontext.c
+
+commit de91ed4103c78fa19998ddcab27619fb2e33de97
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-22 09:53:08 +0800
+
+    Remove &.
+
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimcontext.c
+M      panel/Makefile.am
+
+commit 6173092852804f560b839c508fe811bf9f2938e2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-21 09:30:32 +0800
+
+    Set cursro_location when focus_in.
+
+M      gtk2/ibusimcontext.c
+
+commit 15ab82f103d051a853adafb0a0cfe49ab663e527
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-21 09:26:06 +0800
+
+    Keep candidate window in screen.
+
+M      panel/candidatepanel.py
+M      panel/panel.py
+
+commit 804a3b32cb2df4a3f2aa0a0357cb29b98e09fa63
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 12:55:10 +0800
+
+    WIP.
+
+M      qt4/ibus-client.cpp
+M      qt4/ibus-client.h
+M      qt4/ibus-input-context.cpp
+M      qt4/ibus-input-context.h
+
+commit 780d259ef70abc42395cd796315344fa535979c2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 12:42:57 +0800
+
+    WIP.
+
+M      daemon/inputcontext.py
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimcontext.c
+M      gtk2/ibusimcontext.h
+
+commit 991e01f1500ef0b4c5cd4cb38144bbb51b8478d7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 12:42:28 +0800
+
+    WIP.
+
+M      panel/candidatepanel.py
+M      panel/panel.py
+
+commit 67f88397717ee114b0ebe751aa140b442b9fd859
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 12:04:59 +0800
+
+    WIP.
+
+M      daemon/inputcontext.py
+M      ibus/panel.py
+M      panel/candidatepanel.py
+M      panel/panel.py
+
+commit fb84b51ed59f87393788f9d900e4a6c160f06379
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 11:44:38 +0800
+
+    WIP.
+
+M      daemon/bus.py
+M      daemon/inputcontext.py
+
+commit e06cde77fd4fc60073405e9e752261a92518b18e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 11:24:26 +0800
+
+    Fix typos.
+
+M      ibus/engine.py
+M      ibus/interface/iengine.py
+
+commit 2b3142d0a30d3324c2de29dd0ba8d09cca1c1b57
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 11:21:51 +0800
+
+    Add interfaces.
+
+M      daemon/bus.py
+M      daemon/engine.py
+M      daemon/panel.py
+
+commit 492c222924bac40f218015d07bcad037f6168341
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 11:02:29 +0800
+
+    Add some interface.
+
+M      ibus/engine.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibus/panel.py
+
+commit 3aafb8f024f73d32284304948d548964d6021082
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 10:34:29 +0800
+
+    Remove PanelProxy class.
+
+M      panel/panel.py
+
+commit 77b410766411ebbc98566462f63efc6cddde6681
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 10:33:18 +0800
+
+    Add PanelBase class.
+
+M      ibus/__init__.py
+M      ibus/panel.py
+M      panel/candidatepanel.py
+M      panel/panel.py
+
+commit 77429921c052a624cf092652ed7233a4873a182e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 10:27:39 +0800
+
+    Refine coding style.
+
+M      ibus/interface/ipanel.py
+
+commit e3e2d7de9cfccf74f9dd4fe212e9969f9a97a49f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 09:29:19 +0800
+
+    Refine coding style.
+
+M      panel/main.py
+M      panel/panel.py
+
+commit a5c552594fec65a234e8da5ea2bfbcf8fd9e1819
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 09:23:15 +0800
+
+    Refine coding style.
+
+M      panel/handle.py
+
+commit da338c8ebf41ceecd21dcc7e96aa68868ecc422c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 09:21:06 +0800
+
+    Refine coding style
+
+M      panel/image.py
+
+commit 316b2feb16705b6c24ffd706713b8e4777efa219
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 09:20:09 +0800
+
+    Refine coding style.
+
+M      panel/languagebar.py
+
+commit 547ac28e3b9cf3a34126a626814faf18d86cd507
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-20 09:16:59 +0800
+
+    Change backgroud color of focus candidates. Refine coding style.
+
+M      panel/candidatepanel.py
+
+commit fa835c5f3c1b4a7674d62a5eea7f2c86ff8b619e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 16:25:30 +0800
+
+    Refine coding style.
+
+M      ibus/lookuptable.py
+
+commit ffc1b7f91f265d52efa4b4bd971075cde4350459
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 11:18:37 +0800
+
+    Accept None Attrs.
+
+M      ibus/engine.py
+
+commit 06a117ae199284429820fa49d1a9fd7a3e3bf42f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 10:01:11 +0800
+
+    Fix typos.
+
+M      daemon/inputcontext.py
+M      ibus/engine.py
+
+commit 1ba0a79b174a66da5da594f672078fd063cbf676
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 09:55:21 +0800
+
+    Fix a typo.
+
+M      ibus/engine.py
+
+commit 5280df255b7ecbd22a2c3b89bc172e2125272ce8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 09:53:25 +0800
+
+    Fix some errors.
+
+M      ibus/engine.py
+M      ibus/factory.py
+M      ibus/object.py
+
+commit 729551728c88a7d403b1fbe8b759e1f03d1a1ac5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 09:23:43 +0800
+
+    Replase SetEnable with Enable & Disable.
+
+M      daemon/engine.py
+
+commit 2a15c5efb3d63fc52f5976f3228e4a91aa66b352
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 09:22:26 +0800
+
+    Remove type_register for EngineBase and EngineFactoryBase.
+
+M      ibus/engine.py
+M      ibus/factory.py
+
+commit ab2954ae676dffec3428f4b7e915472e9ee39d00
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 09:20:55 +0800
+
+    Add EngineFactory class.
+
+M      ibus/Makefile.am
+M      ibus/__init__.py
+A      ibus/factory.py
+
+commit ace0f62168e5a53ea08ed35ed6d89597155c3ff9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 09:05:16 +0800
+
+    Add EngineBase class.
+
+M      ibus/Makefile.am
+A      ibus/engine.py
+M      ibus/interface/iengine.py
+
+commit 375101f77e4e6b4bb614440b429c078de8b975e9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-18 07:15:00 +0800
+
+    Fix a typo.
+
+M      ibus/utility.py
+
+commit a06d9be885258697cf578e6b1d85cdb13f8eac45
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-17 07:54:25 +0800
+
+    Add utility.py.
+
+M      ibus/Makefile.am
+M      ibus/__init__.py
+A      ibus/utility.py
+
+commit d2b2c06d75ba08b4705e5973586fde0b3d64beb5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-17 07:48:02 +0800
+
+    Add ascii.py.
+
+M      ibus/Makefile.am
+A      ibus/ascii.py
+
+commit 159194306ed250f54b4c5b189def3908acbbf8c1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-16 18:36:24 +0800
+
+    do not output message without ibus.
+
+M      gtk2/ibusimclient.c
+
+commit 4f671c27e7710ebdf57bd0000c28c1f7419eaa95
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-16 18:28:55 +0800
+
+    clean code.
+
+M      gtk2/ibusim.c
+M      gtk2/ibusimclient.c
+
+commit 3ab14d2ab01cecb552a87d8f700eada58feb61ac
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-16 17:01:05 +0800
+
+    Fix error when restart ibus.
+
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimcontext.c
+
+commit a1f880ae4c346d154a7777462db8208556c60309
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-16 16:53:51 +0800
+
+    Separate ic.
+
+M      gtk2/ibusim.c
+M      gtk2/ibusimclient.c
+M      gtk2/ibusimclient.h
+M      gtk2/ibusimcontext.c
+M      gtk2/ibusimcontext.h
+
+commit 193650d3868a927884f6573fee07d39d859e528c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-16 08:12:52 +0800
+
+    Adjust methods for new dbus-python API.
+
+M      daemon/bus.py
+M      daemon/ibusdaemon.py
+
+commit 60d6bf1163b0745af65dc9e33901fe0b6ce3159c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 16:57:18 +0800
+
+    Replace tab with spaces in python source code.
+
+M      daemon/bus.py
+M      daemon/config.py
+M      daemon/connection.py
+M      daemon/contextmanager.py
+M      daemon/engine.py
+M      daemon/enginefactory.py
+M      daemon/factorymanager.py
+M      daemon/ibusdaemon.py
+M      daemon/inputcontext.py
+M      daemon/lookuptable.py
+M      daemon/panel.py
+M      daemon/register.py
+M      gconf/config.py
+M      gconf/main.py
+M      ibus/__init__.py
+M      ibus/application.py
+M      ibus/attribute.py
+M      ibus/common.py
+M      ibus/connection.py
+M      ibus/exception.py
+M      ibus/gtk.py
+M      ibus/interface/__init__.py
+M      ibus/interface/iconfig.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+M      ibus/interface/ipanel.py
+M      ibus/keysyms.py
+M      ibus/lang.py
+M      ibus/lookuptable.py
+M      ibus/modifier.py
+M      ibus/object.py
+M      ibus/panel.py
+M      ibus/property.py
+M      panel/candidatepanel.py
+M      panel/handle.py
+M      panel/image.py
+M      panel/languagebar.py
+M      panel/main.py
+M      panel/menu.py
+M      panel/panel.py
+M      panel/propitem.py
+M      panel/toolitem.py
+M      setup/main.py
+M      x11/test.py
+
+commit 7155f30d2e075bbb8c23b17e3926da6301babaa0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 16:37:07 +0800
+
+    Refine coding style.
+
+M      setup/main.py
+
+commit b92c71a7d004766256333870525a00faea87b722
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 16:35:28 +0800
+
+    Extend tab to spaces.
+
+M      setup/main.py
+
+commit 29e1458ef0f5b35b6ea6a37989972b4011427046
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 15:31:12 +0800
+
+    Add ibus-setup.desktop.in.
+
+M      configure.ac
+M      icons/Makefile.am
+A      icons/ibus.svg
+M      setup/Makefile.am
+A      setup/ibus-setup.desktop.in
+
+commit c512bc6f2841fc66b4dfec7c09cf837c2e240a9d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 14:10:11 +0800
+
+    Refine coding style.
+
+M      launcher/ibus.in
+
+commit 615ff80fb8d863c489c73147b02dd2bcc07864a0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 13:22:54 +0800
+
+    focus in engine, when create a new engine for a input context.
+
+M      daemon/bus.py
+
+commit 28113e00a1dc26b29b2c09a2d70c03e22d99bcc6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 13:04:52 +0800
+
+    Fix typo.
+
+M      ibus/connection.py
+M      ibus/property.py
+
+commit 1f755d9d31b145fe93e793e8cf7a269e4cdb71e5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 13:03:21 +0800
+
+    Refine coding style of perperty.py
+
+M      ibus/property.py
+
+commit 1ee87eeb90d1e81a9dfe89c25d98cde5a8cba462
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 13:00:53 +0800
+
+    Refine coding style of panel.py
+
+M      ibus/panel.py
+
+commit 1fafc43ab9ee1166a3561e9d0f908fe5613b5f5f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 13:00:33 +0800
+
+    Refine coding style of object.py
+
+M      ibus/object.py
+
+commit 627ea998108bd446009e2d61567fbc701c61bc0b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 12:59:48 +0800
+
+    Refine coding style of modifier.py
+
+M      ibus/modifier.py
+
+commit ba194c2de0e98e1d1a2da82c8f4d79a68f51bf6b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 12:58:30 +0800
+
+    Refine coding style of lookuptable.py
+
+M      ibus/lookuptable.py
+
+commit f8f7b4e9e16c2466cd35b0943bf2a78ff3473a0e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 12:56:05 +0800
+
+    Refine coding style of lang.py
+
+M      ibus/lang.py
+
+commit 168fe67515c172bbe67e42d69701c283b0c4b74e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 12:55:27 +0800
+
+    Refine coding style of exception.py
+
+M      ibus/exception.py
+
+commit e4d9614ee21f946f16c90d017da865f1817a389b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 12:54:39 +0800
+
+    Refine coding style of gtk.py
+
+M      ibus/gtk.py
+
+commit 3acfcd1e1aa5129e4c8981269edced2eeaafbb02
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:50:45 +0800
+
+    Refine coding style of common.py
+
+M      ibus/common.py
+
+commit 35b29c814444526280f9a301c1310546c9e72217
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:50:21 +0800
+
+    Refine coding style of connection.py
+
+M      ibus/connection.py
+
+commit 22d750f4b1f99e1fa291b7b113702e2467c47e41
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:46:51 +0800
+
+    Create DBus object for new connection.
+
+M      daemon/ibusdaemon.py
+
+commit 79ed2426c242a5d1d5d15fde43b5d5ad262db1d6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:41:01 +0800
+
+    Refine coding style of register.py
+
+M      daemon/register.py
+
+commit 3f12e83421859aeb408810758d873d8577956b5d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:38:40 +0800
+
+    Refine coding style of panel.py
+
+M      daemon/panel.py
+
+commit def0b9a207053c5f206797a6b04d55b44c18ab54
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:37:13 +0800
+
+    Refine coding style of lookuptable.py
+
+M      daemon/lookuptable.py
+
+commit 86834bb4e912c2021de561412d0077bcb5ee7239
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:36:07 +0800
+
+    Refine coding style of inputcontext.py
+
+M      daemon/inputcontext.py
+
+commit 7bf8b4112a5d180d30dcb998012ea58b48392be2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:34:11 +0800
+
+    Refine coding style of ibusdaemon.py
+
+M      daemon/factorymanager.py
+M      daemon/ibusdaemon.py
+
+commit 45da4ba549e312680838bf67e27eb79ff6f09a08
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:30:50 +0800
+
+    Refine coding style of factorymanager.py
+
+M      daemon/factorymanager.py
+
+commit fd7ac7a6d95cb3e26c2ffac653c40c75bc02814d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:29:49 +0800
+
+    Refine coding style of engine.py
+
+M      daemon/engine.py
+
+commit f92cd418e57c2a75936acdb11eaa9d26b3037c56
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:27:53 +0800
+
+    Refine coding style of enginefactory.py
+
+M      daemon/enginefactory.py
+
+commit 0379f83eab1863249f0633383376ec2a8cdbedd6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:19:15 +0800
+
+    Refine coding style of contextmanager.py
+
+M      daemon/contextmanager.py
+
+commit a40b567469921f109fd2a0628e212fb82e4bc4a2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:17:59 +0800
+
+    Refine coding style of connection.py
+
+M      daemon/connection.py
+
+commit 16e68adb9dfd8f67f80fa3e8f0e94742741a1b77
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:14:56 +0800
+
+    Refine coding stype of config.py
+
+M      daemon/config.py
+
+commit 007ad5cf9f3680259c9d3c9c4198f0836469c565
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:12:20 +0800
+
+    Remve unused module weakref.
+
+M      daemon/bus.py
+
+commit b1461aa128c60284c39d4c413308c6c4bc93d85c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:11:07 +0800
+
+    Refine coding style.
+
+M      daemon/bus.py
+
+commit d614cd6153fcb9905efe0aad5c1d6909a2167a81
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 11:01:36 +0800
+
+    Port ibus to new dbus server api.
+
+M      daemon/bus.py
+M      daemon/connection.py
+M      daemon/ibusdaemon.py
+
+commit 70bde6191d3485c544fba8619921c85ae1d4791f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-15 10:23:41 +0800
+
+    Add Makefile.am
+
+A      setup/Makefile.am
+
+commit 63275489401fc52aab444967a52ed8134ca9cea7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-10 18:31:04 +0800
+
+    Enable engine when set a new factory.
+
+M      daemon/bus.py
+
+commit ea489e313260d8c66075c8dcb5a73450d58aa682
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-10 18:10:28 +0800
+
+    Fix a problem in UpdateProperty
+
+M      daemon/config.py
+M      panel/menu.py
+M      panel/toolitem.py
+
+commit e5d5a690e8c846ce8f6ff3bd110b9cb210cf8881
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-10 17:45:11 +0800
+
+    use spaw replace fork.
+
+M      launcher/ibus.in
+
+commit 643ea31cccee823c7e9e1021fca142b3825f9d8f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-10 17:26:13 +0800
+
+    Adjust UI.
+
+M      setup/main.py
+
+commit 8a87df7500767f3e6a01b0b00b402a6de228411c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-10 17:26:00 +0800
+
+    Handle SIGCHLD.
+
+M      daemon/register.py
+
+commit 21abc04361b5f420ac1ca4d76f9c7a8511cc845a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-10 16:59:31 +0800
+
+    WIP.
+
+M      setup/main.py
+M      setup/setup.glade
+
+commit 22087645ee691c82b7fa1e9750efcf02a0624076
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-10 15:34:03 +0800
+
+    WIP. setup ui
+
+M      Makefile.am
+M      configure.ac
+M      daemon/Makefile.am
+M      daemon/bus.py
+M      daemon/register.py
+M      ibus.spec.in
+M      ibus/Makefile.am
+M      ibus/__init__.py
+M      ibus/connection.py
+M      ibus/interface/iibus.py
+A      ibus/lang.py
+M      panel/Makefile.am
+D      panel/lang.py
+M      panel/main.py
+M      panel/panel.py
+A      setup/.gitignore
+A      setup/ibus-setup.in
+A      setup/main.py
+A      setup/setup.glade
+
+commit 10596931b2900101b3b81743f3af204b9765a1b6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-10 12:13:44 +0800
+
+    Add connection.py
+
+M      ibus/Makefile.am
+M      ibus/__init__.py
+A      ibus/connection.py
+
+commit 6418dec86abb9b2213bb30accd9c2045cd07bc79
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-09 22:44:22 +0800
+
+    Add register.py.
+
+A      daemon/register.py
+
+commit ba66910dd4308e49c9fc75d14326fc0f1da9309f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-08 18:08:13 +0800
+
+    Add some BuildRequires in ibus.spec.in
+
+M      ibus.spec.in
+
+commit 2b00952f26f2915cc2ff07d0140d51c492a6fda2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-08 17:24:31 +0800
+
+    Add ibus launcher program.
+
+M      Makefile.am
+M      configure.ac
+M      ibus.spec.in
+A      launcher/Makefile.am
+A      launcher/ibus.in
+M      xinput-ibus
+
+commit 5175a113e99a86085d754ebc44e68bb8167d0df9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-08 09:58:23 +0800
+
+    Make labels as same size in candidates window.
+
+M      panel/candidatepanel.py
+
+commit cd34aa1c1667d4c41cd9af280d168b9abe00e64a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-08 08:30:12 +0800
+
+    Add gconf in ibus.sepc.in.
+
+M      ibus.spec.in
+
+commit aed67f949bc3e3501c5b78d0027dbc7fa51def51
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-08 08:25:55 +0800
+
+    Add config.py.
+
+A      daemon/config.py
+
+commit 98f48d016bac316bf219114595d99954d2da4a6f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-07 08:06:36 +0800
+
+    Remove useless python source files in Makefile.am.
+
+M      gconf/Makefile.am
+
+commit 8a51627f9d3c9449b989c2b9352edb08a57ee7f4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-06 20:53:28 +0800
+
+    Fix a typo.
+
+M      gconf/main.py
+
+commit cfffe17c7d23944ca3c788cb4c65fd354cc6d201
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-05 18:24:12 +0800
+
+    WIP. config.
+
+M      gconf/main.py
+
+commit ad49e0ef819d4a7ccc71e5a831230319be4dae4a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-05 18:23:54 +0800
+
+    WIP. config.
+
+M      daemon/bus.py
+M      daemon/connection.py
+
+commit c15cf8786dfdd7789897e2294bf345bc33833e34
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-05 10:02:01 +0800
+
+    Include config.py in Makefile.am
+
+M      daemon/Makefile.am
+
+commit f4348f4d6fffb101f5176174698aa0dd1617eebc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-05 09:18:11 +0800
+
+    WIP. config.
+
+M      Makefile.am
+M      configure.ac
+M      ibus/interface/__init__.py
+M      ibus/interface/iconfig.py
+M      ibus/interface/iibus.py
+
+commit 2266e16f4fed8dde3b8c0414731937eefc631ef8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-05 09:17:58 +0800
+
+    Add gconf module.
+
+A      gconf/Makefile.am
+A      gconf/config.py
+A      gconf/ibus-gconf
+A      gconf/ibus-gconf.in
+A      gconf/main.py
+
+commit 7cc23bb2ce8ca9b4c8c4f39c135ae774c33e6425
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-04 21:46:15 +0800
+
+    WIP. add config.
+
+M      daemon/bus.py
+
+commit 95ead02b889d151b21edfe91492168bb820005de
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-04 11:09:07 +0800
+
+    Add exec in shell script.
+
+M      daemon/ibus-daemon.in
+M      panel/ibus-panel.in
+
+commit 1dbd39908d7467e1c11129fa1cd9640a0d8056a0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-04 11:08:52 +0800
+
+    Disable x11.
+
+M      Makefile.am
+M      configure.ac
+
+commit c736942c60ae64f5837df7d5f71a572a2b895cef
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-04 11:08:27 +0800
+
+    Fix issue if display is not end with .x
+
+M      ibus/common.py
+
+commit ab8751691075f72608767392826840c54b50c514
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-04 10:17:33 +0800
+
+    WIP x11.
+
+M      Makefile.am
+M      configure.ac
+A      x11/IMdkit.i
+A      x11/Makefile.am
+A      x11/test.py
+
+commit 0d21f10b5c33a499071c2b61bc8e80800f4ad4b5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-03 19:12:19 +0800
+
+    Import IMdkit.
+
+A      x11/IMdkit/FrameMgr.c
+A      x11/IMdkit/FrameMgr.h
+A      x11/IMdkit/IMConn.c
+A      x11/IMdkit/IMMethod.c
+A      x11/IMdkit/IMValues.c
+A      x11/IMdkit/IMdkit.h
+A      x11/IMdkit/Makefile.am
+A      x11/IMdkit/Xi18n.h
+A      x11/IMdkit/Xi18nX.h
+A      x11/IMdkit/XimFunc.h
+A      x11/IMdkit/XimProto.h
+A      x11/IMdkit/Xtrans.h
+A      x11/IMdkit/i18nAttr.c
+A      x11/IMdkit/i18nClbk.c
+A      x11/IMdkit/i18nIMProto.c
+A      x11/IMdkit/i18nIc.c
+A      x11/IMdkit/i18nMethod.c
+A      x11/IMdkit/i18nPtHdr.c
+A      x11/IMdkit/i18nUtil.c
+A      x11/IMdkit/i18nX.c
+
+commit 5555f96654ea8bf71d09f4e5a32e7b4772c5b400
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-03 18:44:22 +0800
+
+    Remove noreplace mask.
+
+M      ibus.spec.in
+
+commit 65a9ccd12e5b3cd903f248c36b1a685802163910
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-03 18:33:24 +0800
+
+    Add xinput-ibus.
+
+M      ibus.spec.in
+A      xinput-ibus
+
+commit 8a151897a5b36bc9e133e49416865951c6e6df43
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-02 22:41:09 +0800
+
+    Fix an issue.
+
+M      panel/panel.py
+
+commit 1d27b805d226ab2a806f748519039a1a46093bdb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-02 19:29:17 +0800
+
+    Add N_ around lang name.
+
+M      panel/lang.py
+
+commit 3440d89e8cea73838b75b08e0d78a83e5556ecb4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-02 19:27:39 +0800
+
+    Group input methods and translate lang to readable text.
+
+M      panel/lang.py
+M      panel/panel.py
+
+commit 6e1dba85c39034562529142e333c8236ac229519
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-02 18:12:13 +0800
+
+    Add Destroy method of IEngineFactory interface.
+
+M      ibus/interface/ienginefactory.py
+
+commit bbb8dff42d4e22809c7a2eeb15dff1e016b4a602
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-01 23:28:55 +0800
+
+    Fix problem when page size == 10.
+
+M      panel/candidatepanel.py
+
+commit e8339cbb37356712dacc60310e335b29560675aa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-01 23:28:35 +0800
+
+    Add __len__ method for LookupTable.
+
+M      ibus/lookuptable.py
+
+commit b94fe41ae0e8210b4e99170353f0fae90a3995d2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-01 23:14:30 +0800
+
+    Fix language bar size issue.
+
+M      panel/languagebar.py
+
+commit 1863cf894c96a917840876449e5c852609f27691
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-01 20:16:40 +0800
+
+    Set Toolbar's style to 'icons only'.
+
+M      panel/languagebar.py
+
+commit cd5e23be561e80618d36d9b631c22d5af11695f7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-01 19:45:36 +0800
+
+    Remove debug output.
+
+M      daemon/bus.py
+
+commit 1f5a6e9df918ada15624d3edbbd1cf9fe92947f7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-07-01 19:41:23 +0800
+
+    Fix crash in x86_64 arch.
+
+M      daemon/bus.py
+M      gtk2/ibusimclient.c
+
+commit c580f1e64f97658c03aeef09df726bb3298db6b4
+Author: Huang Peng <phuang@localhost.localdomain>
+Date:   2008-07-01 17:26:52 +0800
+
+    Fix rpm error in on x86_64 arch.
+
+M      ibus.spec.in
+
+commit f77f28aa82dd1dbff06a44f4e4a1466b3ca7675f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-30 22:22:28 +0800
+
+    Add keycode & name convert function.
+
+M      ibus/keysyms.py
+
+commit 91a8a4b8e3359601ca29067a105c142a6e871826
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-30 22:22:04 +0800
+
+    Fix a typo.
+
+M      ibus/interface/iconfig.py
+
+commit 462564eb711a203282ac8d18bd6d1e96c775e84d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-30 08:57:20 +0800
+
+    Remove engines.
+
+M      configure.ac
+M      engine/Makefile.am
+D      engine/anthy/.gitignore
+D      engine/anthy/Makefile.am
+D      engine/anthy/anthy.i
+D      engine/anthy/engine.py
+D      engine/anthy/factory.py
+D      engine/anthy/ibus-engine-anthy.in
+D      engine/anthy/main.py
+D      engine/anthy/tables.py
+D      engine/anthy/test.py
+D      engine/enchant/.gitignore
+D      engine/enchant/Makefile.am
+D      engine/enchant/engine.py
+D      engine/enchant/factory.py
+D      engine/enchant/ibus-engine-enchant.in
+D      engine/enchant/main.py
+M      ibus.spec.in
+M      icons/Makefile.am
+D      icons/ibus-anthy.png
+
+commit be0db1b2879211e0f7825f8f5e78b3f7606282e6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-29 21:01:22 +0800
+
+    Return empty if factory is "".
+
+M      panel/panel.py
+
+commit d5c579a88728ee460d4a3659e4c1b5116ce332c3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-29 19:02:32 +0800
+
+    Fix output argment in anthy.i.
+
+M      engine/anthy/Makefile.am
+M      engine/anthy/anthy.i
+M      engine/anthy/engine.py
+
+commit fd61091e46909c9d43f76bba4344d978b8b59881
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-29 16:20:23 +0800
+
+    Update Headers.
+
+M      Makefile.am
+M      m4/Makefile.am
+
+commit ed6e1911da0b08df1c32e5259eee0de5c7d252c3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-28 09:05:21 +0800
+
+    Add motheds of IConfig interface.
+
+M      ibus/interface/iconfig.py
+
+commit 26c4f00c471df6cb35c1f5daaf95afbacc924616
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-27 22:00:39 +0800
+
+    Add config interface.
+
+M      ibus/common.py
+M      ibus/interface/Makefile.am
+A      ibus/interface/iconfig.py
+
+commit 4461bafa4ce442cc79ee73d74cb0ed7bd93614e4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-27 21:43:32 +0800
+
+    WIP.
+
+M      daemon/bus.py
+M      daemon/panel.py
+M      engine/anthy/engine.py
+M      ibus/interface/iengine.py
+M      ibus/interface/iibus.py
+M      ibus/property.py
+M      panel/Makefile.am
+M      panel/languagebar.py
+M      panel/menu.py
+M      panel/panel.py
+A      panel/propitem.py
+M      panel/toolitem.py
+
+commit f0089093bf2a012094956aa6f66c3f3cb8442ab2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-27 15:09:38 +0800
+
+    WIP.
+
+M      panel/languagebar.py
+M      panel/panel.py
+M      panel/toolitem.py
+
+commit daecff5078ffdda3f89aacf79d228cc498cdefb8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-27 15:09:09 +0800
+
+    Add WideLatin Input Mode.
+
+M      engine/anthy/engine.py
+
+commit dad14cfdd17e838decc31bf16d03a2e68ca66552
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-27 15:07:09 +0800
+
+    Set engine before set enable.
+
+M      daemon/bus.py
+
+commit 1a2802e5cbb87f71cb0d3c01df1c8a02aac52c13
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 20:31:09 +0800
+
+    Does not popup IME menu if does not have focus context.
+
+M      panel/panel.py
+
+commit 2c39917c980fcc5afd4fb493124183530ce00a52
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 20:28:20 +0800
+
+    Add focus_in & focus_out methods of languagebar
+
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit 748dc32d6536fcc764e2f2ae71472ee119d13952
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 20:25:06 +0800
+
+    Add ibus.spec in .gitignore.
+
+M      .gitignore
+
+commit 5aa529e3e975f4c5f1fc2968b8aa748475d72de4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 20:24:31 +0800
+
+    WIP.
+
+M      daemon/bus.py
+M      daemon/engine.py
+M      daemon/inputcontext.py
+M      daemon/panel.py
+M      ibus/interface/iibus.py
+M      ibus/interface/ipanel.py
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit ddf5afabb2489de425c9a51f08c79e4ba0f57ada
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 15:53:40 +0800
+
+    WIP.
+
+M      configure.ac
+
+commit 743b92036463d241b1684d6371d70b90a785fdca
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 15:53:28 +0800
+
+    Remove rpms when make clean.
+
+M      Makefile.am
+
+commit 7f512b1a5043d9eef95cba91d05003f9d2afe954
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 10:51:52 +0800
+
+    Refine coding style.
+
+M      gtk2/ibusimclient.c
+
+commit 350e2a097b56e197c8382bf6215b785692ca8dde
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 10:42:42 +0800
+
+    Refine coding style.
+
+M      daemon/enginefactory.py
+
+commit 1c3371e3c3e6fc6d1697aac8899ed733d37ab71e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 10:41:59 +0800
+
+    Rename folder ibusdaemon to daemon.
+
+M      Makefile.am
+M      configure.ac
+A      daemon/.gitignore
+A      daemon/Makefile.am
+A      daemon/bus.py
+A      daemon/connection.py
+A      daemon/contextmanager.py
+A      daemon/engine.py
+A      daemon/enginefactory.py
+A      daemon/factorymanager.py
+A      daemon/ibus-daemon.in
+A      daemon/ibusdaemon.py
+A      daemon/inputcontext.py
+A      daemon/lookuptable.py
+A      daemon/panel.py
+M      ibus.spec.in
+D      ibusdaemon/.gitignore
+D      ibusdaemon/Makefile.am
+D      ibusdaemon/bus.py
+D      ibusdaemon/connection.py
+D      ibusdaemon/contextmanager.py
+D      ibusdaemon/engine.py
+D      ibusdaemon/enginefactory.py
+D      ibusdaemon/factorymanager.py
+D      ibusdaemon/ibus-daemon.in
+D      ibusdaemon/ibusdaemon.py
+D      ibusdaemon/inputcontext.py
+D      ibusdaemon/lookuptable.py
+D      ibusdaemon/panel.py
+
+commit 3a89b79bb898eb1c6a5fc52c3e16ff6cd4bcde87
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 01:30:44 +0800
+
+    Define mod_path in spec file.
+
+M      ibus.spec.in
+
+commit 8182da43cba2464f159be169b7db452e79cd5aac
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 01:27:46 +0800
+
+    Run update-gtk-immodules `uname -i` in rpm post script.
+
+M      ibus.spec.in
+
+commit b54f0964dad543609f8562a575179a712652ccb0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-25 01:12:28 +0800
+
+    Add rpm build scripts.
+
+M      Makefile.am
+M      configure.ac
+A      ibus.spec.in
+
+commit 24f671458272d15043f590d3b053b4da342d95e6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 21:22:38 +0800
+
+    Refine coding style.
+
+M      gtk2/Makefile.am
+
+commit 4e8f4cfbe00a92b8fb8c1634599faa4167100cd1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 21:11:30 +0800
+
+    Remove useless code.
+
+M      ibus/gtk.py
+
+commit d53909ddd273744dc990ee97d32bd1a37bfe9822
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 21:10:36 +0800
+
+    Set default value of InputMode.
+
+M      engine/anthy/engine.py
+
+commit d423d92baf556315b43705c2094a27f9ff35e593
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 17:08:11 +0800
+
+    Remove m17n/Makefile.am
+
+D      engine/m17n/Makefile.am
+
+commit 1f13effe2af355ac0845be53c23cb1171efc5d5a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 17:06:59 +0800
+
+    Refine coding style
+
+M      Makefile.am
+M      engine/m17n/Makefile.am
+M      gtk2/Makefile.am
+
+commit d64a28ddc80141f411918b81eabdc3be306d6e77
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 17:04:04 +0800
+
+    Refine coding style.
+
+M      gtk2/Makefile.am
+
+commit 17dadd61a27e02b31f3906c1f3542e5e93c32e94
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 16:41:44 +0800
+
+    Add PropertyShow & PropertyHide methods.
+
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/inputcontext.py
+M      ibusdaemon/panel.py
+
+commit 796828b62ea3e3004e48775691096f0ba7cd1ee5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 15:03:48 +0800
+
+    Rm anthy_wrap.* when make clean.
+
+M      engine/anthy/Makefile.am
+
+commit e7b785688258e1ef2fff582e7c84509afd8bd9ed
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 14:31:29 +0800
+
+    Add task all to test task's dependence
+
+M      gtk2/Makefile.am
+
+commit 812f1bbeb460bb74d1335c10e286325eae532ca5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 14:30:56 +0800
+
+    Add test task in Makefile.am
+
+M      qt4/Makefile.am
+
+commit 600eb61816314b59cf0889b09cf0b0651830dddb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 14:26:02 +0800
+
+    Add test task in Makefile.am
+
+M      gtk2/Makefile.am
+
+commit d2b75d0fcc145ec1b699e592584922ee0aaf12d4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 14:25:47 +0800
+
+    Add tooltip
+
+M      engine/anthy/engine.py
+
+commit 68245ce2365d4d0d359d7baa2392754d3c1fe90d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 14:25:30 +0800
+
+    Rename _tip to _tooltip
+
+M      ibus/property.py
+
+commit ddec84165853148bea190ccdff1466970bd68f9f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 14:21:03 +0800
+
+    WIP panel.
+
+M      ibus/property.py
+M      panel/languagebar.py
+M      panel/menu.py
+M      panel/toolitem.py
+
+commit 5963367438651a3ad2bf9420b05fea9ecc331324
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 13:27:35 +0800
+
+    WIP panel.
+
+M      panel/languagebar.py
+M      panel/panel.py
+M      panel/toolitem.py
+
+commit 2c21d0c0f3b56ac7a831c71ff5958d74fad04576
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 10:33:03 +0800
+
+    Add test property.
+
+M      engine/anthy/engine.py
+
+commit e78200efea42e564d5aefef76627450a7988024f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 10:32:48 +0800
+
+    WIP property.
+
+M      panel/languagebar.py
+M      panel/menu.py
+M      panel/toolitem.py
+
+commit 15770e7875d9ab79d950f0e1828f9e9e3ff8e16b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-24 08:39:20 +0800
+
+    Add toolitem.py
+
+M      panel/Makefile.am
+M      panel/languagebar.py
+A      panel/toolitem.py
+
+commit 2b6ed52cd97a1e66a6b68f5ebebc490fdcf5b946
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-23 20:14:32 +0800
+
+    Add menu.py
+
+M      panel/Makefile.am
+M      panel/languagebar.py
+A      panel/menu.py
+M      panel/panel.py
+
+commit 57877ac31e28b94cacb5c4b45974bed1b1381f7b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-23 19:59:04 +0800
+
+    Position the popup menu.
+
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit 29a69894d260214d57b93d4ea534a6ec23807297
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-23 19:47:47 +0800
+
+    Does not exit when catch except reply.
+
+M      ibus/common.py
+
+commit 39480c25c45771e4fcd2b2ffc662abae2a461386
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-23 18:30:12 +0800
+
+    WIP property.
+
+M      engine/anthy/engine.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/inputcontext.py
+M      ibusdaemon/panel.py
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit c380db468f4e1f6276e19604e38b9db137d7a40f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-23 18:29:48 +0800
+
+    Add prop_state arg in PropertyActivate. And add PROP_TYPE_MENU
+
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibus/property.py
+
+commit 19f10da3a3a680269f51554a3a5b98ef2a7e3c7e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-23 12:20:18 +0800
+
+    Add some debug code.
+
+M      qt4/ibus-input-context.cpp
+
+commit e2da599389bef2878ae83b4b1a318926fe97edf9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-22 21:59:56 +0800
+
+    Add __all__ in ibus source files to limit the exported objects.
+
+M      ibus/attribute.py
+M      ibus/common.py
+M      ibus/exception.py
+M      ibus/gtk.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+M      ibus/interface/ipanel.py
+M      ibus/lookuptable.py
+M      ibus/object.py
+M      ibus/panel.py
+M      ibus/property.py
+
+commit ac95983afa62e6960bdf674bbe9d393e67a6fded
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-22 17:01:44 +0800
+
+    Add license headers.
+
+M      engine/anthy/ibus-engine-anthy.in
+M      engine/enchant/ibus-engine-enchant.in
+M      ibusdaemon/ibus-daemon.in
+M      panel/ibus-panel.in
+
+commit 4379f12111d279675de8d050ad1da99fa8f401aa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-20 17:44:31 +0800
+
+    remove themes.
+
+D      panel/themes/default/Arrows/arrow-down.png
+D      panel/themes/default/Arrows/arrow-insens.png
+D      panel/themes/default/Arrows/arrow-left.png
+D      panel/themes/default/Arrows/arrow-right.png
+D      panel/themes/default/Arrows/arrow-up.png
+D      panel/themes/default/Buttons/button-insensitive.png
+D      panel/themes/default/Buttons/button-normal.png
+D      panel/themes/default/Buttons/button-prelight.png
+D      panel/themes/default/Check-Radio/check1.png
+D      panel/themes/default/Check-Radio/check2.png
+D      panel/themes/default/Check-Radio/check3.png
+D      panel/themes/default/Check-Radio/check4.png
+D      panel/themes/default/Check-Radio/check5.png
+D      panel/themes/default/Check-Radio/check6.png
+D      panel/themes/default/Check-Radio/option1.png
+D      panel/themes/default/Check-Radio/option2.png
+D      panel/themes/default/Check-Radio/option3.png
+D      panel/themes/default/Check-Radio/option4.png
+D      panel/themes/default/Check-Radio/option5.png
+D      panel/themes/default/Check-Radio/option6.png
+D      panel/themes/default/Frame-Gap/frame-gap-end.png
+D      panel/themes/default/Frame-Gap/frame-gap-start.png
+D      panel/themes/default/Frame-Gap/frame.png
+D      panel/themes/default/Handles/handle-h.png
+D      panel/themes/default/Handles/handle-v.png
+D      panel/themes/default/Lines/line-h.png
+D      panel/themes/default/Lines/line-v.png
+D      panel/themes/default/ListHeaders/list_header-insens.png
+D      panel/themes/default/ListHeaders/list_header-prelight.png
+D      panel/themes/default/ListHeaders/list_header-pressed.png
+D      panel/themes/default/ListHeaders/list_header.png
+D      panel/themes/default/Menu-Menubar/menu.png
+D      panel/themes/default/Menu-Menubar/menubar-item-active.png
+D      panel/themes/default/Menu-Menubar/menubar-item.png
+D      panel/themes/default/Menu-Menubar/menubar.png
+D      panel/themes/default/Others/null.png
+D      panel/themes/default/Others/ruler.png
+D      panel/themes/default/Panel/panel-bg.png
+D      panel/themes/default/ProgressBar/progressbar-horiz.png
+D      panel/themes/default/ProgressBar/trough-progressbar-horiz.png
+D      panel/themes/default/Range/slider-horiz-prelight.png
+D      panel/themes/default/Range/slider-horiz.png
+D      panel/themes/default/Range/slider-vert-prelight.png
+D      panel/themes/default/Range/slider-vert.png
+D      panel/themes/default/Range/trough-horizontal.png
+D      panel/themes/default/Range/trough-vertical.png
+D      panel/themes/default/Scrollbars/scroll-thumb-horiz-pre.png
+D      panel/themes/default/Scrollbars/scroll-thumb-horiz.png
+D      panel/themes/default/Scrollbars/scroll-thumb-vert-pre.png
+D      panel/themes/default/Scrollbars/scroll-thumb-vert.png
+D      panel/themes/default/Scrollbars/slider-horiz-pre.png
+D      panel/themes/default/Scrollbars/slider-horiz.png
+D      panel/themes/default/Scrollbars/slider-vert-pre.png
+D      panel/themes/default/Scrollbars/slider-vert.png
+D      panel/themes/default/Scrollbars/stepper-down-prelight.png
+D      panel/themes/default/Scrollbars/stepper-down.png
+D      panel/themes/default/Scrollbars/stepper-left-prelight.png
+D      panel/themes/default/Scrollbars/stepper-left.png
+D      panel/themes/default/Scrollbars/stepper-right-prelight.png
+D      panel/themes/default/Scrollbars/stepper-right.png
+D      panel/themes/default/Scrollbars/stepper-up-prelight.png
+D      panel/themes/default/Scrollbars/stepper-up.png
+D      panel/themes/default/Scrollbars/trough-scrollbar-horiz.png
+D      panel/themes/default/Scrollbars/trough-scrollbar-vert.png
+D      panel/themes/default/Shadows/shadow-in.png
+D      panel/themes/default/Shadows/shadow-out.png
+D      panel/themes/default/Shadows/text-.png
+D      panel/themes/default/Shadows/text-entry.png
+D      panel/themes/default/Spin/spin-down-disable.png
+D      panel/themes/default/Spin/spin-down-prelight.png
+D      panel/themes/default/Spin/spin-down.png
+D      panel/themes/default/Spin/spin-up-disable.png
+D      panel/themes/default/Spin/spin-up-prelight.png
+D      panel/themes/default/Spin/spin-up.png
+D      panel/themes/default/Tabs/gap-bottom-left.png
+D      panel/themes/default/Tabs/gap-bottom-right.png
+D      panel/themes/default/Tabs/gap-left-bottom.png
+D      panel/themes/default/Tabs/gap-left-top.png
+D      panel/themes/default/Tabs/gap-right-bottom.png
+D      panel/themes/default/Tabs/gap-right-top.png
+D      panel/themes/default/Tabs/gap-top-current.png
+D      panel/themes/default/Tabs/gap-top-left.png
+D      panel/themes/default/Tabs/gap-top-right.png
+D      panel/themes/default/Tabs/notebook.png
+D      panel/themes/default/Tabs/tab-bottom-active.png
+D      panel/themes/default/Tabs/tab-bottom.png
+D      panel/themes/default/Tabs/tab-left-active.png
+D      panel/themes/default/Tabs/tab-left.png
+D      panel/themes/default/Tabs/tab-right-active.png
+D      panel/themes/default/Tabs/tab-right.png
+D      panel/themes/default/Tabs/tab-top-active.png
+D      panel/themes/default/Tabs/tab-top.png
+D      panel/themes/default/Toolbar/toolbar.png
+D      panel/themes/default/gtkrc
+D      panel/themes/default/panel.rc
+D      panel/themes/icons/gnome-dev-keyboard.svg
+D      panel/themes/icons/keyboard.svg
+
+commit b934c65c3be8e2800ffe6a39b7d7dc380bb665fa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-20 14:13:29 +0800
+
+    Add argument --daemonize
+
+M      engine/anthy/ibus-engine-anthy.in
+M      engine/anthy/main.py
+M      engine/enchant/ibus-engine-enchant.in
+M      engine/enchant/main.py
+
+commit 9379f9100cf1bff08c0c997212e0b400ac8a970a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-20 14:12:25 +0800
+
+    Fix a typo.
+
+M      engine/enchant/Makefile.am
+
+commit dc88529bb57ac78a3d22e8a7d85478d32cbafd69
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-20 13:31:29 +0800
+
+    Add arguments for panel.
+
+M      panel/ibus-panel.in
+M      panel/main.py
+
+commit 0dad9dcb3357223527537a952d4b0e59644cb852
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-20 13:28:39 +0800
+
+    Fix a typo.
+
+M      ibusdaemon/ibusdaemon.py
+
+commit b40deb0d335c55469dcf3a2113fb683cdbc12742
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-20 13:20:06 +0800
+
+    Fix a typo.
+
+M      ibusdaemon/lookuptable.py
+
+commit d7bf6871f3174c40787cc9963b40e1029bb0d292
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-20 13:19:01 +0800
+
+    Add argument -d -h.
+
+M      ibusdaemon/ibus-daemon.in
+M      ibusdaemon/ibusdaemon.py
+
+commit b38bdde765e29e76c542b3ed61442d5b7761045e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 22:49:36 +0800
+
+    Rename qt to qt4
+
+M      Makefile.am
+M      configure.ac
+D      qt/.gitignore
+D      qt/Makefile.am
+D      qt/ibus-client.cpp
+D      qt/ibus-client.h
+D      qt/ibus-input-context.cpp
+D      qt/ibus-input-context.h
+D      qt/ibus.pro
+D      qt/im-ibus-qt.cpp
+A      qt4/.gitignore
+A      qt4/Makefile.am
+A      qt4/ibus-client.cpp
+A      qt4/ibus-client.h
+A      qt4/ibus-input-context.cpp
+A      qt4/ibus-input-context.h
+A      qt4/ibus.pro
+A      qt4/im-ibus-qt.cpp
+
+commit 819860b4b071d07820ac311ff155029e48efbbc7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 22:45:08 +0800
+
+    Add ibus-*.tar.* in .gitignore.
+
+M      .gitignore
+
+commit 18dca249278f17fda46926efdb2ab398ed42792e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 22:43:36 +0800
+
+    Add ibus-engine-anthy in engine/anthy/.gitignore.
+
+M      engine/anthy/.gitignore
+
+commit 2802bffb5a073016f885af8c206eff142f6e2a80
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 22:42:42 +0800
+
+    Add generated script files in .gitignore.
+
+A      engine/enchant/.gitignore
+A      ibusdaemon/.gitignore
+A      panel/.gitignore
+
+commit cb4157a5ef5756d215e7315a691a80bb8f54a1d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 22:40:19 +0800
+
+    Install launch scripts in libexec dir.
+
+M      engine/anthy/Makefile.am
+M      engine/enchant/Makefile.am
+M      ibusdaemon/Makefile.am
+M      panel/Makefile.am
+
+commit bc5a5356e27aaf10139dc68ebe61fcf46a451b9a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 22:29:43 +0800
+
+    Add lunch shell scripts.
+
+M      configure.ac
+M      engine/anthy/Makefile.am
+A      engine/anthy/ibus-engine-anthy.in
+M      engine/enchant/Makefile.am
+A      engine/enchant/ibus-engine-enchant.in
+M      ibusdaemon/Makefile.am
+A      ibusdaemon/ibus-daemon.in
+M      panel/Makefile.am
+A      panel/ibus-panel.in
+
+commit 7c9c51f4f51b7ccd0f60f8c4fa72fb89d938943f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 22:09:44 +0800
+
+    Set icon search path.
+
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit 40ff040364f2cbee2ce1741cb3f2d4fa75e955f0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 21:11:19 +0800
+
+    Add python-config.py in dist tarball.
+
+M      Makefile.am
+
+commit bd1f6c4638661aadbadd5efbd9e5fa20d14b8ec9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 18:38:44 +0800
+
+    Dist with autogen.sh.
+
+M      Makefile.am
+
+commit dd4d6a195e6da2adb51c7ea6ff771d070ee3d896
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 18:37:35 +0800
+
+    Add opt --enable-maintainer-mode in autogen.sh.
+
+M      autogen.sh
+
+commit fb2326cb8804e92e26588cb4f4d4703fe890841e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 18:33:43 +0800
+
+    Add CLEANFILES = *.pyc in Makefile.am.
+
+M      engine/anthy/Makefile.am
+M      engine/enchant/Makefile.am
+M      ibus/Makefile.am
+M      ibus/interface/Makefile.am
+M      ibusdaemon/Makefile.am
+M      panel/Makefile.am
+
+commit 036965377041ad9ba1df0755449108af0f07280b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 18:30:26 +0800
+
+    Add header for sources.
+
+M      Makefile.am
+M      configure.ac
+M      engine/Makefile.am
+M      engine/anthy/Makefile.am
+M      engine/anthy/anthy.i
+M      engine/anthy/engine.py
+M      engine/anthy/factory.py
+M      engine/anthy/main.py
+M      engine/anthy/tables.py
+M      engine/enchant/Makefile.am
+M      engine/enchant/engine.py
+M      engine/enchant/factory.py
+M      engine/enchant/main.py
+M      gtk2/Makefile.am
+M      ibus/Makefile.am
+M      ibus/__init__.py
+M      ibus/application.py
+M      ibus/attribute.py
+M      ibus/common.py
+M      ibus/exception.py
+M      ibus/gtk.py
+M      ibus/interface/Makefile.am
+M      ibus/interface/__init__.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+M      ibus/interface/ipanel.py
+M      ibus/keysyms.py
+M      ibus/lookuptable.py
+M      ibus/modifier.py
+M      ibus/object.py
+M      ibus/panel.py
+M      ibus/property.py
+M      ibusdaemon/Makefile.am
+M      ibusdaemon/bus.py
+M      ibusdaemon/connection.py
+M      ibusdaemon/contextmanager.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/enginefactory.py
+M      ibusdaemon/factorymanager.py
+M      ibusdaemon/ibusdaemon.py
+M      ibusdaemon/inputcontext.py
+M      ibusdaemon/lookuptable.py
+M      ibusdaemon/panel.py
+M      icons/Makefile.am
+M      panel/Makefile.am
+M      panel/candidatepanel.py
+M      panel/handle.py
+M      panel/image.py
+M      panel/lang.py
+M      panel/languagebar.py
+M      panel/main.py
+M      panel/panel.py
+M      qt/Makefile.am
+M      qt/ibus-client.cpp
+M      qt/ibus-client.h
+M      qt/ibus-input-context.cpp
+M      qt/ibus-input-context.h
+M      qt/ibus.pro
+M      qt/im-ibus-qt.cpp
+
+commit fdbbcd9fe7af509a17eea1fcd3d78a5a013c6971
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 15:48:09 +0800
+
+    Rename gik to ibus.
+
+M      gtk2/Makefile.am
+D      gtk2/gikim.c
+D      gtk2/gikimclient.c
+D      gtk2/gikimclient.h
+D      gtk2/gikimcontext.c
+D      gtk2/gikimcontext.h
+A      gtk2/ibusim.c
+A      gtk2/ibusimclient.c
+A      gtk2/ibusimclient.h
+A      gtk2/ibusimcontext.c
+A      gtk2/ibusimcontext.h
+
+commit afb1e11faa1a0a93cc8b0d2a52dffb1ee4c8af57
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 14:11:15 +0800
+
+    Refactory {install, remove}_engine_handlers methods.
+
+M      ibusdaemon/inputcontext.py
+
+commit e9e130ecfd8702687d0043b52b79a15ffbf9d987
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 08:40:50 +0800
+
+    Only set cursor location when the location being changed.
+
+M      qt/ibus-input-context.cpp
+M      qt/ibus-input-context.h
+
+commit d60595118882bd7e1f6246a74d463dae6ae89725
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 08:38:11 +0800
+
+    call update after commitString.
+
+M      qt/ibus-input-context.cpp
+
+commit 22da0011ec7afa66c9ed83d23273842668476076
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-19 08:36:35 +0800
+
+    call update method after sendEvent.
+
+M      qt/ibus-input-context.cpp
+M      qt/ibus-input-context.h
+
+commit 5a821997586865384e47611ffd9dad070629bf53
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 18:38:05 +0800
+
+    Add test task in Makefile.ams.
+
+M      engine/anthy/Makefile.am
+M      engine/enchant/Makefile.am
+M      ibusdaemon/Makefile.am
+M      panel/Makefile.am
+
+commit ab6ad5f76f826fa07f82bde964541fe80a9b562a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 18:37:53 +0800
+
+    Check prog env.
+
+M      configure.ac
+
+commit c159c5a0846a6a77ec624213da2b0551bedcda1b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 17:41:41 +0800
+
+    Add {install, remove}_focused_context_handlers methods.
+
+M      ibusdaemon/bus.py
+
+commit b79cab04739d6896f62e8257a0155b9c2a1193ce
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 17:40:51 +0800
+
+    Only send destroy signal one time.
+
+M      ibus/object.py
+
+commit 69150f225cd8de1886b82e103dd196677706cfeb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 17:39:58 +0800
+
+    Remove gtk-doc.
+
+M      autogen.sh
+M      configure.ac
+
+commit 173f54b593b4a683298624f803cd65b134ef3196
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 14:17:37 +0800
+
+    make configure failed if swig does not exist.
+
+M      configure.ac
+
+commit 253db3e406c4d6d3eead03f0decf08299ff906b9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 12:31:33 +0800
+
+    Make languagebar sticks with workarea borders.
+
+M      panel/handle.py
+
+commit 6f4ba2dca549d03f87915b267a27a4ec228d72aa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 12:04:27 +0800
+
+    Set languagebar's position
+
+M      panel/languagebar.py
+
+commit 15284824d4e598b933faed15d729a460ce11fba3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 11:40:38 +0800
+
+    qt im module wip.
+
+M      qt/ibus-input-context.cpp
+M      qt/ibus-input-context.h
+
+commit 6ce07c96045f595dc7f1dd9d2c01307df67136fa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 10:30:49 +0800
+
+    Destroy InputContext when connection lost.
+
+M      ibusdaemon/inputcontext.py
+
+commit 2e838808127c563d4baedcd20a939f826351a7f2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 10:30:28 +0800
+
+    Fix cursor position problem.
+
+M      qt/ibus-input-context.cpp
+
+commit a213f10ebae03a8b6e32891c2a18525302763d82
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-18 09:23:27 +0800
+
+    Fix anthy engine make distcheck errors.
+
+M      engine/anthy/Makefile.am
+
+commit 104780dae25ca04a9bac7ea821797d5943c49429
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 23:41:24 +0800
+
+    Add Makefile.am for icons.
+
+M      Makefile.am
+M      configure.ac
+M      engine/anthy/Makefile.am
+M      engine/enchant/Makefile.am
+M      ibusdaemon/Makefile.am
+A      icons/Makefile.am
+M      icons/ibus-help.png
+M      panel/Makefile.am
+
+commit 3c7d7469cc16f9c93a7a1d569a6191685d24da30
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 19:00:20 +0800
+
+    Update .gitignore.
+
+M      .gitignore
+
+commit 82fcafad447d3dae0b4e18c13e34af761d6984e6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 18:59:41 +0800
+
+    Update .gitignore files.
+
+M      .gitignore
+A      engine/anthy/.gitignore
+A      qt/.gitignore
+
+commit 36f67d071148e4e162f4c5dec04e2d192b959090
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 18:22:49 +0800
+
+    Fix make distcheck problems.
+
+M      qt/Makefile.am
+
+commit 7d4541f8e6c2ff14262e2cc9d9e019591d0c9475
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 18:15:48 +0800
+
+    Fix make install & uninstall
+
+M      qt/Makefile.am
+
+commit 13be881c74e9f3a76be57c7827b99c889ddd4bef
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 18:11:01 +0800
+
+    Add Makefile.am for qt.
+
+M      Makefile.am
+M      configure.ac
+M      engine/anthy/Makefile.am
+A      qt/Makefile.am
+
+commit 558775dbaf9ddf72e3bee5234780c71119e82589
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 17:10:36 +0800
+
+    Check swig in configure.
+
+M      configure.ac
+M      engine/anthy/Makefile.am
+
+commit 57522e42d54375596542c98de0bd3be344d744fa
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 16:46:55 +0800
+
+    WIP.
+
+M      configure.ac
+D      engine/anthy/Makefile
+M      engine/anthy/Makefile.am
+D      engine/enchant/Makefile
+A      python-config.py
+
+commit eb28cd1b6d495e61b757991657da0804f097760c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 16:26:29 +0800
+
+    Add Makefile.am
+
+M      Makefile.am
+M      configure.ac
+A      engine/Makefile.am
+M      engine/anthy/Makefile
+M      engine/anthy/Makefile.am
+M      engine/enchant/Makefile
+A      engine/enchant/Makefile.am
+A      engine/m17n/Makefile.am
+
+commit 43b3212a6f553bf147365336adc9ade244994e59
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 16:19:45 +0800
+
+    Remove Makefile, add Makefile.am in panel.
+
+D      panel/Makefile
+A      panel/Makefile.am
+
+commit 60db8bfaf381049e43082d17fed3db627040cb3e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 16:17:32 +0800
+
+    Remove Makefile, add Makefile.am
+
+D      ibusdaemon/Makefile
+A      ibusdaemon/Makefile.am
+
+commit 6d76df52a0a56acb9ee6376ac2b01c0bd48dd353
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 16:04:45 +0800
+
+    Remove test  tasks in Makefile.am.
+
+M      ibus/Makefile.am
+
+commit 0205c3c3a2e30f33e2f862a89c4a9fdd18c323af
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 16:01:00 +0800
+
+    Remove Makefile in ibus.
+
+D      ibus/Makefile
+M      ibus/Makefile.am
+
+commit a3c38529d9fe6e0bbad0d4da8df38fadbd1b29d3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 16:00:14 +0800
+
+    Add Makefile.am in ibus
+
+M      Makefile.am
+M      configure.ac
+A      ibus/Makefile.am
+A      ibus/interface/Makefile.am
+
+commit 90f8e91d834398baa506079e2f51c0bc328bb7c9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 15:36:11 +0800
+
+    Move modifier masks from keysyms to modifier.
+    Remove debug output.
+
+M      engine/enchant/engine.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/ibusdaemon.py
+
+commit 8b050bc561113774f4a7292f805937379e510dab
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 15:31:10 +0800
+
+    Move modifer masks from keysyms to modifier
+
+M      ibus/keysyms.py
+A      ibus/modifier.py
+
+commit 7c64ff857ad3a4a5d75a7fbd6585b9d0c62399df
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 15:25:10 +0800
+
+    Modify the project file to support 'make install'.
+
+M      qt/ibus.pro
+M      qt/im-ibus-qt.cpp
+
+commit 299fbcf8810eaac00b6bf29560100edea8638c8a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 15:08:24 +0800
+
+    Reset panel when focused_context be destroyed
+
+M      ibusdaemon/bus.py
+M      ibusdaemon/contextmanager.py
+M      ibusdaemon/inputcontext.py
+
+commit c3840b20c247dc6596a6905839c48ec0ca306aab
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-17 14:23:38 +0800
+
+    qt im module wip.
+
+M      ibus/interface/iibus.py
+M      ibusdaemon/bus.py
+M      qt/ibus-client.cpp
+M      qt/ibus-client.h
+M      qt/ibus-input-context.cpp
+M      qt/ibus-input-context.h
+
+commit bae64c7dda7f82f98a61e2e6fb11ffde1a76a040
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-16 21:30:01 +0800
+
+    qt im module WIP.
+
+M      qt/ibus-client.cpp
+
+commit 52f013d698240f6ee9b7267dfc5945a1443b107e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-16 20:28:44 +0800
+
+    qt module WIP.
+
+M      ibusdaemon/contextmanager.py
+M      ibusdaemon/ibusdaemon.py
+M      qt/ibus-client.cpp
+M      qt/ibus-client.h
+M      qt/ibus-input-context.cpp
+M      qt/ibus-input-context.h
+
+commit a84a555a4955fb3ade7de1228b715dae14dcaa74
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-15 22:29:43 +0800
+
+    WIP qt immodule.
+
+M      qt/ibus-client.cpp
+M      qt/ibus-client.h
+M      qt/ibus-input-context.cpp
+M      qt/ibus-input-context.h
+M      qt/im-ibus-qt.cpp
+
+commit 4cef3e4d8d4742f2497bb9db7ea2ed7131105624
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-15 13:35:17 +0800
+
+    qt immdouel WIP.
+
+M      qt/ibus-input-context.cpp
+M      qt/ibus-input-context.h
+M      qt/im-ibus-qt.cpp
+
+commit cc1ab071e8df14999203855a7072880010672e65
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-14 15:04:54 +0800
+
+    Qt immoduel WIP.
+
+M      qt/ibus-input-context.cpp
+M      qt/ibus-input-context.h
+M      qt/im-ibus-qt.cpp
+
+commit 9a08cdb39f707192e64525931f33b51917fcaf95
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-14 14:47:56 +0800
+
+    Add qt im module.
+
+A      qt/ibus-client.cpp
+A      qt/ibus-client.h
+A      qt/ibus-input-context.cpp
+A      qt/ibus-input-context.h
+A      qt/ibus.pro
+M      qt/im-ibus-qt.cpp
+
+commit c8d37e33e4f4598f434dd3d04fdfb990bda36a22
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-14 13:58:33 +0800
+
+    Add im-ibus-qt.cpp.
+
+A      qt/im-ibus-qt.cpp
+
+commit a9123f28b410713b91a605f059a0c08a14315563
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-14 13:49:20 +0800
+
+    Add DBus object.
+
+M      ibusdaemon/bus.py
+M      ibusdaemon/ibusdaemon.py
+
+commit 1549532ea1b838c2ef3be63005aa699ced883cfb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-14 09:48:40 +0800
+
+    Make one connection can create many inputcontext.
+
+M      gtk2/gikimclient.c
+M      ibus/interface/iibus.py
+M      ibusdaemon/bus.py
+D      ibusdaemon/client.py
+D      ibusdaemon/clientmanager.py
+A      ibusdaemon/contextmanager.py
+A      ibusdaemon/inputcontext.py
+M      panel/panel.py
+
+commit d60756e7cd6bfb3b3db892114ba9c77b66d07f8b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-14 00:30:55 +0800
+
+    Modify im menu position function.
+
+M      panel/panel.py
+
+commit 7753e6ded2fa21b10418cf5efdf7bc53499335cb
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-14 00:26:27 +0800
+
+    Modify position function of im menu.
+
+M      panel/panel.py
+
+commit ad600ae81ce32bde12ce6d08ed415abdbeaa4e87
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-14 00:17:14 +0800
+
+    WIP.
+
+M      engine/anthy/main.py
+M      engine/enchant/main.py
+M      ibus/common.py
+
+commit 5448bc0e1bb7eb94f2df67832d38fccd6307c8ad
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-14 00:04:42 +0800
+
+    Make all remote methods async.
+
+M      ibusdaemon/engine.py
+M      ibusdaemon/panel.py
+
+commit d71e1f65fb0b64613e8700b517611d449e4fb173
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 23:57:45 +0800
+
+    make panel's methods async.
+
+M      ibusdaemon/panel.py
+
+commit 1cff797c23c984789baac0dc65196af3c8bf4697
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 23:57:22 +0800
+
+    Reset panel when factory is changed.
+
+M      ibusdaemon/bus.py
+
+commit 7577caffd66046824597af77ff2c9c3bf71bf51e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 23:46:56 +0800
+
+    Add im menu in languagebar.
+
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit ecf8d4bc816e77a0d3805c66e0129dfc5ebee3d6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 20:53:44 +0800
+
+    Add zh_CN.
+
+M      panel/lang.py
+
+commit 904ef3e0b3e2b2310f6be6a77dc48297d7837f70
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 20:38:30 +0800
+
+    Fix a problem when changing the orientation
+
+M      panel/candidatepanel.py
+
+commit 65a7cb50001076766533fd99184831f5192fff54
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 20:34:47 +0800
+
+    Remove CandidateWindow.
+
+M      panel/candidatepanel.py
+D      panel/candidatewindow.py
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit c38278a1e72a24022a03fe12335908e2f39b25df
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 20:34:19 +0800
+
+    Remove unused methods.
+
+M      panel/candidatewindow.py
+
+commit 374d2fe3af161428e6a1881f0adb8fcc39fc2235
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 20:16:44 +0800
+
+    Rename demo to enchant.
+
+M      engine/enchant/factory.py
+
+commit 47220bdb6953f755794a6ec581c40d46e1971027
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 20:14:56 +0800
+
+    Remove LanguageBarWindow.
+
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit b999d701d28c2709b9a28168a674c947a13d1062
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 09:35:21 +0800
+
+    Rename demo engine to enchant.
+
+D      engine/demo/Makefile
+D      engine/demo/engine.py
+D      engine/demo/factory.py
+D      engine/demo/main.py
+A      engine/enchant/Makefile
+A      engine/enchant/engine.py
+A      engine/enchant/factory.py
+A      engine/enchant/main.py
+
+commit 50acf73936343cc32fc20c97dcfb3193faf5bc37
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 08:19:06 +0800
+
+    Add icons.
+
+A      icons/ibus-anthy.png
+A      icons/ibus-help.png
+A      icons/ibus-locale.svg
+A      icons/ibus-zh.svg
+
+commit 42dddc6caae6015611dfd0bd1b2b860c6bf9872b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-13 08:12:58 +0800
+
+    Update lookup table when change orientation of candidate panel.
+
+M      panel/candidatepanel.py
+
+commit 77737f7599eed37cd1a7753f686ba0e3d0d84f65
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 19:44:41 +0800
+
+    Add StatusIcon and engine menu.
+
+M      engine/anthy/factory.py
+M      ibus/gtk.py
+M      ibus/interface/iibus.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/factorymanager.py
+A      panel/lang.py
+M      panel/main.py
+M      panel/panel.py
+
+commit c12e5619750194d267105aa062867bd990e2f5d8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 15:11:12 +0800
+
+    Commit string if use press common key in convert mode.
+
+M      engine/anthy/engine.py
+M      ibus/gtk.py
+
+commit acea89868ab61dd6946121619b304c1258c81dd0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 13:10:31 +0800
+
+    Use unicode string.
+
+M      engine/demo/engine.py
+
+commit 09dc7d343658f80e5515ef9c523d4468de189fc6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 10:58:03 +0800
+
+    Change preedit's background color.
+
+M      engine/anthy/engine.py
+M      ibus/interface/iengine.py
+
+commit 6d40b1e5f171368f030f00985db9e5c60aeb23f6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 10:52:17 +0800
+
+    Change background color for convert mode.
+
+M      engine/anthy/engine.py
+
+commit 9760293c5ddff4f7a18843fee7f7e852094d671a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 10:44:06 +0800
+
+    WIP.
+
+M      gtk2/gikimclient.c
+
+commit fc2c64dcd3a31d620717a40d007a8a056ee01331
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 10:00:44 +0800
+
+    Convert offset in PangoAttrList
+
+M      ibus/gtk.py
+M      panel/candidatepanel.py
+
+commit ac3e3a1cf72611cba09fbccd2faf0c6d0cbf884a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 09:47:11 +0800
+
+    Convert bytes offset to characters offset.
+
+M      engine/anthy/engine.py
+
+commit d1405d1ccb75f2733c0c641bda5c4c8700beafb6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 09:46:40 +0800
+
+    Convert characters offset to bytes offset.
+
+M      gtk2/gikimclient.c
+
+commit c48a5ae2627a78bf67f652d8c3fc4feafc259216
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 06:01:40 +0800
+
+    Handle Delete key.
+
+M      engine/anthy/engine.py
+
+commit d4285d92f6b69fcd00bbb7603a029318831f4ca3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 05:56:44 +0800
+
+    rm *.pyc in clean task.
+
+M      engine/anthy/Makefile
+
+commit 7f34028935e5cea892121ca974e56c3237727096
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-12 05:55:31 +0800
+
+    Fix bug when pressing backspace
+
+M      engine/anthy/engine.py
+
+commit 39fc5412500087774b658b2d7217254526e410b7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-11 22:59:15 +0800
+
+    Add main.py for anthy engine.
+
+A      engine/anthy/main.py
+
+commit 9c1e6130739313152d3c921067d0ffffa3ac673d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-11 22:44:03 +0800
+
+    Clean preedit when engine is lost
+
+M      ibusdaemon/client.py
+
+commit 4b166dc64c28a89246d9ec3c87b1a41e7e6220a3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-11 22:18:26 +0800
+
+    WIP anthy engine.
+
+M      engine/anthy/engine.py
+M      ibus/lookuptable.py
+
+commit 924e244fff3a48eea3aa742bfbe0885c62f93d71
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-11 18:01:32 +0800
+
+    WIP anthy engine.
+
+M      engine/anthy/Makefile
+A      engine/anthy/engine.py
+A      engine/anthy/factory.py
+A      engine/anthy/tables.py
+
+commit e5cdfb21fde5c4f7028ec5ceb6ed44aac769feb3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-11 18:00:52 +0800
+
+    WIP.
+
+M      ibusdaemon/client.py
+M      ibusdaemon/engine.py
+
+commit 58bb35853d8a5ba128c827afb307b2ead467f6c8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-11 14:57:22 +0800
+
+    Add anthy engine
+
+A      engine/anthy/Makefile
+A      engine/anthy/Makefile.am
+A      engine/anthy/anthy.i
+A      engine/anthy/test.py
+
+commit b4ae75975083abb847a654edb0d48d888056d0e5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-11 10:59:56 +0800
+
+    WIP property.
+
+M      engine/demo/engine.py
+M      ibus/interface/ipanel.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/client.py
+M      ibusdaemon/panel.py
+M      panel/candidatepanel.py
+M      panel/languagebar.py
+
+commit 324a1a8c565e01f1e09ca0e3cf8dff2e0b61765f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 23:41:26 +0800
+
+    WIP property.
+
+M      engine/demo/engine.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/client.py
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit b2a99e8c5315e8bf8954e1094fc5a5930789da4f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 23:24:23 +0800
+
+    Import property in __init__.py
+
+M      ibus/__init__.py
+
+commit 74466037d16c274cd0b39c3aa6c838c7d23af7e6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 22:21:14 +0800
+
+    Add __iter__ method for PropList object.
+
+M      ibus/property.py
+
+commit 0265d139308e0232f7c08ad43b5a09e5f3c83ba1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 20:21:09 +0800
+
+    Property WIP.
+
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/client.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/panel.py
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit 90915751f000327f43fd2a5c1d1556e16efb1a74
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 15:58:01 +0800
+
+    Add is_same mothod.
+
+M      ibus/property.py
+
+commit 28ccfb07466686d723e97ad227a57c5b591f4f85
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 14:53:34 +0800
+
+    Fix typo.
+
+M      panel/panel.py
+
+commit a98b627b68de2b1c1c8d57ca1f5c91cbc720ab2a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 13:48:34 +0800
+
+    Does not commit space when user uses 1~5 to select candidate.
+
+M      engine/demo/engine.py
+
+commit f55614858ef52f3a7f0c06fe9192b311f998eeb5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 13:43:34 +0800
+
+    Fix some mistakes of register-properties & update-property.
+
+M      ibusdaemon/bus.py
+M      ibusdaemon/client.py
+M      ibusdaemon/engine.py
+
+commit 91722b9e1c4a01d4f961934e6916c5f5766b9a41
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 13:36:56 +0800
+
+    Modified engine & panel interfaces.
+
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/panel.py
+M      panel/panel.py
+
+commit cd8f5c99c0fd48a5c7c498b5378c1985184dd91f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 11:07:56 +0800
+
+    Handle escape key.
+
+M      engine/demo/engine.py
+
+commit de3aeeb1b0aa5ad91fb2802059034d5a7b737eca
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-10 11:05:43 +0800
+
+    Fix a bug of lookuptable.page_down
+
+M      ibus/lookuptable.py
+
+commit e29878b94ee711e8f3c6d0489140cdf858b1826f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-06 12:38:56 +0800
+
+    Use host and X display id in ibus address.
+
+M      gtk2/gikimclient.c
+M      ibus/common.py
+
+commit d8b3fa89cc3452595fc1fcc2014398be1f7999b6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-06 11:32:12 +0800
+
+    Add dbusconn in GetFactoryInfo method.
+
+M      ibus/interface/iibus.py
+
+commit e719c375cd808204761843ce493dd1ae37562c03
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-06 11:27:30 +0800
+
+    Fix build error in Solaris.
+
+M      gtk2/gikimclient.c
+
+commit f9e7b06008c6c6d5fe5bd03c7e6b0d9d6c4a1e54
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-05 22:01:10 +0800
+
+    Add UpdateProperties in panel.
+
+M      ibus/interface/iengine.py
+M      ibus/interface/ienginefactory.py
+M      ibus/interface/iibus.py
+M      ibusdaemon/bus.py
+M      panel/panel.py
+
+commit 2475acd6decd8c6866029ebd7761778a3563b04b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-05 15:31:38 +0800
+
+    Modify some interface.
+
+M      ibusdaemon/bus.py
+M      ibusdaemon/lookuptable.py
+
+commit e5ca9c4a0a1e1ef45c6cd52984b87412c3f41764
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-05 15:29:22 +0800
+
+    Add property.
+
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/client.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/panel.py
+M      panel/languagebar.py
+
+commit ff7292352b7d4b1609f077c3650d94a3c83051fc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-04 18:06:32 +0800
+
+    Add property.py.
+
+A      ibus/property.py
+
+commit 7509893db5888b62da22bfa27e17653cdb9dc052
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-04 11:35:45 +0800
+
+    Fix bugs when moving languagebar.
+
+M      panel/handle.py
+
+commit e6a8e9fb9d429497862d3a89ed433c4aabffe182
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-04 08:55:08 +0800
+
+    Fix problem when a new panel replacing the old one.
+
+M      ibusdaemon/bus.py
+
+commit 3d2f237c3e410888635c5402b0ca4c6c6223dd83
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-03 22:13:22 +0800
+
+    quit mainloop, when the Panel object be destroyed.
+
+M      panel/panel.py
+
+commit 267a9135667e88f1e775a8078420a949dacc1a7b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-03 22:07:43 +0800
+
+    Try to use custom icons.
+
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit a3d2228e48f324eaed1bb1fece6fd0c6bd5c6763
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-03 13:49:31 +0800
+
+    Rename keyboard icon.
+
+A      icons/ibus-keyboard.svg
+D      icons/keyboard.svg
+
+commit 7da7fb8cce0ec32f54da58b1cc3b64d69faef617
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-03 13:48:32 +0800
+
+    Fix segfault when delete an im client object.
+
+M      gtk2/gikimclient.c
+
+commit 5020e3a144975b89c03cd83972ec181bf4df45f2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-03 13:19:16 +0800
+
+    Add keyboard icon.
+
+A      icons/keyboard.svg
+
+commit f57ae92a8452b03f759ed3a3d7e7c5def6354366
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-03 12:59:15 +0800
+
+    Add an icon for default engine.
+
+A      icons/engine-default.svg
+
+commit 983e5ff3c2f740308647380cd3174a43e54d1acd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-03 12:50:18 +0800
+
+    Specify the idle's priority.
+
+M      engine/demo/engine.py
+
+commit a53f178a7d120342e7c500f8e2ae30298cad957a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-03 12:44:50 +0800
+
+    Add invalidate method.
+
+M      engine/demo/engine.py
+
+commit f40165d862431b8490ee5daea8ca070274a3b76c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-02 19:20:26 +0800
+
+    Set im client to disable when lost ibus connection.
+
+M      gtk2/gikimclient.c
+
+commit 9823c20eb65c7eb0d9a38398a0a4a3ab9a845b66
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-02 19:17:29 +0800
+
+    Check inotify in configure, and make code works without inotify.
+
+M      configure.ac
+M      gtk2/gikimclient.c
+
+commit f604a9438485277e3832086db2afd9bb2819dfa0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-02 10:35:03 +0800
+
+    Replace DEPRECATED dbus_message_iter_get_array_len.
+
+M      gtk2/gikimclient.c
+
+commit ddfcc89ecfb00aa0286dc8114fa1c531668444ad
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-02 08:55:40 +0800
+
+    Clean preedit when connection is disconnected, and emit preedit-changed signal.
+
+M      gtk2/gikimclient.c
+
+commit 32f14ccbdcdc32fa8c096be4a24d7a875b3cf96b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-02 08:50:59 +0800
+
+    Add dummy methods for DummyPanel
+
+M      ibusdaemon/panel.py
+
+commit 56c9a736712924c6ac5f58f627b082646f9964fd
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-02 00:14:19 +0800
+
+    Create /tmp/ibus-$HOME before create listen server.
+
+M      ibusdaemon/ibusdaemon.py
+
+commit 6c51b70fe97fc27c2531dba42ab06e8cba8f9cd3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-02 00:09:41 +0800
+
+    Fix a bug when a client focus out.
+
+M      ibusdaemon/bus.py
+
+commit 0a8823e129767605b09a74c19db4b307167fe3bc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-02 00:04:52 +0800
+
+    Set mix size of state label.
+
+M      panel/candidatepanel.py
+
+commit fcc2b1668e1e558e61beab7e0059efdac58344c2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-06-02 00:02:16 +0800
+
+    Use inotify to create ibus connection.
+
+M      gtk2/gikimclient.c
+M      gtk2/gikimcontext.c
+M      ibus/common.py
+
+commit e911456cf2c1f4e17c5ccf909e4fb80e4fccb780
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-30 17:55:14 +0800
+
+    Modifid IPanel and IEngine interfaces.
+
+M      engine/demo/engine.py
+M      gtk2/gikimclient.c
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/client.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/panel.py
+M      panel/candidatepanel.py
+M      panel/candidatewindow.py
+M      panel/languagebar.py
+M      panel/panel.py
+
+commit aaff3dcec05b80a53e274c05fae04632e93cbde8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-30 13:39:49 +0800
+
+    Add {cursor, page}-{up, down} support for panel.
+
+M      engine/demo/engine.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/client.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/panel.py
+M      panel/candidatepanel.py
+M      panel/candidatewindow.py
+M      panel/panel.py
+
+commit dc19d9166b4263da9fb2915a5763173e11f909ee
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-30 11:07:41 +0800
+
+    Remove underline attribute of aux string.
+    Process symbols as commit key.
+
+M      engine/demo/engine.py
+
+commit 15a2da35dc7da7e649f96d8d5276f5a02a2c29d5
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-30 11:06:19 +0800
+
+    Fix crash when recieve an empty dbus array.
+    Remove spaces.
+
+M      gtk2/gikimclient.c
+
+commit e8328f343e0617e224966b7a274e1d0bdc4f3be6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 21:35:20 +0800
+
+    Update .gitignore.
+
+M      .gitignore
+
+commit 300087621c17048752816b5de4bb52a6132a5355
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 21:29:18 +0800
+
+    Add .gitignore in po folder
+
+A      po/.gitignore
+
+commit 134bab40bff7d9e5e1c6e59b27e40398bbcb8156
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 21:26:14 +0800
+
+    Update .gitignore
+    Remove tabs.
+
+M      .gitignore
+M      panel/languagebar.py
+
+commit aec48ebe3b0431fe39e3f59dc92b8e66eaddb318
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 21:21:03 +0800
+
+    Add languagebar.py
+
+A      panel/languagebar.py
+
+commit 0c249dc5ccad40182e2bc6fa54cc9101a3ee4c30
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 21:20:39 +0800
+
+    Add two lack files.
+
+A      ibus/interface/ienginefactory.py
+A      ibus/panel.py
+
+commit af1638a9d44f234f0d39ec2b1140c670b968c3d1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 21:09:39 +0800
+
+    ibus almost works.
+
+M      engine/demo/engine.py
+M      ibus/attribute.py
+M      ibus/gtk.py
+M      ibus/keysyms.py
+M      ibus/lookuptable.py
+M      ibusdaemon/bus.py
+M      panel/candidatepanel.py
+M      panel/panel.py
+
+commit 9d1864aea72f05e39703bb414d318265494135c7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 17:22:46 +0800
+
+    WIP.
+
+M      engine/demo/engine.py
+M      gtk2/gikimclient.c
+M      ibus/attribute.py
+M      ibus/gtk.py
+M      ibus/interface/iengine.py
+M      ibus/interface/ipanel.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/client.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/panel.py
+M      panel/Makefile
+M      panel/candidatepanel.py
+M      panel/candidatewindow.py
+M      panel/main.py
+M      panel/panel.py
+
+commit 44c293eb46964b9878a23165ce093b00f3a33d64
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 11:56:57 +0800
+
+    split interface.py to several source files.
+
+D      ibus/interface.py
+A      ibus/interface/__init__.py
+A      ibus/interface/iengine.py
+A      ibus/interface/iibus.py
+A      ibus/interface/ipanel.py
+
+commit d92da3d2a855ca4927363401f53214d445ad6da3
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 11:08:46 +0800
+
+    WIP.
+
+M      ibusdaemon/bus.py
+M      ibusdaemon/client.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/enginefactory.py
+M      ibusdaemon/panel.py
+M      panel/candidatewindow.py
+
+commit 221a099a790009fc5930b287ec943f2b90af916a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-29 11:04:25 +0800
+
+    Remove locale panel.
+
+M      engine/demo/engine.py
+
+commit 9c36a867314fcbf41b1cf998c260922d7c96cfc0
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 17:59:16 +0800
+
+    Remove tabs.
+
+M      engine/demo/engine.py
+
+commit 80b4de2fc0535a94d51d2c5f0192b950c9e8979b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 17:57:17 +0800
+
+    Refactory Panel interface.
+
+M      ibus/interface.py
+
+commit 53c6e1f1d0939b4c585301427920e0cf1dd9e341
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 16:14:04 +0800
+
+    Remove tabs.
+
+M      panel/main.py
+
+commit 37615f1c45902eb5e0509cb22e38dec5877a05c2
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 16:13:28 +0800
+
+    Rename CandidatesArea to CandidateArea.
+
+M      panel/candidatepanel.py
+
+commit 26bb4e59b7bb9b2670689e695f9050526d731a16
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 14:42:10 +0800
+
+    WIP
+
+M      panel/candidatewindow.py
+
+commit a1a4425f1634287d3c81693d96a1bf0944992ede
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 14:41:48 +0800
+
+    Add CandidatesArea class.
+
+M      panel/candidatepanel.py
+
+commit 206643ccc4adeb22538e29a9a9c57e14af82c7e6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 11:10:32 +0800
+
+    Add .gitignore in m4.
+
+A      m4/.gitignore
+
+commit 4a74903fcc1639153e662d2353087754b4c6ce70
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 11:05:54 +0800
+
+    Add .gitignore.
+
+A      .gitignore
+
+commit 58565069d099ce922b5bbf0809276bafc125662c
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 11:02:14 +0800
+
+    Add AttributeUnderline
+    Remove AttributeDecoration
+
+M      ibus/attribute.py
+
+commit 6e4c093eb2ab9e302587b51b0daa1d3d87b78702
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 11:01:40 +0800
+
+    Remove AttributeDecoration
+    Add AttributeUnderline
+
+A      ibus/gtk.py
+
+commit 3fe2020754aa3a2256c3df52d84dbd0654d2e212
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 11:01:01 +0800
+
+    Add test-candidate
+    rename test-engine to test-panel
+
+M      panel/Makefile
+
+commit 1eb62dcfccb4e4296fbde5ad3f809c68dca6d8a7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 11:00:25 +0800
+
+    Split CandidatePanel from candidatewindow.py.
+
+A      panel/candidatepanel.py
+M      panel/candidatewindow.py
+
+commit 5a331e972f472d61b335bb2fd9148d9d71eaf197
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-28 09:30:52 +0800
+
+    WIP.
+
+A      ibusdaemon/lookuptable.py
+A      panel/handle.py
+A      panel/image.py
+A      panel/themes/icons/gnome-dev-keyboard.svg
+A      panel/themes/icons/keyboard.svg
+
+commit ca8b2bc823155ee97236670699b2222eef5f2d29
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-27 22:46:40 +0800
+
+    WIP.
+
+M      ibus/interface.py
+M      ibusdaemon/client.py
+M      ibusdaemon/engine.py
+
+commit 12d99cbc6cd09215245ccd0d6ba5eeb600b571e8
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-27 22:45:51 +0800
+
+    Fix a bug in get_candidates_in_current_page.
+
+M      ibus/lookuptable.py
+
+commit 17598bcad02e559b57d0c25f4cbb572a830e357a
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-27 22:44:29 +0800
+
+    Add tips in candidatewindow.py.
+
+M      panel/candidatewindow.py
+
+commit 86992b281d6945feb443e5c1d0e3c9af8bd1ce58
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-27 22:21:30 +0800
+
+    WIP.
+
+M      panel/main.py
+M      panel/panel.py
+
+commit 5ebe14a6a207c1afe327a0acadf219873aadb15e
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-27 22:21:15 +0800
+
+    Modify default theme.
+
+M      panel/themes/default/Toolbar/toolbar.png
+M      panel/themes/default/gtkrc
+M      panel/themes/default/panel.rc
+
+commit a314e5d281382815f30eae8db8dd8b1e365d5c76
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-27 22:21:03 +0800
+
+    Add candidatewindow.py
+
+A      panel/candidatewindow.py
+
+commit 00447b4dac6095281bb18cada5452ed9d54e8677
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-23 16:04:21 +0800
+
+    Add a default theme.
+
+A      panel/themes/default/Arrows/arrow-down.png
+A      panel/themes/default/Arrows/arrow-insens.png
+A      panel/themes/default/Arrows/arrow-left.png
+A      panel/themes/default/Arrows/arrow-right.png
+A      panel/themes/default/Arrows/arrow-up.png
+A      panel/themes/default/Buttons/button-insensitive.png
+A      panel/themes/default/Buttons/button-normal.png
+A      panel/themes/default/Buttons/button-prelight.png
+A      panel/themes/default/Check-Radio/check1.png
+A      panel/themes/default/Check-Radio/check2.png
+A      panel/themes/default/Check-Radio/check3.png
+A      panel/themes/default/Check-Radio/check4.png
+A      panel/themes/default/Check-Radio/check5.png
+A      panel/themes/default/Check-Radio/check6.png
+A      panel/themes/default/Check-Radio/option1.png
+A      panel/themes/default/Check-Radio/option2.png
+A      panel/themes/default/Check-Radio/option3.png
+A      panel/themes/default/Check-Radio/option4.png
+A      panel/themes/default/Check-Radio/option5.png
+A      panel/themes/default/Check-Radio/option6.png
+A      panel/themes/default/Frame-Gap/frame-gap-end.png
+A      panel/themes/default/Frame-Gap/frame-gap-start.png
+A      panel/themes/default/Frame-Gap/frame.png
+A      panel/themes/default/Handles/handle-h.png
+A      panel/themes/default/Handles/handle-v.png
+A      panel/themes/default/Lines/line-h.png
+A      panel/themes/default/Lines/line-v.png
+A      panel/themes/default/ListHeaders/list_header-insens.png
+A      panel/themes/default/ListHeaders/list_header-prelight.png
+A      panel/themes/default/ListHeaders/list_header-pressed.png
+A      panel/themes/default/ListHeaders/list_header.png
+A      panel/themes/default/Menu-Menubar/menu.png
+A      panel/themes/default/Menu-Menubar/menubar-item-active.png
+A      panel/themes/default/Menu-Menubar/menubar-item.png
+A      panel/themes/default/Menu-Menubar/menubar.png
+A      panel/themes/default/Others/null.png
+A      panel/themes/default/Others/ruler.png
+A      panel/themes/default/Panel/panel-bg.png
+A      panel/themes/default/ProgressBar/progressbar-horiz.png
+A      panel/themes/default/ProgressBar/trough-progressbar-horiz.png
+A      panel/themes/default/Range/slider-horiz-prelight.png
+A      panel/themes/default/Range/slider-horiz.png
+A      panel/themes/default/Range/slider-vert-prelight.png
+A      panel/themes/default/Range/slider-vert.png
+A      panel/themes/default/Range/trough-horizontal.png
+A      panel/themes/default/Range/trough-vertical.png
+A      panel/themes/default/Scrollbars/scroll-thumb-horiz-pre.png
+A      panel/themes/default/Scrollbars/scroll-thumb-horiz.png
+A      panel/themes/default/Scrollbars/scroll-thumb-vert-pre.png
+A      panel/themes/default/Scrollbars/scroll-thumb-vert.png
+A      panel/themes/default/Scrollbars/slider-horiz-pre.png
+A      panel/themes/default/Scrollbars/slider-horiz.png
+A      panel/themes/default/Scrollbars/slider-vert-pre.png
+A      panel/themes/default/Scrollbars/slider-vert.png
+A      panel/themes/default/Scrollbars/stepper-down-prelight.png
+A      panel/themes/default/Scrollbars/stepper-down.png
+A      panel/themes/default/Scrollbars/stepper-left-prelight.png
+A      panel/themes/default/Scrollbars/stepper-left.png
+A      panel/themes/default/Scrollbars/stepper-right-prelight.png
+A      panel/themes/default/Scrollbars/stepper-right.png
+A      panel/themes/default/Scrollbars/stepper-up-prelight.png
+A      panel/themes/default/Scrollbars/stepper-up.png
+A      panel/themes/default/Scrollbars/trough-scrollbar-horiz.png
+A      panel/themes/default/Scrollbars/trough-scrollbar-vert.png
+A      panel/themes/default/Shadows/shadow-in.png
+A      panel/themes/default/Shadows/shadow-out.png
+A      panel/themes/default/Shadows/text-.png
+A      panel/themes/default/Shadows/text-entry.png
+A      panel/themes/default/Spin/spin-down-disable.png
+A      panel/themes/default/Spin/spin-down-prelight.png
+A      panel/themes/default/Spin/spin-down.png
+A      panel/themes/default/Spin/spin-up-disable.png
+A      panel/themes/default/Spin/spin-up-prelight.png
+A      panel/themes/default/Spin/spin-up.png
+A      panel/themes/default/Tabs/gap-bottom-left.png
+A      panel/themes/default/Tabs/gap-bottom-right.png
+A      panel/themes/default/Tabs/gap-left-bottom.png
+A      panel/themes/default/Tabs/gap-left-top.png
+A      panel/themes/default/Tabs/gap-right-bottom.png
+A      panel/themes/default/Tabs/gap-right-top.png
+A      panel/themes/default/Tabs/gap-top-current.png
+A      panel/themes/default/Tabs/gap-top-left.png
+A      panel/themes/default/Tabs/gap-top-right.png
+A      panel/themes/default/Tabs/notebook.png
+A      panel/themes/default/Tabs/tab-bottom-active.png
+A      panel/themes/default/Tabs/tab-bottom.png
+A      panel/themes/default/Tabs/tab-left-active.png
+A      panel/themes/default/Tabs/tab-left.png
+A      panel/themes/default/Tabs/tab-right-active.png
+A      panel/themes/default/Tabs/tab-right.png
+A      panel/themes/default/Tabs/tab-top-active.png
+A      panel/themes/default/Tabs/tab-top.png
+A      panel/themes/default/Toolbar/toolbar.png
+A      panel/themes/default/gtkrc
+A      panel/themes/default/panel.rc
+
+commit 28db4525339ffdbcdd3d0e0d9822714995e6211d
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-21 15:58:47 +0800
+
+    WIP.
+
+M      ibus/interface.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/factorymanager.py
+M      ibusdaemon/panel.py
+
+commit 9f06b8c51d47cd37ae925c164b07dcb96fb19edc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-20 15:57:00 +0800
+
+    Add panel.
+
+A      panel/Makefile
+A      panel/main.py
+A      panel/panel.py
+
+commit 5b59a973b7fdb3ab125d08910abdcf405583a210
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-20 10:52:03 +0800
+
+    Add application.py
+
+A      ibus/application.py
+
+commit f3bbca058655c155758519064b16372e6589d2e6
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-19 22:14:16 +0800
+
+    WIP.
+
+M      gtk2/Makefile.am
+M      ibus/__init__.py
+M      ibus/attribute.py
+M      ibus/interface.py
+M      ibus/lookuptable.py
+M      ibusdaemon/bus.py
+M      ibusdaemon/engine.py
+M      ibusdaemon/panel.py
+
+commit 82b3002e5860094118c43ecb390a2bf9497fe1fc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-19 22:13:51 +0800
+
+    Add panel.py.
+
+A      ibusdaemon/panel.py
+
+commit ef38e2326c802cc9a25d0873b31869aad1bfe498
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-19 21:52:49 +0800
+
+    Remove lookuptable.py
+
+D      engine/demo/lookuptable.py
+
+commit 87805e2558089e68cd198987123355f1da9f3ca9
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-19 18:19:39 +0800
+
+    Add lookuptabel.py and add {to,from}_dbus_value to Attribute and AttrList classes.
+
+M      ibus/attribute.py
+M      ibus/interface.py
+A      ibus/lookuptable.py
+
+commit 39d382372f1461f18e207a0f4d81c5613e4d293b
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-19 10:44:00 +0800
+
+    Move EngineFactory from engine.py to a new file.
+
+M      ibusdaemon/engine.py
+A      ibusdaemon/enginefactory.py
+
+commit 164a20434e452091585646a9042d371785c300f7
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-19 10:27:49 +0800
+
+    Remove driver.py
+
+D      ibus/driver.py
+
+commit 1b731d1cae251cf6841e906fd35779053d79a06f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-19 10:19:22 +0800
+
+    Remove x property from bus.py and ibusdaemon.py
+
+M      ibusdaemon/bus.py
+M      ibusdaemon/ibusdaemon.py
+
+commit dc8a0dd5a153b86458cc0d46bc0c07996c635c91
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-19 09:57:47 +0800
+
+    Remove -x property from driver.py.
+
+M      ibus/driver.py
+
+commit 2a863969bc557ba3847062558b349f7976ae42fc
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-18 23:00:43 +0800
+
+    WIP.
+
+M      engine/demo/Makefile
+D      engine/demo/eng_demo.py
+A      engine/demo/engine.py
+A      engine/demo/factory.py
+A      engine/demo/lookuptable.py
+A      engine/demo/main.py
+M      ibus/common.py
+M      ibus/interface.py
+
+commit 3c627611dc49468d1d2ff9485c98a71666c78226
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-15 11:19:26 +0800
+
+    transplate x, y, if client window is not NULL.
+
+M      gtk2/gikimcontext.c
+
+commit c2c0a2f04d5b48f6d9325a96f4644b098ff36565
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-15 11:06:07 +0800
+
+    Fix a typo.
+
+M      gtk2/gikimclient.c
+
+commit f69e6240f54a3c5d5a23dafb88e71c46f7cec948
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-13 11:28:23 +0800
+
+    Move demo engine to engine/demo. Add Makefile in ibusdaemon.
+
+A      engine/demo/Makefile
+A      engine/demo/eng_demo.py
+D      ibus/eng_demo.py
+A      ibusdaemon/Makefile
+
+commit 14a08bc34acab200f891c880b3f3f31751d5800f
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-13 10:51:18 +0800
+
+    Split ibusdaemon from ibus.
+
+M      ibus/__init__.py
+D      ibus/bus.py
+D      ibus/client.py
+D      ibus/clientmanager.py
+D      ibus/connection.py
+D      ibus/engine.py
+D      ibus/factorymanager.py
+D      ibus/ibusdaemon.py
+D      ibus/server.py
+A      ibusdaemon/bus.py
+A      ibusdaemon/client.py
+A      ibusdaemon/clientmanager.py
+A      ibusdaemon/connection.py
+A      ibusdaemon/engine.py
+A      ibusdaemon/factorymanager.py
+A      ibusdaemon/ibusdaemon.py
+
+commit 4d313651ea8de6a554ae1f5009687e66803b99c4
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-13 10:24:10 +0800
+
+    Revert to "Add clean task in Makefile."
+
+D      src/ibus/__init__.py
+D      src/ibus/common.py
+D      src/ibus/exception.py
+D      src/ibus/keysyms.py
+D      src/ibus/object.py
+
+commit 93734d0f06c7ed2db406155bf229517a8cb766b1
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-13 10:19:29 +0800
+
+    Revert "Add clean task in Makefile."
+    
+    This reverts commit 6bfa30ff14c5e91df9574a11637e99124e39f926.
+    
+    Conflicts:
+
+A      src/ibus/__init__.py
+A      src/ibus/common.py
+A      src/ibus/exception.py
+A      src/ibus/keysyms.py
+A      src/ibus/object.py
+
+commit 6bfa30ff14c5e91df9574a11637e99124e39f926
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-13 10:06:51 +0800
+
+    Add clean task in Makefile.
+
+M      ibus/Makefile
+
+commit c25a24ae2e40a39db61fcd6f80d76469daa49a28
+Author: Huang Peng <shawn.p.huang@gmail.com>
+Date:   2008-05-12 15:18:48 +0800
+
+    import ibus
+
+A      AUTHORS
+A      COPYING
+A      ChangeLog
+A      Makefile.am
+A      NEWS
+A      README
+A      autogen.sh
+A      configure.ac
+A      doc/interfaces
+A      doc/specification
+A      gtk2/Makefile.am
+A      gtk2/gikim.c
+A      gtk2/gikimclient.c
+A      gtk2/gikimclient.h
+A      gtk2/gikimcontext.c
+A      gtk2/gikimcontext.h
+A      ibus/Makefile
+A      ibus/__init__.py
+A      ibus/attribute.py
+A      ibus/bus.py
+A      ibus/client.py
+A      ibus/clientmanager.py
+A      ibus/common.py
+A      ibus/connection.py
+A      ibus/driver.py
+A      ibus/eng_demo.py
+A      ibus/engine.py
+A      ibus/exception.py
+A      ibus/factorymanager.py
+A      ibus/ibusdaemon.py
+A      ibus/interface.py
+A      ibus/keysyms.py
+A      ibus/object.py
+A      ibus/server.py
+A      m4/Makefile.am
+A      m4/as-version.m4
+A      po/Makevars
+A      po/POTFILES.in
diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..007e939
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,370 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
+Inc.
+
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+   Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+   The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.
+
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package, generally using the just-built uninstalled binaries.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you can use GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+   By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved.  Use GNU `make'
+instead.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS
+     KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation.  Until the limitation is lifted, you can use
+this workaround:
+
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
diff --git a/Makefile.in b/Makefile.in
new file mode 100644 (file)
index 0000000..183352e
--- /dev/null
@@ -0,0 +1,1170 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = .
+DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
+       $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/configure $(am__configure_deps) \
+       $(srcdir)/config.h.in $(srcdir)/ibus-1.0.pc.in \
+       $(srcdir)/ibus.spec.in COPYING compile config.guess config.sub \
+       install-sh missing ltmain.sh
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = ibus-1.0.pc ibus.spec
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
+DATA = $(pkgconfig_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+       $(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+DIST_SUBDIRS = src bindings util conf client tools data m4 po docs \
+       engine ui bus ibus setup
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+NULL = 
+@ENABLE_UI_TRUE@UI_DIR = ui
+@ENABLE_ENGINE_TRUE@ENGINE_DIR = engine
+@ENABLE_SETUP_TRUE@SETUP_DIR = setup
+@ENABLE_PYTHON_LIBRARY_TRUE@PYTHON_LIB_DIRS = ibus
+@ENABLE_DAEMON_TRUE@DAEMON_DIR = \
+@ENABLE_DAEMON_TRUE@   bus \
+@ENABLE_DAEMON_TRUE@   $(NULL)
+
+SUBDIRS = \
+       src \
+       bindings \
+       util \
+       conf \
+       client \
+       tools \
+       data \
+       m4 \
+       po \
+       docs \
+       $(ENGINE_DIR) \
+       $(UI_DIR) \
+       $(DAEMON_DIR) \
+       $(PYTHON_LIB_DIRS) \
+       $(SETUP_DIR) \
+       $(NULL)
+
+ACLOCAL_AMFLAGS = -I m4
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = ibus-@IBUS_API_VERSION@.pc
+ibus_pc_in = ibus-@IBUS_API_VERSION@.pc.in
+EXTRA_DIST = \
+       autogen.sh \
+       $(ibus_pc_in) \
+       ibus.spec.in \
+       python-config.py \
+       xinput-ibus \
+       $(NULL)
+
+noinst_DIST = \
+       $(NULL)
+
+DISTCLEANFILES = \
+       po/stamp-it \
+       $(NULL)
+
+DISTCHECK_CONFIGURE_FLAGS = \
+       --enable-gtk-doc \
+       --disable-schemas-install \
+       --disable-introspection \
+       $(NULL)
+
+MAINTAINERCLEANFILES = \
+       $(srcdir)/ChangeLog \
+       $(NULL)
+
+GITIGNOREFILES = \
+       INSTALL \
+       aclocal.m4 \
+       compile \
+       config.guess \
+       config.h.in \
+       config.sub \
+       depcomp \
+       gtk-doc.make \
+       install-sh \
+       ltmain.sh \
+       missing \
+       mkinstalldirs \
+       py-compile \
+       stamp-h* \
+       $(NULL)
+
+all: config.h
+       $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh: Makefile
+       @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
+             $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           echo ' $(SHELL) ./config.status'; \
+           $(SHELL) ./config.status;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+       @if test ! -f $@; then rm -f stamp-h1; else :; fi
+       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+       @rm -f stamp-h1
+       cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
+       ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+       rm -f stamp-h1
+       touch $@
+
+distclean-hdr:
+       -rm -f config.h stamp-h1
+ibus-1.0.pc: $(top_builddir)/config.status $(srcdir)/ibus-1.0.pc.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
+ibus.spec: $(top_builddir)/config.status $(srcdir)/ibus.spec.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+distclean-libtool:
+       -rm -f libtool config.lt
+install-pkgconfigDATA: $(pkgconfig_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+       done
+
+uninstall-pkgconfigDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+       test ! -s cscope.files \
+         || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+       -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(DISTFILES)
+       $(am__remove_distdir)
+       test -d "$(distdir)" || mkdir "$(distdir)"
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+       $(MAKE) $(AM_MAKEFLAGS) \
+         top_distdir="$(top_distdir)" distdir="$(distdir)" \
+         dist-hook
+       -test -n "$(am__skip_mode_fix)" \
+       || find "$(distdir)" -type d ! -perm -755 \
+               -exec chmod u+rwx,go+rx {} \; -o \
+         ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+         ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+       || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+       $(am__post_remove_distdir)
+
+dist-lzip: distdir
+       tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+       $(am__post_remove_distdir)
+
+dist-xz: distdir
+       tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+       $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+       tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+       $(am__post_remove_distdir)
+
+dist-shar: distdir
+       shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+       $(am__post_remove_distdir)
+
+dist-zip: distdir
+       -rm -f $(distdir).zip
+       zip -rq $(distdir).zip $(distdir)
+       $(am__post_remove_distdir)
+
+dist dist-all:
+       $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+       $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+       case '$(DIST_ARCHIVES)' in \
+       *.tar.gz*) \
+         GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+       *.tar.bz2*) \
+         bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+       *.tar.lz*) \
+         lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+       *.tar.xz*) \
+         xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+       *.tar.Z*) \
+         uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+       *.shar.gz*) \
+         GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+       *.zip*) \
+         unzip $(distdir).zip ;;\
+       esac
+       chmod -R a-w $(distdir)
+       chmod u+w $(distdir)
+       mkdir $(distdir)/_build $(distdir)/_inst
+       chmod a-w $(distdir)
+       test -d $(distdir)/_build || exit 0; \
+       dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+         && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+         && am__cwd=`pwd` \
+         && $(am__cd) $(distdir)/_build \
+         && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+           $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+           $(DISTCHECK_CONFIGURE_FLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) dvi \
+         && $(MAKE) $(AM_MAKEFLAGS) check \
+         && $(MAKE) $(AM_MAKEFLAGS) install \
+         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+         && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+         && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+               distuninstallcheck \
+         && chmod -R a-w "$$dc_install_base" \
+         && ({ \
+              (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+              && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+              && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+              && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+                   distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+             } || { rm -rf "$$dc_destdir"; exit 1; }) \
+         && rm -rf "$$dc_destdir" \
+         && $(MAKE) $(AM_MAKEFLAGS) dist \
+         && rm -rf $(DIST_ARCHIVES) \
+         && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+         && cd "$$am__cwd" \
+         || exit 1
+       $(am__post_remove_distdir)
+       @(echo "$(distdir) archives ready for distribution: "; \
+         list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+         sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+       @test -n '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: trying to run $@ with an empty' \
+              '$$(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       $(am__cd) '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+          || { echo "ERROR: files left after uninstall:" ; \
+               if test -n "$(DESTDIR)"; then \
+                 echo "  (check DESTDIR support)"; \
+               fi ; \
+               $(distuninstallcheck_listfiles) ; \
+               exit 1; } >&2
+distcleancheck: distclean
+       @if test '$(srcdir)' = . ; then \
+         echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+         exit 1 ; \
+       fi
+       @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+         || { echo "ERROR: files left in build directory after distclean:" ; \
+              $(distcleancheck_listfiles) ; \
+              exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA) config.h
+installdirs: installdirs-recursive
+installdirs-am:
+       for dir in "$(DESTDIR)$(pkgconfigdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+       distclean-libtool distclean-local distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-pkgconfigDATA
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+       -rm -rf $(top_srcdir)/autom4te.cache
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-pkgconfigDATA
+
+.MAKE: $(am__recursive_targets) all install-am install-data-am \
+       install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+       am--refresh check check-am clean clean-cscope clean-generic \
+       clean-libtool clean-local cscope cscopelist-am ctags ctags-am \
+       dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzip \
+       dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
+       distclean-generic distclean-hdr distclean-libtool \
+       distclean-local distclean-tags distcleancheck distdir \
+       distuninstallcheck dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am \
+       install-data-hook install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-pkgconfigDATA install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-am uninstall uninstall-am uninstall-pkgconfigDATA
+
+
+install-data-hook:
+       $(MKDIR_P) $(DESTDIR)${pkgdatadir}/engine
+
+dist-hook:
+       if test -d .git ; then \
+               git log --name-status --date=iso > $(distdir)/ChangeLog ; \
+       fi
+
+distclean-local:
+       if test "x$(srcdir)" = "x."; then :; else \
+               rm -f ChangeLog; \
+       fi
+
+rpm: dist @PACKAGE_NAME@.spec
+       rpmbuild -bb \
+                       --define "_sourcedir `pwd`" \
+                       --define "_builddir `pwd`/rpm" \
+                       --define "_srcrpmdir `pwd`/rpm" \
+                       --define "_rpmdir `pwd`"/rpm \
+                       --define "_specdir `pwd`/rpm" \
+                       @PACKAGE_NAME@.spec
+
+srpm: dist @PACKAGE_NAME@.spec
+       rpmbuild -bs \
+                       --define "_sourcedir `pwd`" \
+                       --define "_builddir `pwd`/rpm" \
+                       --define "_srcrpmdir `pwd`/rpm" \
+                       --define "_rpmdir `pwd`/rpm" \
+                       --define "_specdir `pwd`/rpm" \
+                       @PACKAGE_NAME@.spec
+
+.PHONY: debian/changelog
+debian/changelog:
+       $(AM_V_GEN) \
+       ( \
+               . /etc/lsb-release; \
+               date=`date -R`; \
+               version=@VERSION@; \
+               serie=$(serie); \
+               if test -z "$$serie"; then \
+                 serie=$$DISTRIB_CODENAME; \
+               fi; \
+               if test -z "$$release"; then \
+                 release=1; \
+               fi; \
+               s=`cat debian/changelog.in`; \
+               eval "echo \"$${s}\""; \
+       ) > $@
+
+ppa: dist debian/changelog
+       $(AM_V_GEN) \
+       ( \
+               mkdir ppa; \
+               cd ppa; \
+               tar zxvf ../$(distdir).tar.gz ; \
+               cd $(distdir); \
+               cp -a ../../debian . ; \
+               cd debian; \
+               debuild -S -sa ; \
+       )
+
+dpkg: dist debian/changelog
+       $(AM_V_GEN) \
+       ( \
+               mkdir ppa; \
+               cd ppa; \
+               tar zxvf ../$(distdir).tar.gz ; \
+               cd $(distdir); \
+               cp -a ../../debian . ; \
+               cd debian; \
+               debuild -b -us -uc; \
+       )
+
+clean-rpm:
+       $(RM) -r "`uname -i`"
+
+clean-local: clean-rpm
+
+git-tag:
+       git tag -s @PACKAGE_VERSION@
+
+git-clean-tree:
+       git clean -d -f -x
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644 (file)
index 0000000..88f31f8
--- /dev/null
@@ -0,0 +1,2376 @@
+# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# Configure paths for GLIB
+# Owen Taylor     1997-2001
+
+dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject,
+dnl gthread, or gio is specified in MODULES, pass to pkg-config
+dnl
+AC_DEFUN([AM_PATH_GLIB_2_0],
+[dnl 
+dnl Get the cflags and libraries from pkg-config
+dnl
+AC_ARG_ENABLE(glibtest, [  --disable-glibtest      do not try to compile and run a test GLIB program],
+                   , enable_glibtest=yes)
+
+  pkg_config_args=glib-2.0
+  for module in . $4
+  do
+      case "$module" in
+         gmodule) 
+             pkg_config_args="$pkg_config_args gmodule-2.0"
+         ;;
+         gmodule-no-export) 
+             pkg_config_args="$pkg_config_args gmodule-no-export-2.0"
+         ;;
+         gobject) 
+             pkg_config_args="$pkg_config_args gobject-2.0"
+         ;;
+         gthread) 
+             pkg_config_args="$pkg_config_args gthread-2.0"
+         ;;
+         gio*) 
+             pkg_config_args="$pkg_config_args $module-2.0"
+         ;;
+      esac
+  done
+
+  PKG_PROG_PKG_CONFIG([0.16])
+
+  no_glib=""
+
+  if test "x$PKG_CONFIG" = x ; then
+    no_glib=yes
+    PKG_CONFIG=no
+  fi
+
+  min_glib_version=ifelse([$1], ,2.0.0,$1)
+  AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
+
+  if test x$PKG_CONFIG != xno ; then
+    ## don't try to run the test against uninstalled libtool libs
+    if $PKG_CONFIG --uninstalled $pkg_config_args; then
+         echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
+         enable_glibtest=no
+    fi
+
+    if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then
+         :
+    else
+         no_glib=yes
+    fi
+  fi
+
+  if test x"$no_glib" = x ; then
+    GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
+    GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0`
+    GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
+    GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0`
+
+    GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args`
+    GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args`
+    glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_glibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GLIB_CFLAGS"
+      LIBS="$GLIB_LIBS $LIBS"
+dnl
+dnl Now check if the installed GLIB is sufficiently new. (Also sanity
+dnl checks the results of pkg-config to some extent)
+dnl
+      rm -f conf.glibtest
+      AC_TRY_RUN([
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int 
+main ()
+{
+  unsigned int major, minor, micro;
+  char *tmp_version;
+
+  fclose (fopen ("conf.glibtest", "w"));
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_glib_version");
+  if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_glib_version");
+     exit(1);
+   }
+
+  if ((glib_major_version != $glib_config_major_version) ||
+      (glib_minor_version != $glib_config_minor_version) ||
+      (glib_micro_version != $glib_config_micro_version))
+    {
+      printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
+             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
+             glib_major_version, glib_minor_version, glib_micro_version);
+      printf ("*** was found! If pkg-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GLib. You may also be able to fix the error\n");
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+      printf("*** required on your system.\n");
+      printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
+      printf("*** to point to the correct configuration files\n");
+    } 
+  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
+          (glib_minor_version != GLIB_MINOR_VERSION) ||
+           (glib_micro_version != GLIB_MICRO_VERSION))
+    {
+      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
+            GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+            glib_major_version, glib_minor_version, glib_micro_version);
+    }
+  else
+    {
+      if ((glib_major_version > major) ||
+        ((glib_major_version == major) && (glib_minor_version > minor)) ||
+        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GLIB (%u.%u.%u) was found.\n",
+               glib_major_version, glib_minor_version, glib_micro_version);
+        printf("*** You need a version of GLIB newer than %u.%u.%u. The latest version of\n",
+              major, minor, micro);
+        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n");
+        printf("*** correct copy of pkg-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+      }
+    }
+  return 1;
+}
+],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_glib" = x ; then
+     AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version))
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$PKG_CONFIG" = "no" ; then
+       echo "*** A new enough version of pkg-config was not found."
+       echo "*** See http://www.freedesktop.org/software/pkgconfig/"
+     else
+       if test -f conf.glibtest ; then
+        :
+       else
+          echo "*** Could not run GLIB test program, checking why..."
+          ac_save_CFLAGS="$CFLAGS"
+          ac_save_LIBS="$LIBS"
+          CFLAGS="$CFLAGS $GLIB_CFLAGS"
+          LIBS="$LIBS $GLIB_LIBS"
+          AC_TRY_LINK([
+#include <glib.h>
+#include <stdio.h>
+],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
+          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+         echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GLIB is incorrectly installed."])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GLIB_CFLAGS=""
+     GLIB_LIBS=""
+     GLIB_GENMARSHAL=""
+     GOBJECT_QUERY=""
+     GLIB_MKENUMS=""
+     GLIB_COMPILE_RESOURCES=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GLIB_CFLAGS)
+  AC_SUBST(GLIB_LIBS)
+  AC_SUBST(GLIB_GENMARSHAL)
+  AC_SUBST(GOBJECT_QUERY)
+  AC_SUBST(GLIB_MKENUMS)
+  AC_SUBST(GLIB_COMPILE_RESOURCES)
+  rm -f conf.glibtest
+])
+
+# Copyright (C) 1995-2002 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003,2004 Red Hat, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License.  As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# This file can be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+#
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper@cygnus.com>, 1995, 1996
+#
+# Modified to never use included libintl. 
+# Owen Taylor <otaylor@redhat.com>, 12/15/1998
+#
+# Major rework to remove unused code
+# Owen Taylor <otaylor@redhat.com>, 12/11/2002
+#
+# Added better handling of ALL_LINGUAS from GNU gettext version 
+# written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002
+#
+# Modified to require ngettext
+# Matthias Clasen <mclasen@redhat.com> 08/06/2004
+#
+# We need this here as well, since someone might use autoconf-2.5x
+# to configure GLib then an older version to configure a package
+# using AM_GLIB_GNU_GETTEXT
+AC_PREREQ(2.53)
+
+dnl
+dnl We go to great lengths to make sure that aclocal won't 
+dnl try to pull in the installed version of these macros
+dnl when running aclocal in the glib directory.
+dnl
+m4_copy([AC_DEFUN],[glib_DEFUN])
+m4_copy([AC_REQUIRE],[glib_REQUIRE])
+dnl
+dnl At the end, if we're not within glib, we'll define the public
+dnl definitions in terms of our private definitions.
+dnl
+
+# GLIB_LC_MESSAGES
+#--------------------
+glib_DEFUN([GLIB_LC_MESSAGES],
+  [AC_CHECK_HEADERS([locale.h])
+    if test $ac_cv_header_locale_h = yes; then
+    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+    if test $am_cv_val_LC_MESSAGES = yes; then
+      AC_DEFINE(HAVE_LC_MESSAGES, 1,
+        [Define if your <locale.h> file defines LC_MESSAGES.])
+    fi
+  fi])
+
+# GLIB_PATH_PROG_WITH_TEST
+#----------------------------
+dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+glib_DEFUN([GLIB_PATH_PROG_WITH_TEST],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  /*)
+  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+       ac_cv_path_$1="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+  ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+# GLIB_WITH_NLS
+#-----------------
+glib_DEFUN([GLIB_WITH_NLS],
+  dnl NLS is obligatory
+  [USE_NLS=yes
+    AC_SUBST(USE_NLS)
+
+    gt_cv_have_gettext=no
+
+    CATOBJEXT=NONE
+    XGETTEXT=:
+    INTLLIBS=
+
+    AC_CHECK_HEADER(libintl.h,
+     [gt_cv_func_dgettext_libintl="no"
+      libintl_extra_libs=""
+
+      #
+      # First check in libc
+      #
+      AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
+        [AC_TRY_LINK([
+#include <libintl.h>
+],
+         [return !ngettext ("","", 1)],
+         gt_cv_func_ngettext_libc=yes,
+          gt_cv_func_ngettext_libc=no)
+        ])
+  
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+             AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
+               [AC_TRY_LINK([
+#include <libintl.h>
+],
+                 [return !dgettext ("","")],
+                 gt_cv_func_dgettext_libc=yes,
+                 gt_cv_func_dgettext_libc=no)
+               ])
+      fi
+  
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+        AC_CHECK_FUNCS(bind_textdomain_codeset)
+      fi
+
+      #
+      # If we don't have everything we want, check in libintl
+      #
+      if test "$gt_cv_func_dgettext_libc" != "yes" \
+        || test "$gt_cv_func_ngettext_libc" != "yes" \
+         || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
+        
+        AC_CHECK_LIB(intl, bindtextdomain,
+           [AC_CHECK_LIB(intl, ngettext,
+                   [AC_CHECK_LIB(intl, dgettext,
+                                 gt_cv_func_dgettext_libintl=yes)])])
+
+       if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
+         AC_MSG_CHECKING([if -liconv is needed to use gettext])
+         AC_MSG_RESULT([])
+         AC_CHECK_LIB(intl, ngettext,
+               [AC_CHECK_LIB(intl, dcgettext,
+                      [gt_cv_func_dgettext_libintl=yes
+                       libintl_extra_libs=-liconv],
+                       :,-liconv)],
+               :,-liconv)
+        fi
+
+        #
+        # If we found libintl, then check in it for bind_textdomain_codeset();
+        # we'll prefer libc if neither have bind_textdomain_codeset(),
+        # and both have dgettext and ngettext
+        #
+        if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
+          glib_save_LIBS="$LIBS"
+          LIBS="$LIBS -lintl $libintl_extra_libs"
+          unset ac_cv_func_bind_textdomain_codeset
+          AC_CHECK_FUNCS(bind_textdomain_codeset)
+          LIBS="$glib_save_LIBS"
+
+          if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
+            gt_cv_func_dgettext_libc=no
+          else
+            if test "$gt_cv_func_dgettext_libc" = "yes" \
+               && test "$gt_cv_func_ngettext_libc" = "yes"; then
+              gt_cv_func_dgettext_libintl=no
+            fi
+          fi
+        fi
+      fi
+
+      if test "$gt_cv_func_dgettext_libc" = "yes" \
+       || test "$gt_cv_func_dgettext_libintl" = "yes"; then
+        gt_cv_have_gettext=yes
+      fi
+  
+      if test "$gt_cv_func_dgettext_libintl" = "yes"; then
+        INTLLIBS="-lintl $libintl_extra_libs"
+      fi
+  
+      if test "$gt_cv_have_gettext" = "yes"; then
+       AC_DEFINE(HAVE_GETTEXT,1,
+         [Define if the GNU gettext() function is already present or preinstalled.])
+       GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+         [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
+       if test "$MSGFMT" != "no"; then
+          glib_save_LIBS="$LIBS"
+          LIBS="$LIBS $INTLLIBS"
+         AC_CHECK_FUNCS(dcgettext)
+         MSGFMT_OPTS=
+         AC_MSG_CHECKING([if msgfmt accepts -c])
+         GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: test 1.0\n"
+"PO-Revision-Date: 2007-02-15 12:01+0100\n"
+"Last-Translator: test <foo@bar.xx>\n"
+"Language-Team: C <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])])
+         AC_SUBST(MSGFMT_OPTS)
+         AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+         GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+           [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+         AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
+                        return _nl_msg_cat_cntr],
+           [CATOBJEXT=.gmo 
+             DATADIRNAME=share],
+           [case $host in
+           *-*-solaris*)
+           dnl On Solaris, if bind_textdomain_codeset is in libc,
+           dnl GNU format message catalog is always supported,
+            dnl since both are added to the libc all together.
+           dnl Hence, we'd like to go with DATADIRNAME=share and
+           dnl and CATOBJEXT=.gmo in this case.
+            AC_CHECK_FUNC(bind_textdomain_codeset,
+             [CATOBJEXT=.gmo 
+               DATADIRNAME=share],
+             [CATOBJEXT=.mo
+               DATADIRNAME=lib])
+           ;;
+           *-*-openbsd*)
+           CATOBJEXT=.mo
+            DATADIRNAME=share
+           ;;
+           *)
+           CATOBJEXT=.mo
+            DATADIRNAME=lib
+           ;;
+           esac])
+          LIBS="$glib_save_LIBS"
+         INSTOBJEXT=.mo
+       else
+         gt_cv_have_gettext=no
+       fi
+      fi
+    ])
+
+    if test "$gt_cv_have_gettext" = "yes" ; then
+      AC_DEFINE(ENABLE_NLS, 1,
+        [always defined to indicate that i18n is enabled])
+    fi
+
+    dnl Test whether we really found GNU xgettext.
+    if test "$XGETTEXT" != ":"; then
+      dnl If it is not GNU xgettext we define it as : so that the
+      dnl Makefiles still can work.
+      if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+        : ;
+      else
+        AC_MSG_RESULT(
+         [found xgettext program is not GNU xgettext; ignore it])
+        XGETTEXT=":"
+      fi
+    fi
+
+    # We need to process the po/ directory.
+    POSUB=po
+
+    AC_OUTPUT_COMMANDS(
+      [case "$CONFIG_FILES" in *po/Makefile.in*)
+        sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+      esac])
+
+    dnl These rules are solely for the distribution goal.  While doing this
+    dnl we only have to keep exactly one list of the available catalogs
+    dnl in configure.ac.
+    for lang in $ALL_LINGUAS; do
+      GMOFILES="$GMOFILES $lang.gmo"
+      POFILES="$POFILES $lang.po"
+    done
+
+    dnl Make all variables we use known to autoconf.
+    AC_SUBST(CATALOGS)
+    AC_SUBST(CATOBJEXT)
+    AC_SUBST(DATADIRNAME)
+    AC_SUBST(GMOFILES)
+    AC_SUBST(INSTOBJEXT)
+    AC_SUBST(INTLLIBS)
+    AC_SUBST(PO_IN_DATADIR_TRUE)
+    AC_SUBST(PO_IN_DATADIR_FALSE)
+    AC_SUBST(POFILES)
+    AC_SUBST(POSUB)
+  ])
+
+# AM_GLIB_GNU_GETTEXT
+# -------------------
+# Do checks necessary for use of gettext. If a suitable implementation 
+# of gettext is found in either in libintl or in the C library,
+# it will set INTLLIBS to the libraries needed for use of gettext
+# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable
+# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST()
+# on various variables needed by the Makefile.in.in installed by 
+# glib-gettextize.
+dnl
+glib_DEFUN([GLIB_GNU_GETTEXT],
+  [AC_REQUIRE([AC_PROG_CC])dnl
+   AC_REQUIRE([AC_HEADER_STDC])dnl
+   
+   GLIB_LC_MESSAGES
+   GLIB_WITH_NLS
+
+   if test "$gt_cv_have_gettext" = "yes"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       AC_MSG_CHECKING(for catalogs to be installed)
+       NEW_LINGUAS=
+       for presentlang in $ALL_LINGUAS; do
+         useit=no
+         if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
+           desiredlanguages="$LINGUAS"
+         else
+           desiredlanguages="$ALL_LINGUAS"
+         fi
+         for desiredlang in $desiredlanguages; do
+          # Use the presentlang catalog if desiredlang is
+           #   a. equal to presentlang, or
+           #   b. a variant of presentlang (because in this case,
+           #      presentlang can be used as a fallback for messages
+           #      which are not translated in the desiredlang catalog).
+           case "$desiredlang" in
+             "$presentlang"*) useit=yes;;
+           esac
+         done
+         if test $useit = yes; then
+           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+         fi
+       done
+       LINGUAS=$NEW_LINGUAS
+       AC_MSG_RESULT($LINGUAS)
+     fi
+
+     dnl Construct list of names of catalog files to be constructed.
+     if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
+
+   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+   dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
+   dnl Try to locate is.
+   MKINSTALLDIRS=
+   if test -n "$ac_aux_dir"; then
+     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+   fi
+   if test -z "$MKINSTALLDIRS"; then
+     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+   fi
+   AC_SUBST(MKINSTALLDIRS)
+
+   dnl Generate list of files to be processed by xgettext which will
+   dnl be included in po/Makefile.
+   test -d po || mkdir po
+   if test "x$srcdir" != "x."; then
+     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+       posrcprefix="$srcdir/"
+     else
+       posrcprefix="../$srcdir/"
+     fi
+   else
+     posrcprefix="../"
+   fi
+   rm -f po/POTFILES
+   sed -e "/^#/d" -e "/^\$/d" -e "s,.*,        $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+       < $srcdir/po/POTFILES.in > po/POTFILES
+  ])
+
+# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
+# -------------------------------
+# Define VARIABLE to the location where catalog files will
+# be installed by po/Makefile.
+glib_DEFUN([GLIB_DEFINE_LOCALEDIR],
+[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl
+glib_save_prefix="$prefix"
+glib_save_exec_prefix="$exec_prefix"
+glib_save_datarootdir="$datarootdir"
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+datarootdir=`eval echo "${datarootdir}"`
+if test "x$CATOBJEXT" = "x.mo" ; then
+  localedir=`eval echo "${libdir}/locale"`
+else
+  localedir=`eval echo "${datadir}/locale"`
+fi
+prefix="$glib_save_prefix"
+exec_prefix="$glib_save_exec_prefix"
+datarootdir="$glib_save_datarootdir"
+AC_DEFINE_UNQUOTED($1, "$localedir",
+  [Define the location where the catalogs will be installed])
+])
+
+dnl
+dnl Now the definitions that aclocal will find
+dnl
+ifdef(glib_configure_ac,[],[
+AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
+AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
+])dnl
+
+# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL])
+# 
+# Create a temporary file with TEST-FILE as its contents and pass the
+# file name to PROGRAM.  Perform ACTION-IF-PASS if PROGRAM exits with
+# 0 and perform ACTION-IF-FAIL for any other exit status.
+AC_DEFUN([GLIB_RUN_PROG],
+[cat >conftest.foo <<_ACEOF
+$2
+_ACEOF
+if AC_RUN_LOG([$1 conftest.foo]); then
+  m4_ifval([$3], [$3], [:])
+m4_ifvaln([$4], [else $4])dnl
+echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD
+sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD
+fi])
+
+
+dnl GLIB_GSETTINGS
+dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether
+dnl the schema should be compiled
+dnl
+
+AC_DEFUN([GLIB_GSETTINGS],
+[
+  m4_pattern_allow([AM_V_GEN])
+  AC_ARG_ENABLE(schemas-compile,
+                AS_HELP_STRING([--disable-schemas-compile],
+                               [Disable regeneration of gschemas.compiled on install]),
+                [case ${enableval} in
+                  yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE=""  ;;
+                  no)  GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;;
+                  *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;;
+                 esac])
+  AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE])
+  PKG_PROG_PKG_CONFIG([0.16])
+  AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas])
+  if test x$cross_compiling != xyes; then
+    GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0`
+  else
+    AC_PATH_PROG(GLIB_COMPILE_SCHEMAS, glib-compile-schemas)
+  fi
+  AC_SUBST(GLIB_COMPILE_SCHEMAS)
+  if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then
+    ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2])
+  else
+    ifelse([$1],,[:],[$1])
+  fi
+
+  GSETTINGS_RULES='
+.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas
+
+mostlyclean-am: clean-gsettings-schemas
+
+gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE))
+
+%.gschema.valid: %.gschema.xml $(gsettings__enum_file)
+       $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch [$]@
+
+all-am: $(gsettings_SCHEMAS:.xml=.valid)
+uninstall-am: uninstall-gsettings-schemas
+install-data-am: install-gsettings-schemas
+
+.SECONDARY: $(gsettings_SCHEMAS)
+
+install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file)
+       @$(NORMAL_INSTALL)
+       if test -n "$^"; then \
+               test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \
+               $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \
+               test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \
+       fi
+
+uninstall-gsettings-schemas:
+       @$(NORMAL_UNINSTALL)
+       @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
+       test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
+
+clean-gsettings-schemas:
+       rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file)
+
+ifdef gsettings_ENUM_NAMESPACE
+$(gsettings__enum_file): $(gsettings_ENUM_FILES)
+       $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead "  <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod "    <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail "  </@type@>" --ftail "</schemalist>" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@
+endif
+'
+  _GSETTINGS_SUBST(GSETTINGS_RULES)
+])
+
+dnl _GSETTINGS_SUBST(VARIABLE)
+dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
+AC_DEFUN([_GSETTINGS_SUBST],
+[
+AC_SUBST([$1])
+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
+]
+)
+
+# nls.m4 serial 5 (gettext-0.18)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_NLS],
+[
+  AC_MSG_CHECKING([whether NLS is requested])
+  dnl Default is enabled NLS
+  AC_ARG_ENABLE([nls],
+    [  --disable-nls           do not use Native Language Support],
+    USE_NLS=$enableval, USE_NLS=yes)
+  AC_MSG_RESULT([$USE_NLS])
+  AC_SUBST([USE_NLS])
+])
+
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
+# 
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=m4_default([$1], [0.9.0])
+       AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               AC_MSG_RESULT([yes])
+       else
+               AC_MSG_RESULT([no])
+               PKG_CONFIG=""
+       fi
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_default([$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes ],
+                    [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+       AC_MSG_RESULT([no])
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+               $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+        else 
+               $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+       m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+        ])
+elif test $pkg_failed = untried; then
+       AC_MSG_RESULT([no])
+       m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+        ])
+else
+       $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+       $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+       $3
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+
+# PKG_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable pkgconfigdir as the location where a module
+# should install pkg-config .pc files. By default the directory is
+# $libdir/pkgconfig, but the default can be changed by passing
+# DIRECTORY. The user can override through the --with-pkgconfigdir
+# parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_INSTALLDIR
+
+
+# PKG_NOARCH_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable noarch_pkgconfigdir as the location where a
+# module should install arch-independent pkg-config .pc files. By
+# default the directory is $datadir/pkgconfig, but the default can be
+# changed by passing DIRECTORY. The user can override through the
+# --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_NOARCH_INSTALLDIR
+
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.13'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.13.4], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.13.4])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named 'Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`AS_DIRNAME("$mf")`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running 'make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "$am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`AS_DIRNAME(["$file"])`
+      AS_MKDIR_P([$dirpart/$fdir])
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each '.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+             [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+                            [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+                 [_AM_DEPENDENCIES([CC])],
+                 [m4_define([AC_PROG_CC],
+                            m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+                 [_AM_DEPENDENCIES([CXX])],
+                 [m4_define([AC_PROG_CXX],
+                            m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+                 [_AM_DEPENDENCIES([OBJC])],
+                 [m4_define([AC_PROG_OBJC],
+                            m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+                 [_AM_DEPENDENCIES([OBJCXX])],
+                 [m4_define([AC_PROG_OBJCXX],
+                            m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\    *)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST([MAINT])dnl
+]
+)
+
+# Check to see how 'make' treats includes.                 -*- Autoconf -*-
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+       @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_CC_C_O
+# --------------
+# Like AC_PROG_CC_C_O, but changed for automake.
+AC_DEFUN([AM_PROG_CC_C_O],
+[AC_REQUIRE([AC_PROG_CC_C_O])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+dnl Make sure AC_PROG_CC is never called again, or it will override our
+dnl setting of CC.
+m4_define([AC_PROG_CC],
+          [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
+])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\    *)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# ---------------------------------------------------------------------------
+# Adds support for distributing Python modules and packages.  To
+# install modules, copy them to $(pythondir), using the python_PYTHON
+# automake variable.  To install a package with the same name as the
+# automake package, install to $(pkgpythondir), or use the
+# pkgpython_PYTHON automake variable.
+#
+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
+# locations to install python extension modules (shared libraries).
+# Another macro is required to find the appropriate flags to compile
+# extension modules.
+#
+# If your package is configured with a different prefix to python,
+# users will have to add the install directory to the PYTHONPATH
+# environment variable, or create a .pth file (see the python
+# documentation for details).
+#
+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
+# cause an error if the version of python installed on the system
+# doesn't meet the requirement.  MINIMUM-VERSION should consist of
+# numbers and dots only.
+AC_DEFUN([AM_PATH_PYTHON],
+ [
+  dnl Find a Python interpreter.  Python versions prior to 2.0 are not
+  dnl supported. (2.0 was released on October 16, 2000).
+  m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl
+ python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])
+
+  AC_ARG_VAR([PYTHON], [the Python interpreter])
+
+  m4_if([$1],[],[
+    dnl No version check is needed.
+    # Find any Python interpreter.
+    if test -z "$PYTHON"; then
+      AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
+    fi
+    am_display_PYTHON=python
+  ], [
+    dnl A version check is needed.
+    if test -n "$PYTHON"; then
+      # If the user set $PYTHON, use it and don't search something else.
+      AC_MSG_CHECKING([whether $PYTHON version is >= $1])
+      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+                             [AC_MSG_RESULT([yes])],
+                             [AC_MSG_RESULT([no])
+                              AC_MSG_ERROR([Python interpreter is too old])])
+      am_display_PYTHON=$PYTHON
+    else
+      # Otherwise, try each interpreter until we find one that satisfies
+      # VERSION.
+      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+       [am_cv_pathless_PYTHON],[
+       for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
+         test "$am_cv_pathless_PYTHON" = none && break
+         AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+       done])
+      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+      if test "$am_cv_pathless_PYTHON" = none; then
+       PYTHON=:
+      else
+        AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+      fi
+      am_display_PYTHON=$am_cv_pathless_PYTHON
+    fi
+  ])
+
+  if test "$PYTHON" = :; then
+  dnl Run any user-specified action, or abort.
+    m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
+  else
+
+  dnl Query Python for its version number.  Getting [:3] seems to be
+  dnl the best way to do this; it's what "site.py" does in the standard
+  dnl library.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+    [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+  dnl Use the values of $prefix and $exec_prefix for the corresponding
+  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
+  dnl distinct variables so they can be overridden if need be.  However,
+  dnl general consensus is that you shouldn't need this ability.
+
+  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+  dnl At times (like when building shared libraries) you may want
+  dnl to know which OS platform Python thinks this is.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+    [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
+  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
+
+  dnl Set up 4 directories:
+
+  dnl pythondir -- where to install python scripts.  This is the
+  dnl   site-packages directory, not the python standard library
+  dnl   directory like in previous automake betas.  This behavior
+  dnl   is more consistent with lispdir.m4 for example.
+  dnl Query distutils for this directory.
+  AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+    [am_cv_python_pythondir],
+    [if test "x$prefix" = xNONE
+     then
+       am_py_prefix=$ac_default_prefix
+     else
+       am_py_prefix=$prefix
+     fi
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pythondir in
+     $am_py_prefix*)
+       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+       ;;
+     *)
+       case $am_py_prefix in
+         /usr|/System*) ;;
+         *)
+         am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+         ;;
+       esac
+       ;;
+     esac
+    ])
+  AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
+  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
+  dnl   more consistent with the rest of automake.
+
+  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+  dnl pyexecdir -- directory for installing python extension modules
+  dnl   (shared libraries)
+  dnl Query distutils for this directory.
+  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+    [am_cv_python_pyexecdir],
+    [if test "x$exec_prefix" = xNONE
+     then
+       am_py_exec_prefix=$am_py_prefix
+     else
+       am_py_exec_prefix=$exec_prefix
+     fi
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pyexecdir in
+     $am_py_exec_prefix*)
+       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+       ;;
+     *)
+       case $am_py_exec_prefix in
+         /usr|/System*) ;;
+         *)
+          am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+          ;;
+       esac
+       ;;
+     esac
+    ])
+  AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+
+  dnl Run any user-specified action.
+  $2
+  fi
+
+])
+
+
+# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# ---------------------------------------------------------------------------
+# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
+# Run ACTION-IF-FALSE otherwise.
+# This test uses sys.hexversion instead of the string equivalent (first
+# word of sys.version), in order to cope with versions such as 2.2c1.
+# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
+AC_DEFUN([AM_PYTHON_CHECK_VERSION],
+ [prog="import sys
+# split strings by '.' and convert to numeric.  Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
+sys.exit(sys.hexversion < minverhex)"
+  AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \   ]]*)
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+       && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
+
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+# Autoconf support for the Vala compiler
+
+# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the Vala compiler exists in $PATH.  If it is found, the
+# variable VALAC is set pointing to its absolute path.  Otherwise, it is
+# simply set to 'valac'.
+# Optionally a minimum release number of the compiler can be requested.
+# If the ACTION-IF-FOUND parameter is given, it will be run if a proper
+# Vala compiler is found.
+# Similarly, if the ACTION-IF-FOUND is given, it will be run if no proper
+# Vala compiler is found.  It defaults to simply print a warning about the
+# situation, but otherwise proceeding with the configuration.
+#
+# AM_PROG_VALAC([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# --------------------------------------------------------------------------
+AC_DEFUN([AM_PROG_VALAC],
+  [AC_PATH_PROG([VALAC], [valac], [valac])
+   AS_IF([test "$VALAC" != valac && test -n "$1"],
+      [AC_MSG_CHECKING([whether $VALAC is at least version $1])
+       am__vala_version=`$VALAC --version | sed 's/Vala  *//'`
+       AS_VERSION_COMPARE([$1], ["$am__vala_version"],
+         [AC_MSG_RESULT([yes])],
+         [AC_MSG_RESULT([yes])],
+         [AC_MSG_RESULT([no])
+          VALAC=valac])])
+    if test "$VALAC" = valac; then
+      m4_default([$3],
+        [AC_MSG_WARN([no proper vala compiler found])
+         AC_MSG_WARN([you will not be able to compile vala source files])])
+    else
+      m4_default([$2], [:])
+    fi])
+
+m4_include([m4/gconf-2.m4])
+m4_include([m4/gtk-doc.m4])
+m4_include([m4/intltool.m4])
+m4_include([m4/introspection.m4])
+m4_include([m4/libtool.m4])
+m4_include([m4/ltoptions.m4])
+m4_include([m4/ltsugar.m4])
+m4_include([m4/ltversion.m4])
+m4_include([m4/lt~obsolete.m4])
+m4_include([m4/vapigen.m4])
diff --git a/bindings/Makefile.in b/bindings/Makefile.in
new file mode 100644 (file)
index 0000000..23331b4
--- /dev/null
@@ -0,0 +1,764 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = bindings
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = vala pygobject
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@ENABLE_VAPIGEN_TRUE@VALA_DIR = vala
+@ENABLE_PYGOBJECT_TRUE@PYGOBJECT_DIR = pygobject
+SUBDIRS = \
+       $(VALA_DIR) \
+       $(PYGOBJECT_DIR) \
+       $(NULL)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu bindings/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/bindings/pygobject/Makefile.in b/bindings/pygobject/Makefile.in
new file mode 100644 (file)
index 0000000..ae40dc2
--- /dev/null
@@ -0,0 +1,1030 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set et sts=4 sw=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2012 Daiki Ueno <ueno@unixuser.org>
+# Copyright (c) 2011 Peng Huang <shawn.p.huang@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
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@ENABLE_TESTS_TRUE@am__append_1 = test-override-ibus.py
+subdir = bindings/pygobject
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(overrides_PYTHON) $(top_srcdir)/py-compile \
+       $(top_srcdir)/test-driver
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile)
+am__installdirs = "$(DESTDIR)$(overridesdir)"
+am__pep3147_tweak = \
+  sed -e 's|\.py$$||' -e 's|[^/]*$$|__pycache__/&.*.py|'
+py_compile = $(top_srcdir)/py-compile
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red='\e[0;31m'; \
+    grn='\e[0;32m'; \
+    lgn='\e[1;32m'; \
+    blu='\e[1;34m'; \
+    mgn='\e[0;35m'; \
+    brg='\e[1m'; \
+    std='\e[m'; \
+  fi; \
+}
+am__recheck_rx = ^[    ]*:recheck:[    ]*
+am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
+am__copy_in_global_log_rx = ^[         ]*:copy-in-global-log:[         ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+           recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[       ]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);                                     \
+$(am__vpath_adj_setup) $(am__vpath_adj)                        \
+$(am__tty_colors);                                     \
+srcdir=$(srcdir); export srcdir;                       \
+case "$@" in                                           \
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;   \
+    *) am__odir=.;;                                    \
+esac;                                                  \
+test "x$$am__odir" = x"." || test -d "$$am__odir"      \
+  || $(MKDIR_P) "$$am__odir" || exit $$?;              \
+if test -f "./$$f"; then dir=./;                       \
+elif test -f "$$f"; then dir=;                         \
+else dir="$(srcdir)/"; fi;                             \
+tst=$$dir$$f; log='$@';                                \
+if test -n '$(DISABLE_HARD_ERRORS)'; then              \
+  am__enable_hard_errors=no;                           \
+else                                                   \
+  am__enable_hard_errors=yes;                          \
+fi;                                                    \
+case " $(XFAIL_TESTS) " in                             \
+  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
+    am__expect_failure=yes;;                           \
+  *)                                                   \
+    am__expect_failure=no;;                            \
+esac;                                                  \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+       $(TEST_LOG_FLAGS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+NULL = 
+overridesdir = $(pyoverridesdir)
+overrides_PYTHON = \
+       gi/overrides/IBus.py                    \
+       $(NULL)
+
+TESTS = $(am__append_1)
+TESTS_ENVIRONMENT = \
+       PYTHONPATH=$(top_srcdir)/tests:$${PYTHONPATH:+:$$PYTHONPATH} \
+       LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$$LD_LIBRARY_PATH \
+       GI_TYPELIB_PATH=$(top_builddir)/src:$$GI_TYPELIB_PATH \
+       $(NULL)
+
+LOG_COMPILER = $(PYTHON) -B
+EXTRA_DIST = \
+       gi/__init__.py                          \
+       gi/overrides/__init__.py                \
+       test-override-ibus.py                   \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .log .test .test$(EXEEXT) .trs
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/pygobject/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu bindings/pygobject/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-overridesPYTHON: $(overrides_PYTHON)
+       @$(NORMAL_INSTALL)
+       @list='$(overrides_PYTHON)'; dlist=; list2=; test -n "$(overridesdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(overridesdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(overridesdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
+         if test -f $$b$$p; then \
+           $(am__strip_dir) \
+           dlist="$$dlist $$f"; \
+           list2="$$list2 $$b$$p"; \
+         else :; fi; \
+       done; \
+       for file in $$list2; do echo $$file; done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(overridesdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(overridesdir)" || exit $$?; \
+       done || exit $$?; \
+       if test -n "$$dlist"; then \
+         $(am__py_compile) --destdir "$(DESTDIR)" \
+                           --basedir "$(overridesdir)" $$dlist; \
+       else :; fi
+
+uninstall-overridesPYTHON:
+       @$(NORMAL_UNINSTALL)
+       @list='$(overrides_PYTHON)'; test -n "$(overridesdir)" || list=; \
+       py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$py_files" || exit 0; \
+       dir='$(DESTDIR)$(overridesdir)'; \
+       pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \
+       pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \
+       py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \
+       echo "$$py_files_pep3147";\
+       pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \
+       pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \
+       st=0; \
+       for files in \
+         "$$py_files" \
+         "$$pyc_files" \
+         "$$pyo_files" \
+         "$$pyc_files_pep3147" \
+         "$$pyo_files_pep3147" \
+       ; do \
+         $(am__uninstall_files_from_dir) || st=$$?; \
+       done; \
+       exit $$st
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+       @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+       @$(am__set_TESTS_bases); \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+                   done`; \
+       if test -n "$$redo_bases"; then \
+         redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+         redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+         if $(am__make_dryrun); then :; else \
+           rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+         fi; \
+       fi; \
+       if test -n "$$am__remaking_logs"; then \
+         echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+              "recursion detected" >&2; \
+       else \
+         am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+       fi; \
+       if $(am__make_dryrun); then :; else \
+         st=0;  \
+         errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+         for i in $$redo_bases; do \
+           test -f $$i.trs && test -r $$i.trs \
+             || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+           test -f $$i.log && test -r $$i.log \
+             || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+         done; \
+         test $$st -eq 0 || exit 1; \
+       fi
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
+       results=`for b in $$bases; do echo $$b.trs; done`; \
+       test -n "$$results" || results=/dev/null; \
+       all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+       pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+       fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+       skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+       xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+       xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+       error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+       if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+         success=true; \
+       else \
+         success=false; \
+       fi; \
+       br='==================='; br=$$br$$br$$br$$br; \
+       result_count () \
+       { \
+           if test x"$$1" = x"--maybe-color"; then \
+             maybe_colorize=yes; \
+           elif test x"$$1" = x"--no-color"; then \
+             maybe_colorize=no; \
+           else \
+             echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+           fi; \
+           shift; \
+           desc=$$1 count=$$2; \
+           if test $$maybe_colorize = yes && test $$count -gt 0; then \
+             color_start=$$3 color_end=$$std; \
+           else \
+             color_start= color_end=; \
+           fi; \
+           echo "$${color_start}# $$desc $$count$${color_end}"; \
+       }; \
+       create_testsuite_report () \
+       { \
+         result_count $$1 "TOTAL:" $$all   "$$brg"; \
+         result_count $$1 "PASS: " $$pass  "$$grn"; \
+         result_count $$1 "SKIP: " $$skip  "$$blu"; \
+         result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+         result_count $$1 "FAIL: " $$fail  "$$red"; \
+         result_count $$1 "XPASS:" $$xpass "$$red"; \
+         result_count $$1 "ERROR:" $$error "$$mgn"; \
+       }; \
+       {                                                               \
+         echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |       \
+           $(am__rst_title);                                           \
+         create_testsuite_report --no-color;                           \
+         echo;                                                         \
+         echo ".. contents:: :depth: 2";                               \
+         echo;                                                         \
+         for b in $$bases; do echo $$b; done                           \
+           | $(am__create_global_log);                                 \
+       } >$(TEST_SUITE_LOG).tmp || exit 1;                             \
+       mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
+       if $$success; then                                              \
+         col="$$grn";                                                  \
+        else                                                           \
+         col="$$red";                                                  \
+         test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);               \
+       fi;                                                             \
+       echo "$${col}$$br$${std}";                                      \
+       echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";   \
+       echo "$${col}$$br$${std}";                                      \
+       create_testsuite_report --maybe-color;                          \
+       echo "$$col$$br$$std";                                          \
+       if $$success; then :; else                                      \
+         echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";         \
+         if test -n "$(PACKAGE_BUGREPORT)"; then                       \
+           echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+         fi;                                                           \
+         echo "$$col$$br$$std";                                        \
+       fi;                                                             \
+       $$success || exit 1
+
+check-TESTS:
+       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+       exit $$?;
+recheck: all 
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       bases=`for i in $$bases; do echo $$i; done \
+                | $(am__list_recheck_tests)` || exit 1; \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       log_list=`echo $$log_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+               am__force_recheck=am--force-recheck \
+               TEST_LOGS="$$log_list"; \
+       exit $$?
+test-override-ibus.py.log: test-override-ibus.py
+       @p='test-override-ibus.py'; \
+       b='test-override-ibus.py'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+       @p='$<'; \
+       $(am__set_b); \
+       $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@      @p='$<'; \
+@am__EXEEXT_TRUE@      $(am__set_b); \
+@am__EXEEXT_TRUE@      $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@      --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@      $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@      "$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+       $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile
+installdirs:
+       for dir in "$(DESTDIR)$(overridesdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-overridesPYTHON
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-overridesPYTHON
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: all all-am check check-TESTS check-am clean clean-generic \
+       clean-libtool cscopelist-am ctags-am distclean \
+       distclean-generic distclean-libtool distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-overridesPYTHON \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       recheck tags-am uninstall uninstall-am \
+       uninstall-overridesPYTHON
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/bindings/vala/Makefile.in b/bindings/vala/Makefile.in
new file mode 100644 (file)
index 0000000..92e564c
--- /dev/null
@@ -0,0 +1,662 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = bindings/vala
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(vapidir)"
+DATA = $(vapi_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+vapi_deps = \
+       IBus-1.0.metadata \
+       IBus-1.0-custom.vala \
+       $(top_builddir)/src/IBus-1.0.gir \
+       $(NULL)
+
+VAPIGEN_VAPIS = ibus-1.0.vapi
+ibus_1_0_vapi_DEPS = gio-2.0
+ibus_1_0_vapi_METADATADIRS = $(srcdir)
+ibus_1_0_vapi_FILES = \
+       $(top_builddir)/src/IBus-1.0.gir \
+       $(srcdir)/IBus-1.0-custom.vala \
+       $(NULL)
+
+vapidir = $(datadir)/vala/vapi
+vapi_DATA = $(VAPIGEN_VAPIS) $(VAPIGEN_VAPIS:.vapi=.deps)
+MAINTAINERCLEANFILES = $(VAPIGEN_VAPIS)
+EXTRA_DIST = \
+       $(VAPIGEN_VAPIS) \
+       IBus-1.0.metadata \
+       IBus-1.0-custom.vala \
+       ibus-1.0.deps \
+       config.vapi \
+       xi.vapi \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/vala/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu bindings/vala/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-vapiDATA: $(vapi_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(vapidir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(vapidir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(vapidir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(vapidir)" || exit $$?; \
+       done
+
+uninstall-vapiDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(vapidir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(vapidir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-vapiDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-vapiDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip install-vapiDATA installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags-am uninstall uninstall-am uninstall-vapiDATA
+
+
+-include $(VAPIGEN_MAKEFILE)
+
+ibus-1.0.vapi: $(vapi_deps)
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/bindings/vala/ibus-1.0.vapi b/bindings/vala/ibus-1.0.vapi
new file mode 100644 (file)
index 0000000..305fd5e
--- /dev/null
@@ -0,0 +1,8977 @@
+/* ibus-1.0.vapi generated by vapigen-0.20, do not modify. */
+
+[CCode (cprefix = "IBus", gir_namespace = "IBus", gir_version = "1.0", lower_case_cprefix = "ibus_")]
+namespace IBus {
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_attr_list_get_type ()")]
+       public class AttrList : IBus.Serializable {
+               public weak GLib.Array<void*> attributes;
+               [CCode (has_construct_function = false)]
+               public AttrList ();
+               public void append (IBus.Attribute attr);
+               public unowned IBus.Attribute @get (uint index);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_attribute_get_type ()")]
+       public class Attribute : IBus.Serializable {
+               public uint end_index;
+               public uint start_index;
+               public uint type;
+               public uint value;
+               [CCode (has_construct_function = false)]
+               public Attribute (uint type, uint value, uint start_index, uint end_index);
+               public uint get_attr_type ();
+               public uint get_end_index ();
+               public uint get_start_index ();
+               public uint get_value ();
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_bus_get_type ()")]
+       public class Bus : IBus.Object {
+               [CCode (has_construct_function = false)]
+               public Bus ();
+               public bool add_match (string rule);
+               public async void add_match_async (string rule, int timeout_msec, GLib.Cancellable? cancellable);
+               public bool add_match_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               [CCode (has_construct_function = false)]
+               public Bus.@async ();
+               public IBus.InputContext create_input_context (string client_name);
+               public async void create_input_context_async (string client_name, int timeout_msec, GLib.Cancellable? cancellable);
+               public IBus.InputContext create_input_context_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public string current_input_context ();
+               public async void current_input_context_async (int timeout_msec, GLib.Cancellable? cancellable);
+               public string current_input_context_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public bool exit (bool restart);
+               public async void exit_async (bool restart, int timeout_msec, GLib.Cancellable? cancellable);
+               public bool exit_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public unowned IBus.Config get_config ();
+               public unowned GLib.DBusConnection get_connection ();
+               [CCode (array_length = false, array_null_terminated = true)]
+               public IBus.EngineDesc[] get_engines_by_names ([CCode (array_length = false, array_null_terminated = true)] string[] names);
+               public unowned IBus.EngineDesc get_global_engine ();
+               public async void get_global_engine_async (int timeout_msec, GLib.Cancellable? cancellable);
+               public unowned IBus.EngineDesc get_global_engine_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public GLib.Variant get_ibus_property (string property_name);
+               public async void get_ibus_property_async (string property_name, int timeout_msec, GLib.Cancellable? cancellable);
+               public GLib.Variant get_ibus_property_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public string get_name_owner (string name);
+               public async void get_name_owner_async (string name, int timeout_msec, GLib.Cancellable? cancellable);
+               public string get_name_owner_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               [Deprecated (since = "1.5.3")]
+               public bool get_use_global_engine ();
+               [Deprecated (since = "1.5.3")]
+               public async void get_use_global_engine_async (int timeout_msec, GLib.Cancellable? cancellable);
+               [Deprecated (since = "1.5.3")]
+               public bool get_use_global_engine_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               [Deprecated (since = "1.5.3")]
+               public bool get_use_sys_layout ();
+               [Deprecated (since = "1.5.3")]
+               public async void get_use_sys_layout_async (int timeout_msec, GLib.Cancellable? cancellable);
+               [Deprecated (since = "1.5.3")]
+               public bool get_use_sys_layout_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public unowned string hello ();
+               public bool is_connected ();
+               [Deprecated (since = "1.5.3")]
+               public bool is_global_engine_enabled ();
+               [Deprecated (since = "1.5.3")]
+               public async void is_global_engine_enabled_async (int timeout_msec, GLib.Cancellable? cancellable);
+               [Deprecated (since = "1.5.3")]
+               public bool is_global_engine_enabled_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               [Deprecated (since = "1.5.3")]
+               public GLib.List<weak IBus.EngineDesc> list_active_engines ();
+               [Deprecated (since = "1.5.3")]
+               public async void list_active_engines_async (int timeout_msec, GLib.Cancellable? cancellable);
+               [Deprecated (since = "1.5.3")]
+               public GLib.List<weak IBus.EngineDesc> list_active_engines_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public GLib.List<weak IBus.EngineDesc> list_engines ();
+               public async void list_engines_async (int timeout_msec, GLib.Cancellable? cancellable);
+               public GLib.List<weak IBus.EngineDesc> list_engines_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public GLib.List<string> list_names ();
+               public GLib.List<string> list_queued_owners (string name);
+               public bool name_has_owner (string name);
+               public async void name_has_owner_async (string name, int timeout_msec, GLib.Cancellable? cancellable);
+               public bool name_has_owner_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public bool preload_engines ([CCode (array_length = false, array_null_terminated = true)] string[] names);
+               public async void preload_engines_async ([CCode (array_length = false, array_null_terminated = true)] string[] names, int timeout_msec, GLib.Cancellable? cancellable);
+               public bool preload_engines_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public bool register_component (IBus.Component component);
+               public async void register_component_async (IBus.Component component, int timeout_msec, GLib.Cancellable? cancellable);
+               public bool register_component_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public uint release_name (string name);
+               public async void release_name_async (string name, int timeout_msec, GLib.Cancellable? cancellable);
+               public uint release_name_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public bool remove_match (string rule);
+               public async void remove_match_async (string rule, int timeout_msec, GLib.Cancellable? cancellable);
+               public bool remove_match_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public uint32 request_name (string name, uint32 flags);
+               public async void request_name_async (string name, uint flags, int timeout_msec, GLib.Cancellable? cancellable);
+               public uint request_name_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public bool set_global_engine (string global_engine);
+               public async void set_global_engine_async (string global_engine, int timeout_msec, GLib.Cancellable? cancellable);
+               public bool set_global_engine_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public void set_ibus_property (string property_name, GLib.Variant value);
+               public async void set_ibus_property_async (string property_name, GLib.Variant value, int timeout_msec, GLib.Cancellable? cancellable);
+               public bool set_ibus_property_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public void set_watch_dbus_signal (bool watch);
+               public void set_watch_ibus_signal (bool watch);
+               [NoAccessorMethod]
+               public bool connect_async { get; construct; }
+               public signal void connected ();
+               public signal void disconnected ();
+               public signal void global_engine_changed (string name);
+               public signal void name_owner_changed (string name, string old_owner, string new_owner);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_component_get_type ()")]
+       public class Component : IBus.Serializable {
+               [CCode (array_length = false, array_null_terminated = true)]
+               public weak void*[] pdummy;
+               [CCode (has_construct_function = false)]
+               public Component (string name, string description, string version, string license, string author, string homepage, string command_line, string textdomain);
+               public void add_engine (IBus.EngineDesc engine);
+               public void add_observed_path (string path, bool access_fs);
+               public bool check_modification ();
+               [CCode (has_construct_function = false)]
+               public Component.from_file (string filename);
+               public unowned string get_author ();
+               public unowned string get_description ();
+               public GLib.List<weak IBus.EngineDesc> get_engines ();
+               public unowned string get_exec ();
+               public unowned string get_homepage ();
+               public unowned string get_license ();
+               public unowned string get_name ();
+               public GLib.List<weak IBus.ObservedPath> get_observed_paths ();
+               public unowned string get_textdomain ();
+               public unowned string get_version ();
+               public void output (GLib.StringBuilder output, int indent);
+               public void output_engines (GLib.StringBuilder output, int indent);
+               public string author { get; construct; }
+               [NoAccessorMethod]
+               public string command_line { owned get; construct; }
+               public string description { get; construct; }
+               public string homepage { get; construct; }
+               public string license { get; construct; }
+               public string name { get; construct; }
+               public string textdomain { get; construct; }
+               public string version { get; construct; }
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_config_get_type ()")]
+       public class Config : IBus.Proxy, GLib.AsyncInitable, GLib.DBusInterface, GLib.Initable {
+               [CCode (has_construct_function = false)]
+               public Config (GLib.DBusConnection connection, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               [CCode (has_construct_function = false)]
+               public Config.async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public GLib.Variant get_value (string section, string name);
+               public async void get_value_async (string section, string name, int timeout_ms, GLib.Cancellable? cancellable);
+               public GLib.Variant get_value_async_finish (GLib.AsyncResult result) throws GLib.Error;
+               public GLib.Variant get_values (string section);
+               public async void get_values_async (string section, int timeout_ms, GLib.Cancellable? cancellable);
+               public GLib.Variant get_values_async_finish (GLib.AsyncResult result) throws GLib.Error;
+               public static async void new_async (GLib.DBusConnection connection, GLib.Cancellable? cancellable);
+               public bool set_value (string section, string name, GLib.Variant value);
+               public async void set_value_async (string section, string name, GLib.Variant value, int timeout_ms, GLib.Cancellable? cancellable);
+               public bool set_value_async_finish (GLib.AsyncResult result) throws GLib.Error;
+               public bool unset (string section, string name);
+               public bool unwatch (string? section, string? name);
+               public bool watch (string? section, string? name);
+               public signal void value_changed (string section, string name, GLib.Variant value);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_config_service_get_type ()")]
+       public class ConfigService : IBus.Service {
+               [CCode (has_construct_function = false)]
+               public ConfigService (GLib.DBusConnection connection);
+               [NoWrapper]
+               public virtual GLib.Variant get_value (string section, string name) throws GLib.Error;
+               [NoWrapper]
+               public virtual GLib.Variant get_values (string section) throws GLib.Error;
+               [NoWrapper]
+               public virtual bool set_value (string section, string name, GLib.Variant value) throws GLib.Error;
+               [NoWrapper]
+               public virtual bool unset_value (string section, string name) throws GLib.Error;
+               public void value_changed (string section, string name, GLib.Variant value);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_engine_get_type ()")]
+       public class Engine : IBus.Service {
+               public uint client_capabilities;
+               public IBus.Rectangle cursor_area;
+               public bool enabled;
+               public bool has_focus;
+               [CCode (has_construct_function = false)]
+               public Engine (string engine_name, string object_path, GLib.DBusConnection connection);
+               public void commit_text (IBus.Text text);
+               public void delete_surrounding_text (int offset, uint nchars);
+               public void forward_key_event (uint keyval, uint keycode, uint state);
+               public void get_content_type (out uint purpose, out uint hints);
+               public unowned string get_name ();
+               public void get_surrounding_text (out unowned IBus.Text text, out uint cursor_pos, out uint anchor_pos);
+               public void hide_auxiliary_text ();
+               public void hide_lookup_table ();
+               public void hide_preedit_text ();
+               public void register_properties (IBus.PropList prop_list);
+               public void show_auxiliary_text ();
+               public void show_lookup_table ();
+               public void show_preedit_text ();
+               public void update_auxiliary_text (IBus.Text text, bool visible);
+               public void update_lookup_table (IBus.LookupTable lookup_table, bool visible);
+               public void update_lookup_table_fast (IBus.LookupTable lookup_table, bool visible);
+               public void update_preedit_text (IBus.Text text, uint cursor_pos, bool visible);
+               public void update_preedit_text_with_mode (IBus.Text text, uint cursor_pos, bool visible, IBus.PreeditFocusMode mode);
+               public void update_property (IBus.Property prop);
+               [CCode (has_construct_function = false)]
+               public Engine.with_type (GLib.Type engine_type, string engine_name, string object_path, GLib.DBusConnection connection);
+               [NoAccessorMethod]
+               public string engine_name { owned get; construct; }
+               public virtual signal void cancel_hand_writing (uint n_strokes);
+               public virtual signal void candidate_clicked (uint index, uint button, uint state);
+               public virtual signal void cursor_down ();
+               public virtual signal void cursor_up ();
+               public virtual signal void disable ();
+               public virtual signal void enable ();
+               public virtual signal void focus_in ();
+               public virtual signal void focus_out ();
+               public virtual signal void page_down ();
+               public virtual signal void page_up ();
+               public virtual signal void process_hand_writing_event (void* coordinates, uint coordinates_len);
+               public virtual signal bool process_key_event (uint keyval, uint keycode, uint state);
+               public virtual signal void property_activate (string prop_name, uint prop_state);
+               public virtual signal void property_hide (string prop_name);
+               public virtual signal void property_show (string prop_name);
+               public virtual signal void reset ();
+               public virtual signal void set_capabilities (uint caps);
+               public virtual signal void set_content_type (uint purpose, uint hints);
+               public virtual signal void set_cursor_location (int x, int y, int w, int h);
+               public virtual signal void set_surrounding_text (GLib.Object text, uint cursor_index, uint anchor_pos);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_engine_desc_get_type ()")]
+       public class EngineDesc : IBus.Serializable {
+               [CCode (has_construct_function = false)]
+               public EngineDesc (string name, string longname, string description, string language, string license, string author, string icon, string layout);
+               public unowned string get_author ();
+               public unowned string get_description ();
+               public unowned string get_hotkeys ();
+               public unowned string get_icon ();
+               public unowned string get_language ();
+               public unowned string get_layout ();
+               public unowned string get_layout_option ();
+               public unowned string get_layout_variant ();
+               public unowned string get_license ();
+               public unowned string get_longname ();
+               public unowned string get_name ();
+               public uint get_rank ();
+               public unowned string get_setup ();
+               public unowned string get_symbol ();
+               public unowned string get_textdomain ();
+               public unowned string get_version ();
+               public void output (GLib.StringBuilder output, int indent);
+               public string author { get; construct; }
+               public string description { get; construct; }
+               public string hotkeys { get; construct; }
+               public string icon { get; construct; }
+               public string language { get; construct; }
+               public string layout { get; construct; }
+               public string layout_option { get; construct; }
+               public string layout_variant { get; construct; }
+               public string license { get; construct; }
+               public string longname { get; construct; }
+               public string name { get; construct; }
+               public uint rank { get; construct; }
+               public string setup { get; construct; }
+               public string symbol { get; construct; }
+               public string textdomain { get; construct; }
+               public string version { get; construct; }
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_engine_simple_get_type ()")]
+       public class EngineSimple : IBus.Engine {
+               [CCode (has_construct_function = false)]
+               protected EngineSimple ();
+               public void add_table ([CCode (array_length = false)] uint16[] data, int max_seq_len, int n_seqs);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_factory_get_type ()")]
+       public class Factory : IBus.Service {
+               [CCode (has_construct_function = false)]
+               public Factory (GLib.DBusConnection connection);
+               public void add_engine (string engine_name, GLib.Type engine_type);
+               [HasEmitter]
+               public virtual signal IBus.Engine create_engine (string engine_name);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_hotkey_profile_get_type ()")]
+       public class HotkeyProfile : IBus.Serializable {
+               [CCode (has_construct_function = false)]
+               public HotkeyProfile ();
+               public bool add_hotkey (uint keyval, uint modifiers, GLib.Quark event);
+               public bool add_hotkey_from_string (string str, GLib.Quark event);
+               public GLib.Quark filter_key_event (uint keyval, uint modifiers, uint prev_keyval, uint prev_modifiers, void* user_data);
+               public GLib.Quark lookup_hotkey (uint keyval, uint modifiers);
+               public bool remove_hotkey (uint keyval, uint modifiers);
+               public bool remove_hotkey_by_event (GLib.Quark event);
+               public virtual signal void trigger (uint event, void* user_data);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_input_context_get_type ()")]
+       public class InputContext : IBus.Proxy, GLib.AsyncInitable, GLib.DBusInterface, GLib.Initable {
+               [CCode (has_construct_function = false)]
+               public InputContext (string path, GLib.DBusConnection connection, GLib.Cancellable? cancellable = null) throws GLib.Error;
+               [CCode (has_construct_function = false)]
+               public InputContext.async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public void cancel_hand_writing (uint n_strokes);
+               public void focus_in ();
+               public void focus_out ();
+               public unowned IBus.EngineDesc get_engine ();
+               public async void get_engine_async (int timeout_msec, GLib.Cancellable? cancellable);
+               public unowned IBus.EngineDesc get_engine_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public static unowned IBus.InputContext get_input_context (string path, GLib.DBusConnection connection);
+               public static async void get_input_context_async (string path, GLib.DBusConnection connection, GLib.Cancellable? cancellable);
+               public static unowned IBus.InputContext get_input_context_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public bool needs_surrounding_text ();
+               public static async void new_async (string path, GLib.DBusConnection connection, GLib.Cancellable? cancellable);
+               public void process_hand_writing_event (double coordinates, uint coordinates_len);
+               public bool process_key_event (uint32 keyval, uint32 keycode, uint32 state);
+               public async void process_key_event_async (uint32 keyval, uint32 keycode, uint32 state, int timeout_msec, GLib.Cancellable? cancellable);
+               public bool process_key_event_async_finish (GLib.AsyncResult res) throws GLib.Error;
+               public void property_activate (string prop_name, uint32 state);
+               public void reset ();
+               public void set_capabilities (uint32 capabilities);
+               public void set_content_type (uint purpose, uint hints);
+               public void set_cursor_location (int32 x, int32 y, int32 w, int32 h);
+               public void set_engine (string name);
+               public void set_surrounding_text (IBus.Text text, uint32 cursor_pos, uint32 anchor_pos);
+               public signal void commit_text (IBus.Text text);
+               public signal void cursor_down_lookup_table ();
+               public signal void cursor_up_lookup_table ();
+               public signal void delete_surrounding_text (int offset, uint n_chars);
+               public signal void disabled ();
+               public signal void enabled ();
+               public signal void forward_key_event (uint keyval, uint keycode, uint modifiers);
+               public signal void hide_auxiliary_text ();
+               public signal void hide_lookup_table ();
+               public signal void hide_preedit_text ();
+               public signal void page_down_lookup_table ();
+               public signal void page_up_lookup_table ();
+               public signal void register_properties (IBus.PropList props);
+               public signal void show_auxiliary_text ();
+               public signal void show_lookup_table ();
+               public signal void show_preedit_text ();
+               public signal void update_auxiliary_text (IBus.Text object, bool p0);
+               public signal void update_lookup_table (IBus.LookupTable table, bool visible);
+               public signal void update_preedit_text (IBus.Text text, uint cursor_pos, bool visible);
+               public signal void update_property (IBus.Property prop);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_keymap_get_type ()")]
+       public class Keymap : IBus.Object {
+               [CCode (array_length = false, array_null_terminated = true)]
+               public weak uint[] keymap;
+               public weak string name;
+               [CCode (has_construct_function = false)]
+               public Keymap (string name);
+               public uint lookup_keysym (uint16 keycode, uint32 state);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_lookup_table_get_type ()")]
+       public class LookupTable : IBus.Serializable {
+               public weak GLib.Array<void*> candidates;
+               public uint cursor_pos;
+               public bool cursor_visible;
+               public weak GLib.Array<void*> labels;
+               public int orientation;
+               public uint page_size;
+               public bool round;
+               [CCode (has_construct_function = false)]
+               public LookupTable (uint page_size, uint cursor_pos, bool cursor_visible, bool round);
+               public void append_candidate (IBus.Text text);
+               public void append_label (IBus.Text text);
+               public void clear ();
+               public bool cursor_down ();
+               public bool cursor_up ();
+               public unowned IBus.Text get_candidate (uint index);
+               public uint get_cursor_in_page ();
+               public uint get_cursor_pos ();
+               public unowned IBus.Text get_label (uint index);
+               public uint get_number_of_candidates ();
+               public int get_orientation ();
+               public uint get_page_size ();
+               public bool is_cursor_visible ();
+               public bool is_round ();
+               public bool page_down ();
+               public bool page_up ();
+               public void set_cursor_pos (uint cursor_pos);
+               public void set_cursor_visible (bool visible);
+               public void set_label (uint index, IBus.Text text);
+               public void set_orientation (int orientation);
+               public void set_page_size (uint page_size);
+               public void set_round (bool round);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_object_get_type ()")]
+       public class Object : GLib.InitiallyUnowned {
+               public uint32 flags;
+               [CCode (has_construct_function = false)]
+               public Object ();
+               [HasEmitter]
+               public virtual signal void destroy ();
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_observed_path_get_type ()")]
+       public class ObservedPath : IBus.Serializable {
+               public bool is_dir;
+               public bool is_exist;
+               public long mtime;
+               public weak string path;
+               [CCode (has_construct_function = false)]
+               public ObservedPath (string path, bool fill_stat);
+               public bool check_modification ();
+               public void output (GLib.StringBuilder output, int indent);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_panel_service_get_type ()")]
+       public class PanelService : IBus.Service {
+               [CCode (has_construct_function = false)]
+               public PanelService (GLib.DBusConnection connection);
+               public void candidate_clicked (uint index, uint button, uint state);
+               public void cursor_down ();
+               public void cursor_up ();
+               public void page_down ();
+               public void page_up ();
+               public void property_activate (string prop_name, uint prop_state);
+               public void property_hide (string prop_name);
+               public void property_show (string prop_name);
+               public virtual signal void cursor_down_lookup_table ();
+               public virtual signal void cursor_up_lookup_table ();
+               public virtual signal void destroy_context (string input_context_path);
+               public virtual signal void focus_in (string input_context_path);
+               public virtual signal void focus_out (string input_context_path);
+               public virtual signal void hide_auxiliary_text ();
+               public virtual signal void hide_language_bar ();
+               public virtual signal void hide_lookup_table ();
+               public virtual signal void hide_preedit_text ();
+               public virtual signal void page_down_lookup_table ();
+               public virtual signal void page_up_lookup_table ();
+               public virtual signal void register_properties (IBus.PropList prop_list);
+               public virtual signal void reset ();
+               public virtual signal void set_cursor_location (int x, int y, int w, int h);
+               public virtual signal void show_auxiliary_text ();
+               public virtual signal void show_language_bar ();
+               public virtual signal void show_lookup_table ();
+               public virtual signal void show_preedit_text ();
+               public virtual signal void start_setup ();
+               public virtual signal void state_changed ();
+               public virtual signal void update_auxiliary_text (IBus.Text text, bool visible);
+               public virtual signal void update_lookup_table (IBus.LookupTable lookup_table, bool visible);
+               public virtual signal void update_preedit_text (IBus.Text text, uint cursor_pos, bool visible);
+               public virtual signal void update_property (IBus.Property prop);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_prop_list_get_type ()")]
+       public class PropList : IBus.Serializable {
+               public weak GLib.Array<void*> properties;
+               [CCode (has_construct_function = false)]
+               public PropList ();
+               public void append (IBus.Property prop);
+               public unowned IBus.Property @get (uint index);
+               public bool update_property (IBus.Property prop);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_property_get_type ()")]
+       public class Property : IBus.Serializable {
+               [CCode (has_construct_function = false)]
+               public Property (string key, IBus.PropType type, IBus.Text label, string? icon, IBus.Text tooltip, bool sensitive, bool visible, IBus.PropState state, IBus.PropList? prop_list);
+               public unowned string get_icon ();
+               public unowned string get_key ();
+               public unowned IBus.Text get_label ();
+               public IBus.PropType get_prop_type ();
+               public bool get_sensitive ();
+               public IBus.PropState get_state ();
+               public unowned IBus.PropList get_sub_props ();
+               public unowned IBus.Text get_symbol ();
+               public unowned IBus.Text get_tooltip ();
+               public bool get_visible ();
+               public void set_icon (string icon);
+               public void set_label (IBus.Text label);
+               public void set_sensitive (bool sensitive);
+               public void set_state (IBus.PropState state);
+               public void set_sub_props (IBus.PropList prop_list);
+               public void set_symbol (IBus.Text symbol);
+               public void set_tooltip (IBus.Text tooltip);
+               public void set_visible (bool visible);
+               public bool update (IBus.Property prop_update);
+               public string icon { get; set; }
+               public string key { get; construct; }
+               public IBus.Text label { get; set construct; }
+               public IBus.PropType prop_type { get; construct; }
+               public bool sensitive { get; set; }
+               public IBus.PropState state { get; set; }
+               public IBus.PropList sub_props { get; set; }
+               public IBus.Text symbol { get; set construct; }
+               public IBus.Text tooltip { get; set; }
+               public bool visible { get; set; }
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_proxy_get_type ()")]
+       public class Proxy : GLib.DBusProxy, GLib.AsyncInitable, GLib.DBusInterface, GLib.Initable {
+               public uint32 flags;
+               public bool own;
+               [CCode (has_construct_function = false)]
+               protected Proxy ();
+               [HasEmitter]
+               public virtual signal void destroy ();
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_registry_get_type ()")]
+       public class Registry : IBus.Serializable {
+               [CCode (has_construct_function = false)]
+               public Registry ();
+               public bool check_modification ();
+               public GLib.List<weak IBus.Component> get_components ();
+               public GLib.List<weak IBus.ObservedPath> get_observed_paths ();
+               public void load ();
+               public bool load_cache (bool is_user);
+               public bool load_cache_file (string filename);
+               public void load_in_dir (string dirname);
+               public void output (GLib.StringBuilder output, int indent);
+               public bool save_cache (bool is_user);
+               public bool save_cache_file (string filename);
+               public void start_monitor_changes ();
+               public signal void changed ();
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_serializable_get_type ()")]
+       public class Serializable : IBus.Object {
+               [CCode (has_construct_function = false)]
+               public Serializable ();
+               [NoWrapper]
+               public virtual bool copy (IBus.Serializable src);
+               [NoWrapper]
+               public virtual int deserialize (GLib.Variant variant);
+               public GLib.Variant get_qattachment (GLib.Quark key);
+               public void remove_qattachment (GLib.Quark key);
+               [NoWrapper]
+               public virtual bool serialize (GLib.VariantBuilder builder);
+               public void set_qattachment (GLib.Quark key, GLib.Variant value);
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_service_get_type ()")]
+       public class Service : IBus.Object {
+               [CCode (has_construct_function = false)]
+               public Service (GLib.DBusConnection connection, string path);
+               [CCode (cname = "ibus_service_class_add_interfaces")]
+               public class bool add_interfaces (string xml_data);
+               public bool emit_signal (string dest_bus_name, string interface_name, string signal_name, GLib.Variant parameters) throws GLib.Error;
+               public unowned GLib.DBusConnection get_connection ();
+               public unowned string get_object_path ();
+               public bool register (GLib.DBusConnection connection) throws GLib.Error;
+               [NoWrapper]
+               public virtual GLib.Variant service_get_property (GLib.DBusConnection connection, string sender, string object_path, string interface_name, string property_name) throws GLib.Error;
+               [NoWrapper]
+               public virtual void service_method_call (GLib.DBusConnection connection, string sender, string object_path, string interface_name, string method_name, GLib.Variant parameters, GLib.DBusMethodInvocation invocation);
+               [NoWrapper]
+               public virtual bool service_set_property (GLib.DBusConnection connection, string sender, string object_path, string interface_name, string property_name, GLib.Variant value) throws GLib.Error;
+               public void unregister (GLib.DBusConnection connection);
+               public GLib.DBusConnection connection { get; construct; }
+               public string object_path { get; construct; }
+       }
+       [CCode (cheader_filename = "ibus.h", type_id = "ibus_text_get_type ()")]
+       public class Text : IBus.Serializable {
+               public weak IBus.AttrList attrs;
+               public bool is_static;
+               public weak string text;
+               [CCode (has_construct_function = false)]
+               protected Text ();
+               public void append_attribute (uint type, uint value, uint start_index, int end_index);
+               [CCode (cname = "ibus_text_new_from_static_string", has_construct_function = false)]
+               public Text.from_static_string (string str);
+               [CCode (has_construct_function = false)]
+               public Text.from_string (string str);
+               [CCode (has_construct_function = false)]
+               public Text.from_ucs4 (unichar str);
+               [CCode (has_construct_function = false)]
+               public Text.from_unichar (unichar c);
+               public unowned IBus.AttrList get_attributes ();
+               public uint get_length ();
+               public unowned string get_text ();
+               public void set_attributes (IBus.AttrList attrs);
+       }
+       [CCode (cheader_filename = "ibus.h", has_type_id = false)]
+       public struct Rectangle {
+               public int x;
+               public int y;
+               public int width;
+               public int height;
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_ATTR_TYPE_", type_id = "ibus_attr_type_get_type ()")]
+       public enum AttrType {
+               UNDERLINE,
+               FOREGROUND,
+               BACKGROUND
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_ATTR_UNDERLINE_", type_id = "ibus_attr_underline_get_type ()")]
+       public enum AttrUnderline {
+               NONE,
+               SINGLE,
+               DOUBLE,
+               LOW,
+               ERROR;
+               public static unowned IBus.Attribute @new (uint underline_type, uint start_index, uint end_index);
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_BUS_NAME_FLAG_", type_id = "ibus_bus_name_flag_get_type ()")]
+       [Flags]
+       public enum BusNameFlag {
+               ALLOW_REPLACEMENT,
+               REPLACE_EXISTING,
+               DO_NOT_QUEUE
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_BUS_REQUEST_NAME_REPLY_", type_id = "ibus_bus_request_name_reply_get_type ()")]
+       public enum BusRequestNameReply {
+               PRIMARY_OWNER,
+               IN_QUEUE,
+               EXISTS,
+               ALREADY_OWNER
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_BUS_START_REPLY_", type_id = "ibus_bus_start_service_by_name_reply_get_type ()")]
+       public enum BusStartServiceByNameReply {
+               SUCCESS,
+               ALREADY_RUNNING
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_CAP_", type_id = "ibus_capabilite_get_type ()")]
+       [Flags]
+       public enum Capabilite {
+               PREEDIT_TEXT,
+               AUXILIARY_TEXT,
+               LOOKUP_TABLE,
+               FOCUS,
+               PROPERTY,
+               SURROUNDING_TEXT
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_INPUT_HINT_", type_id = "ibus_input_hints_get_type ()")]
+       [Flags]
+       public enum InputHints {
+               NONE,
+               SPELLCHECK,
+               NO_SPELLCHECK,
+               WORD_COMPLETION,
+               LOWERCASE,
+               UPPERCASE_CHARS,
+               UPPERCASE_WORDS,
+               UPPERCASE_SENTENCES,
+               INHIBIT_OSK
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_INPUT_PURPOSE_", type_id = "ibus_input_purpose_get_type ()")]
+       public enum InputPurpose {
+               FREE_FORM,
+               ALPHA,
+               DIGITS,
+               NUMBER,
+               PHONE,
+               URL,
+               EMAIL,
+               NAME,
+               PASSWORD,
+               PIN
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_", type_id = "ibus_modifier_type_get_type ()")]
+       [Flags]
+       public enum ModifierType {
+               SHIFT_MASK,
+               LOCK_MASK,
+               CONTROL_MASK,
+               MOD1_MASK,
+               MOD2_MASK,
+               MOD3_MASK,
+               MOD4_MASK,
+               MOD5_MASK,
+               BUTTON1_MASK,
+               BUTTON2_MASK,
+               BUTTON3_MASK,
+               BUTTON4_MASK,
+               BUTTON5_MASK,
+               HANDLED_MASK,
+               FORWARD_MASK,
+               IGNORED_MASK,
+               SUPER_MASK,
+               HYPER_MASK,
+               META_MASK,
+               RELEASE_MASK,
+               MODIFIER_MASK
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_", type_id = "ibus_object_flags_get_type ()")]
+       [Flags]
+       public enum ObjectFlags {
+               IN_DESTRUCTION,
+               DESTROYED,
+               RESERVED_1,
+               RESERVED_2
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_ORIENTATION_", type_id = "ibus_orientation_get_type ()")]
+       public enum Orientation {
+               HORIZONTAL,
+               VERTICAL,
+               SYSTEM
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_ENGINE_PREEDIT_", type_id = "ibus_preedit_focus_mode_get_type ()")]
+       public enum PreeditFocusMode {
+               CLEAR,
+               COMMIT
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "PROP_STATE_", type_id = "ibus_prop_state_get_type ()")]
+       public enum PropState {
+               UNCHECKED,
+               CHECKED,
+               INCONSISTENT
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "PROP_TYPE_", type_id = "ibus_prop_type_get_type ()")]
+       public enum PropType {
+               NORMAL,
+               TOGGLE,
+               RADIO,
+               MENU,
+               SEPARATOR
+       }
+       [CCode (cheader_filename = "ibus.h", cprefix = "IBUS_ERROR_")]
+       public errordomain Error {
+               NO_ENGINE,
+               NO_CONFIG,
+               FAILED;
+               public static GLib.Quark quark ();
+       }
+       [CCode (cheader_filename = "ibus.h", has_target = false)]
+       public delegate void FreeFunc (void* object);
+       [CCode (cheader_filename = "ibus.h", has_target = false)]
+       public delegate void ObjectDestroyFunc (IBus.Object arg0);
+       [CCode (cheader_filename = "ibus.h", has_target = false)]
+       public delegate bool SerializableCopyFunc (IBus.Serializable dest, IBus.Serializable src);
+       [CCode (cheader_filename = "ibus.h", has_target = false)]
+       public delegate int SerializableDeserializeFunc (IBus.Serializable serializable, GLib.Variant variant);
+       [CCode (cheader_filename = "ibus.h", has_target = false)]
+       public delegate bool SerializableSerializeFunc (IBus.Serializable serializable, GLib.VariantBuilder builder);
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_0")]
+       public const int @0;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_1")]
+       public const int @1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_2")]
+       public const int @2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3")]
+       public const int @3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_AltCursor")]
+       public const int @3270_AltCursor;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Attn")]
+       public const int @3270_Attn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_BackTab")]
+       public const int @3270_BackTab;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_ChangeScreen")]
+       public const int @3270_ChangeScreen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Copy")]
+       public const int @3270_Copy;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_CursorBlink")]
+       public const int @3270_CursorBlink;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_CursorSelect")]
+       public const int @3270_CursorSelect;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_DeleteWord")]
+       public const int @3270_DeleteWord;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Duplicate")]
+       public const int @3270_Duplicate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Enter")]
+       public const int @3270_Enter;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_EraseEOF")]
+       public const int @3270_EraseEOF;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_EraseInput")]
+       public const int @3270_EraseInput;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_ExSelect")]
+       public const int @3270_ExSelect;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_FieldMark")]
+       public const int @3270_FieldMark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Ident")]
+       public const int @3270_Ident;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Jump")]
+       public const int @3270_Jump;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_KeyClick")]
+       public const int @3270_KeyClick;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Left2")]
+       public const int @3270_Left2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_PA1")]
+       public const int @3270_PA1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_PA2")]
+       public const int @3270_PA2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_PA3")]
+       public const int @3270_PA3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Play")]
+       public const int @3270_Play;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_PrintScreen")]
+       public const int @3270_PrintScreen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Quit")]
+       public const int @3270_Quit;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Record")]
+       public const int @3270_Record;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Reset")]
+       public const int @3270_Reset;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Right2")]
+       public const int @3270_Right2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Rule")]
+       public const int @3270_Rule;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Setup")]
+       public const int @3270_Setup;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_3270_Test")]
+       public const int @3270_Test;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_4")]
+       public const int @4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_5")]
+       public const int @5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_6")]
+       public const int @6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_7")]
+       public const int @7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_8")]
+       public const int @8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_9")]
+       public const int @9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_A")]
+       public const int A;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_AE")]
+       public const int AE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Aacute")]
+       public const int Aacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Abelowdot")]
+       public const int Abelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Abreve")]
+       public const int Abreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Abreveacute")]
+       public const int Abreveacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Abrevebelowdot")]
+       public const int Abrevebelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Abrevegrave")]
+       public const int Abrevegrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Abrevehook")]
+       public const int Abrevehook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Abrevetilde")]
+       public const int Abrevetilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_AccessX_Enable")]
+       public const int AccessX_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_AccessX_Feedback_Enable")]
+       public const int AccessX_Feedback_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Acircumflex")]
+       public const int Acircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Acircumflexacute")]
+       public const int Acircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Acircumflexbelowdot")]
+       public const int Acircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Acircumflexgrave")]
+       public const int Acircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Acircumflexhook")]
+       public const int Acircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Acircumflextilde")]
+       public const int Acircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Adiaeresis")]
+       public const int Adiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Agrave")]
+       public const int Agrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ahook")]
+       public const int Ahook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Alt_L")]
+       public const int Alt_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Alt_R")]
+       public const int Alt_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Amacron")]
+       public const int Amacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Aogonek")]
+       public const int Aogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_0")]
+       public const int Arabic_0;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_1")]
+       public const int Arabic_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_2")]
+       public const int Arabic_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_3")]
+       public const int Arabic_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_4")]
+       public const int Arabic_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_5")]
+       public const int Arabic_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_6")]
+       public const int Arabic_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_7")]
+       public const int Arabic_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_8")]
+       public const int Arabic_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_9")]
+       public const int Arabic_9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_ain")]
+       public const int Arabic_ain;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_alef")]
+       public const int Arabic_alef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_alefmaksura")]
+       public const int Arabic_alefmaksura;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_beh")]
+       public const int Arabic_beh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_comma")]
+       public const int Arabic_comma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_dad")]
+       public const int Arabic_dad;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_dal")]
+       public const int Arabic_dal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_damma")]
+       public const int Arabic_damma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_dammatan")]
+       public const int Arabic_dammatan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_ddal")]
+       public const int Arabic_ddal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_farsi_yeh")]
+       public const int Arabic_farsi_yeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_fatha")]
+       public const int Arabic_fatha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_fathatan")]
+       public const int Arabic_fathatan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_feh")]
+       public const int Arabic_feh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_fullstop")]
+       public const int Arabic_fullstop;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_gaf")]
+       public const int Arabic_gaf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_ghain")]
+       public const int Arabic_ghain;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_ha")]
+       public const int Arabic_ha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_hah")]
+       public const int Arabic_hah;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_hamza")]
+       public const int Arabic_hamza;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_hamza_above")]
+       public const int Arabic_hamza_above;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_hamza_below")]
+       public const int Arabic_hamza_below;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_hamzaonalef")]
+       public const int Arabic_hamzaonalef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_hamzaonwaw")]
+       public const int Arabic_hamzaonwaw;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_hamzaonyeh")]
+       public const int Arabic_hamzaonyeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_hamzaunderalef")]
+       public const int Arabic_hamzaunderalef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_heh")]
+       public const int Arabic_heh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_heh_doachashmee")]
+       public const int Arabic_heh_doachashmee;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_heh_goal")]
+       public const int Arabic_heh_goal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_jeem")]
+       public const int Arabic_jeem;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_jeh")]
+       public const int Arabic_jeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_kaf")]
+       public const int Arabic_kaf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_kasra")]
+       public const int Arabic_kasra;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_kasratan")]
+       public const int Arabic_kasratan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_keheh")]
+       public const int Arabic_keheh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_khah")]
+       public const int Arabic_khah;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_lam")]
+       public const int Arabic_lam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_madda_above")]
+       public const int Arabic_madda_above;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_maddaonalef")]
+       public const int Arabic_maddaonalef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_meem")]
+       public const int Arabic_meem;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_noon")]
+       public const int Arabic_noon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_noon_ghunna")]
+       public const int Arabic_noon_ghunna;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_peh")]
+       public const int Arabic_peh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_percent")]
+       public const int Arabic_percent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_qaf")]
+       public const int Arabic_qaf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_question_mark")]
+       public const int Arabic_question_mark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_ra")]
+       public const int Arabic_ra;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_rreh")]
+       public const int Arabic_rreh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_sad")]
+       public const int Arabic_sad;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_seen")]
+       public const int Arabic_seen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_semicolon")]
+       public const int Arabic_semicolon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_shadda")]
+       public const int Arabic_shadda;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_sheen")]
+       public const int Arabic_sheen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_sukun")]
+       public const int Arabic_sukun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_superscript_alef")]
+       public const int Arabic_superscript_alef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_switch")]
+       public const int Arabic_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_tah")]
+       public const int Arabic_tah;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_tatweel")]
+       public const int Arabic_tatweel;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_tcheh")]
+       public const int Arabic_tcheh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_teh")]
+       public const int Arabic_teh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_tehmarbuta")]
+       public const int Arabic_tehmarbuta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_thal")]
+       public const int Arabic_thal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_theh")]
+       public const int Arabic_theh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_tteh")]
+       public const int Arabic_tteh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_veh")]
+       public const int Arabic_veh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_waw")]
+       public const int Arabic_waw;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_yeh")]
+       public const int Arabic_yeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_yeh_baree")]
+       public const int Arabic_yeh_baree;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_zah")]
+       public const int Arabic_zah;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Arabic_zain")]
+       public const int Arabic_zain;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Aring")]
+       public const int Aring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_AT")]
+       public const int Armenian_AT;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_AYB")]
+       public const int Armenian_AYB;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_BEN")]
+       public const int Armenian_BEN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_CHA")]
+       public const int Armenian_CHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_DA")]
+       public const int Armenian_DA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_DZA")]
+       public const int Armenian_DZA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_E")]
+       public const int Armenian_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_FE")]
+       public const int Armenian_FE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_GHAT")]
+       public const int Armenian_GHAT;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_GIM")]
+       public const int Armenian_GIM;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_HI")]
+       public const int Armenian_HI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_HO")]
+       public const int Armenian_HO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_INI")]
+       public const int Armenian_INI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_JE")]
+       public const int Armenian_JE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_KE")]
+       public const int Armenian_KE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_KEN")]
+       public const int Armenian_KEN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_KHE")]
+       public const int Armenian_KHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_LYUN")]
+       public const int Armenian_LYUN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_MEN")]
+       public const int Armenian_MEN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_NU")]
+       public const int Armenian_NU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_O")]
+       public const int Armenian_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_PE")]
+       public const int Armenian_PE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_PYUR")]
+       public const int Armenian_PYUR;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_RA")]
+       public const int Armenian_RA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_RE")]
+       public const int Armenian_RE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_SE")]
+       public const int Armenian_SE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_SHA")]
+       public const int Armenian_SHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_TCHE")]
+       public const int Armenian_TCHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_TO")]
+       public const int Armenian_TO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_TSA")]
+       public const int Armenian_TSA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_TSO")]
+       public const int Armenian_TSO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_TYUN")]
+       public const int Armenian_TYUN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_VEV")]
+       public const int Armenian_VEV;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_VO")]
+       public const int Armenian_VO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_VYUN")]
+       public const int Armenian_VYUN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_YECH")]
+       public const int Armenian_YECH;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ZA")]
+       public const int Armenian_ZA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ZHE")]
+       public const int Armenian_ZHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_accent")]
+       public const int Armenian_accent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_amanak")]
+       public const int Armenian_amanak;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_apostrophe")]
+       public const int Armenian_apostrophe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_at")]
+       public const int Armenian_at;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ayb")]
+       public const int Armenian_ayb;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ben")]
+       public const int Armenian_ben;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_but")]
+       public const int Armenian_but;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_cha")]
+       public const int Armenian_cha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_da")]
+       public const int Armenian_da;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_dza")]
+       public const int Armenian_dza;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_e")]
+       public const int Armenian_e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_exclam")]
+       public const int Armenian_exclam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_fe")]
+       public const int Armenian_fe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_full_stop")]
+       public const int Armenian_full_stop;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ghat")]
+       public const int Armenian_ghat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_gim")]
+       public const int Armenian_gim;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_hi")]
+       public const int Armenian_hi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ho")]
+       public const int Armenian_ho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_hyphen")]
+       public const int Armenian_hyphen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ini")]
+       public const int Armenian_ini;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_je")]
+       public const int Armenian_je;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ke")]
+       public const int Armenian_ke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ken")]
+       public const int Armenian_ken;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_khe")]
+       public const int Armenian_khe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ligature_ew")]
+       public const int Armenian_ligature_ew;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_lyun")]
+       public const int Armenian_lyun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_men")]
+       public const int Armenian_men;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_nu")]
+       public const int Armenian_nu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_o")]
+       public const int Armenian_o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_paruyk")]
+       public const int Armenian_paruyk;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_pe")]
+       public const int Armenian_pe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_pyur")]
+       public const int Armenian_pyur;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_question")]
+       public const int Armenian_question;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_ra")]
+       public const int Armenian_ra;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_re")]
+       public const int Armenian_re;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_se")]
+       public const int Armenian_se;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_separation_mark")]
+       public const int Armenian_separation_mark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_sha")]
+       public const int Armenian_sha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_shesht")]
+       public const int Armenian_shesht;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_tche")]
+       public const int Armenian_tche;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_to")]
+       public const int Armenian_to;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_tsa")]
+       public const int Armenian_tsa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_tso")]
+       public const int Armenian_tso;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_tyun")]
+       public const int Armenian_tyun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_verjaket")]
+       public const int Armenian_verjaket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_vev")]
+       public const int Armenian_vev;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_vo")]
+       public const int Armenian_vo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_vyun")]
+       public const int Armenian_vyun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_yech")]
+       public const int Armenian_yech;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_yentamna")]
+       public const int Armenian_yentamna;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_za")]
+       public const int Armenian_za;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Armenian_zhe")]
+       public const int Armenian_zhe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Atilde")]
+       public const int Atilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_AudibleBell_Enable")]
+       public const int AudibleBell_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_B")]
+       public const int B;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Babovedot")]
+       public const int Babovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_BackSpace")]
+       public const int BackSpace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Begin")]
+       public const int Begin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_BounceKeys_Enable")]
+       public const int BounceKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Break")]
+       public const int Break;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Byelorussian_SHORTU")]
+       public const int Byelorussian_SHORTU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Byelorussian_shortu")]
+       public const int Byelorussian_shortu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_C")]
+       public const int C;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cabovedot")]
+       public const int Cabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cacute")]
+       public const int Cacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cancel")]
+       public const int Cancel;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Caps_Lock")]
+       public const int Caps_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ccaron")]
+       public const int Ccaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ccedilla")]
+       public const int Ccedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ccircumflex")]
+       public const int Ccircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Clear")]
+       public const int Clear;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Codeinput")]
+       public const int Codeinput;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ColonSign")]
+       public const int ColonSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Control_L")]
+       public const int Control_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Control_R")]
+       public const int Control_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_CruzeiroSign")]
+       public const int CruzeiroSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_A")]
+       public const int Cyrillic_A;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_BE")]
+       public const int Cyrillic_BE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_CHE")]
+       public const int Cyrillic_CHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_CHE_descender")]
+       public const int Cyrillic_CHE_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_CHE_vertstroke")]
+       public const int Cyrillic_CHE_vertstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_DE")]
+       public const int Cyrillic_DE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_DZHE")]
+       public const int Cyrillic_DZHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_E")]
+       public const int Cyrillic_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_EF")]
+       public const int Cyrillic_EF;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_EL")]
+       public const int Cyrillic_EL;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_EM")]
+       public const int Cyrillic_EM;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_EN")]
+       public const int Cyrillic_EN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_EN_descender")]
+       public const int Cyrillic_EN_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ER")]
+       public const int Cyrillic_ER;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ES")]
+       public const int Cyrillic_ES;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_GHE")]
+       public const int Cyrillic_GHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_GHE_bar")]
+       public const int Cyrillic_GHE_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_HA")]
+       public const int Cyrillic_HA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_HARDSIGN")]
+       public const int Cyrillic_HARDSIGN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_HA_descender")]
+       public const int Cyrillic_HA_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_I")]
+       public const int Cyrillic_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_IE")]
+       public const int Cyrillic_IE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_IO")]
+       public const int Cyrillic_IO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_I_macron")]
+       public const int Cyrillic_I_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_JE")]
+       public const int Cyrillic_JE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_KA")]
+       public const int Cyrillic_KA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_KA_descender")]
+       public const int Cyrillic_KA_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_KA_vertstroke")]
+       public const int Cyrillic_KA_vertstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_LJE")]
+       public const int Cyrillic_LJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_NJE")]
+       public const int Cyrillic_NJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_O")]
+       public const int Cyrillic_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_O_bar")]
+       public const int Cyrillic_O_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_PE")]
+       public const int Cyrillic_PE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_SCHWA")]
+       public const int Cyrillic_SCHWA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_SHA")]
+       public const int Cyrillic_SHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_SHCHA")]
+       public const int Cyrillic_SHCHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_SHHA")]
+       public const int Cyrillic_SHHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_SHORTI")]
+       public const int Cyrillic_SHORTI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_SOFTSIGN")]
+       public const int Cyrillic_SOFTSIGN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_TE")]
+       public const int Cyrillic_TE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_TSE")]
+       public const int Cyrillic_TSE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_U")]
+       public const int Cyrillic_U;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_U_macron")]
+       public const int Cyrillic_U_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_U_straight")]
+       public const int Cyrillic_U_straight;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_U_straight_bar")]
+       public const int Cyrillic_U_straight_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_VE")]
+       public const int Cyrillic_VE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_YA")]
+       public const int Cyrillic_YA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_YERU")]
+       public const int Cyrillic_YERU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_YU")]
+       public const int Cyrillic_YU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ZE")]
+       public const int Cyrillic_ZE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ZHE")]
+       public const int Cyrillic_ZHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ZHE_descender")]
+       public const int Cyrillic_ZHE_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_a")]
+       public const int Cyrillic_a;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_be")]
+       public const int Cyrillic_be;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_che")]
+       public const int Cyrillic_che;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_che_descender")]
+       public const int Cyrillic_che_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_che_vertstroke")]
+       public const int Cyrillic_che_vertstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_de")]
+       public const int Cyrillic_de;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_dzhe")]
+       public const int Cyrillic_dzhe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_e")]
+       public const int Cyrillic_e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ef")]
+       public const int Cyrillic_ef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_el")]
+       public const int Cyrillic_el;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_em")]
+       public const int Cyrillic_em;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_en")]
+       public const int Cyrillic_en;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_en_descender")]
+       public const int Cyrillic_en_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_er")]
+       public const int Cyrillic_er;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_es")]
+       public const int Cyrillic_es;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ghe")]
+       public const int Cyrillic_ghe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ghe_bar")]
+       public const int Cyrillic_ghe_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ha")]
+       public const int Cyrillic_ha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ha_descender")]
+       public const int Cyrillic_ha_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_hardsign")]
+       public const int Cyrillic_hardsign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_i")]
+       public const int Cyrillic_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_i_macron")]
+       public const int Cyrillic_i_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ie")]
+       public const int Cyrillic_ie;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_io")]
+       public const int Cyrillic_io;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_je")]
+       public const int Cyrillic_je;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ka")]
+       public const int Cyrillic_ka;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ka_descender")]
+       public const int Cyrillic_ka_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ka_vertstroke")]
+       public const int Cyrillic_ka_vertstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_lje")]
+       public const int Cyrillic_lje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_nje")]
+       public const int Cyrillic_nje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_o")]
+       public const int Cyrillic_o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_o_bar")]
+       public const int Cyrillic_o_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_pe")]
+       public const int Cyrillic_pe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_schwa")]
+       public const int Cyrillic_schwa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_sha")]
+       public const int Cyrillic_sha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_shcha")]
+       public const int Cyrillic_shcha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_shha")]
+       public const int Cyrillic_shha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_shorti")]
+       public const int Cyrillic_shorti;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_softsign")]
+       public const int Cyrillic_softsign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_te")]
+       public const int Cyrillic_te;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_tse")]
+       public const int Cyrillic_tse;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_u")]
+       public const int Cyrillic_u;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_u_macron")]
+       public const int Cyrillic_u_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_u_straight")]
+       public const int Cyrillic_u_straight;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_u_straight_bar")]
+       public const int Cyrillic_u_straight_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ve")]
+       public const int Cyrillic_ve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ya")]
+       public const int Cyrillic_ya;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_yeru")]
+       public const int Cyrillic_yeru;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_yu")]
+       public const int Cyrillic_yu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_ze")]
+       public const int Cyrillic_ze;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_zhe")]
+       public const int Cyrillic_zhe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Cyrillic_zhe_descender")]
+       public const int Cyrillic_zhe_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_D")]
+       public const int D;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Dabovedot")]
+       public const int Dabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Dcaron")]
+       public const int Dcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Delete")]
+       public const int Delete;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_DongSign")]
+       public const int DongSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Down")]
+       public const int Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Dstroke")]
+       public const int Dstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_E")]
+       public const int E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ENG")]
+       public const int ENG;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ETH")]
+       public const int ETH;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Eabovedot")]
+       public const int Eabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Eacute")]
+       public const int Eacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ebelowdot")]
+       public const int Ebelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ecaron")]
+       public const int Ecaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ecircumflex")]
+       public const int Ecircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ecircumflexacute")]
+       public const int Ecircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ecircumflexbelowdot")]
+       public const int Ecircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ecircumflexgrave")]
+       public const int Ecircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ecircumflexhook")]
+       public const int Ecircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ecircumflextilde")]
+       public const int Ecircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_EcuSign")]
+       public const int EcuSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ediaeresis")]
+       public const int Ediaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Egrave")]
+       public const int Egrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ehook")]
+       public const int Ehook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Eisu_Shift")]
+       public const int Eisu_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Eisu_toggle")]
+       public const int Eisu_toggle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Emacron")]
+       public const int Emacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_End")]
+       public const int End;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Eogonek")]
+       public const int Eogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Escape")]
+       public const int Escape;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Eth")]
+       public const int Eth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Etilde")]
+       public const int Etilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_EuroSign")]
+       public const int EuroSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Execute")]
+       public const int Execute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F")]
+       public const int F;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F1")]
+       public const int F1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F10")]
+       public const int F10;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F11")]
+       public const int F11;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F12")]
+       public const int F12;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F13")]
+       public const int F13;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F14")]
+       public const int F14;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F15")]
+       public const int F15;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F16")]
+       public const int F16;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F17")]
+       public const int F17;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F18")]
+       public const int F18;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F19")]
+       public const int F19;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F2")]
+       public const int F2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F20")]
+       public const int F20;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F21")]
+       public const int F21;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F22")]
+       public const int F22;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F23")]
+       public const int F23;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F24")]
+       public const int F24;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F25")]
+       public const int F25;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F26")]
+       public const int F26;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F27")]
+       public const int F27;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F28")]
+       public const int F28;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F29")]
+       public const int F29;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F3")]
+       public const int F3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F30")]
+       public const int F30;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F31")]
+       public const int F31;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F32")]
+       public const int F32;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F33")]
+       public const int F33;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F34")]
+       public const int F34;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F35")]
+       public const int F35;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F4")]
+       public const int F4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F5")]
+       public const int F5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F6")]
+       public const int F6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F7")]
+       public const int F7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F8")]
+       public const int F8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_F9")]
+       public const int F9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_FFrancSign")]
+       public const int FFrancSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Fabovedot")]
+       public const int Fabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_0")]
+       public const int Farsi_0;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_1")]
+       public const int Farsi_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_2")]
+       public const int Farsi_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_3")]
+       public const int Farsi_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_4")]
+       public const int Farsi_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_5")]
+       public const int Farsi_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_6")]
+       public const int Farsi_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_7")]
+       public const int Farsi_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_8")]
+       public const int Farsi_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_9")]
+       public const int Farsi_9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Farsi_yeh")]
+       public const int Farsi_yeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Find")]
+       public const int Find;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_First_Virtual_Screen")]
+       public const int First_Virtual_Screen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_G")]
+       public const int G;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Gabovedot")]
+       public const int Gabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Gbreve")]
+       public const int Gbreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Gcaron")]
+       public const int Gcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Gcedilla")]
+       public const int Gcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Gcircumflex")]
+       public const int Gcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_an")]
+       public const int Georgian_an;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_ban")]
+       public const int Georgian_ban;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_can")]
+       public const int Georgian_can;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_char")]
+       public const int Georgian_char;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_chin")]
+       public const int Georgian_chin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_cil")]
+       public const int Georgian_cil;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_don")]
+       public const int Georgian_don;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_en")]
+       public const int Georgian_en;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_fi")]
+       public const int Georgian_fi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_gan")]
+       public const int Georgian_gan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_ghan")]
+       public const int Georgian_ghan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_hae")]
+       public const int Georgian_hae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_har")]
+       public const int Georgian_har;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_he")]
+       public const int Georgian_he;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_hie")]
+       public const int Georgian_hie;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_hoe")]
+       public const int Georgian_hoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_in")]
+       public const int Georgian_in;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_jhan")]
+       public const int Georgian_jhan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_jil")]
+       public const int Georgian_jil;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_kan")]
+       public const int Georgian_kan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_khar")]
+       public const int Georgian_khar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_las")]
+       public const int Georgian_las;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_man")]
+       public const int Georgian_man;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_nar")]
+       public const int Georgian_nar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_on")]
+       public const int Georgian_on;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_par")]
+       public const int Georgian_par;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_phar")]
+       public const int Georgian_phar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_qar")]
+       public const int Georgian_qar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_rae")]
+       public const int Georgian_rae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_san")]
+       public const int Georgian_san;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_shin")]
+       public const int Georgian_shin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_tan")]
+       public const int Georgian_tan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_tar")]
+       public const int Georgian_tar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_un")]
+       public const int Georgian_un;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_vin")]
+       public const int Georgian_vin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_we")]
+       public const int Georgian_we;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_xan")]
+       public const int Georgian_xan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_zen")]
+       public const int Georgian_zen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Georgian_zhar")]
+       public const int Georgian_zhar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_ALPHA")]
+       public const int Greek_ALPHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_ALPHAaccent")]
+       public const int Greek_ALPHAaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_BETA")]
+       public const int Greek_BETA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_CHI")]
+       public const int Greek_CHI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_DELTA")]
+       public const int Greek_DELTA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_EPSILON")]
+       public const int Greek_EPSILON;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_EPSILONaccent")]
+       public const int Greek_EPSILONaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_ETA")]
+       public const int Greek_ETA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_ETAaccent")]
+       public const int Greek_ETAaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_GAMMA")]
+       public const int Greek_GAMMA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_IOTA")]
+       public const int Greek_IOTA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_IOTAaccent")]
+       public const int Greek_IOTAaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_IOTAdiaeresis")]
+       public const int Greek_IOTAdiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_IOTAdieresis")]
+       public const int Greek_IOTAdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_KAPPA")]
+       public const int Greek_KAPPA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_LAMBDA")]
+       public const int Greek_LAMBDA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_LAMDA")]
+       public const int Greek_LAMDA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_MU")]
+       public const int Greek_MU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_NU")]
+       public const int Greek_NU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_OMEGA")]
+       public const int Greek_OMEGA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_OMEGAaccent")]
+       public const int Greek_OMEGAaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_OMICRON")]
+       public const int Greek_OMICRON;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_OMICRONaccent")]
+       public const int Greek_OMICRONaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_PHI")]
+       public const int Greek_PHI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_PI")]
+       public const int Greek_PI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_PSI")]
+       public const int Greek_PSI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_RHO")]
+       public const int Greek_RHO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_SIGMA")]
+       public const int Greek_SIGMA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_TAU")]
+       public const int Greek_TAU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_THETA")]
+       public const int Greek_THETA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_UPSILON")]
+       public const int Greek_UPSILON;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_UPSILONaccent")]
+       public const int Greek_UPSILONaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_UPSILONdieresis")]
+       public const int Greek_UPSILONdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_XI")]
+       public const int Greek_XI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_ZETA")]
+       public const int Greek_ZETA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_accentdieresis")]
+       public const int Greek_accentdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_alpha")]
+       public const int Greek_alpha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_alphaaccent")]
+       public const int Greek_alphaaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_beta")]
+       public const int Greek_beta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_chi")]
+       public const int Greek_chi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_delta")]
+       public const int Greek_delta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_epsilon")]
+       public const int Greek_epsilon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_epsilonaccent")]
+       public const int Greek_epsilonaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_eta")]
+       public const int Greek_eta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_etaaccent")]
+       public const int Greek_etaaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_finalsmallsigma")]
+       public const int Greek_finalsmallsigma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_gamma")]
+       public const int Greek_gamma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_horizbar")]
+       public const int Greek_horizbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_iota")]
+       public const int Greek_iota;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_iotaaccent")]
+       public const int Greek_iotaaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_iotaaccentdieresis")]
+       public const int Greek_iotaaccentdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_iotadieresis")]
+       public const int Greek_iotadieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_kappa")]
+       public const int Greek_kappa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_lambda")]
+       public const int Greek_lambda;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_lamda")]
+       public const int Greek_lamda;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_mu")]
+       public const int Greek_mu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_nu")]
+       public const int Greek_nu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_omega")]
+       public const int Greek_omega;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_omegaaccent")]
+       public const int Greek_omegaaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_omicron")]
+       public const int Greek_omicron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_omicronaccent")]
+       public const int Greek_omicronaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_phi")]
+       public const int Greek_phi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_pi")]
+       public const int Greek_pi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_psi")]
+       public const int Greek_psi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_rho")]
+       public const int Greek_rho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_sigma")]
+       public const int Greek_sigma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_switch")]
+       public const int Greek_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_tau")]
+       public const int Greek_tau;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_theta")]
+       public const int Greek_theta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_upsilon")]
+       public const int Greek_upsilon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_upsilonaccent")]
+       public const int Greek_upsilonaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_upsilonaccentdieresis")]
+       public const int Greek_upsilonaccentdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_upsilondieresis")]
+       public const int Greek_upsilondieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_xi")]
+       public const int Greek_xi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Greek_zeta")]
+       public const int Greek_zeta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_H")]
+       public const int H;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul")]
+       public const int Hangul;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_A")]
+       public const int Hangul_A;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_AE")]
+       public const int Hangul_AE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_AraeA")]
+       public const int Hangul_AraeA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_AraeAE")]
+       public const int Hangul_AraeAE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Banja")]
+       public const int Hangul_Banja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Cieuc")]
+       public const int Hangul_Cieuc;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Codeinput")]
+       public const int Hangul_Codeinput;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Dikeud")]
+       public const int Hangul_Dikeud;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_E")]
+       public const int Hangul_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_EO")]
+       public const int Hangul_EO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_EU")]
+       public const int Hangul_EU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_End")]
+       public const int Hangul_End;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Hanja")]
+       public const int Hangul_Hanja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Hieuh")]
+       public const int Hangul_Hieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_I")]
+       public const int Hangul_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Ieung")]
+       public const int Hangul_Ieung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Cieuc")]
+       public const int Hangul_J_Cieuc;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Dikeud")]
+       public const int Hangul_J_Dikeud;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Hieuh")]
+       public const int Hangul_J_Hieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Ieung")]
+       public const int Hangul_J_Ieung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Jieuj")]
+       public const int Hangul_J_Jieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Khieuq")]
+       public const int Hangul_J_Khieuq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Kiyeog")]
+       public const int Hangul_J_Kiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_KiyeogSios")]
+       public const int Hangul_J_KiyeogSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_KkogjiDalrinIeung")]
+       public const int Hangul_J_KkogjiDalrinIeung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Mieum")]
+       public const int Hangul_J_Mieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Nieun")]
+       public const int Hangul_J_Nieun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_NieunHieuh")]
+       public const int Hangul_J_NieunHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_NieunJieuj")]
+       public const int Hangul_J_NieunJieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_PanSios")]
+       public const int Hangul_J_PanSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Phieuf")]
+       public const int Hangul_J_Phieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Pieub")]
+       public const int Hangul_J_Pieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_PieubSios")]
+       public const int Hangul_J_PieubSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Rieul")]
+       public const int Hangul_J_Rieul;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_RieulHieuh")]
+       public const int Hangul_J_RieulHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_RieulKiyeog")]
+       public const int Hangul_J_RieulKiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_RieulMieum")]
+       public const int Hangul_J_RieulMieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_RieulPhieuf")]
+       public const int Hangul_J_RieulPhieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_RieulPieub")]
+       public const int Hangul_J_RieulPieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_RieulSios")]
+       public const int Hangul_J_RieulSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_RieulTieut")]
+       public const int Hangul_J_RieulTieut;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Sios")]
+       public const int Hangul_J_Sios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_SsangKiyeog")]
+       public const int Hangul_J_SsangKiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_SsangSios")]
+       public const int Hangul_J_SsangSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_Tieut")]
+       public const int Hangul_J_Tieut;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_J_YeorinHieuh")]
+       public const int Hangul_J_YeorinHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Jamo")]
+       public const int Hangul_Jamo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Jeonja")]
+       public const int Hangul_Jeonja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Jieuj")]
+       public const int Hangul_Jieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Khieuq")]
+       public const int Hangul_Khieuq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Kiyeog")]
+       public const int Hangul_Kiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_KiyeogSios")]
+       public const int Hangul_KiyeogSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_KkogjiDalrinIeung")]
+       public const int Hangul_KkogjiDalrinIeung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Mieum")]
+       public const int Hangul_Mieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_MultipleCandidate")]
+       public const int Hangul_MultipleCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Nieun")]
+       public const int Hangul_Nieun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_NieunHieuh")]
+       public const int Hangul_NieunHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_NieunJieuj")]
+       public const int Hangul_NieunJieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_O")]
+       public const int Hangul_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_OE")]
+       public const int Hangul_OE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_PanSios")]
+       public const int Hangul_PanSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Phieuf")]
+       public const int Hangul_Phieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Pieub")]
+       public const int Hangul_Pieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_PieubSios")]
+       public const int Hangul_PieubSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_PostHanja")]
+       public const int Hangul_PostHanja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_PreHanja")]
+       public const int Hangul_PreHanja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_PreviousCandidate")]
+       public const int Hangul_PreviousCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Rieul")]
+       public const int Hangul_Rieul;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_RieulHieuh")]
+       public const int Hangul_RieulHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_RieulKiyeog")]
+       public const int Hangul_RieulKiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_RieulMieum")]
+       public const int Hangul_RieulMieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_RieulPhieuf")]
+       public const int Hangul_RieulPhieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_RieulPieub")]
+       public const int Hangul_RieulPieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_RieulSios")]
+       public const int Hangul_RieulSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_RieulTieut")]
+       public const int Hangul_RieulTieut;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_RieulYeorinHieuh")]
+       public const int Hangul_RieulYeorinHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Romaja")]
+       public const int Hangul_Romaja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_SingleCandidate")]
+       public const int Hangul_SingleCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Sios")]
+       public const int Hangul_Sios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Special")]
+       public const int Hangul_Special;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_SsangDikeud")]
+       public const int Hangul_SsangDikeud;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_SsangJieuj")]
+       public const int Hangul_SsangJieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_SsangKiyeog")]
+       public const int Hangul_SsangKiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_SsangPieub")]
+       public const int Hangul_SsangPieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_SsangSios")]
+       public const int Hangul_SsangSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Start")]
+       public const int Hangul_Start;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_SunkyeongeumMieum")]
+       public const int Hangul_SunkyeongeumMieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_SunkyeongeumPhieuf")]
+       public const int Hangul_SunkyeongeumPhieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_SunkyeongeumPieub")]
+       public const int Hangul_SunkyeongeumPieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_Tieut")]
+       public const int Hangul_Tieut;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_U")]
+       public const int Hangul_U;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_WA")]
+       public const int Hangul_WA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_WAE")]
+       public const int Hangul_WAE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_WE")]
+       public const int Hangul_WE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_WEO")]
+       public const int Hangul_WEO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_WI")]
+       public const int Hangul_WI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_YA")]
+       public const int Hangul_YA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_YAE")]
+       public const int Hangul_YAE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_YE")]
+       public const int Hangul_YE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_YEO")]
+       public const int Hangul_YEO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_YI")]
+       public const int Hangul_YI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_YO")]
+       public const int Hangul_YO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_YU")]
+       public const int Hangul_YU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_YeorinHieuh")]
+       public const int Hangul_YeorinHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hangul_switch")]
+       public const int Hangul_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hankaku")]
+       public const int Hankaku;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hcircumflex")]
+       public const int Hcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hebrew_switch")]
+       public const int Hebrew_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Help")]
+       public const int Help;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Henkan")]
+       public const int Henkan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Henkan_Mode")]
+       public const int Henkan_Mode;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hiragana")]
+       public const int Hiragana;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hiragana_Katakana")]
+       public const int Hiragana_Katakana;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Home")]
+       public const int Home;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hstroke")]
+       public const int Hstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hyper_L")]
+       public const int Hyper_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Hyper_R")]
+       public const int Hyper_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_I")]
+       public const int I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_INTERFACE_CONFIG")]
+       public const string INTERFACE_CONFIG;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_INTERFACE_ENGINE")]
+       public const string INTERFACE_ENGINE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_INTERFACE_FACTORY")]
+       public const string INTERFACE_FACTORY;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_INTERFACE_IBUS")]
+       public const string INTERFACE_IBUS;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_INTERFACE_INPUT_CONTEXT")]
+       public const string INTERFACE_INPUT_CONTEXT;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_INTERFACE_NOTIFICATIONS")]
+       public const string INTERFACE_NOTIFICATIONS;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_INTERFACE_PANEL")]
+       public const string INTERFACE_PANEL;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Center_Object")]
+       public const int ISO_Center_Object;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Continuous_Underline")]
+       public const int ISO_Continuous_Underline;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Discontinuous_Underline")]
+       public const int ISO_Discontinuous_Underline;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Emphasize")]
+       public const int ISO_Emphasize;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Enter")]
+       public const int ISO_Enter;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Fast_Cursor_Down")]
+       public const int ISO_Fast_Cursor_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Fast_Cursor_Left")]
+       public const int ISO_Fast_Cursor_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Fast_Cursor_Right")]
+       public const int ISO_Fast_Cursor_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Fast_Cursor_Up")]
+       public const int ISO_Fast_Cursor_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_First_Group")]
+       public const int ISO_First_Group;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_First_Group_Lock")]
+       public const int ISO_First_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Group_Latch")]
+       public const int ISO_Group_Latch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Group_Lock")]
+       public const int ISO_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Group_Shift")]
+       public const int ISO_Group_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Last_Group")]
+       public const int ISO_Last_Group;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Last_Group_Lock")]
+       public const int ISO_Last_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Left_Tab")]
+       public const int ISO_Left_Tab;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Level2_Latch")]
+       public const int ISO_Level2_Latch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Level3_Latch")]
+       public const int ISO_Level3_Latch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Level3_Lock")]
+       public const int ISO_Level3_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Level3_Shift")]
+       public const int ISO_Level3_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Level5_Latch")]
+       public const int ISO_Level5_Latch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Level5_Lock")]
+       public const int ISO_Level5_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Level5_Shift")]
+       public const int ISO_Level5_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Lock")]
+       public const int ISO_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Move_Line_Down")]
+       public const int ISO_Move_Line_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Move_Line_Up")]
+       public const int ISO_Move_Line_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Next_Group")]
+       public const int ISO_Next_Group;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Next_Group_Lock")]
+       public const int ISO_Next_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Partial_Line_Down")]
+       public const int ISO_Partial_Line_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Partial_Line_Up")]
+       public const int ISO_Partial_Line_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Partial_Space_Left")]
+       public const int ISO_Partial_Space_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Partial_Space_Right")]
+       public const int ISO_Partial_Space_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Prev_Group")]
+       public const int ISO_Prev_Group;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Prev_Group_Lock")]
+       public const int ISO_Prev_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Release_Both_Margins")]
+       public const int ISO_Release_Both_Margins;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Release_Margin_Left")]
+       public const int ISO_Release_Margin_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Release_Margin_Right")]
+       public const int ISO_Release_Margin_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Set_Margin_Left")]
+       public const int ISO_Set_Margin_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ISO_Set_Margin_Right")]
+       public const int ISO_Set_Margin_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Iabovedot")]
+       public const int Iabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Iacute")]
+       public const int Iacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ibelowdot")]
+       public const int Ibelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ibreve")]
+       public const int Ibreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Icircumflex")]
+       public const int Icircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Idiaeresis")]
+       public const int Idiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Igrave")]
+       public const int Igrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ihook")]
+       public const int Ihook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Imacron")]
+       public const int Imacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Insert")]
+       public const int Insert;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Iogonek")]
+       public const int Iogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Itilde")]
+       public const int Itilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_J")]
+       public const int J;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Jcircumflex")]
+       public const int Jcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_K")]
+       public const int K;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_0")]
+       public const int KEY_0;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_1")]
+       public const int KEY_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_2")]
+       public const int KEY_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3")]
+       public const int KEY_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_AltCursor")]
+       public const int KEY_3270_AltCursor;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Attn")]
+       public const int KEY_3270_Attn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_BackTab")]
+       public const int KEY_3270_BackTab;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_ChangeScreen")]
+       public const int KEY_3270_ChangeScreen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Copy")]
+       public const int KEY_3270_Copy;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_CursorBlink")]
+       public const int KEY_3270_CursorBlink;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_CursorSelect")]
+       public const int KEY_3270_CursorSelect;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_DeleteWord")]
+       public const int KEY_3270_DeleteWord;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Duplicate")]
+       public const int KEY_3270_Duplicate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Enter")]
+       public const int KEY_3270_Enter;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_EraseEOF")]
+       public const int KEY_3270_EraseEOF;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_EraseInput")]
+       public const int KEY_3270_EraseInput;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_ExSelect")]
+       public const int KEY_3270_ExSelect;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_FieldMark")]
+       public const int KEY_3270_FieldMark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Ident")]
+       public const int KEY_3270_Ident;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Jump")]
+       public const int KEY_3270_Jump;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_KeyClick")]
+       public const int KEY_3270_KeyClick;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Left2")]
+       public const int KEY_3270_Left2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_PA1")]
+       public const int KEY_3270_PA1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_PA2")]
+       public const int KEY_3270_PA2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_PA3")]
+       public const int KEY_3270_PA3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Play")]
+       public const int KEY_3270_Play;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_PrintScreen")]
+       public const int KEY_3270_PrintScreen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Quit")]
+       public const int KEY_3270_Quit;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Record")]
+       public const int KEY_3270_Record;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Reset")]
+       public const int KEY_3270_Reset;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Right2")]
+       public const int KEY_3270_Right2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Rule")]
+       public const int KEY_3270_Rule;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Setup")]
+       public const int KEY_3270_Setup;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_3270_Test")]
+       public const int KEY_3270_Test;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_4")]
+       public const int KEY_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_5")]
+       public const int KEY_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_6")]
+       public const int KEY_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_7")]
+       public const int KEY_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_8")]
+       public const int KEY_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_9")]
+       public const int KEY_9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_A")]
+       public const int KEY_A;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_AE")]
+       public const int KEY_AE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Aacute")]
+       public const int KEY_Aacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Abelowdot")]
+       public const int KEY_Abelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Abreve")]
+       public const int KEY_Abreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Abreveacute")]
+       public const int KEY_Abreveacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Abrevebelowdot")]
+       public const int KEY_Abrevebelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Abrevegrave")]
+       public const int KEY_Abrevegrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Abrevehook")]
+       public const int KEY_Abrevehook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Abrevetilde")]
+       public const int KEY_Abrevetilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_AccessX_Enable")]
+       public const int KEY_AccessX_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_AccessX_Feedback_Enable")]
+       public const int KEY_AccessX_Feedback_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Acircumflex")]
+       public const int KEY_Acircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Acircumflexacute")]
+       public const int KEY_Acircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Acircumflexbelowdot")]
+       public const int KEY_Acircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Acircumflexgrave")]
+       public const int KEY_Acircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Acircumflexhook")]
+       public const int KEY_Acircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Acircumflextilde")]
+       public const int KEY_Acircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Adiaeresis")]
+       public const int KEY_Adiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Agrave")]
+       public const int KEY_Agrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ahook")]
+       public const int KEY_Ahook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Alt_L")]
+       public const int KEY_Alt_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Alt_R")]
+       public const int KEY_Alt_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Amacron")]
+       public const int KEY_Amacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Aogonek")]
+       public const int KEY_Aogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_0")]
+       public const int KEY_Arabic_0;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_1")]
+       public const int KEY_Arabic_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_2")]
+       public const int KEY_Arabic_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_3")]
+       public const int KEY_Arabic_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_4")]
+       public const int KEY_Arabic_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_5")]
+       public const int KEY_Arabic_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_6")]
+       public const int KEY_Arabic_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_7")]
+       public const int KEY_Arabic_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_8")]
+       public const int KEY_Arabic_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_9")]
+       public const int KEY_Arabic_9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_ain")]
+       public const int KEY_Arabic_ain;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_alef")]
+       public const int KEY_Arabic_alef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_alefmaksura")]
+       public const int KEY_Arabic_alefmaksura;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_beh")]
+       public const int KEY_Arabic_beh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_comma")]
+       public const int KEY_Arabic_comma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_dad")]
+       public const int KEY_Arabic_dad;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_dal")]
+       public const int KEY_Arabic_dal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_damma")]
+       public const int KEY_Arabic_damma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_dammatan")]
+       public const int KEY_Arabic_dammatan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_ddal")]
+       public const int KEY_Arabic_ddal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_farsi_yeh")]
+       public const int KEY_Arabic_farsi_yeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_fatha")]
+       public const int KEY_Arabic_fatha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_fathatan")]
+       public const int KEY_Arabic_fathatan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_feh")]
+       public const int KEY_Arabic_feh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_fullstop")]
+       public const int KEY_Arabic_fullstop;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_gaf")]
+       public const int KEY_Arabic_gaf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_ghain")]
+       public const int KEY_Arabic_ghain;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_ha")]
+       public const int KEY_Arabic_ha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_hah")]
+       public const int KEY_Arabic_hah;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_hamza")]
+       public const int KEY_Arabic_hamza;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_hamza_above")]
+       public const int KEY_Arabic_hamza_above;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_hamza_below")]
+       public const int KEY_Arabic_hamza_below;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_hamzaonalef")]
+       public const int KEY_Arabic_hamzaonalef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_hamzaonwaw")]
+       public const int KEY_Arabic_hamzaonwaw;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_hamzaonyeh")]
+       public const int KEY_Arabic_hamzaonyeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_hamzaunderalef")]
+       public const int KEY_Arabic_hamzaunderalef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_heh")]
+       public const int KEY_Arabic_heh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_heh_doachashmee")]
+       public const int KEY_Arabic_heh_doachashmee;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_heh_goal")]
+       public const int KEY_Arabic_heh_goal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_jeem")]
+       public const int KEY_Arabic_jeem;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_jeh")]
+       public const int KEY_Arabic_jeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_kaf")]
+       public const int KEY_Arabic_kaf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_kasra")]
+       public const int KEY_Arabic_kasra;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_kasratan")]
+       public const int KEY_Arabic_kasratan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_keheh")]
+       public const int KEY_Arabic_keheh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_khah")]
+       public const int KEY_Arabic_khah;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_lam")]
+       public const int KEY_Arabic_lam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_madda_above")]
+       public const int KEY_Arabic_madda_above;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_maddaonalef")]
+       public const int KEY_Arabic_maddaonalef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_meem")]
+       public const int KEY_Arabic_meem;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_noon")]
+       public const int KEY_Arabic_noon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_noon_ghunna")]
+       public const int KEY_Arabic_noon_ghunna;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_peh")]
+       public const int KEY_Arabic_peh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_percent")]
+       public const int KEY_Arabic_percent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_qaf")]
+       public const int KEY_Arabic_qaf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_question_mark")]
+       public const int KEY_Arabic_question_mark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_ra")]
+       public const int KEY_Arabic_ra;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_rreh")]
+       public const int KEY_Arabic_rreh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_sad")]
+       public const int KEY_Arabic_sad;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_seen")]
+       public const int KEY_Arabic_seen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_semicolon")]
+       public const int KEY_Arabic_semicolon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_shadda")]
+       public const int KEY_Arabic_shadda;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_sheen")]
+       public const int KEY_Arabic_sheen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_sukun")]
+       public const int KEY_Arabic_sukun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_superscript_alef")]
+       public const int KEY_Arabic_superscript_alef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_switch")]
+       public const int KEY_Arabic_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_tah")]
+       public const int KEY_Arabic_tah;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_tatweel")]
+       public const int KEY_Arabic_tatweel;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_tcheh")]
+       public const int KEY_Arabic_tcheh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_teh")]
+       public const int KEY_Arabic_teh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_tehmarbuta")]
+       public const int KEY_Arabic_tehmarbuta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_thal")]
+       public const int KEY_Arabic_thal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_theh")]
+       public const int KEY_Arabic_theh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_tteh")]
+       public const int KEY_Arabic_tteh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_veh")]
+       public const int KEY_Arabic_veh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_waw")]
+       public const int KEY_Arabic_waw;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_yeh")]
+       public const int KEY_Arabic_yeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_yeh_baree")]
+       public const int KEY_Arabic_yeh_baree;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_zah")]
+       public const int KEY_Arabic_zah;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Arabic_zain")]
+       public const int KEY_Arabic_zain;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Aring")]
+       public const int KEY_Aring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_AT")]
+       public const int KEY_Armenian_AT;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_AYB")]
+       public const int KEY_Armenian_AYB;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_BEN")]
+       public const int KEY_Armenian_BEN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_CHA")]
+       public const int KEY_Armenian_CHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_DA")]
+       public const int KEY_Armenian_DA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_DZA")]
+       public const int KEY_Armenian_DZA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_E")]
+       public const int KEY_Armenian_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_FE")]
+       public const int KEY_Armenian_FE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_GHAT")]
+       public const int KEY_Armenian_GHAT;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_GIM")]
+       public const int KEY_Armenian_GIM;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_HI")]
+       public const int KEY_Armenian_HI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_HO")]
+       public const int KEY_Armenian_HO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_INI")]
+       public const int KEY_Armenian_INI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_JE")]
+       public const int KEY_Armenian_JE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_KE")]
+       public const int KEY_Armenian_KE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_KEN")]
+       public const int KEY_Armenian_KEN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_KHE")]
+       public const int KEY_Armenian_KHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_LYUN")]
+       public const int KEY_Armenian_LYUN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_MEN")]
+       public const int KEY_Armenian_MEN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_NU")]
+       public const int KEY_Armenian_NU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_O")]
+       public const int KEY_Armenian_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_PE")]
+       public const int KEY_Armenian_PE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_PYUR")]
+       public const int KEY_Armenian_PYUR;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_RA")]
+       public const int KEY_Armenian_RA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_RE")]
+       public const int KEY_Armenian_RE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_SE")]
+       public const int KEY_Armenian_SE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_SHA")]
+       public const int KEY_Armenian_SHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_TCHE")]
+       public const int KEY_Armenian_TCHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_TO")]
+       public const int KEY_Armenian_TO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_TSA")]
+       public const int KEY_Armenian_TSA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_TSO")]
+       public const int KEY_Armenian_TSO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_TYUN")]
+       public const int KEY_Armenian_TYUN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_VEV")]
+       public const int KEY_Armenian_VEV;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_VO")]
+       public const int KEY_Armenian_VO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_VYUN")]
+       public const int KEY_Armenian_VYUN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_YECH")]
+       public const int KEY_Armenian_YECH;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ZA")]
+       public const int KEY_Armenian_ZA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ZHE")]
+       public const int KEY_Armenian_ZHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_accent")]
+       public const int KEY_Armenian_accent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_amanak")]
+       public const int KEY_Armenian_amanak;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_apostrophe")]
+       public const int KEY_Armenian_apostrophe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_at")]
+       public const int KEY_Armenian_at;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ayb")]
+       public const int KEY_Armenian_ayb;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ben")]
+       public const int KEY_Armenian_ben;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_but")]
+       public const int KEY_Armenian_but;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_cha")]
+       public const int KEY_Armenian_cha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_da")]
+       public const int KEY_Armenian_da;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_dza")]
+       public const int KEY_Armenian_dza;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_e")]
+       public const int KEY_Armenian_e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_exclam")]
+       public const int KEY_Armenian_exclam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_fe")]
+       public const int KEY_Armenian_fe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_full_stop")]
+       public const int KEY_Armenian_full_stop;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ghat")]
+       public const int KEY_Armenian_ghat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_gim")]
+       public const int KEY_Armenian_gim;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_hi")]
+       public const int KEY_Armenian_hi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ho")]
+       public const int KEY_Armenian_ho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_hyphen")]
+       public const int KEY_Armenian_hyphen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ini")]
+       public const int KEY_Armenian_ini;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_je")]
+       public const int KEY_Armenian_je;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ke")]
+       public const int KEY_Armenian_ke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ken")]
+       public const int KEY_Armenian_ken;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_khe")]
+       public const int KEY_Armenian_khe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ligature_ew")]
+       public const int KEY_Armenian_ligature_ew;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_lyun")]
+       public const int KEY_Armenian_lyun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_men")]
+       public const int KEY_Armenian_men;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_nu")]
+       public const int KEY_Armenian_nu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_o")]
+       public const int KEY_Armenian_o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_paruyk")]
+       public const int KEY_Armenian_paruyk;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_pe")]
+       public const int KEY_Armenian_pe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_pyur")]
+       public const int KEY_Armenian_pyur;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_question")]
+       public const int KEY_Armenian_question;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_ra")]
+       public const int KEY_Armenian_ra;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_re")]
+       public const int KEY_Armenian_re;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_se")]
+       public const int KEY_Armenian_se;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_separation_mark")]
+       public const int KEY_Armenian_separation_mark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_sha")]
+       public const int KEY_Armenian_sha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_shesht")]
+       public const int KEY_Armenian_shesht;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_tche")]
+       public const int KEY_Armenian_tche;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_to")]
+       public const int KEY_Armenian_to;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_tsa")]
+       public const int KEY_Armenian_tsa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_tso")]
+       public const int KEY_Armenian_tso;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_tyun")]
+       public const int KEY_Armenian_tyun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_verjaket")]
+       public const int KEY_Armenian_verjaket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_vev")]
+       public const int KEY_Armenian_vev;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_vo")]
+       public const int KEY_Armenian_vo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_vyun")]
+       public const int KEY_Armenian_vyun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_yech")]
+       public const int KEY_Armenian_yech;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_yentamna")]
+       public const int KEY_Armenian_yentamna;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_za")]
+       public const int KEY_Armenian_za;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Armenian_zhe")]
+       public const int KEY_Armenian_zhe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Atilde")]
+       public const int KEY_Atilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_AudibleBell_Enable")]
+       public const int KEY_AudibleBell_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_B")]
+       public const int KEY_B;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Babovedot")]
+       public const int KEY_Babovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_BackSpace")]
+       public const int KEY_BackSpace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Begin")]
+       public const int KEY_Begin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_BounceKeys_Enable")]
+       public const int KEY_BounceKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Break")]
+       public const int KEY_Break;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Byelorussian_SHORTU")]
+       public const int KEY_Byelorussian_SHORTU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Byelorussian_shortu")]
+       public const int KEY_Byelorussian_shortu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_C")]
+       public const int KEY_C;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_CH")]
+       public const int KEY_CH;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_C_H")]
+       public const int KEY_C_H;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_C_h")]
+       public const int KEY_C_h;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cabovedot")]
+       public const int KEY_Cabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cacute")]
+       public const int KEY_Cacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cancel")]
+       public const int KEY_Cancel;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Caps_Lock")]
+       public const int KEY_Caps_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ccaron")]
+       public const int KEY_Ccaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ccedilla")]
+       public const int KEY_Ccedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ccircumflex")]
+       public const int KEY_Ccircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ch")]
+       public const int KEY_Ch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Clear")]
+       public const int KEY_Clear;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Codeinput")]
+       public const int KEY_Codeinput;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ColonSign")]
+       public const int KEY_ColonSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Control_L")]
+       public const int KEY_Control_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Control_R")]
+       public const int KEY_Control_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_CruzeiroSign")]
+       public const int KEY_CruzeiroSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_A")]
+       public const int KEY_Cyrillic_A;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_BE")]
+       public const int KEY_Cyrillic_BE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_CHE")]
+       public const int KEY_Cyrillic_CHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_CHE_descender")]
+       public const int KEY_Cyrillic_CHE_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_CHE_vertstroke")]
+       public const int KEY_Cyrillic_CHE_vertstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_DE")]
+       public const int KEY_Cyrillic_DE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_DZHE")]
+       public const int KEY_Cyrillic_DZHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_E")]
+       public const int KEY_Cyrillic_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_EF")]
+       public const int KEY_Cyrillic_EF;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_EL")]
+       public const int KEY_Cyrillic_EL;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_EM")]
+       public const int KEY_Cyrillic_EM;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_EN")]
+       public const int KEY_Cyrillic_EN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_EN_descender")]
+       public const int KEY_Cyrillic_EN_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ER")]
+       public const int KEY_Cyrillic_ER;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ES")]
+       public const int KEY_Cyrillic_ES;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_GHE")]
+       public const int KEY_Cyrillic_GHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_GHE_bar")]
+       public const int KEY_Cyrillic_GHE_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_HA")]
+       public const int KEY_Cyrillic_HA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_HARDSIGN")]
+       public const int KEY_Cyrillic_HARDSIGN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_HA_descender")]
+       public const int KEY_Cyrillic_HA_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_I")]
+       public const int KEY_Cyrillic_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_IE")]
+       public const int KEY_Cyrillic_IE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_IO")]
+       public const int KEY_Cyrillic_IO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_I_macron")]
+       public const int KEY_Cyrillic_I_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_JE")]
+       public const int KEY_Cyrillic_JE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_KA")]
+       public const int KEY_Cyrillic_KA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_KA_descender")]
+       public const int KEY_Cyrillic_KA_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_KA_vertstroke")]
+       public const int KEY_Cyrillic_KA_vertstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_LJE")]
+       public const int KEY_Cyrillic_LJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_NJE")]
+       public const int KEY_Cyrillic_NJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_O")]
+       public const int KEY_Cyrillic_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_O_bar")]
+       public const int KEY_Cyrillic_O_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_PE")]
+       public const int KEY_Cyrillic_PE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_SCHWA")]
+       public const int KEY_Cyrillic_SCHWA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_SHA")]
+       public const int KEY_Cyrillic_SHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_SHCHA")]
+       public const int KEY_Cyrillic_SHCHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_SHHA")]
+       public const int KEY_Cyrillic_SHHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_SHORTI")]
+       public const int KEY_Cyrillic_SHORTI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_SOFTSIGN")]
+       public const int KEY_Cyrillic_SOFTSIGN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_TE")]
+       public const int KEY_Cyrillic_TE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_TSE")]
+       public const int KEY_Cyrillic_TSE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_U")]
+       public const int KEY_Cyrillic_U;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_U_macron")]
+       public const int KEY_Cyrillic_U_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_U_straight")]
+       public const int KEY_Cyrillic_U_straight;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_U_straight_bar")]
+       public const int KEY_Cyrillic_U_straight_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_VE")]
+       public const int KEY_Cyrillic_VE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_YA")]
+       public const int KEY_Cyrillic_YA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_YERU")]
+       public const int KEY_Cyrillic_YERU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_YU")]
+       public const int KEY_Cyrillic_YU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ZE")]
+       public const int KEY_Cyrillic_ZE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ZHE")]
+       public const int KEY_Cyrillic_ZHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ZHE_descender")]
+       public const int KEY_Cyrillic_ZHE_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_a")]
+       public const int KEY_Cyrillic_a;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_be")]
+       public const int KEY_Cyrillic_be;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_che")]
+       public const int KEY_Cyrillic_che;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_che_descender")]
+       public const int KEY_Cyrillic_che_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_che_vertstroke")]
+       public const int KEY_Cyrillic_che_vertstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_de")]
+       public const int KEY_Cyrillic_de;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_dzhe")]
+       public const int KEY_Cyrillic_dzhe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_e")]
+       public const int KEY_Cyrillic_e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ef")]
+       public const int KEY_Cyrillic_ef;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_el")]
+       public const int KEY_Cyrillic_el;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_em")]
+       public const int KEY_Cyrillic_em;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_en")]
+       public const int KEY_Cyrillic_en;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_en_descender")]
+       public const int KEY_Cyrillic_en_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_er")]
+       public const int KEY_Cyrillic_er;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_es")]
+       public const int KEY_Cyrillic_es;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ghe")]
+       public const int KEY_Cyrillic_ghe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ghe_bar")]
+       public const int KEY_Cyrillic_ghe_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ha")]
+       public const int KEY_Cyrillic_ha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ha_descender")]
+       public const int KEY_Cyrillic_ha_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_hardsign")]
+       public const int KEY_Cyrillic_hardsign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_i")]
+       public const int KEY_Cyrillic_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_i_macron")]
+       public const int KEY_Cyrillic_i_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ie")]
+       public const int KEY_Cyrillic_ie;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_io")]
+       public const int KEY_Cyrillic_io;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_je")]
+       public const int KEY_Cyrillic_je;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ka")]
+       public const int KEY_Cyrillic_ka;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ka_descender")]
+       public const int KEY_Cyrillic_ka_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ka_vertstroke")]
+       public const int KEY_Cyrillic_ka_vertstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_lje")]
+       public const int KEY_Cyrillic_lje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_nje")]
+       public const int KEY_Cyrillic_nje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_o")]
+       public const int KEY_Cyrillic_o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_o_bar")]
+       public const int KEY_Cyrillic_o_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_pe")]
+       public const int KEY_Cyrillic_pe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_schwa")]
+       public const int KEY_Cyrillic_schwa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_sha")]
+       public const int KEY_Cyrillic_sha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_shcha")]
+       public const int KEY_Cyrillic_shcha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_shha")]
+       public const int KEY_Cyrillic_shha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_shorti")]
+       public const int KEY_Cyrillic_shorti;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_softsign")]
+       public const int KEY_Cyrillic_softsign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_te")]
+       public const int KEY_Cyrillic_te;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_tse")]
+       public const int KEY_Cyrillic_tse;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_u")]
+       public const int KEY_Cyrillic_u;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_u_macron")]
+       public const int KEY_Cyrillic_u_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_u_straight")]
+       public const int KEY_Cyrillic_u_straight;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_u_straight_bar")]
+       public const int KEY_Cyrillic_u_straight_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ve")]
+       public const int KEY_Cyrillic_ve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ya")]
+       public const int KEY_Cyrillic_ya;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_yeru")]
+       public const int KEY_Cyrillic_yeru;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_yu")]
+       public const int KEY_Cyrillic_yu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_ze")]
+       public const int KEY_Cyrillic_ze;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_zhe")]
+       public const int KEY_Cyrillic_zhe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Cyrillic_zhe_descender")]
+       public const int KEY_Cyrillic_zhe_descender;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_D")]
+       public const int KEY_D;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Dabovedot")]
+       public const int KEY_Dabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Dcaron")]
+       public const int KEY_Dcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Delete")]
+       public const int KEY_Delete;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_DongSign")]
+       public const int KEY_DongSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Down")]
+       public const int KEY_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Dstroke")]
+       public const int KEY_Dstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_E")]
+       public const int KEY_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ENG")]
+       public const int KEY_ENG;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ETH")]
+       public const int KEY_ETH;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Eabovedot")]
+       public const int KEY_Eabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Eacute")]
+       public const int KEY_Eacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ebelowdot")]
+       public const int KEY_Ebelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ecaron")]
+       public const int KEY_Ecaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ecircumflex")]
+       public const int KEY_Ecircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ecircumflexacute")]
+       public const int KEY_Ecircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ecircumflexbelowdot")]
+       public const int KEY_Ecircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ecircumflexgrave")]
+       public const int KEY_Ecircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ecircumflexhook")]
+       public const int KEY_Ecircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ecircumflextilde")]
+       public const int KEY_Ecircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_EcuSign")]
+       public const int KEY_EcuSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ediaeresis")]
+       public const int KEY_Ediaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Egrave")]
+       public const int KEY_Egrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ehook")]
+       public const int KEY_Ehook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Eisu_Shift")]
+       public const int KEY_Eisu_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Eisu_toggle")]
+       public const int KEY_Eisu_toggle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Emacron")]
+       public const int KEY_Emacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_End")]
+       public const int KEY_End;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Eogonek")]
+       public const int KEY_Eogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Escape")]
+       public const int KEY_Escape;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Eth")]
+       public const int KEY_Eth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Etilde")]
+       public const int KEY_Etilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_EuroSign")]
+       public const int KEY_EuroSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Execute")]
+       public const int KEY_Execute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F")]
+       public const int KEY_F;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F1")]
+       public const int KEY_F1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F10")]
+       public const int KEY_F10;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F11")]
+       public const int KEY_F11;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F12")]
+       public const int KEY_F12;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F13")]
+       public const int KEY_F13;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F14")]
+       public const int KEY_F14;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F15")]
+       public const int KEY_F15;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F16")]
+       public const int KEY_F16;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F17")]
+       public const int KEY_F17;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F18")]
+       public const int KEY_F18;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F19")]
+       public const int KEY_F19;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F2")]
+       public const int KEY_F2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F20")]
+       public const int KEY_F20;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F21")]
+       public const int KEY_F21;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F22")]
+       public const int KEY_F22;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F23")]
+       public const int KEY_F23;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F24")]
+       public const int KEY_F24;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F25")]
+       public const int KEY_F25;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F26")]
+       public const int KEY_F26;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F27")]
+       public const int KEY_F27;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F28")]
+       public const int KEY_F28;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F29")]
+       public const int KEY_F29;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F3")]
+       public const int KEY_F3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F30")]
+       public const int KEY_F30;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F31")]
+       public const int KEY_F31;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F32")]
+       public const int KEY_F32;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F33")]
+       public const int KEY_F33;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F34")]
+       public const int KEY_F34;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F35")]
+       public const int KEY_F35;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F4")]
+       public const int KEY_F4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F5")]
+       public const int KEY_F5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F6")]
+       public const int KEY_F6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F7")]
+       public const int KEY_F7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F8")]
+       public const int KEY_F8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_F9")]
+       public const int KEY_F9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_FFrancSign")]
+       public const int KEY_FFrancSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Fabovedot")]
+       public const int KEY_Fabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_0")]
+       public const int KEY_Farsi_0;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_1")]
+       public const int KEY_Farsi_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_2")]
+       public const int KEY_Farsi_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_3")]
+       public const int KEY_Farsi_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_4")]
+       public const int KEY_Farsi_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_5")]
+       public const int KEY_Farsi_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_6")]
+       public const int KEY_Farsi_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_7")]
+       public const int KEY_Farsi_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_8")]
+       public const int KEY_Farsi_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_9")]
+       public const int KEY_Farsi_9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Farsi_yeh")]
+       public const int KEY_Farsi_yeh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Find")]
+       public const int KEY_Find;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_First_Virtual_Screen")]
+       public const int KEY_First_Virtual_Screen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_G")]
+       public const int KEY_G;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Gabovedot")]
+       public const int KEY_Gabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Gbreve")]
+       public const int KEY_Gbreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Gcaron")]
+       public const int KEY_Gcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Gcedilla")]
+       public const int KEY_Gcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Gcircumflex")]
+       public const int KEY_Gcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_an")]
+       public const int KEY_Georgian_an;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_ban")]
+       public const int KEY_Georgian_ban;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_can")]
+       public const int KEY_Georgian_can;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_char")]
+       public const int KEY_Georgian_char;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_chin")]
+       public const int KEY_Georgian_chin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_cil")]
+       public const int KEY_Georgian_cil;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_don")]
+       public const int KEY_Georgian_don;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_en")]
+       public const int KEY_Georgian_en;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_fi")]
+       public const int KEY_Georgian_fi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_gan")]
+       public const int KEY_Georgian_gan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_ghan")]
+       public const int KEY_Georgian_ghan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_hae")]
+       public const int KEY_Georgian_hae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_har")]
+       public const int KEY_Georgian_har;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_he")]
+       public const int KEY_Georgian_he;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_hie")]
+       public const int KEY_Georgian_hie;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_hoe")]
+       public const int KEY_Georgian_hoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_in")]
+       public const int KEY_Georgian_in;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_jhan")]
+       public const int KEY_Georgian_jhan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_jil")]
+       public const int KEY_Georgian_jil;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_kan")]
+       public const int KEY_Georgian_kan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_khar")]
+       public const int KEY_Georgian_khar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_las")]
+       public const int KEY_Georgian_las;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_man")]
+       public const int KEY_Georgian_man;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_nar")]
+       public const int KEY_Georgian_nar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_on")]
+       public const int KEY_Georgian_on;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_par")]
+       public const int KEY_Georgian_par;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_phar")]
+       public const int KEY_Georgian_phar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_qar")]
+       public const int KEY_Georgian_qar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_rae")]
+       public const int KEY_Georgian_rae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_san")]
+       public const int KEY_Georgian_san;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_shin")]
+       public const int KEY_Georgian_shin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_tan")]
+       public const int KEY_Georgian_tan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_tar")]
+       public const int KEY_Georgian_tar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_un")]
+       public const int KEY_Georgian_un;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_vin")]
+       public const int KEY_Georgian_vin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_we")]
+       public const int KEY_Georgian_we;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_xan")]
+       public const int KEY_Georgian_xan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_zen")]
+       public const int KEY_Georgian_zen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Georgian_zhar")]
+       public const int KEY_Georgian_zhar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_ALPHA")]
+       public const int KEY_Greek_ALPHA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_ALPHAaccent")]
+       public const int KEY_Greek_ALPHAaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_BETA")]
+       public const int KEY_Greek_BETA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_CHI")]
+       public const int KEY_Greek_CHI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_DELTA")]
+       public const int KEY_Greek_DELTA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_EPSILON")]
+       public const int KEY_Greek_EPSILON;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_EPSILONaccent")]
+       public const int KEY_Greek_EPSILONaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_ETA")]
+       public const int KEY_Greek_ETA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_ETAaccent")]
+       public const int KEY_Greek_ETAaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_GAMMA")]
+       public const int KEY_Greek_GAMMA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_IOTA")]
+       public const int KEY_Greek_IOTA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_IOTAaccent")]
+       public const int KEY_Greek_IOTAaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_IOTAdiaeresis")]
+       public const int KEY_Greek_IOTAdiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_IOTAdieresis")]
+       public const int KEY_Greek_IOTAdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_KAPPA")]
+       public const int KEY_Greek_KAPPA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_LAMBDA")]
+       public const int KEY_Greek_LAMBDA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_LAMDA")]
+       public const int KEY_Greek_LAMDA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_MU")]
+       public const int KEY_Greek_MU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_NU")]
+       public const int KEY_Greek_NU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_OMEGA")]
+       public const int KEY_Greek_OMEGA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_OMEGAaccent")]
+       public const int KEY_Greek_OMEGAaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_OMICRON")]
+       public const int KEY_Greek_OMICRON;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_OMICRONaccent")]
+       public const int KEY_Greek_OMICRONaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_PHI")]
+       public const int KEY_Greek_PHI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_PI")]
+       public const int KEY_Greek_PI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_PSI")]
+       public const int KEY_Greek_PSI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_RHO")]
+       public const int KEY_Greek_RHO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_SIGMA")]
+       public const int KEY_Greek_SIGMA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_TAU")]
+       public const int KEY_Greek_TAU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_THETA")]
+       public const int KEY_Greek_THETA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_UPSILON")]
+       public const int KEY_Greek_UPSILON;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_UPSILONaccent")]
+       public const int KEY_Greek_UPSILONaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_UPSILONdieresis")]
+       public const int KEY_Greek_UPSILONdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_XI")]
+       public const int KEY_Greek_XI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_ZETA")]
+       public const int KEY_Greek_ZETA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_accentdieresis")]
+       public const int KEY_Greek_accentdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_alpha")]
+       public const int KEY_Greek_alpha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_alphaaccent")]
+       public const int KEY_Greek_alphaaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_beta")]
+       public const int KEY_Greek_beta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_chi")]
+       public const int KEY_Greek_chi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_delta")]
+       public const int KEY_Greek_delta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_epsilon")]
+       public const int KEY_Greek_epsilon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_epsilonaccent")]
+       public const int KEY_Greek_epsilonaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_eta")]
+       public const int KEY_Greek_eta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_etaaccent")]
+       public const int KEY_Greek_etaaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_finalsmallsigma")]
+       public const int KEY_Greek_finalsmallsigma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_gamma")]
+       public const int KEY_Greek_gamma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_horizbar")]
+       public const int KEY_Greek_horizbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_iota")]
+       public const int KEY_Greek_iota;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_iotaaccent")]
+       public const int KEY_Greek_iotaaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_iotaaccentdieresis")]
+       public const int KEY_Greek_iotaaccentdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_iotadieresis")]
+       public const int KEY_Greek_iotadieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_kappa")]
+       public const int KEY_Greek_kappa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_lambda")]
+       public const int KEY_Greek_lambda;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_lamda")]
+       public const int KEY_Greek_lamda;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_mu")]
+       public const int KEY_Greek_mu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_nu")]
+       public const int KEY_Greek_nu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_omega")]
+       public const int KEY_Greek_omega;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_omegaaccent")]
+       public const int KEY_Greek_omegaaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_omicron")]
+       public const int KEY_Greek_omicron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_omicronaccent")]
+       public const int KEY_Greek_omicronaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_phi")]
+       public const int KEY_Greek_phi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_pi")]
+       public const int KEY_Greek_pi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_psi")]
+       public const int KEY_Greek_psi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_rho")]
+       public const int KEY_Greek_rho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_sigma")]
+       public const int KEY_Greek_sigma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_switch")]
+       public const int KEY_Greek_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_tau")]
+       public const int KEY_Greek_tau;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_theta")]
+       public const int KEY_Greek_theta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_upsilon")]
+       public const int KEY_Greek_upsilon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_upsilonaccent")]
+       public const int KEY_Greek_upsilonaccent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_upsilonaccentdieresis")]
+       public const int KEY_Greek_upsilonaccentdieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_upsilondieresis")]
+       public const int KEY_Greek_upsilondieresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_xi")]
+       public const int KEY_Greek_xi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Greek_zeta")]
+       public const int KEY_Greek_zeta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_H")]
+       public const int KEY_H;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul")]
+       public const int KEY_Hangul;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_A")]
+       public const int KEY_Hangul_A;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_AE")]
+       public const int KEY_Hangul_AE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_AraeA")]
+       public const int KEY_Hangul_AraeA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_AraeAE")]
+       public const int KEY_Hangul_AraeAE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Banja")]
+       public const int KEY_Hangul_Banja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Cieuc")]
+       public const int KEY_Hangul_Cieuc;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Codeinput")]
+       public const int KEY_Hangul_Codeinput;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Dikeud")]
+       public const int KEY_Hangul_Dikeud;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_E")]
+       public const int KEY_Hangul_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_EO")]
+       public const int KEY_Hangul_EO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_EU")]
+       public const int KEY_Hangul_EU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_End")]
+       public const int KEY_Hangul_End;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Hanja")]
+       public const int KEY_Hangul_Hanja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Hieuh")]
+       public const int KEY_Hangul_Hieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_I")]
+       public const int KEY_Hangul_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Ieung")]
+       public const int KEY_Hangul_Ieung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Cieuc")]
+       public const int KEY_Hangul_J_Cieuc;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Dikeud")]
+       public const int KEY_Hangul_J_Dikeud;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Hieuh")]
+       public const int KEY_Hangul_J_Hieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Ieung")]
+       public const int KEY_Hangul_J_Ieung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Jieuj")]
+       public const int KEY_Hangul_J_Jieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Khieuq")]
+       public const int KEY_Hangul_J_Khieuq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Kiyeog")]
+       public const int KEY_Hangul_J_Kiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_KiyeogSios")]
+       public const int KEY_Hangul_J_KiyeogSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_KkogjiDalrinIeung")]
+       public const int KEY_Hangul_J_KkogjiDalrinIeung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Mieum")]
+       public const int KEY_Hangul_J_Mieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Nieun")]
+       public const int KEY_Hangul_J_Nieun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_NieunHieuh")]
+       public const int KEY_Hangul_J_NieunHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_NieunJieuj")]
+       public const int KEY_Hangul_J_NieunJieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_PanSios")]
+       public const int KEY_Hangul_J_PanSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Phieuf")]
+       public const int KEY_Hangul_J_Phieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Pieub")]
+       public const int KEY_Hangul_J_Pieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_PieubSios")]
+       public const int KEY_Hangul_J_PieubSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Rieul")]
+       public const int KEY_Hangul_J_Rieul;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_RieulHieuh")]
+       public const int KEY_Hangul_J_RieulHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_RieulKiyeog")]
+       public const int KEY_Hangul_J_RieulKiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_RieulMieum")]
+       public const int KEY_Hangul_J_RieulMieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_RieulPhieuf")]
+       public const int KEY_Hangul_J_RieulPhieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_RieulPieub")]
+       public const int KEY_Hangul_J_RieulPieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_RieulSios")]
+       public const int KEY_Hangul_J_RieulSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_RieulTieut")]
+       public const int KEY_Hangul_J_RieulTieut;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Sios")]
+       public const int KEY_Hangul_J_Sios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_SsangKiyeog")]
+       public const int KEY_Hangul_J_SsangKiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_SsangSios")]
+       public const int KEY_Hangul_J_SsangSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_Tieut")]
+       public const int KEY_Hangul_J_Tieut;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_J_YeorinHieuh")]
+       public const int KEY_Hangul_J_YeorinHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Jamo")]
+       public const int KEY_Hangul_Jamo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Jeonja")]
+       public const int KEY_Hangul_Jeonja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Jieuj")]
+       public const int KEY_Hangul_Jieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Khieuq")]
+       public const int KEY_Hangul_Khieuq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Kiyeog")]
+       public const int KEY_Hangul_Kiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_KiyeogSios")]
+       public const int KEY_Hangul_KiyeogSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_KkogjiDalrinIeung")]
+       public const int KEY_Hangul_KkogjiDalrinIeung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Mieum")]
+       public const int KEY_Hangul_Mieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_MultipleCandidate")]
+       public const int KEY_Hangul_MultipleCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Nieun")]
+       public const int KEY_Hangul_Nieun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_NieunHieuh")]
+       public const int KEY_Hangul_NieunHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_NieunJieuj")]
+       public const int KEY_Hangul_NieunJieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_O")]
+       public const int KEY_Hangul_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_OE")]
+       public const int KEY_Hangul_OE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_PanSios")]
+       public const int KEY_Hangul_PanSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Phieuf")]
+       public const int KEY_Hangul_Phieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Pieub")]
+       public const int KEY_Hangul_Pieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_PieubSios")]
+       public const int KEY_Hangul_PieubSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_PostHanja")]
+       public const int KEY_Hangul_PostHanja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_PreHanja")]
+       public const int KEY_Hangul_PreHanja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_PreviousCandidate")]
+       public const int KEY_Hangul_PreviousCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Rieul")]
+       public const int KEY_Hangul_Rieul;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_RieulHieuh")]
+       public const int KEY_Hangul_RieulHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_RieulKiyeog")]
+       public const int KEY_Hangul_RieulKiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_RieulMieum")]
+       public const int KEY_Hangul_RieulMieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_RieulPhieuf")]
+       public const int KEY_Hangul_RieulPhieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_RieulPieub")]
+       public const int KEY_Hangul_RieulPieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_RieulSios")]
+       public const int KEY_Hangul_RieulSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_RieulTieut")]
+       public const int KEY_Hangul_RieulTieut;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_RieulYeorinHieuh")]
+       public const int KEY_Hangul_RieulYeorinHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Romaja")]
+       public const int KEY_Hangul_Romaja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_SingleCandidate")]
+       public const int KEY_Hangul_SingleCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Sios")]
+       public const int KEY_Hangul_Sios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Special")]
+       public const int KEY_Hangul_Special;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_SsangDikeud")]
+       public const int KEY_Hangul_SsangDikeud;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_SsangJieuj")]
+       public const int KEY_Hangul_SsangJieuj;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_SsangKiyeog")]
+       public const int KEY_Hangul_SsangKiyeog;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_SsangPieub")]
+       public const int KEY_Hangul_SsangPieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_SsangSios")]
+       public const int KEY_Hangul_SsangSios;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Start")]
+       public const int KEY_Hangul_Start;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_SunkyeongeumMieum")]
+       public const int KEY_Hangul_SunkyeongeumMieum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_SunkyeongeumPhieuf")]
+       public const int KEY_Hangul_SunkyeongeumPhieuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_SunkyeongeumPieub")]
+       public const int KEY_Hangul_SunkyeongeumPieub;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_Tieut")]
+       public const int KEY_Hangul_Tieut;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_U")]
+       public const int KEY_Hangul_U;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_WA")]
+       public const int KEY_Hangul_WA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_WAE")]
+       public const int KEY_Hangul_WAE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_WE")]
+       public const int KEY_Hangul_WE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_WEO")]
+       public const int KEY_Hangul_WEO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_WI")]
+       public const int KEY_Hangul_WI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_YA")]
+       public const int KEY_Hangul_YA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_YAE")]
+       public const int KEY_Hangul_YAE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_YE")]
+       public const int KEY_Hangul_YE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_YEO")]
+       public const int KEY_Hangul_YEO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_YI")]
+       public const int KEY_Hangul_YI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_YO")]
+       public const int KEY_Hangul_YO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_YU")]
+       public const int KEY_Hangul_YU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_YeorinHieuh")]
+       public const int KEY_Hangul_YeorinHieuh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hangul_switch")]
+       public const int KEY_Hangul_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hankaku")]
+       public const int KEY_Hankaku;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hcircumflex")]
+       public const int KEY_Hcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hebrew_switch")]
+       public const int KEY_Hebrew_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Help")]
+       public const int KEY_Help;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Henkan")]
+       public const int KEY_Henkan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Henkan_Mode")]
+       public const int KEY_Henkan_Mode;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hiragana")]
+       public const int KEY_Hiragana;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hiragana_Katakana")]
+       public const int KEY_Hiragana_Katakana;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Home")]
+       public const int KEY_Home;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hstroke")]
+       public const int KEY_Hstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hyper_L")]
+       public const int KEY_Hyper_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Hyper_R")]
+       public const int KEY_Hyper_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_I")]
+       public const int KEY_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Center_Object")]
+       public const int KEY_ISO_Center_Object;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Continuous_Underline")]
+       public const int KEY_ISO_Continuous_Underline;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Discontinuous_Underline")]
+       public const int KEY_ISO_Discontinuous_Underline;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Emphasize")]
+       public const int KEY_ISO_Emphasize;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Enter")]
+       public const int KEY_ISO_Enter;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Fast_Cursor_Down")]
+       public const int KEY_ISO_Fast_Cursor_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Fast_Cursor_Left")]
+       public const int KEY_ISO_Fast_Cursor_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Fast_Cursor_Right")]
+       public const int KEY_ISO_Fast_Cursor_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Fast_Cursor_Up")]
+       public const int KEY_ISO_Fast_Cursor_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_First_Group")]
+       public const int KEY_ISO_First_Group;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_First_Group_Lock")]
+       public const int KEY_ISO_First_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Group_Latch")]
+       public const int KEY_ISO_Group_Latch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Group_Lock")]
+       public const int KEY_ISO_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Group_Shift")]
+       public const int KEY_ISO_Group_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Last_Group")]
+       public const int KEY_ISO_Last_Group;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Last_Group_Lock")]
+       public const int KEY_ISO_Last_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Left_Tab")]
+       public const int KEY_ISO_Left_Tab;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Level2_Latch")]
+       public const int KEY_ISO_Level2_Latch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Level3_Latch")]
+       public const int KEY_ISO_Level3_Latch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Level3_Lock")]
+       public const int KEY_ISO_Level3_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Level3_Shift")]
+       public const int KEY_ISO_Level3_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Level5_Latch")]
+       public const int KEY_ISO_Level5_Latch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Level5_Lock")]
+       public const int KEY_ISO_Level5_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Level5_Shift")]
+       public const int KEY_ISO_Level5_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Lock")]
+       public const int KEY_ISO_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Move_Line_Down")]
+       public const int KEY_ISO_Move_Line_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Move_Line_Up")]
+       public const int KEY_ISO_Move_Line_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Next_Group")]
+       public const int KEY_ISO_Next_Group;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Next_Group_Lock")]
+       public const int KEY_ISO_Next_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Partial_Line_Down")]
+       public const int KEY_ISO_Partial_Line_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Partial_Line_Up")]
+       public const int KEY_ISO_Partial_Line_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Partial_Space_Left")]
+       public const int KEY_ISO_Partial_Space_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Partial_Space_Right")]
+       public const int KEY_ISO_Partial_Space_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Prev_Group")]
+       public const int KEY_ISO_Prev_Group;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Prev_Group_Lock")]
+       public const int KEY_ISO_Prev_Group_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Release_Both_Margins")]
+       public const int KEY_ISO_Release_Both_Margins;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Release_Margin_Left")]
+       public const int KEY_ISO_Release_Margin_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Release_Margin_Right")]
+       public const int KEY_ISO_Release_Margin_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Set_Margin_Left")]
+       public const int KEY_ISO_Set_Margin_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ISO_Set_Margin_Right")]
+       public const int KEY_ISO_Set_Margin_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Iabovedot")]
+       public const int KEY_Iabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Iacute")]
+       public const int KEY_Iacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ibelowdot")]
+       public const int KEY_Ibelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ibreve")]
+       public const int KEY_Ibreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Icircumflex")]
+       public const int KEY_Icircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Idiaeresis")]
+       public const int KEY_Idiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Igrave")]
+       public const int KEY_Igrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ihook")]
+       public const int KEY_Ihook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Imacron")]
+       public const int KEY_Imacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Insert")]
+       public const int KEY_Insert;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Iogonek")]
+       public const int KEY_Iogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Itilde")]
+       public const int KEY_Itilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_J")]
+       public const int KEY_J;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Jcircumflex")]
+       public const int KEY_Jcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_K")]
+       public const int KEY_K;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_0")]
+       public const int KEY_KP_0;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_1")]
+       public const int KEY_KP_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_2")]
+       public const int KEY_KP_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_3")]
+       public const int KEY_KP_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_4")]
+       public const int KEY_KP_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_5")]
+       public const int KEY_KP_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_6")]
+       public const int KEY_KP_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_7")]
+       public const int KEY_KP_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_8")]
+       public const int KEY_KP_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_9")]
+       public const int KEY_KP_9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Add")]
+       public const int KEY_KP_Add;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Begin")]
+       public const int KEY_KP_Begin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Decimal")]
+       public const int KEY_KP_Decimal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Delete")]
+       public const int KEY_KP_Delete;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Divide")]
+       public const int KEY_KP_Divide;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Down")]
+       public const int KEY_KP_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_End")]
+       public const int KEY_KP_End;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Enter")]
+       public const int KEY_KP_Enter;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Equal")]
+       public const int KEY_KP_Equal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_F1")]
+       public const int KEY_KP_F1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_F2")]
+       public const int KEY_KP_F2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_F3")]
+       public const int KEY_KP_F3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_F4")]
+       public const int KEY_KP_F4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Home")]
+       public const int KEY_KP_Home;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Insert")]
+       public const int KEY_KP_Insert;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Left")]
+       public const int KEY_KP_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Multiply")]
+       public const int KEY_KP_Multiply;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Next")]
+       public const int KEY_KP_Next;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Page_Down")]
+       public const int KEY_KP_Page_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Page_Up")]
+       public const int KEY_KP_Page_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Prior")]
+       public const int KEY_KP_Prior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Right")]
+       public const int KEY_KP_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Separator")]
+       public const int KEY_KP_Separator;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Space")]
+       public const int KEY_KP_Space;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Subtract")]
+       public const int KEY_KP_Subtract;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Tab")]
+       public const int KEY_KP_Tab;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_KP_Up")]
+       public const int KEY_KP_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Kana_Lock")]
+       public const int KEY_Kana_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Kana_Shift")]
+       public const int KEY_Kana_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Kanji")]
+       public const int KEY_Kanji;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Kanji_Bangou")]
+       public const int KEY_Kanji_Bangou;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Katakana")]
+       public const int KEY_Katakana;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Kcedilla")]
+       public const int KEY_Kcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Korean_Won")]
+       public const int KEY_Korean_Won;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L")]
+       public const int KEY_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L1")]
+       public const int KEY_L1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L10")]
+       public const int KEY_L10;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L2")]
+       public const int KEY_L2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L3")]
+       public const int KEY_L3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L4")]
+       public const int KEY_L4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L5")]
+       public const int KEY_L5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L6")]
+       public const int KEY_L6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L7")]
+       public const int KEY_L7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L8")]
+       public const int KEY_L8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_L9")]
+       public const int KEY_L9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Lacute")]
+       public const int KEY_Lacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Last_Virtual_Screen")]
+       public const int KEY_Last_Virtual_Screen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Lbelowdot")]
+       public const int KEY_Lbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Lcaron")]
+       public const int KEY_Lcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Lcedilla")]
+       public const int KEY_Lcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Left")]
+       public const int KEY_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Linefeed")]
+       public const int KEY_Linefeed;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_LiraSign")]
+       public const int KEY_LiraSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Lstroke")]
+       public const int KEY_Lstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_M")]
+       public const int KEY_M;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Mabovedot")]
+       public const int KEY_Mabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Macedonia_DSE")]
+       public const int KEY_Macedonia_DSE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Macedonia_GJE")]
+       public const int KEY_Macedonia_GJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Macedonia_KJE")]
+       public const int KEY_Macedonia_KJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Macedonia_dse")]
+       public const int KEY_Macedonia_dse;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Macedonia_gje")]
+       public const int KEY_Macedonia_gje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Macedonia_kje")]
+       public const int KEY_Macedonia_kje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Mae_Koho")]
+       public const int KEY_Mae_Koho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Massyo")]
+       public const int KEY_Massyo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Menu")]
+       public const int KEY_Menu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Meta_L")]
+       public const int KEY_Meta_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Meta_R")]
+       public const int KEY_Meta_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_MillSign")]
+       public const int KEY_MillSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Mode_switch")]
+       public const int KEY_Mode_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_MouseKeys_Accel_Enable")]
+       public const int KEY_MouseKeys_Accel_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_MouseKeys_Enable")]
+       public const int KEY_MouseKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Muhenkan")]
+       public const int KEY_Muhenkan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Multi_key")]
+       public const int KEY_Multi_key;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_MultipleCandidate")]
+       public const int KEY_MultipleCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_N")]
+       public const int KEY_N;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Nacute")]
+       public const int KEY_Nacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_NairaSign")]
+       public const int KEY_NairaSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ncaron")]
+       public const int KEY_Ncaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ncedilla")]
+       public const int KEY_Ncedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_NewSheqelSign")]
+       public const int KEY_NewSheqelSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Next")]
+       public const int KEY_Next;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Next_Virtual_Screen")]
+       public const int KEY_Next_Virtual_Screen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ntilde")]
+       public const int KEY_Ntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Num_Lock")]
+       public const int KEY_Num_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_O")]
+       public const int KEY_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_OE")]
+       public const int KEY_OE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Oacute")]
+       public const int KEY_Oacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Obarred")]
+       public const int KEY_Obarred;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Obelowdot")]
+       public const int KEY_Obelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ocaron")]
+       public const int KEY_Ocaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ocircumflex")]
+       public const int KEY_Ocircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ocircumflexacute")]
+       public const int KEY_Ocircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ocircumflexbelowdot")]
+       public const int KEY_Ocircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ocircumflexgrave")]
+       public const int KEY_Ocircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ocircumflexhook")]
+       public const int KEY_Ocircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ocircumflextilde")]
+       public const int KEY_Ocircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Odiaeresis")]
+       public const int KEY_Odiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Odoubleacute")]
+       public const int KEY_Odoubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ograve")]
+       public const int KEY_Ograve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ohook")]
+       public const int KEY_Ohook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ohorn")]
+       public const int KEY_Ohorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ohornacute")]
+       public const int KEY_Ohornacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ohornbelowdot")]
+       public const int KEY_Ohornbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ohorngrave")]
+       public const int KEY_Ohorngrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ohornhook")]
+       public const int KEY_Ohornhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ohorntilde")]
+       public const int KEY_Ohorntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Omacron")]
+       public const int KEY_Omacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ooblique")]
+       public const int KEY_Ooblique;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Oslash")]
+       public const int KEY_Oslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Otilde")]
+       public const int KEY_Otilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Overlay1_Enable")]
+       public const int KEY_Overlay1_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Overlay2_Enable")]
+       public const int KEY_Overlay2_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_P")]
+       public const int KEY_P;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pabovedot")]
+       public const int KEY_Pabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Page_Down")]
+       public const int KEY_Page_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Page_Up")]
+       public const int KEY_Page_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pause")]
+       public const int KEY_Pause;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_PesetaSign")]
+       public const int KEY_PesetaSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Accelerate")]
+       public const int KEY_Pointer_Accelerate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Button1")]
+       public const int KEY_Pointer_Button1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Button2")]
+       public const int KEY_Pointer_Button2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Button3")]
+       public const int KEY_Pointer_Button3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Button4")]
+       public const int KEY_Pointer_Button4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Button5")]
+       public const int KEY_Pointer_Button5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Button_Dflt")]
+       public const int KEY_Pointer_Button_Dflt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DblClick1")]
+       public const int KEY_Pointer_DblClick1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DblClick2")]
+       public const int KEY_Pointer_DblClick2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DblClick3")]
+       public const int KEY_Pointer_DblClick3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DblClick4")]
+       public const int KEY_Pointer_DblClick4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DblClick5")]
+       public const int KEY_Pointer_DblClick5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DblClick_Dflt")]
+       public const int KEY_Pointer_DblClick_Dflt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DfltBtnNext")]
+       public const int KEY_Pointer_DfltBtnNext;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DfltBtnPrev")]
+       public const int KEY_Pointer_DfltBtnPrev;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Down")]
+       public const int KEY_Pointer_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DownLeft")]
+       public const int KEY_Pointer_DownLeft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_DownRight")]
+       public const int KEY_Pointer_DownRight;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Drag1")]
+       public const int KEY_Pointer_Drag1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Drag2")]
+       public const int KEY_Pointer_Drag2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Drag3")]
+       public const int KEY_Pointer_Drag3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Drag4")]
+       public const int KEY_Pointer_Drag4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Drag5")]
+       public const int KEY_Pointer_Drag5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Drag_Dflt")]
+       public const int KEY_Pointer_Drag_Dflt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_EnableKeys")]
+       public const int KEY_Pointer_EnableKeys;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Left")]
+       public const int KEY_Pointer_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Right")]
+       public const int KEY_Pointer_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_Up")]
+       public const int KEY_Pointer_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_UpLeft")]
+       public const int KEY_Pointer_UpLeft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Pointer_UpRight")]
+       public const int KEY_Pointer_UpRight;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Prev_Virtual_Screen")]
+       public const int KEY_Prev_Virtual_Screen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_PreviousCandidate")]
+       public const int KEY_PreviousCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Print")]
+       public const int KEY_Print;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Prior")]
+       public const int KEY_Prior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Q")]
+       public const int KEY_Q;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R")]
+       public const int KEY_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R1")]
+       public const int KEY_R1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R10")]
+       public const int KEY_R10;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R11")]
+       public const int KEY_R11;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R12")]
+       public const int KEY_R12;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R13")]
+       public const int KEY_R13;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R14")]
+       public const int KEY_R14;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R15")]
+       public const int KEY_R15;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R2")]
+       public const int KEY_R2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R3")]
+       public const int KEY_R3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R4")]
+       public const int KEY_R4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R5")]
+       public const int KEY_R5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R6")]
+       public const int KEY_R6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R7")]
+       public const int KEY_R7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R8")]
+       public const int KEY_R8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_R9")]
+       public const int KEY_R9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Racute")]
+       public const int KEY_Racute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Rcaron")]
+       public const int KEY_Rcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Rcedilla")]
+       public const int KEY_Rcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Redo")]
+       public const int KEY_Redo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_RepeatKeys_Enable")]
+       public const int KEY_RepeatKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Return")]
+       public const int KEY_Return;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Right")]
+       public const int KEY_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Romaji")]
+       public const int KEY_Romaji;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_RupeeSign")]
+       public const int KEY_RupeeSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_S")]
+       public const int KEY_S;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_SCHWA")]
+       public const int KEY_SCHWA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sabovedot")]
+       public const int KEY_Sabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sacute")]
+       public const int KEY_Sacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Scaron")]
+       public const int KEY_Scaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Scedilla")]
+       public const int KEY_Scedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Scircumflex")]
+       public const int KEY_Scircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Scroll_Lock")]
+       public const int KEY_Scroll_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Select")]
+       public const int KEY_Select;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_DJE")]
+       public const int KEY_Serbian_DJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_DZE")]
+       public const int KEY_Serbian_DZE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_JE")]
+       public const int KEY_Serbian_JE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_LJE")]
+       public const int KEY_Serbian_LJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_NJE")]
+       public const int KEY_Serbian_NJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_TSHE")]
+       public const int KEY_Serbian_TSHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_dje")]
+       public const int KEY_Serbian_dje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_dze")]
+       public const int KEY_Serbian_dze;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_je")]
+       public const int KEY_Serbian_je;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_lje")]
+       public const int KEY_Serbian_lje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_nje")]
+       public const int KEY_Serbian_nje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Serbian_tshe")]
+       public const int KEY_Serbian_tshe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Shift_L")]
+       public const int KEY_Shift_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Shift_Lock")]
+       public const int KEY_Shift_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Shift_R")]
+       public const int KEY_Shift_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_SingleCandidate")]
+       public const int KEY_SingleCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_a")]
+       public const int KEY_Sinh_a;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_aa")]
+       public const int KEY_Sinh_aa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_aa2")]
+       public const int KEY_Sinh_aa2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ae")]
+       public const int KEY_Sinh_ae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ae2")]
+       public const int KEY_Sinh_ae2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_aee")]
+       public const int KEY_Sinh_aee;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_aee2")]
+       public const int KEY_Sinh_aee2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ai")]
+       public const int KEY_Sinh_ai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ai2")]
+       public const int KEY_Sinh_ai2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_al")]
+       public const int KEY_Sinh_al;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_au")]
+       public const int KEY_Sinh_au;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_au2")]
+       public const int KEY_Sinh_au2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ba")]
+       public const int KEY_Sinh_ba;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_bha")]
+       public const int KEY_Sinh_bha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ca")]
+       public const int KEY_Sinh_ca;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_cha")]
+       public const int KEY_Sinh_cha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_dda")]
+       public const int KEY_Sinh_dda;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ddha")]
+       public const int KEY_Sinh_ddha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_dha")]
+       public const int KEY_Sinh_dha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_dhha")]
+       public const int KEY_Sinh_dhha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_e")]
+       public const int KEY_Sinh_e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_e2")]
+       public const int KEY_Sinh_e2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ee")]
+       public const int KEY_Sinh_ee;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ee2")]
+       public const int KEY_Sinh_ee2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_fa")]
+       public const int KEY_Sinh_fa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ga")]
+       public const int KEY_Sinh_ga;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_gha")]
+       public const int KEY_Sinh_gha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_h2")]
+       public const int KEY_Sinh_h2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ha")]
+       public const int KEY_Sinh_ha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_i")]
+       public const int KEY_Sinh_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_i2")]
+       public const int KEY_Sinh_i2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ii")]
+       public const int KEY_Sinh_ii;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ii2")]
+       public const int KEY_Sinh_ii2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ja")]
+       public const int KEY_Sinh_ja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_jha")]
+       public const int KEY_Sinh_jha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_jnya")]
+       public const int KEY_Sinh_jnya;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ka")]
+       public const int KEY_Sinh_ka;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_kha")]
+       public const int KEY_Sinh_kha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_kunddaliya")]
+       public const int KEY_Sinh_kunddaliya;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_la")]
+       public const int KEY_Sinh_la;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_lla")]
+       public const int KEY_Sinh_lla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_lu")]
+       public const int KEY_Sinh_lu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_lu2")]
+       public const int KEY_Sinh_lu2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_luu")]
+       public const int KEY_Sinh_luu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_luu2")]
+       public const int KEY_Sinh_luu2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ma")]
+       public const int KEY_Sinh_ma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_mba")]
+       public const int KEY_Sinh_mba;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_na")]
+       public const int KEY_Sinh_na;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ndda")]
+       public const int KEY_Sinh_ndda;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ndha")]
+       public const int KEY_Sinh_ndha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ng")]
+       public const int KEY_Sinh_ng;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ng2")]
+       public const int KEY_Sinh_ng2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_nga")]
+       public const int KEY_Sinh_nga;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_nja")]
+       public const int KEY_Sinh_nja;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_nna")]
+       public const int KEY_Sinh_nna;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_nya")]
+       public const int KEY_Sinh_nya;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_o")]
+       public const int KEY_Sinh_o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_o2")]
+       public const int KEY_Sinh_o2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_oo")]
+       public const int KEY_Sinh_oo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_oo2")]
+       public const int KEY_Sinh_oo2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_pa")]
+       public const int KEY_Sinh_pa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_pha")]
+       public const int KEY_Sinh_pha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ra")]
+       public const int KEY_Sinh_ra;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ri")]
+       public const int KEY_Sinh_ri;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_rii")]
+       public const int KEY_Sinh_rii;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ru2")]
+       public const int KEY_Sinh_ru2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ruu2")]
+       public const int KEY_Sinh_ruu2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_sa")]
+       public const int KEY_Sinh_sa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_sha")]
+       public const int KEY_Sinh_sha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ssha")]
+       public const int KEY_Sinh_ssha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_tha")]
+       public const int KEY_Sinh_tha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_thha")]
+       public const int KEY_Sinh_thha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_tta")]
+       public const int KEY_Sinh_tta;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ttha")]
+       public const int KEY_Sinh_ttha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_u")]
+       public const int KEY_Sinh_u;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_u2")]
+       public const int KEY_Sinh_u2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_uu")]
+       public const int KEY_Sinh_uu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_uu2")]
+       public const int KEY_Sinh_uu2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_va")]
+       public const int KEY_Sinh_va;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sinh_ya")]
+       public const int KEY_Sinh_ya;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_SlowKeys_Enable")]
+       public const int KEY_SlowKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_StickyKeys_Enable")]
+       public const int KEY_StickyKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Super_L")]
+       public const int KEY_Super_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Super_R")]
+       public const int KEY_Super_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Sys_Req")]
+       public const int KEY_Sys_Req;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_T")]
+       public const int KEY_T;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_THORN")]
+       public const int KEY_THORN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Tab")]
+       public const int KEY_Tab;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Tabovedot")]
+       public const int KEY_Tabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Tcaron")]
+       public const int KEY_Tcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Tcedilla")]
+       public const int KEY_Tcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Terminate_Server")]
+       public const int KEY_Terminate_Server;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_baht")]
+       public const int KEY_Thai_baht;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_bobaimai")]
+       public const int KEY_Thai_bobaimai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_chochan")]
+       public const int KEY_Thai_chochan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_chochang")]
+       public const int KEY_Thai_chochang;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_choching")]
+       public const int KEY_Thai_choching;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_chochoe")]
+       public const int KEY_Thai_chochoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_dochada")]
+       public const int KEY_Thai_dochada;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_dodek")]
+       public const int KEY_Thai_dodek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_fofa")]
+       public const int KEY_Thai_fofa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_fofan")]
+       public const int KEY_Thai_fofan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_hohip")]
+       public const int KEY_Thai_hohip;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_honokhuk")]
+       public const int KEY_Thai_honokhuk;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_khokhai")]
+       public const int KEY_Thai_khokhai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_khokhon")]
+       public const int KEY_Thai_khokhon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_khokhuat")]
+       public const int KEY_Thai_khokhuat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_khokhwai")]
+       public const int KEY_Thai_khokhwai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_khorakhang")]
+       public const int KEY_Thai_khorakhang;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_kokai")]
+       public const int KEY_Thai_kokai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_lakkhangyao")]
+       public const int KEY_Thai_lakkhangyao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_lekchet")]
+       public const int KEY_Thai_lekchet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_lekha")]
+       public const int KEY_Thai_lekha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_lekhok")]
+       public const int KEY_Thai_lekhok;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_lekkao")]
+       public const int KEY_Thai_lekkao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_leknung")]
+       public const int KEY_Thai_leknung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_lekpaet")]
+       public const int KEY_Thai_lekpaet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_leksam")]
+       public const int KEY_Thai_leksam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_leksi")]
+       public const int KEY_Thai_leksi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_leksong")]
+       public const int KEY_Thai_leksong;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_leksun")]
+       public const int KEY_Thai_leksun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_lochula")]
+       public const int KEY_Thai_lochula;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_loling")]
+       public const int KEY_Thai_loling;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_lu")]
+       public const int KEY_Thai_lu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_maichattawa")]
+       public const int KEY_Thai_maichattawa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_maiek")]
+       public const int KEY_Thai_maiek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_maihanakat")]
+       public const int KEY_Thai_maihanakat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_maihanakat_maitho")]
+       public const int KEY_Thai_maihanakat_maitho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_maitaikhu")]
+       public const int KEY_Thai_maitaikhu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_maitho")]
+       public const int KEY_Thai_maitho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_maitri")]
+       public const int KEY_Thai_maitri;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_maiyamok")]
+       public const int KEY_Thai_maiyamok;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_moma")]
+       public const int KEY_Thai_moma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_ngongu")]
+       public const int KEY_Thai_ngongu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_nikhahit")]
+       public const int KEY_Thai_nikhahit;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_nonen")]
+       public const int KEY_Thai_nonen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_nonu")]
+       public const int KEY_Thai_nonu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_oang")]
+       public const int KEY_Thai_oang;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_paiyannoi")]
+       public const int KEY_Thai_paiyannoi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_phinthu")]
+       public const int KEY_Thai_phinthu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_phophan")]
+       public const int KEY_Thai_phophan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_phophung")]
+       public const int KEY_Thai_phophung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_phosamphao")]
+       public const int KEY_Thai_phosamphao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_popla")]
+       public const int KEY_Thai_popla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_rorua")]
+       public const int KEY_Thai_rorua;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_ru")]
+       public const int KEY_Thai_ru;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_saraa")]
+       public const int KEY_Thai_saraa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_saraaa")]
+       public const int KEY_Thai_saraaa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_saraae")]
+       public const int KEY_Thai_saraae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_saraaimaimalai")]
+       public const int KEY_Thai_saraaimaimalai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_saraaimaimuan")]
+       public const int KEY_Thai_saraaimaimuan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_saraam")]
+       public const int KEY_Thai_saraam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_sarae")]
+       public const int KEY_Thai_sarae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_sarai")]
+       public const int KEY_Thai_sarai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_saraii")]
+       public const int KEY_Thai_saraii;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_sarao")]
+       public const int KEY_Thai_sarao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_sarau")]
+       public const int KEY_Thai_sarau;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_saraue")]
+       public const int KEY_Thai_saraue;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_sarauee")]
+       public const int KEY_Thai_sarauee;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_sarauu")]
+       public const int KEY_Thai_sarauu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_sorusi")]
+       public const int KEY_Thai_sorusi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_sosala")]
+       public const int KEY_Thai_sosala;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_soso")]
+       public const int KEY_Thai_soso;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_sosua")]
+       public const int KEY_Thai_sosua;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_thanthakhat")]
+       public const int KEY_Thai_thanthakhat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_thonangmontho")]
+       public const int KEY_Thai_thonangmontho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_thophuthao")]
+       public const int KEY_Thai_thophuthao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_thothahan")]
+       public const int KEY_Thai_thothahan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_thothan")]
+       public const int KEY_Thai_thothan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_thothong")]
+       public const int KEY_Thai_thothong;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_thothung")]
+       public const int KEY_Thai_thothung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_topatak")]
+       public const int KEY_Thai_topatak;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_totao")]
+       public const int KEY_Thai_totao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_wowaen")]
+       public const int KEY_Thai_wowaen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_yoyak")]
+       public const int KEY_Thai_yoyak;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thai_yoying")]
+       public const int KEY_Thai_yoying;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Thorn")]
+       public const int KEY_Thorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Touroku")]
+       public const int KEY_Touroku;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Tslash")]
+       public const int KEY_Tslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_U")]
+       public const int KEY_U;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uacute")]
+       public const int KEY_Uacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ubelowdot")]
+       public const int KEY_Ubelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ubreve")]
+       public const int KEY_Ubreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ucircumflex")]
+       public const int KEY_Ucircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Udiaeresis")]
+       public const int KEY_Udiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Udoubleacute")]
+       public const int KEY_Udoubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ugrave")]
+       public const int KEY_Ugrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uhook")]
+       public const int KEY_Uhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uhorn")]
+       public const int KEY_Uhorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uhornacute")]
+       public const int KEY_Uhornacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uhornbelowdot")]
+       public const int KEY_Uhornbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uhorngrave")]
+       public const int KEY_Uhorngrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uhornhook")]
+       public const int KEY_Uhornhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uhorntilde")]
+       public const int KEY_Uhorntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukrainian_GHE_WITH_UPTURN")]
+       public const int KEY_Ukrainian_GHE_WITH_UPTURN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukrainian_I")]
+       public const int KEY_Ukrainian_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukrainian_IE")]
+       public const int KEY_Ukrainian_IE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukrainian_YI")]
+       public const int KEY_Ukrainian_YI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukrainian_ghe_with_upturn")]
+       public const int KEY_Ukrainian_ghe_with_upturn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukrainian_i")]
+       public const int KEY_Ukrainian_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukrainian_ie")]
+       public const int KEY_Ukrainian_ie;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukrainian_yi")]
+       public const int KEY_Ukrainian_yi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukranian_I")]
+       public const int KEY_Ukranian_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukranian_JE")]
+       public const int KEY_Ukranian_JE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukranian_YI")]
+       public const int KEY_Ukranian_YI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukranian_i")]
+       public const int KEY_Ukranian_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukranian_je")]
+       public const int KEY_Ukranian_je;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ukranian_yi")]
+       public const int KEY_Ukranian_yi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Umacron")]
+       public const int KEY_Umacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Undo")]
+       public const int KEY_Undo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uogonek")]
+       public const int KEY_Uogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Up")]
+       public const int KEY_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Uring")]
+       public const int KEY_Uring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Utilde")]
+       public const int KEY_Utilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_V")]
+       public const int KEY_V;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_VoidSymbol")]
+       public const int KEY_VoidSymbol;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_W")]
+       public const int KEY_W;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Wacute")]
+       public const int KEY_Wacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Wcircumflex")]
+       public const int KEY_Wcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Wdiaeresis")]
+       public const int KEY_Wdiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Wgrave")]
+       public const int KEY_Wgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_WonSign")]
+       public const int KEY_WonSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_X")]
+       public const int KEY_X;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Xabovedot")]
+       public const int KEY_Xabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Y")]
+       public const int KEY_Y;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Yacute")]
+       public const int KEY_Yacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ybelowdot")]
+       public const int KEY_Ybelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ycircumflex")]
+       public const int KEY_Ycircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ydiaeresis")]
+       public const int KEY_Ydiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ygrave")]
+       public const int KEY_Ygrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Yhook")]
+       public const int KEY_Yhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Ytilde")]
+       public const int KEY_Ytilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Z")]
+       public const int KEY_Z;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Zabovedot")]
+       public const int KEY_Zabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Zacute")]
+       public const int KEY_Zacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Zcaron")]
+       public const int KEY_Zcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Zen_Koho")]
+       public const int KEY_Zen_Koho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Zenkaku")]
+       public const int KEY_Zenkaku;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Zenkaku_Hankaku")]
+       public const int KEY_Zenkaku_Hankaku;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_Zstroke")]
+       public const int KEY_Zstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_a")]
+       public const int KEY_a;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_aacute")]
+       public const int KEY_aacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_abelowdot")]
+       public const int KEY_abelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_abovedot")]
+       public const int KEY_abovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_abreve")]
+       public const int KEY_abreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_abreveacute")]
+       public const int KEY_abreveacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_abrevebelowdot")]
+       public const int KEY_abrevebelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_abrevegrave")]
+       public const int KEY_abrevegrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_abrevehook")]
+       public const int KEY_abrevehook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_abrevetilde")]
+       public const int KEY_abrevetilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_acircumflex")]
+       public const int KEY_acircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_acircumflexacute")]
+       public const int KEY_acircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_acircumflexbelowdot")]
+       public const int KEY_acircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_acircumflexgrave")]
+       public const int KEY_acircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_acircumflexhook")]
+       public const int KEY_acircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_acircumflextilde")]
+       public const int KEY_acircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_acute")]
+       public const int KEY_acute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_adiaeresis")]
+       public const int KEY_adiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ae")]
+       public const int KEY_ae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_agrave")]
+       public const int KEY_agrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ahook")]
+       public const int KEY_ahook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_amacron")]
+       public const int KEY_amacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ampersand")]
+       public const int KEY_ampersand;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_aogonek")]
+       public const int KEY_aogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_apostrophe")]
+       public const int KEY_apostrophe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_approxeq")]
+       public const int KEY_approxeq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_approximate")]
+       public const int KEY_approximate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_aring")]
+       public const int KEY_aring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_asciicircum")]
+       public const int KEY_asciicircum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_asciitilde")]
+       public const int KEY_asciitilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_asterisk")]
+       public const int KEY_asterisk;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_at")]
+       public const int KEY_at;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_atilde")]
+       public const int KEY_atilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_b")]
+       public const int KEY_b;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_babovedot")]
+       public const int KEY_babovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_backslash")]
+       public const int KEY_backslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ballotcross")]
+       public const int KEY_ballotcross;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_bar")]
+       public const int KEY_bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_because")]
+       public const int KEY_because;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_blank")]
+       public const int KEY_blank;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_botintegral")]
+       public const int KEY_botintegral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_botleftparens")]
+       public const int KEY_botleftparens;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_botleftsqbracket")]
+       public const int KEY_botleftsqbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_botleftsummation")]
+       public const int KEY_botleftsummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_botrightparens")]
+       public const int KEY_botrightparens;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_botrightsqbracket")]
+       public const int KEY_botrightsqbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_botrightsummation")]
+       public const int KEY_botrightsummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_bott")]
+       public const int KEY_bott;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_botvertsummationconnector")]
+       public const int KEY_botvertsummationconnector;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braceleft")]
+       public const int KEY_braceleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braceright")]
+       public const int KEY_braceright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_bracketleft")]
+       public const int KEY_bracketleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_bracketright")]
+       public const int KEY_bracketright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_blank")]
+       public const int KEY_braille_blank;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_1")]
+       public const int KEY_braille_dot_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_10")]
+       public const int KEY_braille_dot_10;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_2")]
+       public const int KEY_braille_dot_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_3")]
+       public const int KEY_braille_dot_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_4")]
+       public const int KEY_braille_dot_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_5")]
+       public const int KEY_braille_dot_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_6")]
+       public const int KEY_braille_dot_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_7")]
+       public const int KEY_braille_dot_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_8")]
+       public const int KEY_braille_dot_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dot_9")]
+       public const int KEY_braille_dot_9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1")]
+       public const int KEY_braille_dots_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12")]
+       public const int KEY_braille_dots_12;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123")]
+       public const int KEY_braille_dots_123;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1234")]
+       public const int KEY_braille_dots_1234;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12345")]
+       public const int KEY_braille_dots_12345;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123456")]
+       public const int KEY_braille_dots_123456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1234567")]
+       public const int KEY_braille_dots_1234567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12345678")]
+       public const int KEY_braille_dots_12345678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1234568")]
+       public const int KEY_braille_dots_1234568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123457")]
+       public const int KEY_braille_dots_123457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1234578")]
+       public const int KEY_braille_dots_1234578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123458")]
+       public const int KEY_braille_dots_123458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12346")]
+       public const int KEY_braille_dots_12346;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123467")]
+       public const int KEY_braille_dots_123467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1234678")]
+       public const int KEY_braille_dots_1234678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123468")]
+       public const int KEY_braille_dots_123468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12347")]
+       public const int KEY_braille_dots_12347;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123478")]
+       public const int KEY_braille_dots_123478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12348")]
+       public const int KEY_braille_dots_12348;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1235")]
+       public const int KEY_braille_dots_1235;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12356")]
+       public const int KEY_braille_dots_12356;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123567")]
+       public const int KEY_braille_dots_123567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1235678")]
+       public const int KEY_braille_dots_1235678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123568")]
+       public const int KEY_braille_dots_123568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12357")]
+       public const int KEY_braille_dots_12357;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123578")]
+       public const int KEY_braille_dots_123578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12358")]
+       public const int KEY_braille_dots_12358;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1236")]
+       public const int KEY_braille_dots_1236;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12367")]
+       public const int KEY_braille_dots_12367;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_123678")]
+       public const int KEY_braille_dots_123678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12368")]
+       public const int KEY_braille_dots_12368;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1237")]
+       public const int KEY_braille_dots_1237;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12378")]
+       public const int KEY_braille_dots_12378;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1238")]
+       public const int KEY_braille_dots_1238;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_124")]
+       public const int KEY_braille_dots_124;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1245")]
+       public const int KEY_braille_dots_1245;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12456")]
+       public const int KEY_braille_dots_12456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_124567")]
+       public const int KEY_braille_dots_124567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1245678")]
+       public const int KEY_braille_dots_1245678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_124568")]
+       public const int KEY_braille_dots_124568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12457")]
+       public const int KEY_braille_dots_12457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_124578")]
+       public const int KEY_braille_dots_124578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12458")]
+       public const int KEY_braille_dots_12458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1246")]
+       public const int KEY_braille_dots_1246;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12467")]
+       public const int KEY_braille_dots_12467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_124678")]
+       public const int KEY_braille_dots_124678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12468")]
+       public const int KEY_braille_dots_12468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1247")]
+       public const int KEY_braille_dots_1247;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12478")]
+       public const int KEY_braille_dots_12478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1248")]
+       public const int KEY_braille_dots_1248;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_125")]
+       public const int KEY_braille_dots_125;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1256")]
+       public const int KEY_braille_dots_1256;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12567")]
+       public const int KEY_braille_dots_12567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_125678")]
+       public const int KEY_braille_dots_125678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12568")]
+       public const int KEY_braille_dots_12568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1257")]
+       public const int KEY_braille_dots_1257;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12578")]
+       public const int KEY_braille_dots_12578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1258")]
+       public const int KEY_braille_dots_1258;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_126")]
+       public const int KEY_braille_dots_126;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1267")]
+       public const int KEY_braille_dots_1267;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_12678")]
+       public const int KEY_braille_dots_12678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1268")]
+       public const int KEY_braille_dots_1268;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_127")]
+       public const int KEY_braille_dots_127;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1278")]
+       public const int KEY_braille_dots_1278;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_128")]
+       public const int KEY_braille_dots_128;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13")]
+       public const int KEY_braille_dots_13;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_134")]
+       public const int KEY_braille_dots_134;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1345")]
+       public const int KEY_braille_dots_1345;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13456")]
+       public const int KEY_braille_dots_13456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_134567")]
+       public const int KEY_braille_dots_134567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1345678")]
+       public const int KEY_braille_dots_1345678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_134568")]
+       public const int KEY_braille_dots_134568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13457")]
+       public const int KEY_braille_dots_13457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_134578")]
+       public const int KEY_braille_dots_134578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13458")]
+       public const int KEY_braille_dots_13458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1346")]
+       public const int KEY_braille_dots_1346;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13467")]
+       public const int KEY_braille_dots_13467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_134678")]
+       public const int KEY_braille_dots_134678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13468")]
+       public const int KEY_braille_dots_13468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1347")]
+       public const int KEY_braille_dots_1347;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13478")]
+       public const int KEY_braille_dots_13478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1348")]
+       public const int KEY_braille_dots_1348;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_135")]
+       public const int KEY_braille_dots_135;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1356")]
+       public const int KEY_braille_dots_1356;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13567")]
+       public const int KEY_braille_dots_13567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_135678")]
+       public const int KEY_braille_dots_135678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13568")]
+       public const int KEY_braille_dots_13568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1357")]
+       public const int KEY_braille_dots_1357;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13578")]
+       public const int KEY_braille_dots_13578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1358")]
+       public const int KEY_braille_dots_1358;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_136")]
+       public const int KEY_braille_dots_136;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1367")]
+       public const int KEY_braille_dots_1367;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_13678")]
+       public const int KEY_braille_dots_13678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1368")]
+       public const int KEY_braille_dots_1368;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_137")]
+       public const int KEY_braille_dots_137;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1378")]
+       public const int KEY_braille_dots_1378;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_138")]
+       public const int KEY_braille_dots_138;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_14")]
+       public const int KEY_braille_dots_14;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_145")]
+       public const int KEY_braille_dots_145;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1456")]
+       public const int KEY_braille_dots_1456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_14567")]
+       public const int KEY_braille_dots_14567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_145678")]
+       public const int KEY_braille_dots_145678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_14568")]
+       public const int KEY_braille_dots_14568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1457")]
+       public const int KEY_braille_dots_1457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_14578")]
+       public const int KEY_braille_dots_14578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1458")]
+       public const int KEY_braille_dots_1458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_146")]
+       public const int KEY_braille_dots_146;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1467")]
+       public const int KEY_braille_dots_1467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_14678")]
+       public const int KEY_braille_dots_14678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1468")]
+       public const int KEY_braille_dots_1468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_147")]
+       public const int KEY_braille_dots_147;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1478")]
+       public const int KEY_braille_dots_1478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_148")]
+       public const int KEY_braille_dots_148;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_15")]
+       public const int KEY_braille_dots_15;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_156")]
+       public const int KEY_braille_dots_156;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1567")]
+       public const int KEY_braille_dots_1567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_15678")]
+       public const int KEY_braille_dots_15678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1568")]
+       public const int KEY_braille_dots_1568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_157")]
+       public const int KEY_braille_dots_157;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1578")]
+       public const int KEY_braille_dots_1578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_158")]
+       public const int KEY_braille_dots_158;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_16")]
+       public const int KEY_braille_dots_16;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_167")]
+       public const int KEY_braille_dots_167;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_1678")]
+       public const int KEY_braille_dots_1678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_168")]
+       public const int KEY_braille_dots_168;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_17")]
+       public const int KEY_braille_dots_17;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_178")]
+       public const int KEY_braille_dots_178;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_18")]
+       public const int KEY_braille_dots_18;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2")]
+       public const int KEY_braille_dots_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23")]
+       public const int KEY_braille_dots_23;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_234")]
+       public const int KEY_braille_dots_234;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2345")]
+       public const int KEY_braille_dots_2345;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23456")]
+       public const int KEY_braille_dots_23456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_234567")]
+       public const int KEY_braille_dots_234567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2345678")]
+       public const int KEY_braille_dots_2345678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_234568")]
+       public const int KEY_braille_dots_234568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23457")]
+       public const int KEY_braille_dots_23457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_234578")]
+       public const int KEY_braille_dots_234578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23458")]
+       public const int KEY_braille_dots_23458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2346")]
+       public const int KEY_braille_dots_2346;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23467")]
+       public const int KEY_braille_dots_23467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_234678")]
+       public const int KEY_braille_dots_234678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23468")]
+       public const int KEY_braille_dots_23468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2347")]
+       public const int KEY_braille_dots_2347;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23478")]
+       public const int KEY_braille_dots_23478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2348")]
+       public const int KEY_braille_dots_2348;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_235")]
+       public const int KEY_braille_dots_235;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2356")]
+       public const int KEY_braille_dots_2356;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23567")]
+       public const int KEY_braille_dots_23567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_235678")]
+       public const int KEY_braille_dots_235678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23568")]
+       public const int KEY_braille_dots_23568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2357")]
+       public const int KEY_braille_dots_2357;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23578")]
+       public const int KEY_braille_dots_23578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2358")]
+       public const int KEY_braille_dots_2358;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_236")]
+       public const int KEY_braille_dots_236;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2367")]
+       public const int KEY_braille_dots_2367;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_23678")]
+       public const int KEY_braille_dots_23678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2368")]
+       public const int KEY_braille_dots_2368;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_237")]
+       public const int KEY_braille_dots_237;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2378")]
+       public const int KEY_braille_dots_2378;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_238")]
+       public const int KEY_braille_dots_238;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_24")]
+       public const int KEY_braille_dots_24;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_245")]
+       public const int KEY_braille_dots_245;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2456")]
+       public const int KEY_braille_dots_2456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_24567")]
+       public const int KEY_braille_dots_24567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_245678")]
+       public const int KEY_braille_dots_245678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_24568")]
+       public const int KEY_braille_dots_24568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2457")]
+       public const int KEY_braille_dots_2457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_24578")]
+       public const int KEY_braille_dots_24578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2458")]
+       public const int KEY_braille_dots_2458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_246")]
+       public const int KEY_braille_dots_246;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2467")]
+       public const int KEY_braille_dots_2467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_24678")]
+       public const int KEY_braille_dots_24678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2468")]
+       public const int KEY_braille_dots_2468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_247")]
+       public const int KEY_braille_dots_247;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2478")]
+       public const int KEY_braille_dots_2478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_248")]
+       public const int KEY_braille_dots_248;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_25")]
+       public const int KEY_braille_dots_25;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_256")]
+       public const int KEY_braille_dots_256;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2567")]
+       public const int KEY_braille_dots_2567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_25678")]
+       public const int KEY_braille_dots_25678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2568")]
+       public const int KEY_braille_dots_2568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_257")]
+       public const int KEY_braille_dots_257;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2578")]
+       public const int KEY_braille_dots_2578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_258")]
+       public const int KEY_braille_dots_258;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_26")]
+       public const int KEY_braille_dots_26;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_267")]
+       public const int KEY_braille_dots_267;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_2678")]
+       public const int KEY_braille_dots_2678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_268")]
+       public const int KEY_braille_dots_268;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_27")]
+       public const int KEY_braille_dots_27;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_278")]
+       public const int KEY_braille_dots_278;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_28")]
+       public const int KEY_braille_dots_28;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3")]
+       public const int KEY_braille_dots_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_34")]
+       public const int KEY_braille_dots_34;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_345")]
+       public const int KEY_braille_dots_345;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3456")]
+       public const int KEY_braille_dots_3456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_34567")]
+       public const int KEY_braille_dots_34567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_345678")]
+       public const int KEY_braille_dots_345678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_34568")]
+       public const int KEY_braille_dots_34568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3457")]
+       public const int KEY_braille_dots_3457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_34578")]
+       public const int KEY_braille_dots_34578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3458")]
+       public const int KEY_braille_dots_3458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_346")]
+       public const int KEY_braille_dots_346;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3467")]
+       public const int KEY_braille_dots_3467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_34678")]
+       public const int KEY_braille_dots_34678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3468")]
+       public const int KEY_braille_dots_3468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_347")]
+       public const int KEY_braille_dots_347;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3478")]
+       public const int KEY_braille_dots_3478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_348")]
+       public const int KEY_braille_dots_348;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_35")]
+       public const int KEY_braille_dots_35;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_356")]
+       public const int KEY_braille_dots_356;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3567")]
+       public const int KEY_braille_dots_3567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_35678")]
+       public const int KEY_braille_dots_35678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3568")]
+       public const int KEY_braille_dots_3568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_357")]
+       public const int KEY_braille_dots_357;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3578")]
+       public const int KEY_braille_dots_3578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_358")]
+       public const int KEY_braille_dots_358;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_36")]
+       public const int KEY_braille_dots_36;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_367")]
+       public const int KEY_braille_dots_367;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_3678")]
+       public const int KEY_braille_dots_3678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_368")]
+       public const int KEY_braille_dots_368;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_37")]
+       public const int KEY_braille_dots_37;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_378")]
+       public const int KEY_braille_dots_378;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_38")]
+       public const int KEY_braille_dots_38;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_4")]
+       public const int KEY_braille_dots_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_45")]
+       public const int KEY_braille_dots_45;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_456")]
+       public const int KEY_braille_dots_456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_4567")]
+       public const int KEY_braille_dots_4567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_45678")]
+       public const int KEY_braille_dots_45678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_4568")]
+       public const int KEY_braille_dots_4568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_457")]
+       public const int KEY_braille_dots_457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_4578")]
+       public const int KEY_braille_dots_4578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_458")]
+       public const int KEY_braille_dots_458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_46")]
+       public const int KEY_braille_dots_46;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_467")]
+       public const int KEY_braille_dots_467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_4678")]
+       public const int KEY_braille_dots_4678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_468")]
+       public const int KEY_braille_dots_468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_47")]
+       public const int KEY_braille_dots_47;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_478")]
+       public const int KEY_braille_dots_478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_48")]
+       public const int KEY_braille_dots_48;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_5")]
+       public const int KEY_braille_dots_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_56")]
+       public const int KEY_braille_dots_56;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_567")]
+       public const int KEY_braille_dots_567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_5678")]
+       public const int KEY_braille_dots_5678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_568")]
+       public const int KEY_braille_dots_568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_57")]
+       public const int KEY_braille_dots_57;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_578")]
+       public const int KEY_braille_dots_578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_58")]
+       public const int KEY_braille_dots_58;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_6")]
+       public const int KEY_braille_dots_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_67")]
+       public const int KEY_braille_dots_67;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_678")]
+       public const int KEY_braille_dots_678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_68")]
+       public const int KEY_braille_dots_68;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_7")]
+       public const int KEY_braille_dots_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_78")]
+       public const int KEY_braille_dots_78;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_braille_dots_8")]
+       public const int KEY_braille_dots_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_breve")]
+       public const int KEY_breve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_brokenbar")]
+       public const int KEY_brokenbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_c")]
+       public const int KEY_c;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_c_h")]
+       public const int KEY_c_h;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_cabovedot")]
+       public const int KEY_cabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_cacute")]
+       public const int KEY_cacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_careof")]
+       public const int KEY_careof;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_caret")]
+       public const int KEY_caret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_caron")]
+       public const int KEY_caron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ccaron")]
+       public const int KEY_ccaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ccedilla")]
+       public const int KEY_ccedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ccircumflex")]
+       public const int KEY_ccircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_cedilla")]
+       public const int KEY_cedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_cent")]
+       public const int KEY_cent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ch")]
+       public const int KEY_ch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_checkerboard")]
+       public const int KEY_checkerboard;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_checkmark")]
+       public const int KEY_checkmark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_circle")]
+       public const int KEY_circle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_club")]
+       public const int KEY_club;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_colon")]
+       public const int KEY_colon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_comma")]
+       public const int KEY_comma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_containsas")]
+       public const int KEY_containsas;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_copyright")]
+       public const int KEY_copyright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_cr")]
+       public const int KEY_cr;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_crossinglines")]
+       public const int KEY_crossinglines;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_cuberoot")]
+       public const int KEY_cuberoot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_currency")]
+       public const int KEY_currency;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_cursor")]
+       public const int KEY_cursor;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_d")]
+       public const int KEY_d;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dabovedot")]
+       public const int KEY_dabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dagger")]
+       public const int KEY_dagger;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dcaron")]
+       public const int KEY_dcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_A")]
+       public const int KEY_dead_A;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_E")]
+       public const int KEY_dead_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_I")]
+       public const int KEY_dead_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_O")]
+       public const int KEY_dead_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_U")]
+       public const int KEY_dead_U;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_a")]
+       public const int KEY_dead_a;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_abovecomma")]
+       public const int KEY_dead_abovecomma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_abovedot")]
+       public const int KEY_dead_abovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_abovereversedcomma")]
+       public const int KEY_dead_abovereversedcomma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_abovering")]
+       public const int KEY_dead_abovering;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_acute")]
+       public const int KEY_dead_acute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_belowbreve")]
+       public const int KEY_dead_belowbreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_belowcircumflex")]
+       public const int KEY_dead_belowcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_belowcomma")]
+       public const int KEY_dead_belowcomma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_belowdiaeresis")]
+       public const int KEY_dead_belowdiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_belowdot")]
+       public const int KEY_dead_belowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_belowmacron")]
+       public const int KEY_dead_belowmacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_belowring")]
+       public const int KEY_dead_belowring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_belowtilde")]
+       public const int KEY_dead_belowtilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_breve")]
+       public const int KEY_dead_breve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_capital_schwa")]
+       public const int KEY_dead_capital_schwa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_caron")]
+       public const int KEY_dead_caron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_cedilla")]
+       public const int KEY_dead_cedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_circumflex")]
+       public const int KEY_dead_circumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_currency")]
+       public const int KEY_dead_currency;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_dasia")]
+       public const int KEY_dead_dasia;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_diaeresis")]
+       public const int KEY_dead_diaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_doubleacute")]
+       public const int KEY_dead_doubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_doublegrave")]
+       public const int KEY_dead_doublegrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_e")]
+       public const int KEY_dead_e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_grave")]
+       public const int KEY_dead_grave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_hook")]
+       public const int KEY_dead_hook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_horn")]
+       public const int KEY_dead_horn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_i")]
+       public const int KEY_dead_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_invertedbreve")]
+       public const int KEY_dead_invertedbreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_iota")]
+       public const int KEY_dead_iota;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_macron")]
+       public const int KEY_dead_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_o")]
+       public const int KEY_dead_o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_ogonek")]
+       public const int KEY_dead_ogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_perispomeni")]
+       public const int KEY_dead_perispomeni;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_psili")]
+       public const int KEY_dead_psili;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_semivoiced_sound")]
+       public const int KEY_dead_semivoiced_sound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_small_schwa")]
+       public const int KEY_dead_small_schwa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_stroke")]
+       public const int KEY_dead_stroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_tilde")]
+       public const int KEY_dead_tilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_u")]
+       public const int KEY_dead_u;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dead_voiced_sound")]
+       public const int KEY_dead_voiced_sound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_decimalpoint")]
+       public const int KEY_decimalpoint;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_degree")]
+       public const int KEY_degree;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_diaeresis")]
+       public const int KEY_diaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_diamond")]
+       public const int KEY_diamond;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_digitspace")]
+       public const int KEY_digitspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dintegral")]
+       public const int KEY_dintegral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_division")]
+       public const int KEY_division;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dollar")]
+       public const int KEY_dollar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_doubbaselinedot")]
+       public const int KEY_doubbaselinedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_doubleacute")]
+       public const int KEY_doubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_doubledagger")]
+       public const int KEY_doubledagger;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_doublelowquotemark")]
+       public const int KEY_doublelowquotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_downarrow")]
+       public const int KEY_downarrow;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_downcaret")]
+       public const int KEY_downcaret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_downshoe")]
+       public const int KEY_downshoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_downstile")]
+       public const int KEY_downstile;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_downtack")]
+       public const int KEY_downtack;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_dstroke")]
+       public const int KEY_dstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_e")]
+       public const int KEY_e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_eabovedot")]
+       public const int KEY_eabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_eacute")]
+       public const int KEY_eacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ebelowdot")]
+       public const int KEY_ebelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ecaron")]
+       public const int KEY_ecaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ecircumflex")]
+       public const int KEY_ecircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ecircumflexacute")]
+       public const int KEY_ecircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ecircumflexbelowdot")]
+       public const int KEY_ecircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ecircumflexgrave")]
+       public const int KEY_ecircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ecircumflexhook")]
+       public const int KEY_ecircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ecircumflextilde")]
+       public const int KEY_ecircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ediaeresis")]
+       public const int KEY_ediaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_egrave")]
+       public const int KEY_egrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ehook")]
+       public const int KEY_ehook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_eightsubscript")]
+       public const int KEY_eightsubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_eightsuperior")]
+       public const int KEY_eightsuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_elementof")]
+       public const int KEY_elementof;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ellipsis")]
+       public const int KEY_ellipsis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_em3space")]
+       public const int KEY_em3space;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_em4space")]
+       public const int KEY_em4space;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_emacron")]
+       public const int KEY_emacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_emdash")]
+       public const int KEY_emdash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_emfilledcircle")]
+       public const int KEY_emfilledcircle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_emfilledrect")]
+       public const int KEY_emfilledrect;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_emopencircle")]
+       public const int KEY_emopencircle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_emopenrectangle")]
+       public const int KEY_emopenrectangle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_emptyset")]
+       public const int KEY_emptyset;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_emspace")]
+       public const int KEY_emspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_endash")]
+       public const int KEY_endash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_enfilledcircbullet")]
+       public const int KEY_enfilledcircbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_enfilledsqbullet")]
+       public const int KEY_enfilledsqbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_eng")]
+       public const int KEY_eng;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_enopencircbullet")]
+       public const int KEY_enopencircbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_enopensquarebullet")]
+       public const int KEY_enopensquarebullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_enspace")]
+       public const int KEY_enspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_eogonek")]
+       public const int KEY_eogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_equal")]
+       public const int KEY_equal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_eth")]
+       public const int KEY_eth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_etilde")]
+       public const int KEY_etilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_exclam")]
+       public const int KEY_exclam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_exclamdown")]
+       public const int KEY_exclamdown;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_f")]
+       public const int KEY_f;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_fabovedot")]
+       public const int KEY_fabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_femalesymbol")]
+       public const int KEY_femalesymbol;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ff")]
+       public const int KEY_ff;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_figdash")]
+       public const int KEY_figdash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_filledlefttribullet")]
+       public const int KEY_filledlefttribullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_filledrectbullet")]
+       public const int KEY_filledrectbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_filledrighttribullet")]
+       public const int KEY_filledrighttribullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_filledtribulletdown")]
+       public const int KEY_filledtribulletdown;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_filledtribulletup")]
+       public const int KEY_filledtribulletup;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_fiveeighths")]
+       public const int KEY_fiveeighths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_fivesixths")]
+       public const int KEY_fivesixths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_fivesubscript")]
+       public const int KEY_fivesubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_fivesuperior")]
+       public const int KEY_fivesuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_fourfifths")]
+       public const int KEY_fourfifths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_foursubscript")]
+       public const int KEY_foursubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_foursuperior")]
+       public const int KEY_foursuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_fourthroot")]
+       public const int KEY_fourthroot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_function")]
+       public const int KEY_function;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_g")]
+       public const int KEY_g;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_gabovedot")]
+       public const int KEY_gabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_gbreve")]
+       public const int KEY_gbreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_gcaron")]
+       public const int KEY_gcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_gcedilla")]
+       public const int KEY_gcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_gcircumflex")]
+       public const int KEY_gcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_grave")]
+       public const int KEY_grave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_greater")]
+       public const int KEY_greater;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_greaterthanequal")]
+       public const int KEY_greaterthanequal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_guillemotleft")]
+       public const int KEY_guillemotleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_guillemotright")]
+       public const int KEY_guillemotright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_h")]
+       public const int KEY_h;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hairspace")]
+       public const int KEY_hairspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hcircumflex")]
+       public const int KEY_hcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_heart")]
+       public const int KEY_heart;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_aleph")]
+       public const int KEY_hebrew_aleph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_ayin")]
+       public const int KEY_hebrew_ayin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_bet")]
+       public const int KEY_hebrew_bet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_beth")]
+       public const int KEY_hebrew_beth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_chet")]
+       public const int KEY_hebrew_chet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_dalet")]
+       public const int KEY_hebrew_dalet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_daleth")]
+       public const int KEY_hebrew_daleth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_doublelowline")]
+       public const int KEY_hebrew_doublelowline;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_finalkaph")]
+       public const int KEY_hebrew_finalkaph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_finalmem")]
+       public const int KEY_hebrew_finalmem;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_finalnun")]
+       public const int KEY_hebrew_finalnun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_finalpe")]
+       public const int KEY_hebrew_finalpe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_finalzade")]
+       public const int KEY_hebrew_finalzade;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_finalzadi")]
+       public const int KEY_hebrew_finalzadi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_gimel")]
+       public const int KEY_hebrew_gimel;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_gimmel")]
+       public const int KEY_hebrew_gimmel;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_he")]
+       public const int KEY_hebrew_he;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_het")]
+       public const int KEY_hebrew_het;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_kaph")]
+       public const int KEY_hebrew_kaph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_kuf")]
+       public const int KEY_hebrew_kuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_lamed")]
+       public const int KEY_hebrew_lamed;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_mem")]
+       public const int KEY_hebrew_mem;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_nun")]
+       public const int KEY_hebrew_nun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_pe")]
+       public const int KEY_hebrew_pe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_qoph")]
+       public const int KEY_hebrew_qoph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_resh")]
+       public const int KEY_hebrew_resh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_samech")]
+       public const int KEY_hebrew_samech;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_samekh")]
+       public const int KEY_hebrew_samekh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_shin")]
+       public const int KEY_hebrew_shin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_taf")]
+       public const int KEY_hebrew_taf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_taw")]
+       public const int KEY_hebrew_taw;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_tet")]
+       public const int KEY_hebrew_tet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_teth")]
+       public const int KEY_hebrew_teth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_waw")]
+       public const int KEY_hebrew_waw;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_yod")]
+       public const int KEY_hebrew_yod;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_zade")]
+       public const int KEY_hebrew_zade;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_zadi")]
+       public const int KEY_hebrew_zadi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_zain")]
+       public const int KEY_hebrew_zain;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hebrew_zayin")]
+       public const int KEY_hebrew_zayin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hexagram")]
+       public const int KEY_hexagram;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_horizconnector")]
+       public const int KEY_horizconnector;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_horizlinescan1")]
+       public const int KEY_horizlinescan1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_horizlinescan3")]
+       public const int KEY_horizlinescan3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_horizlinescan5")]
+       public const int KEY_horizlinescan5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_horizlinescan7")]
+       public const int KEY_horizlinescan7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_horizlinescan9")]
+       public const int KEY_horizlinescan9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hstroke")]
+       public const int KEY_hstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ht")]
+       public const int KEY_ht;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_hyphen")]
+       public const int KEY_hyphen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_i")]
+       public const int KEY_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_iacute")]
+       public const int KEY_iacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ibelowdot")]
+       public const int KEY_ibelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ibreve")]
+       public const int KEY_ibreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_icircumflex")]
+       public const int KEY_icircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_identical")]
+       public const int KEY_identical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_idiaeresis")]
+       public const int KEY_idiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_idotless")]
+       public const int KEY_idotless;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ifonlyif")]
+       public const int KEY_ifonlyif;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_igrave")]
+       public const int KEY_igrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ihook")]
+       public const int KEY_ihook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_imacron")]
+       public const int KEY_imacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_implies")]
+       public const int KEY_implies;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_includedin")]
+       public const int KEY_includedin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_includes")]
+       public const int KEY_includes;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_infinity")]
+       public const int KEY_infinity;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_integral")]
+       public const int KEY_integral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_intersection")]
+       public const int KEY_intersection;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_iogonek")]
+       public const int KEY_iogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_itilde")]
+       public const int KEY_itilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_j")]
+       public const int KEY_j;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_jcircumflex")]
+       public const int KEY_jcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_jot")]
+       public const int KEY_jot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_k")]
+       public const int KEY_k;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_A")]
+       public const int KEY_kana_A;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_CHI")]
+       public const int KEY_kana_CHI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_E")]
+       public const int KEY_kana_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_FU")]
+       public const int KEY_kana_FU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_HA")]
+       public const int KEY_kana_HA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_HE")]
+       public const int KEY_kana_HE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_HI")]
+       public const int KEY_kana_HI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_HO")]
+       public const int KEY_kana_HO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_HU")]
+       public const int KEY_kana_HU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_I")]
+       public const int KEY_kana_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_KA")]
+       public const int KEY_kana_KA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_KE")]
+       public const int KEY_kana_KE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_KI")]
+       public const int KEY_kana_KI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_KO")]
+       public const int KEY_kana_KO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_KU")]
+       public const int KEY_kana_KU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_MA")]
+       public const int KEY_kana_MA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_ME")]
+       public const int KEY_kana_ME;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_MI")]
+       public const int KEY_kana_MI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_MO")]
+       public const int KEY_kana_MO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_MU")]
+       public const int KEY_kana_MU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_N")]
+       public const int KEY_kana_N;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_NA")]
+       public const int KEY_kana_NA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_NE")]
+       public const int KEY_kana_NE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_NI")]
+       public const int KEY_kana_NI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_NO")]
+       public const int KEY_kana_NO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_NU")]
+       public const int KEY_kana_NU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_O")]
+       public const int KEY_kana_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_RA")]
+       public const int KEY_kana_RA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_RE")]
+       public const int KEY_kana_RE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_RI")]
+       public const int KEY_kana_RI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_RO")]
+       public const int KEY_kana_RO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_RU")]
+       public const int KEY_kana_RU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_SA")]
+       public const int KEY_kana_SA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_SE")]
+       public const int KEY_kana_SE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_SHI")]
+       public const int KEY_kana_SHI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_SO")]
+       public const int KEY_kana_SO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_SU")]
+       public const int KEY_kana_SU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_TA")]
+       public const int KEY_kana_TA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_TE")]
+       public const int KEY_kana_TE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_TI")]
+       public const int KEY_kana_TI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_TO")]
+       public const int KEY_kana_TO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_TSU")]
+       public const int KEY_kana_TSU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_TU")]
+       public const int KEY_kana_TU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_U")]
+       public const int KEY_kana_U;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_WA")]
+       public const int KEY_kana_WA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_WO")]
+       public const int KEY_kana_WO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_YA")]
+       public const int KEY_kana_YA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_YO")]
+       public const int KEY_kana_YO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_YU")]
+       public const int KEY_kana_YU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_a")]
+       public const int KEY_kana_a;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_closingbracket")]
+       public const int KEY_kana_closingbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_comma")]
+       public const int KEY_kana_comma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_conjunctive")]
+       public const int KEY_kana_conjunctive;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_e")]
+       public const int KEY_kana_e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_fullstop")]
+       public const int KEY_kana_fullstop;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_i")]
+       public const int KEY_kana_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_middledot")]
+       public const int KEY_kana_middledot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_o")]
+       public const int KEY_kana_o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_openingbracket")]
+       public const int KEY_kana_openingbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_switch")]
+       public const int KEY_kana_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_tsu")]
+       public const int KEY_kana_tsu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_tu")]
+       public const int KEY_kana_tu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_u")]
+       public const int KEY_kana_u;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_ya")]
+       public const int KEY_kana_ya;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_yo")]
+       public const int KEY_kana_yo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kana_yu")]
+       public const int KEY_kana_yu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kappa")]
+       public const int KEY_kappa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kcedilla")]
+       public const int KEY_kcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_kra")]
+       public const int KEY_kra;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_l")]
+       public const int KEY_l;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lacute")]
+       public const int KEY_lacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_latincross")]
+       public const int KEY_latincross;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lbelowdot")]
+       public const int KEY_lbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lcaron")]
+       public const int KEY_lcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lcedilla")]
+       public const int KEY_lcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftanglebracket")]
+       public const int KEY_leftanglebracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftarrow")]
+       public const int KEY_leftarrow;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftcaret")]
+       public const int KEY_leftcaret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftdoublequotemark")]
+       public const int KEY_leftdoublequotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftmiddlecurlybrace")]
+       public const int KEY_leftmiddlecurlybrace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftopentriangle")]
+       public const int KEY_leftopentriangle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftpointer")]
+       public const int KEY_leftpointer;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftradical")]
+       public const int KEY_leftradical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftshoe")]
+       public const int KEY_leftshoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftsinglequotemark")]
+       public const int KEY_leftsinglequotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_leftt")]
+       public const int KEY_leftt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lefttack")]
+       public const int KEY_lefttack;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_less")]
+       public const int KEY_less;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lessthanequal")]
+       public const int KEY_lessthanequal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lf")]
+       public const int KEY_lf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_logicaland")]
+       public const int KEY_logicaland;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_logicalor")]
+       public const int KEY_logicalor;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lowleftcorner")]
+       public const int KEY_lowleftcorner;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lowrightcorner")]
+       public const int KEY_lowrightcorner;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_lstroke")]
+       public const int KEY_lstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_m")]
+       public const int KEY_m;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_mabovedot")]
+       public const int KEY_mabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_macron")]
+       public const int KEY_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_malesymbol")]
+       public const int KEY_malesymbol;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_maltesecross")]
+       public const int KEY_maltesecross;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_marker")]
+       public const int KEY_marker;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_masculine")]
+       public const int KEY_masculine;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_minus")]
+       public const int KEY_minus;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_minutes")]
+       public const int KEY_minutes;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_mu")]
+       public const int KEY_mu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_multiply")]
+       public const int KEY_multiply;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_musicalflat")]
+       public const int KEY_musicalflat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_musicalsharp")]
+       public const int KEY_musicalsharp;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_n")]
+       public const int KEY_n;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_nabla")]
+       public const int KEY_nabla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_nacute")]
+       public const int KEY_nacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ncaron")]
+       public const int KEY_ncaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ncedilla")]
+       public const int KEY_ncedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ninesubscript")]
+       public const int KEY_ninesubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ninesuperior")]
+       public const int KEY_ninesuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_nl")]
+       public const int KEY_nl;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_nobreakspace")]
+       public const int KEY_nobreakspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_notapproxeq")]
+       public const int KEY_notapproxeq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_notelementof")]
+       public const int KEY_notelementof;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_notequal")]
+       public const int KEY_notequal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_notidentical")]
+       public const int KEY_notidentical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_notsign")]
+       public const int KEY_notsign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ntilde")]
+       public const int KEY_ntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_numbersign")]
+       public const int KEY_numbersign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_numerosign")]
+       public const int KEY_numerosign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_o")]
+       public const int KEY_o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_oacute")]
+       public const int KEY_oacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_obarred")]
+       public const int KEY_obarred;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_obelowdot")]
+       public const int KEY_obelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ocaron")]
+       public const int KEY_ocaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ocircumflex")]
+       public const int KEY_ocircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ocircumflexacute")]
+       public const int KEY_ocircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ocircumflexbelowdot")]
+       public const int KEY_ocircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ocircumflexgrave")]
+       public const int KEY_ocircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ocircumflexhook")]
+       public const int KEY_ocircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ocircumflextilde")]
+       public const int KEY_ocircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_odiaeresis")]
+       public const int KEY_odiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_odoubleacute")]
+       public const int KEY_odoubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_oe")]
+       public const int KEY_oe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ogonek")]
+       public const int KEY_ogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ograve")]
+       public const int KEY_ograve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ohook")]
+       public const int KEY_ohook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ohorn")]
+       public const int KEY_ohorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ohornacute")]
+       public const int KEY_ohornacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ohornbelowdot")]
+       public const int KEY_ohornbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ohorngrave")]
+       public const int KEY_ohorngrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ohornhook")]
+       public const int KEY_ohornhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ohorntilde")]
+       public const int KEY_ohorntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_omacron")]
+       public const int KEY_omacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_oneeighth")]
+       public const int KEY_oneeighth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_onefifth")]
+       public const int KEY_onefifth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_onehalf")]
+       public const int KEY_onehalf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_onequarter")]
+       public const int KEY_onequarter;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_onesixth")]
+       public const int KEY_onesixth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_onesubscript")]
+       public const int KEY_onesubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_onesuperior")]
+       public const int KEY_onesuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_onethird")]
+       public const int KEY_onethird;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ooblique")]
+       public const int KEY_ooblique;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_openrectbullet")]
+       public const int KEY_openrectbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_openstar")]
+       public const int KEY_openstar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_opentribulletdown")]
+       public const int KEY_opentribulletdown;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_opentribulletup")]
+       public const int KEY_opentribulletup;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ordfeminine")]
+       public const int KEY_ordfeminine;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_oslash")]
+       public const int KEY_oslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_otilde")]
+       public const int KEY_otilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_overbar")]
+       public const int KEY_overbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_overline")]
+       public const int KEY_overline;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_p")]
+       public const int KEY_p;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_pabovedot")]
+       public const int KEY_pabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_paragraph")]
+       public const int KEY_paragraph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_parenleft")]
+       public const int KEY_parenleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_parenright")]
+       public const int KEY_parenright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_partdifferential")]
+       public const int KEY_partdifferential;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_partialderivative")]
+       public const int KEY_partialderivative;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_percent")]
+       public const int KEY_percent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_period")]
+       public const int KEY_period;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_periodcentered")]
+       public const int KEY_periodcentered;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_phonographcopyright")]
+       public const int KEY_phonographcopyright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_plus")]
+       public const int KEY_plus;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_plusminus")]
+       public const int KEY_plusminus;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_prescription")]
+       public const int KEY_prescription;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_prolongedsound")]
+       public const int KEY_prolongedsound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_punctspace")]
+       public const int KEY_punctspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_q")]
+       public const int KEY_q;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_quad")]
+       public const int KEY_quad;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_question")]
+       public const int KEY_question;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_questiondown")]
+       public const int KEY_questiondown;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_quotedbl")]
+       public const int KEY_quotedbl;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_quoteleft")]
+       public const int KEY_quoteleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_quoteright")]
+       public const int KEY_quoteright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_r")]
+       public const int KEY_r;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_racute")]
+       public const int KEY_racute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_radical")]
+       public const int KEY_radical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rcaron")]
+       public const int KEY_rcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rcedilla")]
+       public const int KEY_rcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_registered")]
+       public const int KEY_registered;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightanglebracket")]
+       public const int KEY_rightanglebracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightarrow")]
+       public const int KEY_rightarrow;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightcaret")]
+       public const int KEY_rightcaret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightdoublequotemark")]
+       public const int KEY_rightdoublequotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightmiddlecurlybrace")]
+       public const int KEY_rightmiddlecurlybrace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightmiddlesummation")]
+       public const int KEY_rightmiddlesummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightopentriangle")]
+       public const int KEY_rightopentriangle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightpointer")]
+       public const int KEY_rightpointer;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightshoe")]
+       public const int KEY_rightshoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightsinglequotemark")]
+       public const int KEY_rightsinglequotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_rightt")]
+       public const int KEY_rightt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_righttack")]
+       public const int KEY_righttack;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_s")]
+       public const int KEY_s;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_sabovedot")]
+       public const int KEY_sabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_sacute")]
+       public const int KEY_sacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_scaron")]
+       public const int KEY_scaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_scedilla")]
+       public const int KEY_scedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_schwa")]
+       public const int KEY_schwa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_scircumflex")]
+       public const int KEY_scircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_script_switch")]
+       public const int KEY_script_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_seconds")]
+       public const int KEY_seconds;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_section")]
+       public const int KEY_section;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_semicolon")]
+       public const int KEY_semicolon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_semivoicedsound")]
+       public const int KEY_semivoicedsound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_seveneighths")]
+       public const int KEY_seveneighths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_sevensubscript")]
+       public const int KEY_sevensubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_sevensuperior")]
+       public const int KEY_sevensuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_signaturemark")]
+       public const int KEY_signaturemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_signifblank")]
+       public const int KEY_signifblank;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_similarequal")]
+       public const int KEY_similarequal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_singlelowquotemark")]
+       public const int KEY_singlelowquotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_sixsubscript")]
+       public const int KEY_sixsubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_sixsuperior")]
+       public const int KEY_sixsuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_slash")]
+       public const int KEY_slash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_soliddiamond")]
+       public const int KEY_soliddiamond;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_space")]
+       public const int KEY_space;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_squareroot")]
+       public const int KEY_squareroot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ssharp")]
+       public const int KEY_ssharp;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_sterling")]
+       public const int KEY_sterling;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_stricteq")]
+       public const int KEY_stricteq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_t")]
+       public const int KEY_t;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_tabovedot")]
+       public const int KEY_tabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_tcaron")]
+       public const int KEY_tcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_tcedilla")]
+       public const int KEY_tcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_telephone")]
+       public const int KEY_telephone;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_telephonerecorder")]
+       public const int KEY_telephonerecorder;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_therefore")]
+       public const int KEY_therefore;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_thinspace")]
+       public const int KEY_thinspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_thorn")]
+       public const int KEY_thorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_threeeighths")]
+       public const int KEY_threeeighths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_threefifths")]
+       public const int KEY_threefifths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_threequarters")]
+       public const int KEY_threequarters;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_threesubscript")]
+       public const int KEY_threesubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_threesuperior")]
+       public const int KEY_threesuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_tintegral")]
+       public const int KEY_tintegral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_topintegral")]
+       public const int KEY_topintegral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_topleftparens")]
+       public const int KEY_topleftparens;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_topleftradical")]
+       public const int KEY_topleftradical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_topleftsqbracket")]
+       public const int KEY_topleftsqbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_topleftsummation")]
+       public const int KEY_topleftsummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_toprightparens")]
+       public const int KEY_toprightparens;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_toprightsqbracket")]
+       public const int KEY_toprightsqbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_toprightsummation")]
+       public const int KEY_toprightsummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_topt")]
+       public const int KEY_topt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_topvertsummationconnector")]
+       public const int KEY_topvertsummationconnector;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_trademark")]
+       public const int KEY_trademark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_trademarkincircle")]
+       public const int KEY_trademarkincircle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_tslash")]
+       public const int KEY_tslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_twofifths")]
+       public const int KEY_twofifths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_twosubscript")]
+       public const int KEY_twosubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_twosuperior")]
+       public const int KEY_twosuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_twothirds")]
+       public const int KEY_twothirds;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_u")]
+       public const int KEY_u;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uacute")]
+       public const int KEY_uacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ubelowdot")]
+       public const int KEY_ubelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ubreve")]
+       public const int KEY_ubreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ucircumflex")]
+       public const int KEY_ucircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_udiaeresis")]
+       public const int KEY_udiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_udoubleacute")]
+       public const int KEY_udoubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ugrave")]
+       public const int KEY_ugrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uhook")]
+       public const int KEY_uhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uhorn")]
+       public const int KEY_uhorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uhornacute")]
+       public const int KEY_uhornacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uhornbelowdot")]
+       public const int KEY_uhornbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uhorngrave")]
+       public const int KEY_uhorngrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uhornhook")]
+       public const int KEY_uhornhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uhorntilde")]
+       public const int KEY_uhorntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_umacron")]
+       public const int KEY_umacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_underbar")]
+       public const int KEY_underbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_underscore")]
+       public const int KEY_underscore;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_union")]
+       public const int KEY_union;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uogonek")]
+       public const int KEY_uogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uparrow")]
+       public const int KEY_uparrow;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_upcaret")]
+       public const int KEY_upcaret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_upleftcorner")]
+       public const int KEY_upleftcorner;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uprightcorner")]
+       public const int KEY_uprightcorner;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_upshoe")]
+       public const int KEY_upshoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_upstile")]
+       public const int KEY_upstile;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uptack")]
+       public const int KEY_uptack;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_uring")]
+       public const int KEY_uring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_utilde")]
+       public const int KEY_utilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_v")]
+       public const int KEY_v;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_variation")]
+       public const int KEY_variation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_vertbar")]
+       public const int KEY_vertbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_vertconnector")]
+       public const int KEY_vertconnector;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_voicedsound")]
+       public const int KEY_voicedsound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_vt")]
+       public const int KEY_vt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_w")]
+       public const int KEY_w;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_wacute")]
+       public const int KEY_wacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_wcircumflex")]
+       public const int KEY_wcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_wdiaeresis")]
+       public const int KEY_wdiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_wgrave")]
+       public const int KEY_wgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_x")]
+       public const int KEY_x;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_xabovedot")]
+       public const int KEY_xabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_y")]
+       public const int KEY_y;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_yacute")]
+       public const int KEY_yacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ybelowdot")]
+       public const int KEY_ybelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ycircumflex")]
+       public const int KEY_ycircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ydiaeresis")]
+       public const int KEY_ydiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_yen")]
+       public const int KEY_yen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ygrave")]
+       public const int KEY_ygrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_yhook")]
+       public const int KEY_yhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_ytilde")]
+       public const int KEY_ytilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_z")]
+       public const int KEY_z;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_zabovedot")]
+       public const int KEY_zabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_zacute")]
+       public const int KEY_zacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_zcaron")]
+       public const int KEY_zcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_zerosubscript")]
+       public const int KEY_zerosubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_zerosuperior")]
+       public const int KEY_zerosuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KEY_zstroke")]
+       public const int KEY_zstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_0")]
+       public const int KP_0;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_1")]
+       public const int KP_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_2")]
+       public const int KP_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_3")]
+       public const int KP_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_4")]
+       public const int KP_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_5")]
+       public const int KP_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_6")]
+       public const int KP_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_7")]
+       public const int KP_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_8")]
+       public const int KP_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_9")]
+       public const int KP_9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Add")]
+       public const int KP_Add;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Begin")]
+       public const int KP_Begin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Decimal")]
+       public const int KP_Decimal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Delete")]
+       public const int KP_Delete;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Divide")]
+       public const int KP_Divide;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Down")]
+       public const int KP_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_End")]
+       public const int KP_End;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Enter")]
+       public const int KP_Enter;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Equal")]
+       public const int KP_Equal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_F1")]
+       public const int KP_F1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_F2")]
+       public const int KP_F2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_F3")]
+       public const int KP_F3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_F4")]
+       public const int KP_F4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Home")]
+       public const int KP_Home;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Insert")]
+       public const int KP_Insert;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Left")]
+       public const int KP_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Multiply")]
+       public const int KP_Multiply;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Next")]
+       public const int KP_Next;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Page_Down")]
+       public const int KP_Page_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Page_Up")]
+       public const int KP_Page_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Prior")]
+       public const int KP_Prior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Right")]
+       public const int KP_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Separator")]
+       public const int KP_Separator;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Space")]
+       public const int KP_Space;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Subtract")]
+       public const int KP_Subtract;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Tab")]
+       public const int KP_Tab;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_KP_Up")]
+       public const int KP_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Kana_Lock")]
+       public const int Kana_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Kana_Shift")]
+       public const int Kana_Shift;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Kanji")]
+       public const int Kanji;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Kanji_Bangou")]
+       public const int Kanji_Bangou;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Katakana")]
+       public const int Katakana;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Kcedilla")]
+       public const int Kcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Korean_Won")]
+       public const int Korean_Won;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L")]
+       public const int L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L1")]
+       public const int L1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L10")]
+       public const int L10;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L2")]
+       public const int L2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L3")]
+       public const int L3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L4")]
+       public const int L4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L5")]
+       public const int L5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L6")]
+       public const int L6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L7")]
+       public const int L7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L8")]
+       public const int L8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_L9")]
+       public const int L9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Lacute")]
+       public const int Lacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Last_Virtual_Screen")]
+       public const int Last_Virtual_Screen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Lbelowdot")]
+       public const int Lbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Lcaron")]
+       public const int Lcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Lcedilla")]
+       public const int Lcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Left")]
+       public const int Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Linefeed")]
+       public const int Linefeed;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_LiraSign")]
+       public const int LiraSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Lstroke")]
+       public const int Lstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_M")]
+       public const int M;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_MAJOR_VERSION")]
+       public const int MAJOR_VERSION;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_MAX_COMPOSE_LEN")]
+       public const int MAX_COMPOSE_LEN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_MICRO_VERSION")]
+       public const int MICRO_VERSION;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_MINOR_VERSION")]
+       public const int MINOR_VERSION;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Mabovedot")]
+       public const int Mabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Macedonia_DSE")]
+       public const int Macedonia_DSE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Macedonia_GJE")]
+       public const int Macedonia_GJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Macedonia_KJE")]
+       public const int Macedonia_KJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Macedonia_dse")]
+       public const int Macedonia_dse;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Macedonia_gje")]
+       public const int Macedonia_gje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Macedonia_kje")]
+       public const int Macedonia_kje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Mae_Koho")]
+       public const int Mae_Koho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Massyo")]
+       public const int Massyo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Menu")]
+       public const int Menu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Meta_L")]
+       public const int Meta_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Meta_R")]
+       public const int Meta_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_MillSign")]
+       public const int MillSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Mode_switch")]
+       public const int Mode_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_MouseKeys_Accel_Enable")]
+       public const int MouseKeys_Accel_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_MouseKeys_Enable")]
+       public const int MouseKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Muhenkan")]
+       public const int Muhenkan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Multi_key")]
+       public const int Multi_key;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_MultipleCandidate")]
+       public const int MultipleCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_N")]
+       public const int N;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Nacute")]
+       public const int Nacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_NairaSign")]
+       public const int NairaSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ncaron")]
+       public const int Ncaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ncedilla")]
+       public const int Ncedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_NewSheqelSign")]
+       public const int NewSheqelSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Next")]
+       public const int Next;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Next_Virtual_Screen")]
+       public const int Next_Virtual_Screen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ntilde")]
+       public const int Ntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Num_Lock")]
+       public const int Num_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_O")]
+       public const int O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_OE")]
+       public const int OE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Oacute")]
+       public const int Oacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Obarred")]
+       public const int Obarred;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Obelowdot")]
+       public const int Obelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ocaron")]
+       public const int Ocaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ocircumflex")]
+       public const int Ocircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ocircumflexacute")]
+       public const int Ocircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ocircumflexbelowdot")]
+       public const int Ocircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ocircumflexgrave")]
+       public const int Ocircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ocircumflexhook")]
+       public const int Ocircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ocircumflextilde")]
+       public const int Ocircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Odiaeresis")]
+       public const int Odiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Odoubleacute")]
+       public const int Odoubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ograve")]
+       public const int Ograve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ohook")]
+       public const int Ohook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ohorn")]
+       public const int Ohorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ohornacute")]
+       public const int Ohornacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ohornbelowdot")]
+       public const int Ohornbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ohorngrave")]
+       public const int Ohorngrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ohornhook")]
+       public const int Ohornhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ohorntilde")]
+       public const int Ohorntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Omacron")]
+       public const int Omacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ooblique")]
+       public const int Ooblique;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Oslash")]
+       public const int Oslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Otilde")]
+       public const int Otilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Overlay1_Enable")]
+       public const int Overlay1_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Overlay2_Enable")]
+       public const int Overlay2_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_P")]
+       public const int P;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_PATH_CONFIG")]
+       public const string PATH_CONFIG;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_PATH_FACTORY")]
+       public const string PATH_FACTORY;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_PATH_IBUS")]
+       public const string PATH_IBUS;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_PATH_INPUT_CONTEXT")]
+       public const string PATH_INPUT_CONTEXT;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_PATH_NOTIFICATIONS")]
+       public const string PATH_NOTIFICATIONS;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_PATH_PANEL")]
+       public const string PATH_PANEL;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pabovedot")]
+       public const int Pabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Page_Down")]
+       public const int Page_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Page_Up")]
+       public const int Page_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pause")]
+       public const int Pause;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_PesetaSign")]
+       public const int PesetaSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Accelerate")]
+       public const int Pointer_Accelerate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Button1")]
+       public const int Pointer_Button1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Button2")]
+       public const int Pointer_Button2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Button3")]
+       public const int Pointer_Button3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Button4")]
+       public const int Pointer_Button4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Button5")]
+       public const int Pointer_Button5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Button_Dflt")]
+       public const int Pointer_Button_Dflt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DblClick1")]
+       public const int Pointer_DblClick1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DblClick2")]
+       public const int Pointer_DblClick2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DblClick3")]
+       public const int Pointer_DblClick3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DblClick4")]
+       public const int Pointer_DblClick4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DblClick5")]
+       public const int Pointer_DblClick5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DblClick_Dflt")]
+       public const int Pointer_DblClick_Dflt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DfltBtnNext")]
+       public const int Pointer_DfltBtnNext;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DfltBtnPrev")]
+       public const int Pointer_DfltBtnPrev;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Down")]
+       public const int Pointer_Down;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DownLeft")]
+       public const int Pointer_DownLeft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_DownRight")]
+       public const int Pointer_DownRight;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Drag1")]
+       public const int Pointer_Drag1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Drag2")]
+       public const int Pointer_Drag2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Drag3")]
+       public const int Pointer_Drag3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Drag4")]
+       public const int Pointer_Drag4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Drag5")]
+       public const int Pointer_Drag5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Drag_Dflt")]
+       public const int Pointer_Drag_Dflt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_EnableKeys")]
+       public const int Pointer_EnableKeys;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Left")]
+       public const int Pointer_Left;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Right")]
+       public const int Pointer_Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_Up")]
+       public const int Pointer_Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_UpLeft")]
+       public const int Pointer_UpLeft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Pointer_UpRight")]
+       public const int Pointer_UpRight;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Prev_Virtual_Screen")]
+       public const int Prev_Virtual_Screen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_PreviousCandidate")]
+       public const int PreviousCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Print")]
+       public const int Print;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Prior")]
+       public const int Prior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Q")]
+       public const int Q;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R")]
+       public const int R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R1")]
+       public const int R1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R10")]
+       public const int R10;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R11")]
+       public const int R11;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R12")]
+       public const int R12;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R13")]
+       public const int R13;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R14")]
+       public const int R14;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R15")]
+       public const int R15;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R2")]
+       public const int R2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R3")]
+       public const int R3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R4")]
+       public const int R4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R5")]
+       public const int R5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R6")]
+       public const int R6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R7")]
+       public const int R7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R8")]
+       public const int R8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_R9")]
+       public const int R9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Racute")]
+       public const int Racute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Rcaron")]
+       public const int Rcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Rcedilla")]
+       public const int Rcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Redo")]
+       public const int Redo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_RepeatKeys_Enable")]
+       public const int RepeatKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Return")]
+       public const int Return;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Right")]
+       public const int Right;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Romaji")]
+       public const int Romaji;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_RupeeSign")]
+       public const int RupeeSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_S")]
+       public const int S;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_SCHWA")]
+       public const int SCHWA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_SERVICE_CONFIG")]
+       public const string SERVICE_CONFIG;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_SERVICE_IBUS")]
+       public const string SERVICE_IBUS;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_SERVICE_NOTIFICATIONS")]
+       public const string SERVICE_NOTIFICATIONS;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_SERVICE_PANEL")]
+       public const string SERVICE_PANEL;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Sabovedot")]
+       public const int Sabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Sacute")]
+       public const int Sacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Scaron")]
+       public const int Scaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Scedilla")]
+       public const int Scedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Scircumflex")]
+       public const int Scircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Scroll_Lock")]
+       public const int Scroll_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Select")]
+       public const int Select;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_DJE")]
+       public const int Serbian_DJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_DZE")]
+       public const int Serbian_DZE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_JE")]
+       public const int Serbian_JE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_LJE")]
+       public const int Serbian_LJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_NJE")]
+       public const int Serbian_NJE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_TSHE")]
+       public const int Serbian_TSHE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_dje")]
+       public const int Serbian_dje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_dze")]
+       public const int Serbian_dze;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_je")]
+       public const int Serbian_je;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_lje")]
+       public const int Serbian_lje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_nje")]
+       public const int Serbian_nje;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Serbian_tshe")]
+       public const int Serbian_tshe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Shift_L")]
+       public const int Shift_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Shift_Lock")]
+       public const int Shift_Lock;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Shift_R")]
+       public const int Shift_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_SingleCandidate")]
+       public const int SingleCandidate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_SlowKeys_Enable")]
+       public const int SlowKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_StickyKeys_Enable")]
+       public const int StickyKeys_Enable;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Super_L")]
+       public const int Super_L;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Super_R")]
+       public const int Super_R;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Sys_Req")]
+       public const int Sys_Req;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_T")]
+       public const int T;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_THORN")]
+       public const int THORN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Tab")]
+       public const int Tab;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Tabovedot")]
+       public const int Tabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Tcaron")]
+       public const int Tcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Tcedilla")]
+       public const int Tcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Terminate_Server")]
+       public const int Terminate_Server;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_baht")]
+       public const int Thai_baht;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_bobaimai")]
+       public const int Thai_bobaimai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_chochan")]
+       public const int Thai_chochan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_chochang")]
+       public const int Thai_chochang;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_choching")]
+       public const int Thai_choching;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_chochoe")]
+       public const int Thai_chochoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_dochada")]
+       public const int Thai_dochada;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_dodek")]
+       public const int Thai_dodek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_fofa")]
+       public const int Thai_fofa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_fofan")]
+       public const int Thai_fofan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_hohip")]
+       public const int Thai_hohip;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_honokhuk")]
+       public const int Thai_honokhuk;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_khokhai")]
+       public const int Thai_khokhai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_khokhon")]
+       public const int Thai_khokhon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_khokhuat")]
+       public const int Thai_khokhuat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_khokhwai")]
+       public const int Thai_khokhwai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_khorakhang")]
+       public const int Thai_khorakhang;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_kokai")]
+       public const int Thai_kokai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_lakkhangyao")]
+       public const int Thai_lakkhangyao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_lekchet")]
+       public const int Thai_lekchet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_lekha")]
+       public const int Thai_lekha;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_lekhok")]
+       public const int Thai_lekhok;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_lekkao")]
+       public const int Thai_lekkao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_leknung")]
+       public const int Thai_leknung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_lekpaet")]
+       public const int Thai_lekpaet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_leksam")]
+       public const int Thai_leksam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_leksi")]
+       public const int Thai_leksi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_leksong")]
+       public const int Thai_leksong;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_leksun")]
+       public const int Thai_leksun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_lochula")]
+       public const int Thai_lochula;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_loling")]
+       public const int Thai_loling;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_lu")]
+       public const int Thai_lu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_maichattawa")]
+       public const int Thai_maichattawa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_maiek")]
+       public const int Thai_maiek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_maihanakat")]
+       public const int Thai_maihanakat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_maihanakat_maitho")]
+       public const int Thai_maihanakat_maitho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_maitaikhu")]
+       public const int Thai_maitaikhu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_maitho")]
+       public const int Thai_maitho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_maitri")]
+       public const int Thai_maitri;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_maiyamok")]
+       public const int Thai_maiyamok;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_moma")]
+       public const int Thai_moma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_ngongu")]
+       public const int Thai_ngongu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_nikhahit")]
+       public const int Thai_nikhahit;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_nonen")]
+       public const int Thai_nonen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_nonu")]
+       public const int Thai_nonu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_oang")]
+       public const int Thai_oang;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_paiyannoi")]
+       public const int Thai_paiyannoi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_phinthu")]
+       public const int Thai_phinthu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_phophan")]
+       public const int Thai_phophan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_phophung")]
+       public const int Thai_phophung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_phosamphao")]
+       public const int Thai_phosamphao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_popla")]
+       public const int Thai_popla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_rorua")]
+       public const int Thai_rorua;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_ru")]
+       public const int Thai_ru;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_saraa")]
+       public const int Thai_saraa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_saraaa")]
+       public const int Thai_saraaa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_saraae")]
+       public const int Thai_saraae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_saraaimaimalai")]
+       public const int Thai_saraaimaimalai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_saraaimaimuan")]
+       public const int Thai_saraaimaimuan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_saraam")]
+       public const int Thai_saraam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_sarae")]
+       public const int Thai_sarae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_sarai")]
+       public const int Thai_sarai;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_saraii")]
+       public const int Thai_saraii;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_sarao")]
+       public const int Thai_sarao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_sarau")]
+       public const int Thai_sarau;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_saraue")]
+       public const int Thai_saraue;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_sarauee")]
+       public const int Thai_sarauee;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_sarauu")]
+       public const int Thai_sarauu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_sorusi")]
+       public const int Thai_sorusi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_sosala")]
+       public const int Thai_sosala;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_soso")]
+       public const int Thai_soso;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_sosua")]
+       public const int Thai_sosua;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_thanthakhat")]
+       public const int Thai_thanthakhat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_thonangmontho")]
+       public const int Thai_thonangmontho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_thophuthao")]
+       public const int Thai_thophuthao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_thothahan")]
+       public const int Thai_thothahan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_thothan")]
+       public const int Thai_thothan;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_thothong")]
+       public const int Thai_thothong;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_thothung")]
+       public const int Thai_thothung;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_topatak")]
+       public const int Thai_topatak;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_totao")]
+       public const int Thai_totao;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_wowaen")]
+       public const int Thai_wowaen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_yoyak")]
+       public const int Thai_yoyak;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thai_yoying")]
+       public const int Thai_yoying;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Thorn")]
+       public const int Thorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Touroku")]
+       public const int Touroku;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Tslash")]
+       public const int Tslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_U")]
+       public const int U;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uacute")]
+       public const int Uacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ubelowdot")]
+       public const int Ubelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ubreve")]
+       public const int Ubreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ucircumflex")]
+       public const int Ucircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Udiaeresis")]
+       public const int Udiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Udoubleacute")]
+       public const int Udoubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ugrave")]
+       public const int Ugrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uhook")]
+       public const int Uhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uhorn")]
+       public const int Uhorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uhornacute")]
+       public const int Uhornacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uhornbelowdot")]
+       public const int Uhornbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uhorngrave")]
+       public const int Uhorngrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uhornhook")]
+       public const int Uhornhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uhorntilde")]
+       public const int Uhorntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukrainian_GHE_WITH_UPTURN")]
+       public const int Ukrainian_GHE_WITH_UPTURN;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukrainian_I")]
+       public const int Ukrainian_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukrainian_IE")]
+       public const int Ukrainian_IE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukrainian_YI")]
+       public const int Ukrainian_YI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukrainian_ghe_with_upturn")]
+       public const int Ukrainian_ghe_with_upturn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukrainian_i")]
+       public const int Ukrainian_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukrainian_ie")]
+       public const int Ukrainian_ie;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukrainian_yi")]
+       public const int Ukrainian_yi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukranian_I")]
+       public const int Ukranian_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukranian_JE")]
+       public const int Ukranian_JE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukranian_YI")]
+       public const int Ukranian_YI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukranian_i")]
+       public const int Ukranian_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukranian_je")]
+       public const int Ukranian_je;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ukranian_yi")]
+       public const int Ukranian_yi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Umacron")]
+       public const int Umacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Undo")]
+       public const int Undo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uogonek")]
+       public const int Uogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Up")]
+       public const int Up;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Uring")]
+       public const int Uring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Utilde")]
+       public const int Utilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_V")]
+       public const int V;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_VoidSymbol")]
+       public const int VoidSymbol;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_W")]
+       public const int W;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Wacute")]
+       public const int Wacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Wcircumflex")]
+       public const int Wcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Wdiaeresis")]
+       public const int Wdiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Wgrave")]
+       public const int Wgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_WonSign")]
+       public const int WonSign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_X")]
+       public const int X;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Xabovedot")]
+       public const int Xabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Y")]
+       public const int Y;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Yacute")]
+       public const int Yacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ybelowdot")]
+       public const int Ybelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ycircumflex")]
+       public const int Ycircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ydiaeresis")]
+       public const int Ydiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ygrave")]
+       public const int Ygrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Yhook")]
+       public const int Yhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Ytilde")]
+       public const int Ytilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Z")]
+       public const int Z;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Zabovedot")]
+       public const int Zabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Zacute")]
+       public const int Zacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Zcaron")]
+       public const int Zcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Zen_Koho")]
+       public const int Zen_Koho;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Zenkaku")]
+       public const int Zenkaku;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Zenkaku_Hankaku")]
+       public const int Zenkaku_Hankaku;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_Zstroke")]
+       public const int Zstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_a")]
+       public const int a;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_aacute")]
+       public const int aacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_abelowdot")]
+       public const int abelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_abovedot")]
+       public const int abovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_abreve")]
+       public const int abreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_abreveacute")]
+       public const int abreveacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_abrevebelowdot")]
+       public const int abrevebelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_abrevegrave")]
+       public const int abrevegrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_abrevehook")]
+       public const int abrevehook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_abrevetilde")]
+       public const int abrevetilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_acircumflex")]
+       public const int acircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_acircumflexacute")]
+       public const int acircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_acircumflexbelowdot")]
+       public const int acircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_acircumflexgrave")]
+       public const int acircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_acircumflexhook")]
+       public const int acircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_acircumflextilde")]
+       public const int acircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_acute")]
+       public const int acute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_adiaeresis")]
+       public const int adiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ae")]
+       public const int ae;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_agrave")]
+       public const int agrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ahook")]
+       public const int ahook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_amacron")]
+       public const int amacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ampersand")]
+       public const int ampersand;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_aogonek")]
+       public const int aogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_apostrophe")]
+       public const int apostrophe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_approxeq")]
+       public const int approxeq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_approximate")]
+       public const int approximate;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_aring")]
+       public const int aring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_asciicircum")]
+       public const int asciicircum;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_asciitilde")]
+       public const int asciitilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_asterisk")]
+       public const int asterisk;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_at")]
+       public const int at;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_atilde")]
+       public const int atilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_b")]
+       public const int b;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_babovedot")]
+       public const int babovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_backslash")]
+       public const int backslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ballotcross")]
+       public const int ballotcross;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_bar")]
+       public const int bar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_because")]
+       public const int because;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_blank")]
+       public const int blank;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_botintegral")]
+       public const int botintegral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_botleftparens")]
+       public const int botleftparens;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_botleftsqbracket")]
+       public const int botleftsqbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_botleftsummation")]
+       public const int botleftsummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_botrightparens")]
+       public const int botrightparens;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_botrightsqbracket")]
+       public const int botrightsqbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_botrightsummation")]
+       public const int botrightsummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_bott")]
+       public const int bott;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_botvertsummationconnector")]
+       public const int botvertsummationconnector;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braceleft")]
+       public const int braceleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braceright")]
+       public const int braceright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_bracketleft")]
+       public const int bracketleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_bracketright")]
+       public const int bracketright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_blank")]
+       public const int braille_blank;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_1")]
+       public const int braille_dot_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_10")]
+       public const int braille_dot_10;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_2")]
+       public const int braille_dot_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_3")]
+       public const int braille_dot_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_4")]
+       public const int braille_dot_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_5")]
+       public const int braille_dot_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_6")]
+       public const int braille_dot_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_7")]
+       public const int braille_dot_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_8")]
+       public const int braille_dot_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dot_9")]
+       public const int braille_dot_9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1")]
+       public const int braille_dots_1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12")]
+       public const int braille_dots_12;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123")]
+       public const int braille_dots_123;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1234")]
+       public const int braille_dots_1234;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12345")]
+       public const int braille_dots_12345;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123456")]
+       public const int braille_dots_123456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1234567")]
+       public const int braille_dots_1234567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12345678")]
+       public const int braille_dots_12345678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1234568")]
+       public const int braille_dots_1234568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123457")]
+       public const int braille_dots_123457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1234578")]
+       public const int braille_dots_1234578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123458")]
+       public const int braille_dots_123458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12346")]
+       public const int braille_dots_12346;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123467")]
+       public const int braille_dots_123467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1234678")]
+       public const int braille_dots_1234678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123468")]
+       public const int braille_dots_123468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12347")]
+       public const int braille_dots_12347;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123478")]
+       public const int braille_dots_123478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12348")]
+       public const int braille_dots_12348;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1235")]
+       public const int braille_dots_1235;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12356")]
+       public const int braille_dots_12356;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123567")]
+       public const int braille_dots_123567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1235678")]
+       public const int braille_dots_1235678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123568")]
+       public const int braille_dots_123568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12357")]
+       public const int braille_dots_12357;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123578")]
+       public const int braille_dots_123578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12358")]
+       public const int braille_dots_12358;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1236")]
+       public const int braille_dots_1236;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12367")]
+       public const int braille_dots_12367;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_123678")]
+       public const int braille_dots_123678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12368")]
+       public const int braille_dots_12368;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1237")]
+       public const int braille_dots_1237;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12378")]
+       public const int braille_dots_12378;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1238")]
+       public const int braille_dots_1238;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_124")]
+       public const int braille_dots_124;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1245")]
+       public const int braille_dots_1245;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12456")]
+       public const int braille_dots_12456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_124567")]
+       public const int braille_dots_124567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1245678")]
+       public const int braille_dots_1245678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_124568")]
+       public const int braille_dots_124568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12457")]
+       public const int braille_dots_12457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_124578")]
+       public const int braille_dots_124578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12458")]
+       public const int braille_dots_12458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1246")]
+       public const int braille_dots_1246;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12467")]
+       public const int braille_dots_12467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_124678")]
+       public const int braille_dots_124678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12468")]
+       public const int braille_dots_12468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1247")]
+       public const int braille_dots_1247;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12478")]
+       public const int braille_dots_12478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1248")]
+       public const int braille_dots_1248;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_125")]
+       public const int braille_dots_125;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1256")]
+       public const int braille_dots_1256;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12567")]
+       public const int braille_dots_12567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_125678")]
+       public const int braille_dots_125678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12568")]
+       public const int braille_dots_12568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1257")]
+       public const int braille_dots_1257;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12578")]
+       public const int braille_dots_12578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1258")]
+       public const int braille_dots_1258;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_126")]
+       public const int braille_dots_126;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1267")]
+       public const int braille_dots_1267;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_12678")]
+       public const int braille_dots_12678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1268")]
+       public const int braille_dots_1268;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_127")]
+       public const int braille_dots_127;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1278")]
+       public const int braille_dots_1278;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_128")]
+       public const int braille_dots_128;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13")]
+       public const int braille_dots_13;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_134")]
+       public const int braille_dots_134;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1345")]
+       public const int braille_dots_1345;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13456")]
+       public const int braille_dots_13456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_134567")]
+       public const int braille_dots_134567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1345678")]
+       public const int braille_dots_1345678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_134568")]
+       public const int braille_dots_134568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13457")]
+       public const int braille_dots_13457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_134578")]
+       public const int braille_dots_134578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13458")]
+       public const int braille_dots_13458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1346")]
+       public const int braille_dots_1346;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13467")]
+       public const int braille_dots_13467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_134678")]
+       public const int braille_dots_134678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13468")]
+       public const int braille_dots_13468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1347")]
+       public const int braille_dots_1347;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13478")]
+       public const int braille_dots_13478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1348")]
+       public const int braille_dots_1348;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_135")]
+       public const int braille_dots_135;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1356")]
+       public const int braille_dots_1356;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13567")]
+       public const int braille_dots_13567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_135678")]
+       public const int braille_dots_135678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13568")]
+       public const int braille_dots_13568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1357")]
+       public const int braille_dots_1357;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13578")]
+       public const int braille_dots_13578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1358")]
+       public const int braille_dots_1358;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_136")]
+       public const int braille_dots_136;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1367")]
+       public const int braille_dots_1367;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_13678")]
+       public const int braille_dots_13678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1368")]
+       public const int braille_dots_1368;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_137")]
+       public const int braille_dots_137;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1378")]
+       public const int braille_dots_1378;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_138")]
+       public const int braille_dots_138;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_14")]
+       public const int braille_dots_14;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_145")]
+       public const int braille_dots_145;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1456")]
+       public const int braille_dots_1456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_14567")]
+       public const int braille_dots_14567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_145678")]
+       public const int braille_dots_145678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_14568")]
+       public const int braille_dots_14568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1457")]
+       public const int braille_dots_1457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_14578")]
+       public const int braille_dots_14578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1458")]
+       public const int braille_dots_1458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_146")]
+       public const int braille_dots_146;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1467")]
+       public const int braille_dots_1467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_14678")]
+       public const int braille_dots_14678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1468")]
+       public const int braille_dots_1468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_147")]
+       public const int braille_dots_147;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1478")]
+       public const int braille_dots_1478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_148")]
+       public const int braille_dots_148;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_15")]
+       public const int braille_dots_15;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_156")]
+       public const int braille_dots_156;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1567")]
+       public const int braille_dots_1567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_15678")]
+       public const int braille_dots_15678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1568")]
+       public const int braille_dots_1568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_157")]
+       public const int braille_dots_157;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1578")]
+       public const int braille_dots_1578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_158")]
+       public const int braille_dots_158;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_16")]
+       public const int braille_dots_16;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_167")]
+       public const int braille_dots_167;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_1678")]
+       public const int braille_dots_1678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_168")]
+       public const int braille_dots_168;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_17")]
+       public const int braille_dots_17;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_178")]
+       public const int braille_dots_178;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_18")]
+       public const int braille_dots_18;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2")]
+       public const int braille_dots_2;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23")]
+       public const int braille_dots_23;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_234")]
+       public const int braille_dots_234;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2345")]
+       public const int braille_dots_2345;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23456")]
+       public const int braille_dots_23456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_234567")]
+       public const int braille_dots_234567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2345678")]
+       public const int braille_dots_2345678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_234568")]
+       public const int braille_dots_234568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23457")]
+       public const int braille_dots_23457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_234578")]
+       public const int braille_dots_234578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23458")]
+       public const int braille_dots_23458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2346")]
+       public const int braille_dots_2346;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23467")]
+       public const int braille_dots_23467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_234678")]
+       public const int braille_dots_234678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23468")]
+       public const int braille_dots_23468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2347")]
+       public const int braille_dots_2347;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23478")]
+       public const int braille_dots_23478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2348")]
+       public const int braille_dots_2348;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_235")]
+       public const int braille_dots_235;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2356")]
+       public const int braille_dots_2356;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23567")]
+       public const int braille_dots_23567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_235678")]
+       public const int braille_dots_235678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23568")]
+       public const int braille_dots_23568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2357")]
+       public const int braille_dots_2357;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23578")]
+       public const int braille_dots_23578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2358")]
+       public const int braille_dots_2358;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_236")]
+       public const int braille_dots_236;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2367")]
+       public const int braille_dots_2367;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_23678")]
+       public const int braille_dots_23678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2368")]
+       public const int braille_dots_2368;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_237")]
+       public const int braille_dots_237;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2378")]
+       public const int braille_dots_2378;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_238")]
+       public const int braille_dots_238;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_24")]
+       public const int braille_dots_24;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_245")]
+       public const int braille_dots_245;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2456")]
+       public const int braille_dots_2456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_24567")]
+       public const int braille_dots_24567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_245678")]
+       public const int braille_dots_245678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_24568")]
+       public const int braille_dots_24568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2457")]
+       public const int braille_dots_2457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_24578")]
+       public const int braille_dots_24578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2458")]
+       public const int braille_dots_2458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_246")]
+       public const int braille_dots_246;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2467")]
+       public const int braille_dots_2467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_24678")]
+       public const int braille_dots_24678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2468")]
+       public const int braille_dots_2468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_247")]
+       public const int braille_dots_247;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2478")]
+       public const int braille_dots_2478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_248")]
+       public const int braille_dots_248;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_25")]
+       public const int braille_dots_25;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_256")]
+       public const int braille_dots_256;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2567")]
+       public const int braille_dots_2567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_25678")]
+       public const int braille_dots_25678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2568")]
+       public const int braille_dots_2568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_257")]
+       public const int braille_dots_257;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2578")]
+       public const int braille_dots_2578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_258")]
+       public const int braille_dots_258;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_26")]
+       public const int braille_dots_26;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_267")]
+       public const int braille_dots_267;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_2678")]
+       public const int braille_dots_2678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_268")]
+       public const int braille_dots_268;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_27")]
+       public const int braille_dots_27;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_278")]
+       public const int braille_dots_278;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_28")]
+       public const int braille_dots_28;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3")]
+       public const int braille_dots_3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_34")]
+       public const int braille_dots_34;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_345")]
+       public const int braille_dots_345;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3456")]
+       public const int braille_dots_3456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_34567")]
+       public const int braille_dots_34567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_345678")]
+       public const int braille_dots_345678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_34568")]
+       public const int braille_dots_34568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3457")]
+       public const int braille_dots_3457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_34578")]
+       public const int braille_dots_34578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3458")]
+       public const int braille_dots_3458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_346")]
+       public const int braille_dots_346;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3467")]
+       public const int braille_dots_3467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_34678")]
+       public const int braille_dots_34678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3468")]
+       public const int braille_dots_3468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_347")]
+       public const int braille_dots_347;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3478")]
+       public const int braille_dots_3478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_348")]
+       public const int braille_dots_348;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_35")]
+       public const int braille_dots_35;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_356")]
+       public const int braille_dots_356;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3567")]
+       public const int braille_dots_3567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_35678")]
+       public const int braille_dots_35678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3568")]
+       public const int braille_dots_3568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_357")]
+       public const int braille_dots_357;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3578")]
+       public const int braille_dots_3578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_358")]
+       public const int braille_dots_358;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_36")]
+       public const int braille_dots_36;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_367")]
+       public const int braille_dots_367;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_3678")]
+       public const int braille_dots_3678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_368")]
+       public const int braille_dots_368;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_37")]
+       public const int braille_dots_37;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_378")]
+       public const int braille_dots_378;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_38")]
+       public const int braille_dots_38;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_4")]
+       public const int braille_dots_4;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_45")]
+       public const int braille_dots_45;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_456")]
+       public const int braille_dots_456;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_4567")]
+       public const int braille_dots_4567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_45678")]
+       public const int braille_dots_45678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_4568")]
+       public const int braille_dots_4568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_457")]
+       public const int braille_dots_457;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_4578")]
+       public const int braille_dots_4578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_458")]
+       public const int braille_dots_458;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_46")]
+       public const int braille_dots_46;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_467")]
+       public const int braille_dots_467;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_4678")]
+       public const int braille_dots_4678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_468")]
+       public const int braille_dots_468;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_47")]
+       public const int braille_dots_47;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_478")]
+       public const int braille_dots_478;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_48")]
+       public const int braille_dots_48;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_5")]
+       public const int braille_dots_5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_56")]
+       public const int braille_dots_56;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_567")]
+       public const int braille_dots_567;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_5678")]
+       public const int braille_dots_5678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_568")]
+       public const int braille_dots_568;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_57")]
+       public const int braille_dots_57;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_578")]
+       public const int braille_dots_578;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_58")]
+       public const int braille_dots_58;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_6")]
+       public const int braille_dots_6;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_67")]
+       public const int braille_dots_67;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_678")]
+       public const int braille_dots_678;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_68")]
+       public const int braille_dots_68;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_7")]
+       public const int braille_dots_7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_78")]
+       public const int braille_dots_78;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_braille_dots_8")]
+       public const int braille_dots_8;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_breve")]
+       public const int breve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_brokenbar")]
+       public const int brokenbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_c")]
+       public const int c;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_cabovedot")]
+       public const int cabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_cacute")]
+       public const int cacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_careof")]
+       public const int careof;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_caret")]
+       public const int caret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_caron")]
+       public const int caron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ccaron")]
+       public const int ccaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ccedilla")]
+       public const int ccedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ccircumflex")]
+       public const int ccircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_cedilla")]
+       public const int cedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_cent")]
+       public const int cent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_checkerboard")]
+       public const int checkerboard;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_checkmark")]
+       public const int checkmark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_circle")]
+       public const int circle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_club")]
+       public const int club;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_colon")]
+       public const int colon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_comma")]
+       public const int comma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_containsas")]
+       public const int containsas;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_copyright")]
+       public const int copyright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_cr")]
+       public const int cr;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_crossinglines")]
+       public const int crossinglines;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_cuberoot")]
+       public const int cuberoot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_currency")]
+       public const int currency;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_cursor")]
+       public const int cursor;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_d")]
+       public const int d;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dabovedot")]
+       public const int dabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dagger")]
+       public const int dagger;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dcaron")]
+       public const int dcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_abovecomma")]
+       public const int dead_abovecomma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_abovedot")]
+       public const int dead_abovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_abovereversedcomma")]
+       public const int dead_abovereversedcomma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_abovering")]
+       public const int dead_abovering;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_acute")]
+       public const int dead_acute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_belowbreve")]
+       public const int dead_belowbreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_belowcircumflex")]
+       public const int dead_belowcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_belowdiaeresis")]
+       public const int dead_belowdiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_belowdot")]
+       public const int dead_belowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_belowmacron")]
+       public const int dead_belowmacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_belowring")]
+       public const int dead_belowring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_belowtilde")]
+       public const int dead_belowtilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_breve")]
+       public const int dead_breve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_caron")]
+       public const int dead_caron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_cedilla")]
+       public const int dead_cedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_circumflex")]
+       public const int dead_circumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_dasia")]
+       public const int dead_dasia;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_diaeresis")]
+       public const int dead_diaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_doubleacute")]
+       public const int dead_doubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_grave")]
+       public const int dead_grave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_hook")]
+       public const int dead_hook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_horn")]
+       public const int dead_horn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_iota")]
+       public const int dead_iota;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_macron")]
+       public const int dead_macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_ogonek")]
+       public const int dead_ogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_perispomeni")]
+       public const int dead_perispomeni;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_psili")]
+       public const int dead_psili;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_semivoiced_sound")]
+       public const int dead_semivoiced_sound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_stroke")]
+       public const int dead_stroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_tilde")]
+       public const int dead_tilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dead_voiced_sound")]
+       public const int dead_voiced_sound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_decimalpoint")]
+       public const int decimalpoint;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_degree")]
+       public const int degree;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_diaeresis")]
+       public const int diaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_diamond")]
+       public const int diamond;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_digitspace")]
+       public const int digitspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dintegral")]
+       public const int dintegral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_division")]
+       public const int division;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dollar")]
+       public const int dollar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_doubbaselinedot")]
+       public const int doubbaselinedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_doubleacute")]
+       public const int doubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_doubledagger")]
+       public const int doubledagger;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_doublelowquotemark")]
+       public const int doublelowquotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_downarrow")]
+       public const int downarrow;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_downcaret")]
+       public const int downcaret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_downshoe")]
+       public const int downshoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_downstile")]
+       public const int downstile;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_downtack")]
+       public const int downtack;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_dstroke")]
+       public const int dstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_e")]
+       public const int e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_eabovedot")]
+       public const int eabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_eacute")]
+       public const int eacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ebelowdot")]
+       public const int ebelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ecaron")]
+       public const int ecaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ecircumflex")]
+       public const int ecircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ecircumflexacute")]
+       public const int ecircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ecircumflexbelowdot")]
+       public const int ecircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ecircumflexgrave")]
+       public const int ecircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ecircumflexhook")]
+       public const int ecircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ecircumflextilde")]
+       public const int ecircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ediaeresis")]
+       public const int ediaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_egrave")]
+       public const int egrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ehook")]
+       public const int ehook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_eightsubscript")]
+       public const int eightsubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_eightsuperior")]
+       public const int eightsuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_elementof")]
+       public const int elementof;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ellipsis")]
+       public const int ellipsis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_em3space")]
+       public const int em3space;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_em4space")]
+       public const int em4space;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_emacron")]
+       public const int emacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_emdash")]
+       public const int emdash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_emfilledcircle")]
+       public const int emfilledcircle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_emfilledrect")]
+       public const int emfilledrect;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_emopencircle")]
+       public const int emopencircle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_emopenrectangle")]
+       public const int emopenrectangle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_emptyset")]
+       public const int emptyset;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_emspace")]
+       public const int emspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_endash")]
+       public const int endash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_enfilledcircbullet")]
+       public const int enfilledcircbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_enfilledsqbullet")]
+       public const int enfilledsqbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_eng")]
+       public const int eng;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_enopencircbullet")]
+       public const int enopencircbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_enopensquarebullet")]
+       public const int enopensquarebullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_enspace")]
+       public const int enspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_eogonek")]
+       public const int eogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_equal")]
+       public const int equal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_eth")]
+       public const int eth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_etilde")]
+       public const int etilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_exclam")]
+       public const int exclam;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_exclamdown")]
+       public const int exclamdown;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_f")]
+       public const int f;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_fabovedot")]
+       public const int fabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_femalesymbol")]
+       public const int femalesymbol;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ff")]
+       public const int ff;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_figdash")]
+       public const int figdash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_filledlefttribullet")]
+       public const int filledlefttribullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_filledrectbullet")]
+       public const int filledrectbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_filledrighttribullet")]
+       public const int filledrighttribullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_filledtribulletdown")]
+       public const int filledtribulletdown;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_filledtribulletup")]
+       public const int filledtribulletup;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_fiveeighths")]
+       public const int fiveeighths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_fivesixths")]
+       public const int fivesixths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_fivesubscript")]
+       public const int fivesubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_fivesuperior")]
+       public const int fivesuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_fourfifths")]
+       public const int fourfifths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_foursubscript")]
+       public const int foursubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_foursuperior")]
+       public const int foursuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_fourthroot")]
+       public const int fourthroot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_function")]
+       public const int function;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_g")]
+       public const int g;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_gabovedot")]
+       public const int gabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_gbreve")]
+       public const int gbreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_gcaron")]
+       public const int gcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_gcedilla")]
+       public const int gcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_gcircumflex")]
+       public const int gcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_grave")]
+       public const int grave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_greater")]
+       public const int greater;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_greaterthanequal")]
+       public const int greaterthanequal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_guillemotleft")]
+       public const int guillemotleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_guillemotright")]
+       public const int guillemotright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_h")]
+       public const int h;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hairspace")]
+       public const int hairspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hcircumflex")]
+       public const int hcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_heart")]
+       public const int heart;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_aleph")]
+       public const int hebrew_aleph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_ayin")]
+       public const int hebrew_ayin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_bet")]
+       public const int hebrew_bet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_beth")]
+       public const int hebrew_beth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_chet")]
+       public const int hebrew_chet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_dalet")]
+       public const int hebrew_dalet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_daleth")]
+       public const int hebrew_daleth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_doublelowline")]
+       public const int hebrew_doublelowline;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_finalkaph")]
+       public const int hebrew_finalkaph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_finalmem")]
+       public const int hebrew_finalmem;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_finalnun")]
+       public const int hebrew_finalnun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_finalpe")]
+       public const int hebrew_finalpe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_finalzade")]
+       public const int hebrew_finalzade;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_finalzadi")]
+       public const int hebrew_finalzadi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_gimel")]
+       public const int hebrew_gimel;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_gimmel")]
+       public const int hebrew_gimmel;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_he")]
+       public const int hebrew_he;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_het")]
+       public const int hebrew_het;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_kaph")]
+       public const int hebrew_kaph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_kuf")]
+       public const int hebrew_kuf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_lamed")]
+       public const int hebrew_lamed;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_mem")]
+       public const int hebrew_mem;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_nun")]
+       public const int hebrew_nun;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_pe")]
+       public const int hebrew_pe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_qoph")]
+       public const int hebrew_qoph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_resh")]
+       public const int hebrew_resh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_samech")]
+       public const int hebrew_samech;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_samekh")]
+       public const int hebrew_samekh;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_shin")]
+       public const int hebrew_shin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_taf")]
+       public const int hebrew_taf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_taw")]
+       public const int hebrew_taw;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_tet")]
+       public const int hebrew_tet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_teth")]
+       public const int hebrew_teth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_waw")]
+       public const int hebrew_waw;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_yod")]
+       public const int hebrew_yod;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_zade")]
+       public const int hebrew_zade;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_zadi")]
+       public const int hebrew_zadi;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_zain")]
+       public const int hebrew_zain;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hebrew_zayin")]
+       public const int hebrew_zayin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hexagram")]
+       public const int hexagram;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_horizconnector")]
+       public const int horizconnector;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_horizlinescan1")]
+       public const int horizlinescan1;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_horizlinescan3")]
+       public const int horizlinescan3;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_horizlinescan5")]
+       public const int horizlinescan5;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_horizlinescan7")]
+       public const int horizlinescan7;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_horizlinescan9")]
+       public const int horizlinescan9;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hstroke")]
+       public const int hstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ht")]
+       public const int ht;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_hyphen")]
+       public const int hyphen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_i")]
+       public const int i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_iacute")]
+       public const int iacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ibelowdot")]
+       public const int ibelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ibreve")]
+       public const int ibreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_icircumflex")]
+       public const int icircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_identical")]
+       public const int identical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_idiaeresis")]
+       public const int idiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_idotless")]
+       public const int idotless;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ifonlyif")]
+       public const int ifonlyif;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_igrave")]
+       public const int igrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ihook")]
+       public const int ihook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_imacron")]
+       public const int imacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_implies")]
+       public const int implies;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_includedin")]
+       public const int includedin;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_includes")]
+       public const int includes;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_infinity")]
+       public const int infinity;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_integral")]
+       public const int integral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_intersection")]
+       public const int intersection;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_iogonek")]
+       public const int iogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_itilde")]
+       public const int itilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_j")]
+       public const int j;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_jcircumflex")]
+       public const int jcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_jot")]
+       public const int jot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_k")]
+       public const int k;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_A")]
+       public const int kana_A;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_CHI")]
+       public const int kana_CHI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_E")]
+       public const int kana_E;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_FU")]
+       public const int kana_FU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_HA")]
+       public const int kana_HA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_HE")]
+       public const int kana_HE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_HI")]
+       public const int kana_HI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_HO")]
+       public const int kana_HO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_HU")]
+       public const int kana_HU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_I")]
+       public const int kana_I;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_KA")]
+       public const int kana_KA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_KE")]
+       public const int kana_KE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_KI")]
+       public const int kana_KI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_KO")]
+       public const int kana_KO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_KU")]
+       public const int kana_KU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_MA")]
+       public const int kana_MA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_ME")]
+       public const int kana_ME;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_MI")]
+       public const int kana_MI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_MO")]
+       public const int kana_MO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_MU")]
+       public const int kana_MU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_N")]
+       public const int kana_N;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_NA")]
+       public const int kana_NA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_NE")]
+       public const int kana_NE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_NI")]
+       public const int kana_NI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_NO")]
+       public const int kana_NO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_NU")]
+       public const int kana_NU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_O")]
+       public const int kana_O;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_RA")]
+       public const int kana_RA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_RE")]
+       public const int kana_RE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_RI")]
+       public const int kana_RI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_RO")]
+       public const int kana_RO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_RU")]
+       public const int kana_RU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_SA")]
+       public const int kana_SA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_SE")]
+       public const int kana_SE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_SHI")]
+       public const int kana_SHI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_SO")]
+       public const int kana_SO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_SU")]
+       public const int kana_SU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_TA")]
+       public const int kana_TA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_TE")]
+       public const int kana_TE;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_TI")]
+       public const int kana_TI;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_TO")]
+       public const int kana_TO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_TSU")]
+       public const int kana_TSU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_TU")]
+       public const int kana_TU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_U")]
+       public const int kana_U;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_WA")]
+       public const int kana_WA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_WO")]
+       public const int kana_WO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_YA")]
+       public const int kana_YA;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_YO")]
+       public const int kana_YO;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_YU")]
+       public const int kana_YU;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_a")]
+       public const int kana_a;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_closingbracket")]
+       public const int kana_closingbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_comma")]
+       public const int kana_comma;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_conjunctive")]
+       public const int kana_conjunctive;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_e")]
+       public const int kana_e;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_fullstop")]
+       public const int kana_fullstop;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_i")]
+       public const int kana_i;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_middledot")]
+       public const int kana_middledot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_o")]
+       public const int kana_o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_openingbracket")]
+       public const int kana_openingbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_switch")]
+       public const int kana_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_tsu")]
+       public const int kana_tsu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_tu")]
+       public const int kana_tu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_u")]
+       public const int kana_u;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_ya")]
+       public const int kana_ya;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_yo")]
+       public const int kana_yo;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kana_yu")]
+       public const int kana_yu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kappa")]
+       public const int kappa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kcedilla")]
+       public const int kcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_kra")]
+       public const int kra;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_l")]
+       public const int l;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lacute")]
+       public const int lacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_latincross")]
+       public const int latincross;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lbelowdot")]
+       public const int lbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lcaron")]
+       public const int lcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lcedilla")]
+       public const int lcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftanglebracket")]
+       public const int leftanglebracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftarrow")]
+       public const int leftarrow;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftcaret")]
+       public const int leftcaret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftdoublequotemark")]
+       public const int leftdoublequotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftmiddlecurlybrace")]
+       public const int leftmiddlecurlybrace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftopentriangle")]
+       public const int leftopentriangle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftpointer")]
+       public const int leftpointer;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftradical")]
+       public const int leftradical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftshoe")]
+       public const int leftshoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftsinglequotemark")]
+       public const int leftsinglequotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_leftt")]
+       public const int leftt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lefttack")]
+       public const int lefttack;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_less")]
+       public const int less;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lessthanequal")]
+       public const int lessthanequal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lf")]
+       public const int lf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_logicaland")]
+       public const int logicaland;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_logicalor")]
+       public const int logicalor;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lowleftcorner")]
+       public const int lowleftcorner;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lowrightcorner")]
+       public const int lowrightcorner;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_lstroke")]
+       public const int lstroke;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_m")]
+       public const int m;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_mabovedot")]
+       public const int mabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_macron")]
+       public const int macron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_malesymbol")]
+       public const int malesymbol;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_maltesecross")]
+       public const int maltesecross;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_marker")]
+       public const int marker;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_masculine")]
+       public const int masculine;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_minus")]
+       public const int minus;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_minutes")]
+       public const int minutes;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_mu")]
+       public const int mu;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_multiply")]
+       public const int multiply;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_musicalflat")]
+       public const int musicalflat;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_musicalsharp")]
+       public const int musicalsharp;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_n")]
+       public const int n;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_nabla")]
+       public const int nabla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_nacute")]
+       public const int nacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ncaron")]
+       public const int ncaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ncedilla")]
+       public const int ncedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ninesubscript")]
+       public const int ninesubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ninesuperior")]
+       public const int ninesuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_nl")]
+       public const int nl;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_nobreakspace")]
+       public const int nobreakspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_notapproxeq")]
+       public const int notapproxeq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_notelementof")]
+       public const int notelementof;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_notequal")]
+       public const int notequal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_notidentical")]
+       public const int notidentical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_notsign")]
+       public const int notsign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ntilde")]
+       public const int ntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_numbersign")]
+       public const int numbersign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_numerosign")]
+       public const int numerosign;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_o")]
+       public const int o;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_oacute")]
+       public const int oacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_obarred")]
+       public const int obarred;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_obelowdot")]
+       public const int obelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ocaron")]
+       public const int ocaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ocircumflex")]
+       public const int ocircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ocircumflexacute")]
+       public const int ocircumflexacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ocircumflexbelowdot")]
+       public const int ocircumflexbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ocircumflexgrave")]
+       public const int ocircumflexgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ocircumflexhook")]
+       public const int ocircumflexhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ocircumflextilde")]
+       public const int ocircumflextilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_odiaeresis")]
+       public const int odiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_odoubleacute")]
+       public const int odoubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_oe")]
+       public const int oe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ogonek")]
+       public const int ogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ograve")]
+       public const int ograve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ohook")]
+       public const int ohook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ohorn")]
+       public const int ohorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ohornacute")]
+       public const int ohornacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ohornbelowdot")]
+       public const int ohornbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ohorngrave")]
+       public const int ohorngrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ohornhook")]
+       public const int ohornhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ohorntilde")]
+       public const int ohorntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_omacron")]
+       public const int omacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_oneeighth")]
+       public const int oneeighth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_onefifth")]
+       public const int onefifth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_onehalf")]
+       public const int onehalf;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_onequarter")]
+       public const int onequarter;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_onesixth")]
+       public const int onesixth;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_onesubscript")]
+       public const int onesubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_onesuperior")]
+       public const int onesuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_onethird")]
+       public const int onethird;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ooblique")]
+       public const int ooblique;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_openrectbullet")]
+       public const int openrectbullet;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_openstar")]
+       public const int openstar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_opentribulletdown")]
+       public const int opentribulletdown;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_opentribulletup")]
+       public const int opentribulletup;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ordfeminine")]
+       public const int ordfeminine;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_oslash")]
+       public const int oslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_otilde")]
+       public const int otilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_overbar")]
+       public const int overbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_overline")]
+       public const int overline;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_p")]
+       public const int p;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_pabovedot")]
+       public const int pabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_paragraph")]
+       public const int paragraph;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_parenleft")]
+       public const int parenleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_parenright")]
+       public const int parenright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_partdifferential")]
+       public const int partdifferential;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_partialderivative")]
+       public const int partialderivative;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_percent")]
+       public const int percent;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_period")]
+       public const int period;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_periodcentered")]
+       public const int periodcentered;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_phonographcopyright")]
+       public const int phonographcopyright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_plus")]
+       public const int plus;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_plusminus")]
+       public const int plusminus;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_prescription")]
+       public const int prescription;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_prolongedsound")]
+       public const int prolongedsound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_punctspace")]
+       public const int punctspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_q")]
+       public const int q;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_quad")]
+       public const int quad;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_question")]
+       public const int question;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_questiondown")]
+       public const int questiondown;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_quotedbl")]
+       public const int quotedbl;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_quoteleft")]
+       public const int quoteleft;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_quoteright")]
+       public const int quoteright;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_r")]
+       public const int r;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_racute")]
+       public const int racute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_radical")]
+       public const int radical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rcaron")]
+       public const int rcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rcedilla")]
+       public const int rcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_registered")]
+       public const int registered;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightanglebracket")]
+       public const int rightanglebracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightarrow")]
+       public const int rightarrow;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightcaret")]
+       public const int rightcaret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightdoublequotemark")]
+       public const int rightdoublequotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightmiddlecurlybrace")]
+       public const int rightmiddlecurlybrace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightmiddlesummation")]
+       public const int rightmiddlesummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightopentriangle")]
+       public const int rightopentriangle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightpointer")]
+       public const int rightpointer;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightshoe")]
+       public const int rightshoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightsinglequotemark")]
+       public const int rightsinglequotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_rightt")]
+       public const int rightt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_righttack")]
+       public const int righttack;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_s")]
+       public const int s;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_sabovedot")]
+       public const int sabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_sacute")]
+       public const int sacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_scaron")]
+       public const int scaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_scedilla")]
+       public const int scedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_schwa")]
+       public const int schwa;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_scircumflex")]
+       public const int scircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_script_switch")]
+       public const int script_switch;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_seconds")]
+       public const int seconds;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_section")]
+       public const int section;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_semicolon")]
+       public const int semicolon;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_semivoicedsound")]
+       public const int semivoicedsound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_seveneighths")]
+       public const int seveneighths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_sevensubscript")]
+       public const int sevensubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_sevensuperior")]
+       public const int sevensuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_signaturemark")]
+       public const int signaturemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_signifblank")]
+       public const int signifblank;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_similarequal")]
+       public const int similarequal;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_singlelowquotemark")]
+       public const int singlelowquotemark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_sixsubscript")]
+       public const int sixsubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_sixsuperior")]
+       public const int sixsuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_slash")]
+       public const int slash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_soliddiamond")]
+       public const int soliddiamond;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_space")]
+       public const int space;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_squareroot")]
+       public const int squareroot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ssharp")]
+       public const int ssharp;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_sterling")]
+       public const int sterling;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_stricteq")]
+       public const int stricteq;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_t")]
+       public const int t;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_tabovedot")]
+       public const int tabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_tcaron")]
+       public const int tcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_tcedilla")]
+       public const int tcedilla;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_telephone")]
+       public const int telephone;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_telephonerecorder")]
+       public const int telephonerecorder;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_therefore")]
+       public const int therefore;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_thinspace")]
+       public const int thinspace;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_thorn")]
+       public const int thorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_threeeighths")]
+       public const int threeeighths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_threefifths")]
+       public const int threefifths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_threequarters")]
+       public const int threequarters;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_threesubscript")]
+       public const int threesubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_threesuperior")]
+       public const int threesuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_tintegral")]
+       public const int tintegral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_topintegral")]
+       public const int topintegral;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_topleftparens")]
+       public const int topleftparens;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_topleftradical")]
+       public const int topleftradical;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_topleftsqbracket")]
+       public const int topleftsqbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_topleftsummation")]
+       public const int topleftsummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_toprightparens")]
+       public const int toprightparens;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_toprightsqbracket")]
+       public const int toprightsqbracket;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_toprightsummation")]
+       public const int toprightsummation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_topt")]
+       public const int topt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_topvertsummationconnector")]
+       public const int topvertsummationconnector;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_trademark")]
+       public const int trademark;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_trademarkincircle")]
+       public const int trademarkincircle;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_tslash")]
+       public const int tslash;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_twofifths")]
+       public const int twofifths;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_twosubscript")]
+       public const int twosubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_twosuperior")]
+       public const int twosuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_twothirds")]
+       public const int twothirds;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_u")]
+       public const int u;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uacute")]
+       public const int uacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ubelowdot")]
+       public const int ubelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ubreve")]
+       public const int ubreve;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ucircumflex")]
+       public const int ucircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_udiaeresis")]
+       public const int udiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_udoubleacute")]
+       public const int udoubleacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ugrave")]
+       public const int ugrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uhook")]
+       public const int uhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uhorn")]
+       public const int uhorn;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uhornacute")]
+       public const int uhornacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uhornbelowdot")]
+       public const int uhornbelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uhorngrave")]
+       public const int uhorngrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uhornhook")]
+       public const int uhornhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uhorntilde")]
+       public const int uhorntilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_umacron")]
+       public const int umacron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_underbar")]
+       public const int underbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_underscore")]
+       public const int underscore;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_union")]
+       public const int union;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uogonek")]
+       public const int uogonek;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uparrow")]
+       public const int uparrow;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_upcaret")]
+       public const int upcaret;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_upleftcorner")]
+       public const int upleftcorner;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uprightcorner")]
+       public const int uprightcorner;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_upshoe")]
+       public const int upshoe;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_upstile")]
+       public const int upstile;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uptack")]
+       public const int uptack;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_uring")]
+       public const int uring;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_utilde")]
+       public const int utilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_v")]
+       public const int v;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_variation")]
+       public const int variation;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_vertbar")]
+       public const int vertbar;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_vertconnector")]
+       public const int vertconnector;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_voicedsound")]
+       public const int voicedsound;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_vt")]
+       public const int vt;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_w")]
+       public const int w;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_wacute")]
+       public const int wacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_wcircumflex")]
+       public const int wcircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_wdiaeresis")]
+       public const int wdiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_wgrave")]
+       public const int wgrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_x")]
+       public const int x;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_xabovedot")]
+       public const int xabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_y")]
+       public const int y;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_yacute")]
+       public const int yacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ybelowdot")]
+       public const int ybelowdot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ycircumflex")]
+       public const int ycircumflex;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ydiaeresis")]
+       public const int ydiaeresis;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_yen")]
+       public const int yen;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ygrave")]
+       public const int ygrave;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_yhook")]
+       public const int yhook;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_ytilde")]
+       public const int ytilde;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_z")]
+       public const int z;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_zabovedot")]
+       public const int zabovedot;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_zacute")]
+       public const int zacute;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_zcaron")]
+       public const int zcaron;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_zerosubscript")]
+       public const int zerosubscript;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_zerosuperior")]
+       public const int zerosuperior;
+       [CCode (cheader_filename = "ibus.h", cname = "IBUS_zstroke")]
+       public const int zstroke;
+       [CCode (cheader_filename = "ibus.h")]
+       public static unowned IBus.Attribute attr_background_new (uint color, uint start_index, uint end_index);
+       [CCode (cheader_filename = "ibus.h")]
+       public static unowned IBus.Attribute attr_foreground_new (uint color, uint start_index, uint end_index);
+       [CCode (cheader_filename = "ibus.h")]
+       public static void free_strv (string strv);
+       [CCode (cheader_filename = "ibus.h")]
+       public static unowned string get_address ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static long get_daemon_uid ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static unowned string get_language_name (string _locale);
+       [CCode (cheader_filename = "ibus.h")]
+       public static unowned string get_local_machine_id ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static unowned string get_socket_path ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static int get_timeout ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static unowned string get_user_name ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static void init ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static bool key_event_from_string (string string, uint keyval, uint modifiers);
+       [CCode (cheader_filename = "ibus.h")]
+       public static unowned string key_event_to_string (uint keyval, uint modifiers);
+       [CCode (cheader_filename = "ibus.h")]
+       public static uint keyval_from_name (string keyval_name);
+       [CCode (cheader_filename = "ibus.h")]
+       public static unowned string keyval_name (uint keyval);
+       [CCode (cheader_filename = "ibus.h")]
+       public static unichar keyval_to_unicode (uint keyval);
+       [CCode (cheader_filename = "ibus.h")]
+       public static void main ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static void quit ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static void set_display (string display);
+       [CCode (cheader_filename = "ibus.h")]
+       public static void set_log_handler (bool verbose);
+       [CCode (cheader_filename = "ibus.h")]
+       public static uint unicode_to_keyval (unichar wc);
+       [CCode (cheader_filename = "ibus.h")]
+       public static void unset_log_handler ();
+       [CCode (cheader_filename = "ibus.h")]
+       public static void write_address (string address);
+}
diff --git a/bindings/vala/test/Makefile b/bindings/vala/test/Makefile
deleted file mode 100644 (file)
index 3bac284..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-TARGETS = \
-    ibus-engine-enchant \
-    ibus-config \
-    $(NULL)
-
-all: $(TARGETS)
-
-ibus_pkgname = ibus-1.0
-
-ibus-engine-enchant: enchant.vala
-       valac --vapidir .. --pkg $(ibus_pkgname) --pkg enchant $^ -C
-       valac -g --vapidir .. --pkg $(ibus_pkgname) --pkg enchant $^ -o $@
-
-ibus-config: config.vala
-       valac --vapidir .. --pkg $(ibus_pkgname) --pkg gio-2.0 --pkg vala-0.10 $^ -C
-       valac -g --vapidir .. --pkg $(ibus_pkgname) --pkg gio-2.0 --pkg vala-0.10 $^ -o $@
-
-clean:
-       $(RM) $(TARGETS)
diff --git a/bindings/vala/test/config.vala b/bindings/vala/test/config.vala
deleted file mode 100644 (file)
index ade8cd3..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* vim:set et sts=4 ai: */
-using Vala;
-using GLib;
-using IBus;
-
-class MemoryConfig : ConfigService {
-    private HashMap<string, HashMap<string, Variant>> values;
-
-    construct {
-        values = new HashMap<string, HashMap<string, Variant>> (str_hash, str_equal);
-    }
-
-    public override bool set_value (string section,
-                                    string name,
-                                    Variant _value) {
-        if (!values.contains (section))
-            values[section] = new HashMap<string, Variant> (str_hash, str_equal);
-        values[section][name] = _value;
-        value_changed (section, name, _value);
-        return true;
-    }
-
-    public override Variant get_value (string section,
-                                               string name) throws GLib.Error {
-        if (!values.contains (section) || !values[section].contains(name))
-            throw new DBusError.FAILED("Can not get value %s", name);
-        return values[section][name];
-    }
-
-    public static void main (string []argv) {
-        var bus = new IBus.Bus();
-
-        if (!bus.is_connected ()) {
-            stderr.printf ("Can not connect to ibus-daemon!\n");
-            return;
-        }
-
-        Type type = typeof (MemoryConfig);
-        ConfigService config =
-            (ConfigService) GLib.Object.new (type,
-                                             "connection", bus.get_connection (),
-                                             "object-path", "/org/freedesktop/IBus/Config");
-        bus.request_name ("org.freedesktop.IBus.Config", 0);
-        IBus.main ();
-        config = null;
-    }
-
-}
diff --git a/bindings/vala/test/enchant.vala b/bindings/vala/test/enchant.vala
deleted file mode 100644 (file)
index 3128dba..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/* vim:set et sts=4 ai: */
-using GLib;
-using Enchant;
-using IBus;
-
-class TestEngine : Engine {
-    // static values
-    private static Broker broker = new Broker ();
-    private static unowned Dict dict = broker.request_dict("en");
-
-    // const values
-    private const uint PREEDIT_BGCOLOR = 0x00a0a0a0;
-
-    private StringBuilder text = new StringBuilder();
-    private LookupTable table = new LookupTable (6, 0, true, true);
-    private string[] words;
-
-    enum UpdateType {
-        TEXT,
-        LOOKUP_TABLE_CURSOR,
-    }
-
-    // override process_key_event to handle key events
-    public override bool process_key_event (uint keyval, uint keycode, uint state) {
-        // ignore release event
-        if ((ModifierType.RELEASE_MASK & state) != 0)
-            return false;
-
-        bool retval = (text.len != 0);
-        UpdateType update = 0;
-        // process letter key events
-        if ((keyval >= IBus.a && keyval <= IBus.z) ||
-            (keyval >= IBus.A && keyval <= IBus.Z)) {
-            char c = (char)keyval;
-            text.append_c(c);
-            update = UpdateType.TEXT;
-        }
-        // process return and space key event
-        else if (keyval == IBus.Return || keyval == IBus.space) {
-            // ignore if text is empty
-            if (text.len != 0) {
-                commit_text (new Text.from_string(text.str));
-                text.erase();
-                update = UpdateType.TEXT;
-            }
-        }
-        // process backspace
-        else if (keyval == IBus.BackSpace) {
-            if (text.len != 0) {
-                text.truncate (text.len - 1);
-                update = UpdateType.TEXT;
-            }
-        }
-        // process arrow & page key events
-        else if (keyval == IBus.Up) {
-            if (text.len != 0) {
-                if (table.cursor_up ())
-                    update = UpdateType.LOOKUP_TABLE_CURSOR;
-            }
-        }
-        else if (keyval == IBus.Down) {
-            if (text.len != 0) {
-                if (table.cursor_down ())
-                    update = UpdateType.LOOKUP_TABLE_CURSOR;
-            }
-        }
-        else if (keyval == IBus.Page_Up) {
-            if (text.len != 0) {
-                if (table.page_up ())
-                    update = UpdateType.LOOKUP_TABLE_CURSOR;
-            }
-        }
-        else if (keyval == IBus.Page_Down) {
-            if (text.len != 0) {
-                if (table.page_down ())
-                    update = UpdateType.LOOKUP_TABLE_CURSOR;
-            }
-        }
-        // process escape key event
-        else if (keyval == IBus.Escape) {
-            if (text.len > 0) {
-                text.erase();
-                update = UpdateType.TEXT;
-            }
-        }
-
-        // text has been updated
-        if (update == UpdateType.TEXT) {
-            update_preedit_text ();
-            update_lookup_table ();
-            update_auxiliary_text ();
-        }
-        // only lookup table cursor
-        else if (update == UpdateType.LOOKUP_TABLE_CURSOR) {
-            base.update_lookup_table (table, true);
-            update_auxiliary_text ();
-        }
-
-        return retval;
-    }
-
-    // update preedit text
-    private new void update_preedit_text() {
-        if (text.len == 0) {
-            hide_preedit_text ();
-        }
-        else {
-            var tmp = new Text.from_string(text.str);
-            tmp.append_attribute(AttrType.BACKGROUND, PREEDIT_BGCOLOR, 0, -1);
-            base.update_preedit_text(tmp, (uint)text.len, true);
-        }
-    }
-
-       // update lookup table
-    private new void update_lookup_table () {
-        if (text.len == 0) {
-            words = null;
-            hide_lookup_table ();
-        }
-        else {
-            words = dict.suggest(text.str);
-            table.clear ();
-            foreach (string s in words)
-                table.append_candidate(new Text.from_string(s));
-            base.update_lookup_table (table, true);
-        }
-    }
-
-    // update auxiliary text
-    private new void update_auxiliary_text () {
-        if (text.len == 0 || words == null) {
-            hide_auxiliary_text ();
-        }
-        else {
-            uint i = table.get_cursor_pos ();
-            base.update_auxiliary_text (new Text.from_string(words[i]), true);
-        }
-    }
-
-    public static void main (string []argv) {
-        var bus = new IBus.Bus();
-
-        if (!bus.is_connected ()) {
-            stderr.printf ("Can not connect to ibus-daemon!\n");
-            return;
-        }
-
-        var factory = new Factory(bus.get_connection());
-        factory.add_engine("vala-debug", typeof(TestEngine));
-        var component = new Component (
-                                "org.freedesktop.IBus.Vala",
-                                "ValaTest", "0.0.1", "GPL",
-                                "Peng Huang <shawn.p.huang@gmail.com>",
-                                "http://code.google.com/p/ibus/",
-                                "",
-                                "ibus-vala");
-        var engine = new EngineDesc ("vala-debug",
-                                     "Vala (debug)",
-                                     "Vala demo input method",
-                                     "zh_CN",
-                                     "GPL",
-                                     "Peng Huang <shawn.p.huang@gmail.com>",
-                                     "",
-                                     "us");
-        component.add_engine (engine);
-        bus.register_component (component);
-        IBus.main ();
-    }
-}
diff --git a/bus/Makefile.in b/bus/Makefile.in
new file mode 100644 (file)
index 0000000..42a7919
--- /dev/null
@@ -0,0 +1,1811 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2013 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-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
+# 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
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = ibus-daemon$(EXEEXT)
+@ENABLE_TESTS_TRUE@TESTS = test-matchrule$(EXEEXT) \
+@ENABLE_TESTS_TRUE@    test-stress$(EXEEXT) $(am__EXEEXT_1)
+noinst_PROGRAMS = $(am__EXEEXT_2)
+subdir = bus
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp $(top_srcdir)/test-driver
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man_onedir)"
+am__EXEEXT_1 =
+@ENABLE_TESTS_TRUE@am__EXEEXT_2 = test-matchrule$(EXEEXT) \
+@ENABLE_TESTS_TRUE@    test-stress$(EXEEXT) $(am__EXEEXT_1)
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+am__objects_1 =
+am__objects_2 = ibus_daemon-component.$(OBJEXT) \
+       ibus_daemon-dbusimpl.$(OBJEXT) ibus_daemon-ibusimpl.$(OBJEXT) \
+       ibus_daemon-inputcontext.$(OBJEXT) \
+       ibus_daemon-engineproxy.$(OBJEXT) \
+       ibus_daemon-panelproxy.$(OBJEXT) \
+       ibus_daemon-factoryproxy.$(OBJEXT) \
+       ibus_daemon-global.$(OBJEXT) ibus_daemon-server.$(OBJEXT) \
+       ibus_daemon-connection.$(OBJEXT) \
+       ibus_daemon-matchrule.$(OBJEXT) \
+       ibus_daemon-marshalers.$(OBJEXT) $(am__objects_1)
+am_ibus_daemon_OBJECTS = $(am__objects_2) ibus_daemon-main.$(OBJEXT) \
+       $(am__objects_1)
+ibus_daemon_OBJECTS = $(am_ibus_daemon_OBJECTS)
+am__DEPENDENCIES_1 =
+am__DEPENDENCIES_2 = $(libibus) $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+ibus_daemon_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ibus_daemon_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__objects_3 = test_matchrule-component.$(OBJEXT) \
+       test_matchrule-dbusimpl.$(OBJEXT) \
+       test_matchrule-ibusimpl.$(OBJEXT) \
+       test_matchrule-inputcontext.$(OBJEXT) \
+       test_matchrule-engineproxy.$(OBJEXT) \
+       test_matchrule-panelproxy.$(OBJEXT) \
+       test_matchrule-factoryproxy.$(OBJEXT) \
+       test_matchrule-global.$(OBJEXT) \
+       test_matchrule-server.$(OBJEXT) \
+       test_matchrule-connection.$(OBJEXT) \
+       test_matchrule-matchrule.$(OBJEXT) \
+       test_matchrule-marshalers.$(OBJEXT) $(am__objects_1)
+am_test_matchrule_OBJECTS = $(am__objects_3) \
+       test_matchrule-test-matchrule.$(OBJEXT) $(am__objects_1)
+test_matchrule_OBJECTS = $(am_test_matchrule_OBJECTS)
+test_matchrule_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(test_matchrule_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
+       $@
+am_test_stress_OBJECTS = test_stress-test-client.$(OBJEXT) \
+       test_stress-test-stress.$(OBJEXT) $(am__objects_1)
+test_stress_OBJECTS = $(am_test_stress_OBJECTS)
+test_stress_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
+test_stress_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_stress_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(ibus_daemon_SOURCES) $(test_matchrule_SOURCES) \
+       $(test_stress_SOURCES)
+DIST_SOURCES = $(ibus_daemon_SOURCES) $(test_matchrule_SOURCES) \
+       $(test_stress_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+DATA = $(man_one_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red='\e[0;31m'; \
+    grn='\e[0;32m'; \
+    lgn='\e[1;32m'; \
+    blu='\e[1;34m'; \
+    mgn='\e[0;35m'; \
+    brg='\e[1m'; \
+    std='\e[m'; \
+  fi; \
+}
+am__recheck_rx = ^[    ]*:recheck:[    ]*
+am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
+am__copy_in_global_log_rx = ^[         ]*:copy-in-global-log:[         ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+           recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[       ]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);                                     \
+$(am__vpath_adj_setup) $(am__vpath_adj)                        \
+$(am__tty_colors);                                     \
+srcdir=$(srcdir); export srcdir;                       \
+case "$@" in                                           \
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;   \
+    *) am__odir=.;;                                    \
+esac;                                                  \
+test "x$$am__odir" = x"." || test -d "$$am__odir"      \
+  || $(MKDIR_P) "$$am__odir" || exit $$?;              \
+if test -f "./$$f"; then dir=./;                       \
+elif test -f "$$f"; then dir=;                         \
+else dir="$(srcdir)/"; fi;                             \
+tst=$$dir$$f; log='$@';                                \
+if test -n '$(DISABLE_HARD_ERRORS)'; then              \
+  am__enable_hard_errors=no;                           \
+else                                                   \
+  am__enable_hard_errors=yes;                          \
+fi;                                                    \
+case " $(XFAIL_TESTS) " in                             \
+  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
+    am__expect_failure=yes;;                           \
+  *)                                                   \
+    am__expect_failure=no;;                            \
+esac;                                                  \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+       $(TEST_LOG_FLAGS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+NULL = 
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+AM_CPPFLAGS = \
+       -I$(top_srcdir)/src   \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+AM_CFLAGS = \
+       @GLIB2_CFLAGS@ \
+       @GIO2_CFLAGS@ \
+       @GTHREAD2_CFLAGS@ \
+       -DG_LOG_DOMAIN=\"IBUS\" \
+       -DPKGDATADIR=\"$(pkgdatadir)\" \
+       -DLIBEXECDIR=\"$(libexecdir)\" \
+       -DBINDIR=\"@bindir@\" \
+       -DIBUS_DISABLE_DEPRECATED \
+       $(NULL)
+
+AM_LDADD = \
+       @GOBJECT2_LIBS@ \
+       @GLIB2_LIBS@ \
+       @GIO2_LIBS@ \
+       @GTHREAD2_LIBS@ \
+       $(libibus) \
+       $(NULL)
+
+commonsrc = \
+       component.c \
+       component.h \
+       dbusimpl.c \
+       dbusimpl.h \
+       ibusimpl.c \
+       ibusimpl.h \
+       inputcontext.c \
+       inputcontext.h \
+       engineproxy.c \
+       engineproxy.h \
+       panelproxy.c \
+       panelproxy.h \
+       factoryproxy.c \
+       factoryproxy.h \
+       global.c \
+       global.h \
+       server.c \
+       server.h \
+       connection.c \
+       connection.h \
+       matchrule.c \
+       matchrule.h \
+       marshalers.c \
+       marshalers.h \
+       types.h \
+       $(NULL)
+
+ibus_daemon_DEPENDENCIES = \
+       $(libibus) \
+       $(NULL)
+
+ibus_daemon_SOURCES = \
+       $(commonsrc) \
+       main.c \
+       $(NULL)
+
+ibus_daemon_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(NULL)
+
+ibus_daemon_LDADD = \
+       $(AM_LDADD) \
+       $(NULL)
+
+BUILT_SOURCES = \
+       marshalers.h            \
+       marshalers.c            \
+       $(NULL)
+
+test_matchrule_DEPENDENCIES = \
+       $(libibus) \
+       $(NULL)
+
+test_matchrule_SOURCES = \
+       $(commonsrc) \
+       test-matchrule.c \
+       $(NULL)
+
+test_matchrule_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(NULL)
+
+test_matchrule_LDADD = \
+       $(AM_LDADD) \
+       $(NULL)
+
+test_stress_SOURCES = \
+       test-client.c \
+       test-client.h \
+       test-stress.c \
+       $(NULL)
+
+test_stress_CFLAGS = \
+       $(AM_CFLAGS) \
+       @GTK2_CFLAGS@ \
+       @X11_CFLAGS@ \
+       $(NULL)
+
+test_stress_LDADD = \
+       $(AM_LDADD) \
+       @GTK2_LIBS@ \
+       @X11_LIBS@ \
+       $(NULL)
+
+EXTRA_DIST = \
+       $(man_one_in_files)     \
+       marshalers.list         \
+       $(NULL)
+
+CLEANFILES = \
+       $(man_one_DATA)            \
+       $(man_one_files)        \
+       $(NULL)
+
+man_one_in_files = ibus-daemon.1.in
+man_one_files = $(man_one_in_files:.1.in=.1)
+man_one_DATA = $(man_one_files:.1=.1.gz) 
+man_onedir = $(datadir)/man/man1
+all: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bus/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu bus/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+clean-noinstPROGRAMS:
+       @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus-daemon$(EXEEXT): $(ibus_daemon_OBJECTS) $(ibus_daemon_DEPENDENCIES) $(EXTRA_ibus_daemon_DEPENDENCIES) 
+       @rm -f ibus-daemon$(EXEEXT)
+       $(AM_V_CCLD)$(ibus_daemon_LINK) $(ibus_daemon_OBJECTS) $(ibus_daemon_LDADD) $(LIBS)
+
+test-matchrule$(EXEEXT): $(test_matchrule_OBJECTS) $(test_matchrule_DEPENDENCIES) $(EXTRA_test_matchrule_DEPENDENCIES) 
+       @rm -f test-matchrule$(EXEEXT)
+       $(AM_V_CCLD)$(test_matchrule_LINK) $(test_matchrule_OBJECTS) $(test_matchrule_LDADD) $(LIBS)
+
+test-stress$(EXEEXT): $(test_stress_OBJECTS) $(test_stress_DEPENDENCIES) $(EXTRA_test_stress_DEPENDENCIES) 
+       @rm -f test-stress$(EXEEXT)
+       $(AM_V_CCLD)$(test_stress_LINK) $(test_stress_OBJECTS) $(test_stress_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-component.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-connection.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-dbusimpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-engineproxy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-factoryproxy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-global.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-ibusimpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-inputcontext.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-marshalers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-matchrule.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-panelproxy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_daemon-server.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-component.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-connection.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-dbusimpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-engineproxy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-factoryproxy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-global.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-ibusimpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-inputcontext.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-marshalers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-matchrule.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-panelproxy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-server.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_matchrule-test-matchrule.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_stress-test-client.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_stress-test-stress.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ibus_daemon-component.o: component.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-component.o -MD -MP -MF $(DEPDIR)/ibus_daemon-component.Tpo -c -o ibus_daemon-component.o `test -f 'component.c' || echo '$(srcdir)/'`component.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-component.Tpo $(DEPDIR)/ibus_daemon-component.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='component.c' object='ibus_daemon-component.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-component.o `test -f 'component.c' || echo '$(srcdir)/'`component.c
+
+ibus_daemon-component.obj: component.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-component.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-component.Tpo -c -o ibus_daemon-component.obj `if test -f 'component.c'; then $(CYGPATH_W) 'component.c'; else $(CYGPATH_W) '$(srcdir)/component.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-component.Tpo $(DEPDIR)/ibus_daemon-component.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='component.c' object='ibus_daemon-component.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-component.obj `if test -f 'component.c'; then $(CYGPATH_W) 'component.c'; else $(CYGPATH_W) '$(srcdir)/component.c'; fi`
+
+ibus_daemon-dbusimpl.o: dbusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-dbusimpl.o -MD -MP -MF $(DEPDIR)/ibus_daemon-dbusimpl.Tpo -c -o ibus_daemon-dbusimpl.o `test -f 'dbusimpl.c' || echo '$(srcdir)/'`dbusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-dbusimpl.Tpo $(DEPDIR)/ibus_daemon-dbusimpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dbusimpl.c' object='ibus_daemon-dbusimpl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-dbusimpl.o `test -f 'dbusimpl.c' || echo '$(srcdir)/'`dbusimpl.c
+
+ibus_daemon-dbusimpl.obj: dbusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-dbusimpl.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-dbusimpl.Tpo -c -o ibus_daemon-dbusimpl.obj `if test -f 'dbusimpl.c'; then $(CYGPATH_W) 'dbusimpl.c'; else $(CYGPATH_W) '$(srcdir)/dbusimpl.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-dbusimpl.Tpo $(DEPDIR)/ibus_daemon-dbusimpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dbusimpl.c' object='ibus_daemon-dbusimpl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-dbusimpl.obj `if test -f 'dbusimpl.c'; then $(CYGPATH_W) 'dbusimpl.c'; else $(CYGPATH_W) '$(srcdir)/dbusimpl.c'; fi`
+
+ibus_daemon-ibusimpl.o: ibusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-ibusimpl.o -MD -MP -MF $(DEPDIR)/ibus_daemon-ibusimpl.Tpo -c -o ibus_daemon-ibusimpl.o `test -f 'ibusimpl.c' || echo '$(srcdir)/'`ibusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-ibusimpl.Tpo $(DEPDIR)/ibus_daemon-ibusimpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibusimpl.c' object='ibus_daemon-ibusimpl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-ibusimpl.o `test -f 'ibusimpl.c' || echo '$(srcdir)/'`ibusimpl.c
+
+ibus_daemon-ibusimpl.obj: ibusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-ibusimpl.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-ibusimpl.Tpo -c -o ibus_daemon-ibusimpl.obj `if test -f 'ibusimpl.c'; then $(CYGPATH_W) 'ibusimpl.c'; else $(CYGPATH_W) '$(srcdir)/ibusimpl.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-ibusimpl.Tpo $(DEPDIR)/ibus_daemon-ibusimpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibusimpl.c' object='ibus_daemon-ibusimpl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-ibusimpl.obj `if test -f 'ibusimpl.c'; then $(CYGPATH_W) 'ibusimpl.c'; else $(CYGPATH_W) '$(srcdir)/ibusimpl.c'; fi`
+
+ibus_daemon-inputcontext.o: inputcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-inputcontext.o -MD -MP -MF $(DEPDIR)/ibus_daemon-inputcontext.Tpo -c -o ibus_daemon-inputcontext.o `test -f 'inputcontext.c' || echo '$(srcdir)/'`inputcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-inputcontext.Tpo $(DEPDIR)/ibus_daemon-inputcontext.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='inputcontext.c' object='ibus_daemon-inputcontext.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-inputcontext.o `test -f 'inputcontext.c' || echo '$(srcdir)/'`inputcontext.c
+
+ibus_daemon-inputcontext.obj: inputcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-inputcontext.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-inputcontext.Tpo -c -o ibus_daemon-inputcontext.obj `if test -f 'inputcontext.c'; then $(CYGPATH_W) 'inputcontext.c'; else $(CYGPATH_W) '$(srcdir)/inputcontext.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-inputcontext.Tpo $(DEPDIR)/ibus_daemon-inputcontext.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='inputcontext.c' object='ibus_daemon-inputcontext.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-inputcontext.obj `if test -f 'inputcontext.c'; then $(CYGPATH_W) 'inputcontext.c'; else $(CYGPATH_W) '$(srcdir)/inputcontext.c'; fi`
+
+ibus_daemon-engineproxy.o: engineproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-engineproxy.o -MD -MP -MF $(DEPDIR)/ibus_daemon-engineproxy.Tpo -c -o ibus_daemon-engineproxy.o `test -f 'engineproxy.c' || echo '$(srcdir)/'`engineproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-engineproxy.Tpo $(DEPDIR)/ibus_daemon-engineproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='engineproxy.c' object='ibus_daemon-engineproxy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-engineproxy.o `test -f 'engineproxy.c' || echo '$(srcdir)/'`engineproxy.c
+
+ibus_daemon-engineproxy.obj: engineproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-engineproxy.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-engineproxy.Tpo -c -o ibus_daemon-engineproxy.obj `if test -f 'engineproxy.c'; then $(CYGPATH_W) 'engineproxy.c'; else $(CYGPATH_W) '$(srcdir)/engineproxy.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-engineproxy.Tpo $(DEPDIR)/ibus_daemon-engineproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='engineproxy.c' object='ibus_daemon-engineproxy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-engineproxy.obj `if test -f 'engineproxy.c'; then $(CYGPATH_W) 'engineproxy.c'; else $(CYGPATH_W) '$(srcdir)/engineproxy.c'; fi`
+
+ibus_daemon-panelproxy.o: panelproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-panelproxy.o -MD -MP -MF $(DEPDIR)/ibus_daemon-panelproxy.Tpo -c -o ibus_daemon-panelproxy.o `test -f 'panelproxy.c' || echo '$(srcdir)/'`panelproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-panelproxy.Tpo $(DEPDIR)/ibus_daemon-panelproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='panelproxy.c' object='ibus_daemon-panelproxy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-panelproxy.o `test -f 'panelproxy.c' || echo '$(srcdir)/'`panelproxy.c
+
+ibus_daemon-panelproxy.obj: panelproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-panelproxy.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-panelproxy.Tpo -c -o ibus_daemon-panelproxy.obj `if test -f 'panelproxy.c'; then $(CYGPATH_W) 'panelproxy.c'; else $(CYGPATH_W) '$(srcdir)/panelproxy.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-panelproxy.Tpo $(DEPDIR)/ibus_daemon-panelproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='panelproxy.c' object='ibus_daemon-panelproxy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-panelproxy.obj `if test -f 'panelproxy.c'; then $(CYGPATH_W) 'panelproxy.c'; else $(CYGPATH_W) '$(srcdir)/panelproxy.c'; fi`
+
+ibus_daemon-factoryproxy.o: factoryproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-factoryproxy.o -MD -MP -MF $(DEPDIR)/ibus_daemon-factoryproxy.Tpo -c -o ibus_daemon-factoryproxy.o `test -f 'factoryproxy.c' || echo '$(srcdir)/'`factoryproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-factoryproxy.Tpo $(DEPDIR)/ibus_daemon-factoryproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='factoryproxy.c' object='ibus_daemon-factoryproxy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-factoryproxy.o `test -f 'factoryproxy.c' || echo '$(srcdir)/'`factoryproxy.c
+
+ibus_daemon-factoryproxy.obj: factoryproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-factoryproxy.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-factoryproxy.Tpo -c -o ibus_daemon-factoryproxy.obj `if test -f 'factoryproxy.c'; then $(CYGPATH_W) 'factoryproxy.c'; else $(CYGPATH_W) '$(srcdir)/factoryproxy.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-factoryproxy.Tpo $(DEPDIR)/ibus_daemon-factoryproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='factoryproxy.c' object='ibus_daemon-factoryproxy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-factoryproxy.obj `if test -f 'factoryproxy.c'; then $(CYGPATH_W) 'factoryproxy.c'; else $(CYGPATH_W) '$(srcdir)/factoryproxy.c'; fi`
+
+ibus_daemon-global.o: global.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-global.o -MD -MP -MF $(DEPDIR)/ibus_daemon-global.Tpo -c -o ibus_daemon-global.o `test -f 'global.c' || echo '$(srcdir)/'`global.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-global.Tpo $(DEPDIR)/ibus_daemon-global.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='global.c' object='ibus_daemon-global.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-global.o `test -f 'global.c' || echo '$(srcdir)/'`global.c
+
+ibus_daemon-global.obj: global.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-global.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-global.Tpo -c -o ibus_daemon-global.obj `if test -f 'global.c'; then $(CYGPATH_W) 'global.c'; else $(CYGPATH_W) '$(srcdir)/global.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-global.Tpo $(DEPDIR)/ibus_daemon-global.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='global.c' object='ibus_daemon-global.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-global.obj `if test -f 'global.c'; then $(CYGPATH_W) 'global.c'; else $(CYGPATH_W) '$(srcdir)/global.c'; fi`
+
+ibus_daemon-server.o: server.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-server.o -MD -MP -MF $(DEPDIR)/ibus_daemon-server.Tpo -c -o ibus_daemon-server.o `test -f 'server.c' || echo '$(srcdir)/'`server.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-server.Tpo $(DEPDIR)/ibus_daemon-server.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='server.c' object='ibus_daemon-server.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-server.o `test -f 'server.c' || echo '$(srcdir)/'`server.c
+
+ibus_daemon-server.obj: server.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-server.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-server.Tpo -c -o ibus_daemon-server.obj `if test -f 'server.c'; then $(CYGPATH_W) 'server.c'; else $(CYGPATH_W) '$(srcdir)/server.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-server.Tpo $(DEPDIR)/ibus_daemon-server.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='server.c' object='ibus_daemon-server.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-server.obj `if test -f 'server.c'; then $(CYGPATH_W) 'server.c'; else $(CYGPATH_W) '$(srcdir)/server.c'; fi`
+
+ibus_daemon-connection.o: connection.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-connection.o -MD -MP -MF $(DEPDIR)/ibus_daemon-connection.Tpo -c -o ibus_daemon-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-connection.Tpo $(DEPDIR)/ibus_daemon-connection.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='connection.c' object='ibus_daemon-connection.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
+
+ibus_daemon-connection.obj: connection.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-connection.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-connection.Tpo -c -o ibus_daemon-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-connection.Tpo $(DEPDIR)/ibus_daemon-connection.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='connection.c' object='ibus_daemon-connection.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
+
+ibus_daemon-matchrule.o: matchrule.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-matchrule.o -MD -MP -MF $(DEPDIR)/ibus_daemon-matchrule.Tpo -c -o ibus_daemon-matchrule.o `test -f 'matchrule.c' || echo '$(srcdir)/'`matchrule.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-matchrule.Tpo $(DEPDIR)/ibus_daemon-matchrule.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='matchrule.c' object='ibus_daemon-matchrule.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-matchrule.o `test -f 'matchrule.c' || echo '$(srcdir)/'`matchrule.c
+
+ibus_daemon-matchrule.obj: matchrule.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-matchrule.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-matchrule.Tpo -c -o ibus_daemon-matchrule.obj `if test -f 'matchrule.c'; then $(CYGPATH_W) 'matchrule.c'; else $(CYGPATH_W) '$(srcdir)/matchrule.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-matchrule.Tpo $(DEPDIR)/ibus_daemon-matchrule.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='matchrule.c' object='ibus_daemon-matchrule.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-matchrule.obj `if test -f 'matchrule.c'; then $(CYGPATH_W) 'matchrule.c'; else $(CYGPATH_W) '$(srcdir)/matchrule.c'; fi`
+
+ibus_daemon-marshalers.o: marshalers.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-marshalers.o -MD -MP -MF $(DEPDIR)/ibus_daemon-marshalers.Tpo -c -o ibus_daemon-marshalers.o `test -f 'marshalers.c' || echo '$(srcdir)/'`marshalers.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-marshalers.Tpo $(DEPDIR)/ibus_daemon-marshalers.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='marshalers.c' object='ibus_daemon-marshalers.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-marshalers.o `test -f 'marshalers.c' || echo '$(srcdir)/'`marshalers.c
+
+ibus_daemon-marshalers.obj: marshalers.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-marshalers.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-marshalers.Tpo -c -o ibus_daemon-marshalers.obj `if test -f 'marshalers.c'; then $(CYGPATH_W) 'marshalers.c'; else $(CYGPATH_W) '$(srcdir)/marshalers.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-marshalers.Tpo $(DEPDIR)/ibus_daemon-marshalers.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='marshalers.c' object='ibus_daemon-marshalers.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-marshalers.obj `if test -f 'marshalers.c'; then $(CYGPATH_W) 'marshalers.c'; else $(CYGPATH_W) '$(srcdir)/marshalers.c'; fi`
+
+ibus_daemon-main.o: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-main.o -MD -MP -MF $(DEPDIR)/ibus_daemon-main.Tpo -c -o ibus_daemon-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-main.Tpo $(DEPDIR)/ibus_daemon-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_daemon-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+ibus_daemon-main.obj: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -MT ibus_daemon-main.obj -MD -MP -MF $(DEPDIR)/ibus_daemon-main.Tpo -c -o ibus_daemon-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_daemon-main.Tpo $(DEPDIR)/ibus_daemon-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_daemon-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_daemon_CFLAGS) $(CFLAGS) -c -o ibus_daemon-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+test_matchrule-component.o: component.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-component.o -MD -MP -MF $(DEPDIR)/test_matchrule-component.Tpo -c -o test_matchrule-component.o `test -f 'component.c' || echo '$(srcdir)/'`component.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-component.Tpo $(DEPDIR)/test_matchrule-component.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='component.c' object='test_matchrule-component.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-component.o `test -f 'component.c' || echo '$(srcdir)/'`component.c
+
+test_matchrule-component.obj: component.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-component.obj -MD -MP -MF $(DEPDIR)/test_matchrule-component.Tpo -c -o test_matchrule-component.obj `if test -f 'component.c'; then $(CYGPATH_W) 'component.c'; else $(CYGPATH_W) '$(srcdir)/component.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-component.Tpo $(DEPDIR)/test_matchrule-component.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='component.c' object='test_matchrule-component.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-component.obj `if test -f 'component.c'; then $(CYGPATH_W) 'component.c'; else $(CYGPATH_W) '$(srcdir)/component.c'; fi`
+
+test_matchrule-dbusimpl.o: dbusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-dbusimpl.o -MD -MP -MF $(DEPDIR)/test_matchrule-dbusimpl.Tpo -c -o test_matchrule-dbusimpl.o `test -f 'dbusimpl.c' || echo '$(srcdir)/'`dbusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-dbusimpl.Tpo $(DEPDIR)/test_matchrule-dbusimpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dbusimpl.c' object='test_matchrule-dbusimpl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-dbusimpl.o `test -f 'dbusimpl.c' || echo '$(srcdir)/'`dbusimpl.c
+
+test_matchrule-dbusimpl.obj: dbusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-dbusimpl.obj -MD -MP -MF $(DEPDIR)/test_matchrule-dbusimpl.Tpo -c -o test_matchrule-dbusimpl.obj `if test -f 'dbusimpl.c'; then $(CYGPATH_W) 'dbusimpl.c'; else $(CYGPATH_W) '$(srcdir)/dbusimpl.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-dbusimpl.Tpo $(DEPDIR)/test_matchrule-dbusimpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='dbusimpl.c' object='test_matchrule-dbusimpl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-dbusimpl.obj `if test -f 'dbusimpl.c'; then $(CYGPATH_W) 'dbusimpl.c'; else $(CYGPATH_W) '$(srcdir)/dbusimpl.c'; fi`
+
+test_matchrule-ibusimpl.o: ibusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-ibusimpl.o -MD -MP -MF $(DEPDIR)/test_matchrule-ibusimpl.Tpo -c -o test_matchrule-ibusimpl.o `test -f 'ibusimpl.c' || echo '$(srcdir)/'`ibusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-ibusimpl.Tpo $(DEPDIR)/test_matchrule-ibusimpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibusimpl.c' object='test_matchrule-ibusimpl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-ibusimpl.o `test -f 'ibusimpl.c' || echo '$(srcdir)/'`ibusimpl.c
+
+test_matchrule-ibusimpl.obj: ibusimpl.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-ibusimpl.obj -MD -MP -MF $(DEPDIR)/test_matchrule-ibusimpl.Tpo -c -o test_matchrule-ibusimpl.obj `if test -f 'ibusimpl.c'; then $(CYGPATH_W) 'ibusimpl.c'; else $(CYGPATH_W) '$(srcdir)/ibusimpl.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-ibusimpl.Tpo $(DEPDIR)/test_matchrule-ibusimpl.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibusimpl.c' object='test_matchrule-ibusimpl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-ibusimpl.obj `if test -f 'ibusimpl.c'; then $(CYGPATH_W) 'ibusimpl.c'; else $(CYGPATH_W) '$(srcdir)/ibusimpl.c'; fi`
+
+test_matchrule-inputcontext.o: inputcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-inputcontext.o -MD -MP -MF $(DEPDIR)/test_matchrule-inputcontext.Tpo -c -o test_matchrule-inputcontext.o `test -f 'inputcontext.c' || echo '$(srcdir)/'`inputcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-inputcontext.Tpo $(DEPDIR)/test_matchrule-inputcontext.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='inputcontext.c' object='test_matchrule-inputcontext.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-inputcontext.o `test -f 'inputcontext.c' || echo '$(srcdir)/'`inputcontext.c
+
+test_matchrule-inputcontext.obj: inputcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-inputcontext.obj -MD -MP -MF $(DEPDIR)/test_matchrule-inputcontext.Tpo -c -o test_matchrule-inputcontext.obj `if test -f 'inputcontext.c'; then $(CYGPATH_W) 'inputcontext.c'; else $(CYGPATH_W) '$(srcdir)/inputcontext.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-inputcontext.Tpo $(DEPDIR)/test_matchrule-inputcontext.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='inputcontext.c' object='test_matchrule-inputcontext.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-inputcontext.obj `if test -f 'inputcontext.c'; then $(CYGPATH_W) 'inputcontext.c'; else $(CYGPATH_W) '$(srcdir)/inputcontext.c'; fi`
+
+test_matchrule-engineproxy.o: engineproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-engineproxy.o -MD -MP -MF $(DEPDIR)/test_matchrule-engineproxy.Tpo -c -o test_matchrule-engineproxy.o `test -f 'engineproxy.c' || echo '$(srcdir)/'`engineproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-engineproxy.Tpo $(DEPDIR)/test_matchrule-engineproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='engineproxy.c' object='test_matchrule-engineproxy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-engineproxy.o `test -f 'engineproxy.c' || echo '$(srcdir)/'`engineproxy.c
+
+test_matchrule-engineproxy.obj: engineproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-engineproxy.obj -MD -MP -MF $(DEPDIR)/test_matchrule-engineproxy.Tpo -c -o test_matchrule-engineproxy.obj `if test -f 'engineproxy.c'; then $(CYGPATH_W) 'engineproxy.c'; else $(CYGPATH_W) '$(srcdir)/engineproxy.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-engineproxy.Tpo $(DEPDIR)/test_matchrule-engineproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='engineproxy.c' object='test_matchrule-engineproxy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-engineproxy.obj `if test -f 'engineproxy.c'; then $(CYGPATH_W) 'engineproxy.c'; else $(CYGPATH_W) '$(srcdir)/engineproxy.c'; fi`
+
+test_matchrule-panelproxy.o: panelproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-panelproxy.o -MD -MP -MF $(DEPDIR)/test_matchrule-panelproxy.Tpo -c -o test_matchrule-panelproxy.o `test -f 'panelproxy.c' || echo '$(srcdir)/'`panelproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-panelproxy.Tpo $(DEPDIR)/test_matchrule-panelproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='panelproxy.c' object='test_matchrule-panelproxy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-panelproxy.o `test -f 'panelproxy.c' || echo '$(srcdir)/'`panelproxy.c
+
+test_matchrule-panelproxy.obj: panelproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-panelproxy.obj -MD -MP -MF $(DEPDIR)/test_matchrule-panelproxy.Tpo -c -o test_matchrule-panelproxy.obj `if test -f 'panelproxy.c'; then $(CYGPATH_W) 'panelproxy.c'; else $(CYGPATH_W) '$(srcdir)/panelproxy.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-panelproxy.Tpo $(DEPDIR)/test_matchrule-panelproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='panelproxy.c' object='test_matchrule-panelproxy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-panelproxy.obj `if test -f 'panelproxy.c'; then $(CYGPATH_W) 'panelproxy.c'; else $(CYGPATH_W) '$(srcdir)/panelproxy.c'; fi`
+
+test_matchrule-factoryproxy.o: factoryproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-factoryproxy.o -MD -MP -MF $(DEPDIR)/test_matchrule-factoryproxy.Tpo -c -o test_matchrule-factoryproxy.o `test -f 'factoryproxy.c' || echo '$(srcdir)/'`factoryproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-factoryproxy.Tpo $(DEPDIR)/test_matchrule-factoryproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='factoryproxy.c' object='test_matchrule-factoryproxy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-factoryproxy.o `test -f 'factoryproxy.c' || echo '$(srcdir)/'`factoryproxy.c
+
+test_matchrule-factoryproxy.obj: factoryproxy.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-factoryproxy.obj -MD -MP -MF $(DEPDIR)/test_matchrule-factoryproxy.Tpo -c -o test_matchrule-factoryproxy.obj `if test -f 'factoryproxy.c'; then $(CYGPATH_W) 'factoryproxy.c'; else $(CYGPATH_W) '$(srcdir)/factoryproxy.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-factoryproxy.Tpo $(DEPDIR)/test_matchrule-factoryproxy.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='factoryproxy.c' object='test_matchrule-factoryproxy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-factoryproxy.obj `if test -f 'factoryproxy.c'; then $(CYGPATH_W) 'factoryproxy.c'; else $(CYGPATH_W) '$(srcdir)/factoryproxy.c'; fi`
+
+test_matchrule-global.o: global.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-global.o -MD -MP -MF $(DEPDIR)/test_matchrule-global.Tpo -c -o test_matchrule-global.o `test -f 'global.c' || echo '$(srcdir)/'`global.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-global.Tpo $(DEPDIR)/test_matchrule-global.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='global.c' object='test_matchrule-global.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-global.o `test -f 'global.c' || echo '$(srcdir)/'`global.c
+
+test_matchrule-global.obj: global.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-global.obj -MD -MP -MF $(DEPDIR)/test_matchrule-global.Tpo -c -o test_matchrule-global.obj `if test -f 'global.c'; then $(CYGPATH_W) 'global.c'; else $(CYGPATH_W) '$(srcdir)/global.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-global.Tpo $(DEPDIR)/test_matchrule-global.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='global.c' object='test_matchrule-global.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-global.obj `if test -f 'global.c'; then $(CYGPATH_W) 'global.c'; else $(CYGPATH_W) '$(srcdir)/global.c'; fi`
+
+test_matchrule-server.o: server.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-server.o -MD -MP -MF $(DEPDIR)/test_matchrule-server.Tpo -c -o test_matchrule-server.o `test -f 'server.c' || echo '$(srcdir)/'`server.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-server.Tpo $(DEPDIR)/test_matchrule-server.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='server.c' object='test_matchrule-server.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-server.o `test -f 'server.c' || echo '$(srcdir)/'`server.c
+
+test_matchrule-server.obj: server.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-server.obj -MD -MP -MF $(DEPDIR)/test_matchrule-server.Tpo -c -o test_matchrule-server.obj `if test -f 'server.c'; then $(CYGPATH_W) 'server.c'; else $(CYGPATH_W) '$(srcdir)/server.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-server.Tpo $(DEPDIR)/test_matchrule-server.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='server.c' object='test_matchrule-server.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-server.obj `if test -f 'server.c'; then $(CYGPATH_W) 'server.c'; else $(CYGPATH_W) '$(srcdir)/server.c'; fi`
+
+test_matchrule-connection.o: connection.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-connection.o -MD -MP -MF $(DEPDIR)/test_matchrule-connection.Tpo -c -o test_matchrule-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-connection.Tpo $(DEPDIR)/test_matchrule-connection.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='connection.c' object='test_matchrule-connection.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
+
+test_matchrule-connection.obj: connection.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-connection.obj -MD -MP -MF $(DEPDIR)/test_matchrule-connection.Tpo -c -o test_matchrule-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-connection.Tpo $(DEPDIR)/test_matchrule-connection.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='connection.c' object='test_matchrule-connection.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
+
+test_matchrule-matchrule.o: matchrule.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-matchrule.o -MD -MP -MF $(DEPDIR)/test_matchrule-matchrule.Tpo -c -o test_matchrule-matchrule.o `test -f 'matchrule.c' || echo '$(srcdir)/'`matchrule.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-matchrule.Tpo $(DEPDIR)/test_matchrule-matchrule.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='matchrule.c' object='test_matchrule-matchrule.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-matchrule.o `test -f 'matchrule.c' || echo '$(srcdir)/'`matchrule.c
+
+test_matchrule-matchrule.obj: matchrule.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-matchrule.obj -MD -MP -MF $(DEPDIR)/test_matchrule-matchrule.Tpo -c -o test_matchrule-matchrule.obj `if test -f 'matchrule.c'; then $(CYGPATH_W) 'matchrule.c'; else $(CYGPATH_W) '$(srcdir)/matchrule.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-matchrule.Tpo $(DEPDIR)/test_matchrule-matchrule.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='matchrule.c' object='test_matchrule-matchrule.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-matchrule.obj `if test -f 'matchrule.c'; then $(CYGPATH_W) 'matchrule.c'; else $(CYGPATH_W) '$(srcdir)/matchrule.c'; fi`
+
+test_matchrule-marshalers.o: marshalers.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-marshalers.o -MD -MP -MF $(DEPDIR)/test_matchrule-marshalers.Tpo -c -o test_matchrule-marshalers.o `test -f 'marshalers.c' || echo '$(srcdir)/'`marshalers.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-marshalers.Tpo $(DEPDIR)/test_matchrule-marshalers.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='marshalers.c' object='test_matchrule-marshalers.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-marshalers.o `test -f 'marshalers.c' || echo '$(srcdir)/'`marshalers.c
+
+test_matchrule-marshalers.obj: marshalers.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-marshalers.obj -MD -MP -MF $(DEPDIR)/test_matchrule-marshalers.Tpo -c -o test_matchrule-marshalers.obj `if test -f 'marshalers.c'; then $(CYGPATH_W) 'marshalers.c'; else $(CYGPATH_W) '$(srcdir)/marshalers.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-marshalers.Tpo $(DEPDIR)/test_matchrule-marshalers.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='marshalers.c' object='test_matchrule-marshalers.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-marshalers.obj `if test -f 'marshalers.c'; then $(CYGPATH_W) 'marshalers.c'; else $(CYGPATH_W) '$(srcdir)/marshalers.c'; fi`
+
+test_matchrule-test-matchrule.o: test-matchrule.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-test-matchrule.o -MD -MP -MF $(DEPDIR)/test_matchrule-test-matchrule.Tpo -c -o test_matchrule-test-matchrule.o `test -f 'test-matchrule.c' || echo '$(srcdir)/'`test-matchrule.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-test-matchrule.Tpo $(DEPDIR)/test_matchrule-test-matchrule.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-matchrule.c' object='test_matchrule-test-matchrule.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-test-matchrule.o `test -f 'test-matchrule.c' || echo '$(srcdir)/'`test-matchrule.c
+
+test_matchrule-test-matchrule.obj: test-matchrule.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -MT test_matchrule-test-matchrule.obj -MD -MP -MF $(DEPDIR)/test_matchrule-test-matchrule.Tpo -c -o test_matchrule-test-matchrule.obj `if test -f 'test-matchrule.c'; then $(CYGPATH_W) 'test-matchrule.c'; else $(CYGPATH_W) '$(srcdir)/test-matchrule.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_matchrule-test-matchrule.Tpo $(DEPDIR)/test_matchrule-test-matchrule.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-matchrule.c' object='test_matchrule-test-matchrule.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_matchrule_CFLAGS) $(CFLAGS) -c -o test_matchrule-test-matchrule.obj `if test -f 'test-matchrule.c'; then $(CYGPATH_W) 'test-matchrule.c'; else $(CYGPATH_W) '$(srcdir)/test-matchrule.c'; fi`
+
+test_stress-test-client.o: test-client.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_stress_CFLAGS) $(CFLAGS) -MT test_stress-test-client.o -MD -MP -MF $(DEPDIR)/test_stress-test-client.Tpo -c -o test_stress-test-client.o `test -f 'test-client.c' || echo '$(srcdir)/'`test-client.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_stress-test-client.Tpo $(DEPDIR)/test_stress-test-client.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-client.c' object='test_stress-test-client.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_stress_CFLAGS) $(CFLAGS) -c -o test_stress-test-client.o `test -f 'test-client.c' || echo '$(srcdir)/'`test-client.c
+
+test_stress-test-client.obj: test-client.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_stress_CFLAGS) $(CFLAGS) -MT test_stress-test-client.obj -MD -MP -MF $(DEPDIR)/test_stress-test-client.Tpo -c -o test_stress-test-client.obj `if test -f 'test-client.c'; then $(CYGPATH_W) 'test-client.c'; else $(CYGPATH_W) '$(srcdir)/test-client.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_stress-test-client.Tpo $(DEPDIR)/test_stress-test-client.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-client.c' object='test_stress-test-client.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_stress_CFLAGS) $(CFLAGS) -c -o test_stress-test-client.obj `if test -f 'test-client.c'; then $(CYGPATH_W) 'test-client.c'; else $(CYGPATH_W) '$(srcdir)/test-client.c'; fi`
+
+test_stress-test-stress.o: test-stress.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_stress_CFLAGS) $(CFLAGS) -MT test_stress-test-stress.o -MD -MP -MF $(DEPDIR)/test_stress-test-stress.Tpo -c -o test_stress-test-stress.o `test -f 'test-stress.c' || echo '$(srcdir)/'`test-stress.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_stress-test-stress.Tpo $(DEPDIR)/test_stress-test-stress.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-stress.c' object='test_stress-test-stress.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_stress_CFLAGS) $(CFLAGS) -c -o test_stress-test-stress.o `test -f 'test-stress.c' || echo '$(srcdir)/'`test-stress.c
+
+test_stress-test-stress.obj: test-stress.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_stress_CFLAGS) $(CFLAGS) -MT test_stress-test-stress.obj -MD -MP -MF $(DEPDIR)/test_stress-test-stress.Tpo -c -o test_stress-test-stress.obj `if test -f 'test-stress.c'; then $(CYGPATH_W) 'test-stress.c'; else $(CYGPATH_W) '$(srcdir)/test-stress.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_stress-test-stress.Tpo $(DEPDIR)/test_stress-test-stress.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='test-stress.c' object='test_stress-test-stress.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_stress_CFLAGS) $(CFLAGS) -c -o test_stress-test-stress.obj `if test -f 'test-stress.c'; then $(CYGPATH_W) 'test-stress.c'; else $(CYGPATH_W) '$(srcdir)/test-stress.c'; fi`
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-man_oneDATA: $(man_one_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(man_one_DATA)'; test -n "$(man_onedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(man_onedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(man_onedir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man_onedir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(man_onedir)" || exit $$?; \
+       done
+
+uninstall-man_oneDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(man_one_DATA)'; test -n "$(man_onedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(man_onedir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+       @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+       @$(am__set_TESTS_bases); \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+                   done`; \
+       if test -n "$$redo_bases"; then \
+         redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+         redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+         if $(am__make_dryrun); then :; else \
+           rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+         fi; \
+       fi; \
+       if test -n "$$am__remaking_logs"; then \
+         echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+              "recursion detected" >&2; \
+       else \
+         am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+       fi; \
+       if $(am__make_dryrun); then :; else \
+         st=0;  \
+         errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+         for i in $$redo_bases; do \
+           test -f $$i.trs && test -r $$i.trs \
+             || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+           test -f $$i.log && test -r $$i.log \
+             || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+         done; \
+         test $$st -eq 0 || exit 1; \
+       fi
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
+       results=`for b in $$bases; do echo $$b.trs; done`; \
+       test -n "$$results" || results=/dev/null; \
+       all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+       pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+       fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+       skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+       xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+       xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+       error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+       if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+         success=true; \
+       else \
+         success=false; \
+       fi; \
+       br='==================='; br=$$br$$br$$br$$br; \
+       result_count () \
+       { \
+           if test x"$$1" = x"--maybe-color"; then \
+             maybe_colorize=yes; \
+           elif test x"$$1" = x"--no-color"; then \
+             maybe_colorize=no; \
+           else \
+             echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+           fi; \
+           shift; \
+           desc=$$1 count=$$2; \
+           if test $$maybe_colorize = yes && test $$count -gt 0; then \
+             color_start=$$3 color_end=$$std; \
+           else \
+             color_start= color_end=; \
+           fi; \
+           echo "$${color_start}# $$desc $$count$${color_end}"; \
+       }; \
+       create_testsuite_report () \
+       { \
+         result_count $$1 "TOTAL:" $$all   "$$brg"; \
+         result_count $$1 "PASS: " $$pass  "$$grn"; \
+         result_count $$1 "SKIP: " $$skip  "$$blu"; \
+         result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+         result_count $$1 "FAIL: " $$fail  "$$red"; \
+         result_count $$1 "XPASS:" $$xpass "$$red"; \
+         result_count $$1 "ERROR:" $$error "$$mgn"; \
+       }; \
+       {                                                               \
+         echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |       \
+           $(am__rst_title);                                           \
+         create_testsuite_report --no-color;                           \
+         echo;                                                         \
+         echo ".. contents:: :depth: 2";                               \
+         echo;                                                         \
+         for b in $$bases; do echo $$b; done                           \
+           | $(am__create_global_log);                                 \
+       } >$(TEST_SUITE_LOG).tmp || exit 1;                             \
+       mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
+       if $$success; then                                              \
+         col="$$grn";                                                  \
+        else                                                           \
+         col="$$red";                                                  \
+         test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);               \
+       fi;                                                             \
+       echo "$${col}$$br$${std}";                                      \
+       echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";   \
+       echo "$${col}$$br$${std}";                                      \
+       create_testsuite_report --maybe-color;                          \
+       echo "$$col$$br$$std";                                          \
+       if $$success; then :; else                                      \
+         echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";         \
+         if test -n "$(PACKAGE_BUGREPORT)"; then                       \
+           echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+         fi;                                                           \
+         echo "$$col$$br$$std";                                        \
+       fi;                                                             \
+       $$success || exit 1
+
+check-TESTS:
+       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+       exit $$?;
+recheck: all 
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       bases=`for i in $$bases; do echo $$i; done \
+                | $(am__list_recheck_tests)` || exit 1; \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       log_list=`echo $$log_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+               am__force_recheck=am--force-recheck \
+               TEST_LOGS="$$log_list"; \
+       exit $$?
+test-matchrule.log: test-matchrule$(EXEEXT)
+       @p='test-matchrule$(EXEEXT)'; \
+       b='test-matchrule'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-stress.log: test-stress$(EXEEXT)
+       @p='test-stress$(EXEEXT)'; \
+       b='test-stress'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+       @p='$<'; \
+       $(am__set_b); \
+       $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@      @p='$<'; \
+@am__EXEEXT_TRUE@      $(am__set_b); \
+@am__EXEEXT_TRUE@      $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@      --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@      $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@      "$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+       $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man_onedir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool \
+       clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man_oneDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-man_oneDATA
+
+.MAKE: all check check-am install install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
+       clean-binPROGRAMS clean-generic clean-libtool \
+       clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-binPROGRAMS install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-man_oneDATA install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       recheck tags tags-am uninstall uninstall-am \
+       uninstall-binPROGRAMS uninstall-man_oneDATA
+
+
+# gen marshal
+marshalers.h: marshalers.list
+       $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=bus_marshal $(srcdir)/marshalers.list --header --internal > $@.tmp && \
+       mv $@.tmp $@
+
+marshalers.c: marshalers.h marshalers.list
+       $(AM_V_GEN) (echo "#include \"marshalers.h\""; \
+       $(GLIB_GENMARSHAL) --prefix=bus_marshal $(srcdir)/marshalers.list --body --internal) > $@.tmp && \
+       mv $@.tmp $@
+
+$(libibus):
+       $(MAKE) -C $(top_builddir)/src
+
+test: ibus-daemon
+       $(ENV_IBUS_TEST) \
+               G_DEBUG=fatal_warnings \
+               $(builddir)/ibus-daemon -v
+%.1: %.1.in
+       $(AM_V_GEN) sed \
+               -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \
+               mv $@.tmp $@
+%.1.gz: %.1
+       $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/bus/marshalers.c b/bus/marshalers.c
new file mode 100644 (file)
index 0000000..170e254
--- /dev/null
@@ -0,0 +1,489 @@
+#include "marshalers.h"
+
+#include       <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v)     g_value_get_schar (v)
+#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v)      g_value_get_int (v)
+#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
+#define g_marshal_value_peek_long(v)     g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
+#define g_marshal_value_peek_float(v)    g_value_get_float (v)
+#define g_marshal_value_peek_double(v)   g_value_get_double (v)
+#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v)    g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v)   g_value_get_object (v)
+#define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ *          Do not access GValues directly in your code. Instead, use the
+ *          g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
+#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
+#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
+#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* BOOL:UINT,UINT,UINT (./marshalers.list:1) */
+void
+bus_marshal_BOOLEAN__UINT_UINT_UINT (GClosure     *closure,
+                                     GValue       *return_value G_GNUC_UNUSED,
+                                     guint         n_param_values,
+                                     const GValue *param_values,
+                                     gpointer      invocation_hint G_GNUC_UNUSED,
+                                     gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_UINT_UINT) (gpointer     data1,
+                                                            guint        arg_1,
+                                                            guint        arg_2,
+                                                            guint        arg_3,
+                                                            gpointer     data2);
+  register GMarshalFunc_BOOLEAN__UINT_UINT_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_uint (param_values + 1),
+                       g_marshal_value_peek_uint (param_values + 2),
+                       g_marshal_value_peek_uint (param_values + 3),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* OBJECT:STRING (./marshalers.list:2) */
+void
+bus_marshal_OBJECT__STRING (GClosure     *closure,
+                            GValue       *return_value G_GNUC_UNUSED,
+                            guint         n_param_values,
+                            const GValue *param_values,
+                            gpointer      invocation_hint G_GNUC_UNUSED,
+                            gpointer      marshal_data)
+{
+  typedef GObject* (*GMarshalFunc_OBJECT__STRING) (gpointer     data1,
+                                                   gpointer     arg_1,
+                                                   gpointer     data2);
+  register GMarshalFunc_OBJECT__STRING callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  GObject* v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_OBJECT__STRING) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_string (param_values + 1),
+                       data2);
+
+  g_value_take_object (return_value, v_return);
+}
+
+/* VOID:INT,UINT (./marshalers.list:3) */
+void
+bus_marshal_VOID__INT_UINT (GClosure     *closure,
+                            GValue       *return_value G_GNUC_UNUSED,
+                            guint         n_param_values,
+                            const GValue *param_values,
+                            gpointer      invocation_hint G_GNUC_UNUSED,
+                            gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__INT_UINT) (gpointer     data1,
+                                               gint         arg_1,
+                                               guint        arg_2,
+                                               gpointer     data2);
+  register GMarshalFunc_VOID__INT_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            data2);
+}
+
+/* VOID:INT,INT,INT,INT (./marshalers.list:4) */
+void
+bus_marshal_VOID__INT_INT_INT_INT (GClosure     *closure,
+                                   GValue       *return_value G_GNUC_UNUSED,
+                                   guint         n_param_values,
+                                   const GValue *param_values,
+                                   gpointer      invocation_hint G_GNUC_UNUSED,
+                                   gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__INT_INT_INT_INT) (gpointer     data1,
+                                                      gint         arg_1,
+                                                      gint         arg_2,
+                                                      gint         arg_3,
+                                                      gint         arg_4,
+                                                      gpointer     data2);
+  register GMarshalFunc_VOID__INT_INT_INT_INT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 5);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT_INT_INT_INT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int (param_values + 1),
+            g_marshal_value_peek_int (param_values + 2),
+            g_marshal_value_peek_int (param_values + 3),
+            g_marshal_value_peek_int (param_values + 4),
+            data2);
+}
+
+/* VOID:OBJECT (./marshalers.list:5) */
+
+/* VOID:OBJECT,BOOLEAN (./marshalers.list:6) */
+void
+bus_marshal_VOID__OBJECT_BOOLEAN (GClosure     *closure,
+                                  GValue       *return_value G_GNUC_UNUSED,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                  gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer     data1,
+                                                     gpointer     arg_1,
+                                                     gboolean     arg_2,
+                                                     gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_boolean (param_values + 2),
+            data2);
+}
+
+/* VOID:OBJECT,STRING (./marshalers.list:7) */
+void
+bus_marshal_VOID__OBJECT_STRING (GClosure     *closure,
+                                 GValue       *return_value G_GNUC_UNUSED,
+                                 guint         n_param_values,
+                                 const GValue *param_values,
+                                 gpointer      invocation_hint G_GNUC_UNUSED,
+                                 gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_STRING) (gpointer     data1,
+                                                    gpointer     arg_1,
+                                                    gpointer     arg_2,
+                                                    gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_STRING callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_STRING) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_string (param_values + 2),
+            data2);
+}
+
+/* VOID:OBJECT,UINT,BOOLEAN (./marshalers.list:8) */
+void
+bus_marshal_VOID__OBJECT_UINT_BOOLEAN (GClosure     *closure,
+                                       GValue       *return_value G_GNUC_UNUSED,
+                                       guint         n_param_values,
+                                       const GValue *param_values,
+                                       gpointer      invocation_hint G_GNUC_UNUSED,
+                                       gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN) (gpointer     data1,
+                                                          gpointer     arg_1,
+                                                          guint        arg_2,
+                                                          gboolean     arg_3,
+                                                          gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            g_marshal_value_peek_boolean (param_values + 3),
+            data2);
+}
+
+/* VOID:OBJECT,UINT,BOOLEAN,UINT (./marshalers.list:9) */
+void
+bus_marshal_VOID__OBJECT_UINT_BOOLEAN_UINT (GClosure     *closure,
+                                            GValue       *return_value G_GNUC_UNUSED,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint G_GNUC_UNUSED,
+                                            gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN_UINT) (gpointer     data1,
+                                                               gpointer     arg_1,
+                                                               guint        arg_2,
+                                                               gboolean     arg_3,
+                                                               guint        arg_4,
+                                                               gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 5);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            g_marshal_value_peek_boolean (param_values + 3),
+            g_marshal_value_peek_uint (param_values + 4),
+            data2);
+}
+
+/* VOID:OBJECT,STRING,STRING,STRING (./marshalers.list:10) */
+void
+bus_marshal_VOID__OBJECT_STRING_STRING_STRING (GClosure     *closure,
+                                               GValue       *return_value G_GNUC_UNUSED,
+                                               guint         n_param_values,
+                                               const GValue *param_values,
+                                               gpointer      invocation_hint G_GNUC_UNUSED,
+                                               gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_STRING_STRING_STRING) (gpointer     data1,
+                                                                  gpointer     arg_1,
+                                                                  gpointer     arg_2,
+                                                                  gpointer     arg_3,
+                                                                  gpointer     arg_4,
+                                                                  gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_STRING_STRING_STRING callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 5);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_STRING_STRING_STRING) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_string (param_values + 2),
+            g_marshal_value_peek_string (param_values + 3),
+            g_marshal_value_peek_string (param_values + 4),
+            data2);
+}
+
+/* VOID:STRING (./marshalers.list:11) */
+
+/* VOID:STRING,INT (./marshalers.list:12) */
+void
+bus_marshal_VOID__STRING_INT (GClosure     *closure,
+                              GValue       *return_value G_GNUC_UNUSED,
+                              guint         n_param_values,
+                              const GValue *param_values,
+                              gpointer      invocation_hint G_GNUC_UNUSED,
+                              gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__STRING_INT) (gpointer     data1,
+                                                 gpointer     arg_1,
+                                                 gint         arg_2,
+                                                 gpointer     data2);
+  register GMarshalFunc_VOID__STRING_INT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__STRING_INT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_string (param_values + 1),
+            g_marshal_value_peek_int (param_values + 2),
+            data2);
+}
+
+/* VOID:UINT,UINT,UINT (./marshalers.list:13) */
+void
+bus_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
+                                  GValue       *return_value G_GNUC_UNUSED,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                  gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT) (gpointer     data1,
+                                                     guint        arg_1,
+                                                     guint        arg_2,
+                                                     guint        arg_3,
+                                                     gpointer     data2);
+  register GMarshalFunc_VOID__UINT_UINT_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_uint (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            g_marshal_value_peek_uint (param_values + 3),
+            data2);
+}
+
+/* VOID:VOID (./marshalers.list:14) */
+
diff --git a/bus/marshalers.h b/bus/marshalers.h
new file mode 100644 (file)
index 0000000..3d74af6
--- /dev/null
@@ -0,0 +1,110 @@
+
+#ifndef __bus_marshal_MARSHAL_H__
+#define __bus_marshal_MARSHAL_H__
+
+#include       <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* BOOL:UINT,UINT,UINT (./marshalers.list:1) */
+G_GNUC_INTERNAL void bus_marshal_BOOLEAN__UINT_UINT_UINT (GClosure     *closure,
+                                                          GValue       *return_value,
+                                                          guint         n_param_values,
+                                                          const GValue *param_values,
+                                                          gpointer      invocation_hint,
+                                                          gpointer      marshal_data);
+#define bus_marshal_BOOL__UINT_UINT_UINT       bus_marshal_BOOLEAN__UINT_UINT_UINT
+
+/* OBJECT:STRING (./marshalers.list:2) */
+G_GNUC_INTERNAL void bus_marshal_OBJECT__STRING (GClosure     *closure,
+                                                 GValue       *return_value,
+                                                 guint         n_param_values,
+                                                 const GValue *param_values,
+                                                 gpointer      invocation_hint,
+                                                 gpointer      marshal_data);
+
+/* VOID:INT,UINT (./marshalers.list:3) */
+G_GNUC_INTERNAL void bus_marshal_VOID__INT_UINT (GClosure     *closure,
+                                                 GValue       *return_value,
+                                                 guint         n_param_values,
+                                                 const GValue *param_values,
+                                                 gpointer      invocation_hint,
+                                                 gpointer      marshal_data);
+
+/* VOID:INT,INT,INT,INT (./marshalers.list:4) */
+G_GNUC_INTERNAL void bus_marshal_VOID__INT_INT_INT_INT (GClosure     *closure,
+                                                        GValue       *return_value,
+                                                        guint         n_param_values,
+                                                        const GValue *param_values,
+                                                        gpointer      invocation_hint,
+                                                        gpointer      marshal_data);
+
+/* VOID:OBJECT (./marshalers.list:5) */
+#define bus_marshal_VOID__OBJECT       g_cclosure_marshal_VOID__OBJECT
+
+/* VOID:OBJECT,BOOLEAN (./marshalers.list:6) */
+G_GNUC_INTERNAL void bus_marshal_VOID__OBJECT_BOOLEAN (GClosure     *closure,
+                                                       GValue       *return_value,
+                                                       guint         n_param_values,
+                                                       const GValue *param_values,
+                                                       gpointer      invocation_hint,
+                                                       gpointer      marshal_data);
+
+/* VOID:OBJECT,STRING (./marshalers.list:7) */
+G_GNUC_INTERNAL void bus_marshal_VOID__OBJECT_STRING (GClosure     *closure,
+                                                      GValue       *return_value,
+                                                      guint         n_param_values,
+                                                      const GValue *param_values,
+                                                      gpointer      invocation_hint,
+                                                      gpointer      marshal_data);
+
+/* VOID:OBJECT,UINT,BOOLEAN (./marshalers.list:8) */
+G_GNUC_INTERNAL void bus_marshal_VOID__OBJECT_UINT_BOOLEAN (GClosure     *closure,
+                                                            GValue       *return_value,
+                                                            guint         n_param_values,
+                                                            const GValue *param_values,
+                                                            gpointer      invocation_hint,
+                                                            gpointer      marshal_data);
+
+/* VOID:OBJECT,UINT,BOOLEAN,UINT (./marshalers.list:9) */
+G_GNUC_INTERNAL void bus_marshal_VOID__OBJECT_UINT_BOOLEAN_UINT (GClosure     *closure,
+                                                                 GValue       *return_value,
+                                                                 guint         n_param_values,
+                                                                 const GValue *param_values,
+                                                                 gpointer      invocation_hint,
+                                                                 gpointer      marshal_data);
+
+/* VOID:OBJECT,STRING,STRING,STRING (./marshalers.list:10) */
+G_GNUC_INTERNAL void bus_marshal_VOID__OBJECT_STRING_STRING_STRING (GClosure     *closure,
+                                                                    GValue       *return_value,
+                                                                    guint         n_param_values,
+                                                                    const GValue *param_values,
+                                                                    gpointer      invocation_hint,
+                                                                    gpointer      marshal_data);
+
+/* VOID:STRING (./marshalers.list:11) */
+#define bus_marshal_VOID__STRING       g_cclosure_marshal_VOID__STRING
+
+/* VOID:STRING,INT (./marshalers.list:12) */
+G_GNUC_INTERNAL void bus_marshal_VOID__STRING_INT (GClosure     *closure,
+                                                   GValue       *return_value,
+                                                   guint         n_param_values,
+                                                   const GValue *param_values,
+                                                   gpointer      invocation_hint,
+                                                   gpointer      marshal_data);
+
+/* VOID:UINT,UINT,UINT (./marshalers.list:13) */
+G_GNUC_INTERNAL void bus_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
+                                                       GValue       *return_value,
+                                                       guint         n_param_values,
+                                                       const GValue *param_values,
+                                                       gpointer      invocation_hint,
+                                                       gpointer      marshal_data);
+
+/* VOID:VOID (./marshalers.list:14) */
+#define bus_marshal_VOID__VOID g_cclosure_marshal_VOID__VOID
+
+G_END_DECLS
+
+#endif /* __bus_marshal_MARSHAL_H__ */
+
diff --git a/client/Makefile.in b/client/Makefile.in
new file mode 100644 (file)
index 0000000..b509530
--- /dev/null
@@ -0,0 +1,768 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = client
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = gtk2 gtk3 x11 wayland
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@ENABLE_GTK2_TRUE@GTK2 = gtk2
+@ENABLE_GTK3_TRUE@GTK3 = gtk3
+@ENABLE_XIM_TRUE@X11 = x11
+@ENABLE_WAYLAND_TRUE@WAYLAND = wayland
+SUBDIRS = \
+       $(GTK2) \
+       $(GTK3) \
+       $(X11) \
+       $(WAYLAND) \
+       $(NULL)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu client/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu client/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/client/gtk2/Makefile.in b/client/gtk2/Makefile.in
new file mode 100644 (file)
index 0000000..f705866
--- /dev/null
@@ -0,0 +1,839 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = client/gtk2
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(immoduledir)"
+LTLIBRARIES = $(immodule_LTLIBRARIES)
+am_im_ibus_la_OBJECTS = im_ibus_la-ibusim.lo \
+       im_ibus_la-ibusimcontext.lo
+im_ibus_la_OBJECTS = $(am_im_ibus_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+im_ibus_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(im_ibus_la_CFLAGS) \
+       $(CFLAGS) $(im_ibus_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(im_ibus_la_SOURCES)
+DIST_SOURCES = $(im_ibus_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+AM_CPPFLAGS = \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+immoduledir = @GTK2_IM_MODULEDIR@
+immodule_LTLIBRARIES = im-ibus.la
+im_ibus_la_SOURCES = \
+       ibusim.c \
+       ibusimcontext.c \
+       ibusimcontext.h \
+       $(NULL)
+
+im_ibus_la_DEPENDENCIES = $(libibus)
+im_ibus_la_CFLAGS = \
+       @GTK2_CFLAGS@ \
+       @DBUS_CFLAGS@ \
+       -DG_LOG_DOMAIN=\"IBUS\" \
+       $(NULL)
+
+im_ibus_la_LIBADD = \
+       @GTK2_LIBS@ \
+       @DBUS_LIBS@ \
+       $(libibus) \
+       $(NULL)
+
+im_ibus_la_LDFLAGS = \
+       -avoid-version \
+       -module \
+       $(NULL)
+
+EXTRA_DIST = \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu client/gtk2/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu client/gtk2/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+install-immoduleLTLIBRARIES: $(immodule_LTLIBRARIES)
+       @$(NORMAL_INSTALL)
+       @list='$(immodule_LTLIBRARIES)'; test -n "$(immoduledir)" || list=; \
+       list2=; for p in $$list; do \
+         if test -f $$p; then \
+           list2="$$list2 $$p"; \
+         else :; fi; \
+       done; \
+       test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(immoduledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(immoduledir)" || exit 1; \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(immoduledir)'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(immoduledir)"; \
+       }
+
+uninstall-immoduleLTLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       @list='$(immodule_LTLIBRARIES)'; test -n "$(immoduledir)" || list=; \
+       for p in $$list; do \
+         $(am__strip_dir) \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(immoduledir)/$$f'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(immoduledir)/$$f"; \
+       done
+
+clean-immoduleLTLIBRARIES:
+       -test -z "$(immodule_LTLIBRARIES)" || rm -f $(immodule_LTLIBRARIES)
+       @list='$(immodule_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
+
+im-ibus.la: $(im_ibus_la_OBJECTS) $(im_ibus_la_DEPENDENCIES) $(EXTRA_im_ibus_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(im_ibus_la_LINK) -rpath $(immoduledir) $(im_ibus_la_OBJECTS) $(im_ibus_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_ibus_la-ibusim.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_ibus_la-ibusimcontext.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+im_ibus_la-ibusim.lo: ibusim.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_ibus_la_CFLAGS) $(CFLAGS) -MT im_ibus_la-ibusim.lo -MD -MP -MF $(DEPDIR)/im_ibus_la-ibusim.Tpo -c -o im_ibus_la-ibusim.lo `test -f 'ibusim.c' || echo '$(srcdir)/'`ibusim.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/im_ibus_la-ibusim.Tpo $(DEPDIR)/im_ibus_la-ibusim.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibusim.c' object='im_ibus_la-ibusim.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_ibus_la_CFLAGS) $(CFLAGS) -c -o im_ibus_la-ibusim.lo `test -f 'ibusim.c' || echo '$(srcdir)/'`ibusim.c
+
+im_ibus_la-ibusimcontext.lo: ibusimcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_ibus_la_CFLAGS) $(CFLAGS) -MT im_ibus_la-ibusimcontext.lo -MD -MP -MF $(DEPDIR)/im_ibus_la-ibusimcontext.Tpo -c -o im_ibus_la-ibusimcontext.lo `test -f 'ibusimcontext.c' || echo '$(srcdir)/'`ibusimcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/im_ibus_la-ibusimcontext.Tpo $(DEPDIR)/im_ibus_la-ibusimcontext.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibusimcontext.c' object='im_ibus_la-ibusimcontext.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_ibus_la_CFLAGS) $(CFLAGS) -c -o im_ibus_la-ibusimcontext.lo `test -f 'ibusimcontext.c' || echo '$(srcdir)/'`ibusimcontext.c
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+       for dir in "$(DESTDIR)$(immoduledir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-immoduleLTLIBRARIES clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-immoduleLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-immoduleLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-immoduleLTLIBRARIES clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am \
+       install-immoduleLTLIBRARIES install-info install-info-am \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+       uninstall-am uninstall-immoduleLTLIBRARIES
+
+
+$(libibus):
+       (cd $(top_builddir)/src; make )
+
+test: all
+       GTK_IM_MODULE=ibus gedit
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/client/gtk3/Makefile.in b/client/gtk3/Makefile.in
new file mode 100644 (file)
index 0000000..dc34bf7
--- /dev/null
@@ -0,0 +1,839 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = client/gtk3
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(immoduledir)"
+LTLIBRARIES = $(immodule_LTLIBRARIES)
+am_im_ibus_la_OBJECTS = im_ibus_la-ibusim.lo \
+       im_ibus_la-ibusimcontext.lo
+im_ibus_la_OBJECTS = $(am_im_ibus_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+im_ibus_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(im_ibus_la_CFLAGS) \
+       $(CFLAGS) $(im_ibus_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(im_ibus_la_SOURCES)
+DIST_SOURCES = $(im_ibus_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+AM_CPPFLAGS = \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+immoduledir = @GTK3_IM_MODULEDIR@
+immodule_LTLIBRARIES = im-ibus.la
+im_ibus_la_SOURCES = \
+       ibusim.c \
+       ibusimcontext.c \
+       ibusimcontext.h \
+       $(NULL)
+
+im_ibus_la_DEPENDENCIES = $(libibus)
+im_ibus_la_CFLAGS = \
+       @GTK3_CFLAGS@ \
+       @DBUS_CFLAGS@ \
+       -DG_LOG_DOMAIN=\"IBUS\" \
+       $(NULL)
+
+im_ibus_la_LIBADD = \
+       @GTK3_LIBS@ \
+       @DBUS_LIBS@ \
+       $(libibus) \
+       $(NULL)
+
+im_ibus_la_LDFLAGS = \
+       -avoid-version \
+       -module \
+       $(NULL)
+
+EXTRA_DIST = \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu client/gtk3/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu client/gtk3/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+install-immoduleLTLIBRARIES: $(immodule_LTLIBRARIES)
+       @$(NORMAL_INSTALL)
+       @list='$(immodule_LTLIBRARIES)'; test -n "$(immoduledir)" || list=; \
+       list2=; for p in $$list; do \
+         if test -f $$p; then \
+           list2="$$list2 $$p"; \
+         else :; fi; \
+       done; \
+       test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(immoduledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(immoduledir)" || exit 1; \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(immoduledir)'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(immoduledir)"; \
+       }
+
+uninstall-immoduleLTLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       @list='$(immodule_LTLIBRARIES)'; test -n "$(immoduledir)" || list=; \
+       for p in $$list; do \
+         $(am__strip_dir) \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(immoduledir)/$$f'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(immoduledir)/$$f"; \
+       done
+
+clean-immoduleLTLIBRARIES:
+       -test -z "$(immodule_LTLIBRARIES)" || rm -f $(immodule_LTLIBRARIES)
+       @list='$(immodule_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
+
+im-ibus.la: $(im_ibus_la_OBJECTS) $(im_ibus_la_DEPENDENCIES) $(EXTRA_im_ibus_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(im_ibus_la_LINK) -rpath $(immoduledir) $(im_ibus_la_OBJECTS) $(im_ibus_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_ibus_la-ibusim.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_ibus_la-ibusimcontext.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+im_ibus_la-ibusim.lo: ibusim.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_ibus_la_CFLAGS) $(CFLAGS) -MT im_ibus_la-ibusim.lo -MD -MP -MF $(DEPDIR)/im_ibus_la-ibusim.Tpo -c -o im_ibus_la-ibusim.lo `test -f 'ibusim.c' || echo '$(srcdir)/'`ibusim.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/im_ibus_la-ibusim.Tpo $(DEPDIR)/im_ibus_la-ibusim.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibusim.c' object='im_ibus_la-ibusim.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_ibus_la_CFLAGS) $(CFLAGS) -c -o im_ibus_la-ibusim.lo `test -f 'ibusim.c' || echo '$(srcdir)/'`ibusim.c
+
+im_ibus_la-ibusimcontext.lo: ibusimcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_ibus_la_CFLAGS) $(CFLAGS) -MT im_ibus_la-ibusimcontext.lo -MD -MP -MF $(DEPDIR)/im_ibus_la-ibusimcontext.Tpo -c -o im_ibus_la-ibusimcontext.lo `test -f 'ibusimcontext.c' || echo '$(srcdir)/'`ibusimcontext.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/im_ibus_la-ibusimcontext.Tpo $(DEPDIR)/im_ibus_la-ibusimcontext.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibusimcontext.c' object='im_ibus_la-ibusimcontext.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_ibus_la_CFLAGS) $(CFLAGS) -c -o im_ibus_la-ibusimcontext.lo `test -f 'ibusimcontext.c' || echo '$(srcdir)/'`ibusimcontext.c
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+       for dir in "$(DESTDIR)$(immoduledir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-immoduleLTLIBRARIES clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-immoduleLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-immoduleLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-immoduleLTLIBRARIES clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am \
+       install-immoduleLTLIBRARIES install-info install-info-am \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+       uninstall-am uninstall-immoduleLTLIBRARIES
+
+
+$(libibus):
+       (cd $(top_builddir)/src; make )
+
+test: all
+       GTK_IM_MODULE=ibus gedit
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
deleted file mode 120000 (symlink)
index 63065330f20160b15de8a20062097b4a9c4a9bba..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../gtk2/ibusim.c
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..bfacd0f051c0e932d63eeb71990b525ae4830435
--- /dev/null
@@ -0,0 +1,81 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* vim:set et ts=4: */
+/* ibus - The Input Bus
+ * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
+ * Copyright (C) 2008-2010 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+ * USA
+ */
+
+#include <gtk/gtk.h>
+#include <gtk/gtkimmodule.h>
+#include <ibus.h>
+#include "ibusimcontext.h"
+
+#define IBUS_LOCALDIR ""
+static const GtkIMContextInfo ibus_im_info = {
+    "ibus",
+    "IBus (Intelligent Input Bus)",
+    "ibus",
+    IBUS_LOCALDIR,
+    "ja:ko:zh:*"
+};
+
+static const GtkIMContextInfo *info_list[] = {
+    &ibus_im_info
+};
+
+G_MODULE_EXPORT const gchar*
+g_module_check_init (GModule *module)
+{
+    return glib_check_version (GLIB_MAJOR_VERSION,
+                               GLIB_MINOR_VERSION,
+                               0);
+}
+
+G_MODULE_EXPORT void
+im_module_init (GTypeModule *type_module)
+{
+    /* make module resident */
+    g_type_module_use (type_module);
+    ibus_init ();
+    ibus_im_context_register_type (type_module);
+}
+
+G_MODULE_EXPORT void
+im_module_exit (void)
+{
+}
+
+G_MODULE_EXPORT GtkIMContext *
+im_module_create (const gchar *context_id)
+{
+    if (g_strcmp0 (context_id, "ibus") == 0) {
+        IBusIMContext *context;
+        context = ibus_im_context_new ();
+        return (GtkIMContext *) context;
+    }
+    return NULL;
+}
+
+G_MODULE_EXPORT void
+im_module_list (const GtkIMContextInfo ***contexts,
+                gint                     *n_contexts)
+{
+    *contexts = info_list;
+    *n_contexts = G_N_ELEMENTS (info_list);
+}
+
deleted file mode 120000 (symlink)
index 41896f0520388cbd562e990cffbb510de334479b..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../gtk2/ibusimcontext.c
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..eef062c91bcf1fd46d8eb5e74356b39d6248f187
--- /dev/null
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* vim:set et sts=4: */
+/* ibus - The Input Bus
+ * 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
+ * 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
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
+#include <ibus.h>
+#include "ibusimcontext.h"
+
+#if !GTK_CHECK_VERSION (2, 91, 0)
+#  define DEPRECATED_GDK_KEYSYMS 1
+#endif
+
+#ifdef DEBUG
+#  define IDEBUG g_debug
+#else
+#  define IDEBUG(a...)
+#endif
+
+#define MAX_QUEUED_EVENTS 20
+
+struct _IBusIMContext {
+    GtkIMContext parent;
+
+    /* instance members */
+    GtkIMContext *slave;
+    GdkWindow *client_window;
+
+    IBusInputContext *ibuscontext;
+
+    /* preedit status */
+    gchar           *preedit_string;
+    PangoAttrList   *preedit_attrs;
+    gint             preedit_cursor_pos;
+    gboolean         preedit_visible;
+
+    GdkRectangle     cursor_area;
+    gboolean         has_focus;
+
+    guint32          time;
+    gint             caps;
+
+    /* cancellable */
+    GCancellable    *cancellable;
+    GQueue          *events_queue;
+};
+
+struct _IBusIMContextClass {
+GtkIMContextClass parent;
+    /* class members */
+};
+
+static guint    _signal_commit_id = 0;
+static guint    _signal_preedit_changed_id = 0;
+static guint    _signal_preedit_start_id = 0;
+static guint    _signal_preedit_end_id = 0;
+static guint    _signal_delete_surrounding_id = 0;
+static guint    _signal_retrieve_surrounding_id = 0;
+
+static const gchar *_no_snooper_apps = NO_SNOOPER_APPS;
+static gboolean _use_key_snooper = ENABLE_SNOOPER;
+static guint    _key_snooper_id = 0;
+
+static gboolean _use_sync_mode = FALSE;
+
+static GtkIMContext *_focus_im_context = NULL;
+static IBusInputContext *_fake_context = NULL;
+static GdkWindow *_input_window = NULL;
+static GtkWidget *_input_widget = NULL;
+
+/* functions prototype */
+static void     ibus_im_context_class_init  (IBusIMContextClass    *class);
+static void     ibus_im_context_class_fini  (IBusIMContextClass    *class);
+static void     ibus_im_context_init        (GObject               *obj);
+static void     ibus_im_context_notify      (GObject               *obj,
+                                             GParamSpec            *pspec);
+static void     ibus_im_context_finalize    (GObject               *obj);
+static void     ibus_im_context_reset       (GtkIMContext          *context);
+static gboolean ibus_im_context_filter_keypress
+                                            (GtkIMContext           *context,
+                                             GdkEventKey            *key);
+static void     ibus_im_context_focus_in    (GtkIMContext          *context);
+static void     ibus_im_context_focus_out   (GtkIMContext          *context);
+static void     ibus_im_context_get_preedit_string
+                                            (GtkIMContext           *context,
+                                             gchar                  **str,
+                                             PangoAttrList          **attrs,
+                                             gint                   *cursor_pos);
+static void     ibus_im_context_set_client_window
+                                            (GtkIMContext           *context,
+                                             GdkWindow              *client);
+static void     ibus_im_context_set_cursor_location
+                                            (GtkIMContext           *context,
+                                             GdkRectangle           *area);
+static void     ibus_im_context_set_use_preedit
+                                            (GtkIMContext           *context,
+                                             gboolean               use_preedit);
+static void     ibus_im_context_set_surrounding
+                                            (GtkIMContext  *slave,
+                                             const gchar   *text,
+                                             gint           len,
+                                             gint           cursor_index);
+
+
+/* static methods*/
+static void     _create_input_context       (IBusIMContext      *context);
+static gboolean _set_cursor_location_internal
+                                            (IBusIMContext      *context);
+
+static void     _bus_connected_cb           (IBusBus            *bus,
+                                             IBusIMContext      *context);
+/* callback functions for slave context */
+static void     _slave_commit_cb            (GtkIMContext       *slave,
+                                             gchar              *string,
+                                             IBusIMContext       *context);
+static void     _slave_preedit_changed_cb   (GtkIMContext       *slave,
+                                             IBusIMContext       *context);
+static void     _slave_preedit_start_cb     (GtkIMContext       *slave,
+                                             IBusIMContext       *context);
+static void     _slave_preedit_end_cb       (GtkIMContext       *slave,
+                                             IBusIMContext       *context);
+static gboolean _slave_retrieve_surrounding_cb
+                                            (GtkIMContext       *slave,
+                                             IBusIMContext      *context);
+static gboolean _slave_delete_surrounding_cb
+                                            (GtkIMContext       *slave,
+                                             gint                offset_from_cursor,
+                                             guint               nchars,
+                                             IBusIMContext      *context);
+static void     _request_surrounding_text   (IBusIMContext      *context);
+static void     _create_fake_input_context  (void);
+static void     _set_content_type           (IBusIMContext      *context);
+
+
+
+static GType                _ibus_type_im_context = 0;
+static GtkIMContextClass    *parent_class = NULL;
+
+static IBusBus              *_bus = NULL;
+static guint                _daemon_name_watch_id = 0;
+static gboolean             _daemon_is_running = FALSE;
+
+void
+ibus_im_context_register_type (GTypeModule *type_module)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    static const GTypeInfo ibus_im_context_info = {
+        sizeof (IBusIMContextClass),
+        (GBaseInitFunc)      NULL,
+        (GBaseFinalizeFunc)  NULL,
+        (GClassInitFunc)     ibus_im_context_class_init,
+        (GClassFinalizeFunc) ibus_im_context_class_fini,
+        NULL,            /* class data */
+        sizeof (IBusIMContext),
+        0,
+        (GInstanceInitFunc)    ibus_im_context_init,
+    };
+
+    if (!_ibus_type_im_context) {
+        if (type_module) {
+            _ibus_type_im_context =
+                g_type_module_register_type (type_module,
+                    GTK_TYPE_IM_CONTEXT,
+                    "IBusIMContext",
+                    &ibus_im_context_info,
+                    (GTypeFlags)0);
+        }
+        else {
+            _ibus_type_im_context =
+                g_type_register_static (GTK_TYPE_IM_CONTEXT,
+                    "IBusIMContext",
+                    &ibus_im_context_info,
+                    (GTypeFlags)0);
+        }
+    }
+}
+
+GType
+ibus_im_context_get_type (void)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    if (_ibus_type_im_context == 0) {
+        ibus_im_context_register_type (NULL);
+    }
+
+    g_assert (_ibus_type_im_context != 0);
+    return _ibus_type_im_context;
+}
+
+IBusIMContext *
+ibus_im_context_new (void)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    GObject *obj = g_object_new (IBUS_TYPE_IM_CONTEXT, NULL);
+    return IBUS_IM_CONTEXT (obj);
+}
+
+static gboolean
+_focus_in_cb (GtkWidget     *widget,
+              GdkEventFocus *event,
+              gpointer       user_data)
+{
+    if (_focus_im_context == NULL && _fake_context != NULL) {
+        ibus_input_context_focus_in (_fake_context);
+    }
+    return FALSE;
+}
+
+static gboolean
+_focus_out_cb (GtkWidget     *widget,
+               GdkEventFocus *event,
+               gpointer       user_data)
+{
+    if (_focus_im_context == NULL && _fake_context != NULL) {
+        ibus_input_context_focus_out (_fake_context);
+    }
+    return FALSE;
+}
+
+static void
+_process_key_event_done (GObject      *object,
+                         GAsyncResult *res,
+                         gpointer      user_data)
+{
+    IBusInputContext *context = (IBusInputContext *)object;
+    GdkEventKey *event = (GdkEventKey *) user_data;
+
+    GError *error = NULL;
+    gboolean retval = ibus_input_context_process_key_event_async_finish (
+            context,
+            res,
+            &error);
+
+    if (error != NULL) {
+        g_warning ("Process Key Event failed: %s.", error->message);
+        g_error_free (error);
+    }
+
+    if (retval == FALSE) {
+        event->state |= IBUS_IGNORED_MASK;
+        gdk_event_put ((GdkEvent *)event);
+    }
+    gdk_event_free ((GdkEvent *)event);
+}
+
+static gboolean
+_process_key_event (IBusInputContext *context,
+                    GdkEventKey      *event)
+{
+    guint state = event->state;
+    gboolean retval = FALSE;
+
+    if (event->type == GDK_KEY_RELEASE) {
+        state |= IBUS_RELEASE_MASK;
+    }
+
+    if (_use_sync_mode) {
+        retval = ibus_input_context_process_key_event (context,
+            event->keyval,
+            event->hardware_keycode - 8,
+            state);
+    }
+    else {
+        ibus_input_context_process_key_event_async (context,
+            event->keyval,
+            event->hardware_keycode - 8,
+            state,
+            -1,
+            NULL,
+            _process_key_event_done,
+            gdk_event_copy ((GdkEvent *) event));
+
+        retval = TRUE;
+    }
+
+    if (retval) {
+        event->state |= IBUS_HANDLED_MASK;
+    }
+    else {
+        event->state |= IBUS_IGNORED_MASK;
+    }
+
+    return retval;
+}
+
+
+/* emit "retrieve-surrounding" glib signal of GtkIMContext, if
+ * context->caps has IBUS_CAP_SURROUNDING_TEXT and the current IBus
+ * engine needs surrounding-text.
+ */
+static void
+_request_surrounding_text (IBusIMContext *context)
+{
+    if (context &&
+        (context->caps & IBUS_CAP_SURROUNDING_TEXT) != 0 &&
+        context->ibuscontext != NULL &&
+        ibus_input_context_needs_surrounding_text (context->ibuscontext)) {
+        gboolean return_value;
+        IDEBUG ("requesting surrounding text");
+        g_signal_emit (context, _signal_retrieve_surrounding_id, 0,
+                       &return_value);
+        if (!return_value) {
+            context->caps &= ~IBUS_CAP_SURROUNDING_TEXT;
+            ibus_input_context_set_capabilities (context->ibuscontext,
+                                                 context->caps);
+        }
+    }
+}
+
+static void
+_set_content_type (IBusIMContext *context)
+{
+#if GTK_CHECK_VERSION (3, 6, 0)
+    if (context->ibuscontext != NULL) {
+        GtkInputPurpose purpose;
+        GtkInputHints hints;
+
+        g_object_get (G_OBJECT (context),
+                      "input-purpose", &purpose,
+                      "input-hints", &hints,
+                      NULL);
+
+        ibus_input_context_set_content_type (context->ibuscontext,
+                                             purpose,
+                                             hints);
+    }
+#endif
+}
+
+
+static gint
+_key_snooper_cb (GtkWidget   *widget,
+                 GdkEventKey *event,
+                 gpointer     user_data)
+{
+    IDEBUG ("%s", __FUNCTION__);
+    gboolean retval = FALSE;
+
+    IBusIMContext *ibusimcontext = NULL;
+    IBusInputContext *ibuscontext = NULL;
+
+    if (!_use_key_snooper)
+        return FALSE;
+
+    if (_focus_im_context != NULL &&
+        ((IBusIMContext *) _focus_im_context)->has_focus == TRUE) {
+        ibusimcontext = (IBusIMContext *) _focus_im_context;
+        /* has IC with focus */
+        ibuscontext = ibusimcontext->ibuscontext;
+    }
+    else {
+        /* If no IC has focus, and fake IC has been created, then pass key events to fake IC. */
+        ibuscontext = _fake_context;
+    }
+
+    if (ibuscontext == NULL)
+        return FALSE;
+
+    if (G_UNLIKELY (event->state & IBUS_HANDLED_MASK))
+        return TRUE;
+
+    if (G_UNLIKELY (event->state & IBUS_IGNORED_MASK))
+        return FALSE;
+
+    do {
+        if (_fake_context != ibuscontext)
+            break;
+
+        /* window has input focus is not changed */
+        if (_input_window == event->window)
+            break;
+
+        if (_input_window != NULL) {
+            g_object_remove_weak_pointer ((GObject *) _input_window,
+                                          (gpointer *) &_input_window);
+        }
+        if (event->window != NULL) {
+            g_object_add_weak_pointer ((GObject *) event->window,
+                                       (gpointer *) &_input_window);
+        }
+        _input_window = event->window;
+
+        /* Trace widget has input focus, and listen focus events of it.
+         * It is workaround for Alt+Shift+Tab shortcut key issue(crosbug.com/8855).
+         * gtk_get_event_widget returns the widget that is associated with the
+         * GdkWindow of the GdkEvent.
+         * */
+        GtkWidget *widget = gtk_get_event_widget ((GdkEvent *)event);
+        /* g_assert (_input_widget != widget). */
+        if (_input_widget == widget)
+            break;
+
+        if (_input_widget != NULL) {
+            g_signal_handlers_disconnect_by_func (_input_widget,
+                                                  (GCallback) _focus_in_cb,
+                                                  NULL);
+            g_signal_handlers_disconnect_by_func (_input_widget,
+                                                  (GCallback) _focus_out_cb,
+                                                  NULL);
+            g_object_remove_weak_pointer ((GObject *) _input_widget,
+                                          (gpointer *) &_input_widget);
+        }
+
+        if (widget != NULL) {
+            g_signal_connect (widget,
+                              "focus-in-event",
+                              (GCallback) _focus_in_cb,
+                              NULL);
+            g_signal_connect (widget,
+                              "focus-out-event",
+                              (GCallback) _focus_out_cb,
+                              NULL);
+            g_object_add_weak_pointer ((GObject *) widget,
+                                       (gpointer *) &_input_widget);
+        }
+        _input_widget = widget;
+
+    } while (0);
+
+    if (ibusimcontext != NULL) {
+        /* "retrieve-surrounding" signal sometimes calls unref by
+         * gtk_im_multicontext_get_slave() because priv->context_id is not
+         * the latest than global_context_id in GtkIMMulticontext.
+         * Since _focus_im_context is gotten by the focus_in event,
+         * it would be good to call ref here.
+         */
+        g_object_ref (ibusimcontext);
+        _request_surrounding_text (ibusimcontext);
+        ibusimcontext->time = event->time;
+    }
+
+    retval = _process_key_event (ibuscontext, event);
+
+    if (ibusimcontext != NULL) {
+        /* unref ibusimcontext could call ibus_im_context_finalize here
+         * because "retrieve-surrounding" signal could call unref.
+         */
+        g_object_unref (ibusimcontext);
+    }
+
+    return retval;
+}
+
+static gboolean
+_get_boolean_env(const gchar *name,
+                 gboolean     defval)
+{
+    const gchar *value = g_getenv (name);
+
+    if (value == NULL)
+      return defval;
+
+    if (g_strcmp0 (value, "") == 0 ||
+        g_strcmp0 (value, "0") == 0 ||
+        g_strcmp0 (value, "false") == 0 ||
+        g_strcmp0 (value, "False") == 0 ||
+        g_strcmp0 (value, "FALSE") == 0)
+      return FALSE;
+
+    return TRUE;
+}
+
+static void
+daemon_name_appeared (GDBusConnection *connection,
+                      const gchar     *name,
+                      const gchar     *owner,
+                      gpointer         data)
+{
+    /* If ibus-daemon is running and run ssh -X localhost,
+     * daemon_name_appeared() is called but ibus_get_address() == NULL
+     * because the hostname and display number are different between
+     * ibus-daemon and clients. So IBusBus would not be connected and
+     * ibusimcontext->ibuscontext == NULL and ibusimcontext->events_queue
+     * could go beyond MAX_QUEUED_EVENTS . */
+    _daemon_is_running = (ibus_get_address () != NULL);
+}
+
+static void
+daemon_name_vanished (GDBusConnection *connection,
+                      const gchar     *name,
+                      gpointer         data)
+{
+    _daemon_is_running = FALSE;
+}
+
+static void
+ibus_im_context_class_init (IBusIMContextClass *class)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    GtkIMContextClass *im_context_class = GTK_IM_CONTEXT_CLASS (class);
+    GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+
+    parent_class = (GtkIMContextClass *) g_type_class_peek_parent (class);
+
+    im_context_class->reset = ibus_im_context_reset;
+    im_context_class->focus_in = ibus_im_context_focus_in;
+    im_context_class->focus_out = ibus_im_context_focus_out;
+    im_context_class->filter_keypress = ibus_im_context_filter_keypress;
+    im_context_class->get_preedit_string = ibus_im_context_get_preedit_string;
+    im_context_class->set_client_window = ibus_im_context_set_client_window;
+    im_context_class->set_cursor_location = ibus_im_context_set_cursor_location;
+    im_context_class->set_use_preedit = ibus_im_context_set_use_preedit;
+    im_context_class->set_surrounding = ibus_im_context_set_surrounding;
+    gobject_class->notify = ibus_im_context_notify;
+    gobject_class->finalize = ibus_im_context_finalize;
+
+    _signal_commit_id =
+        g_signal_lookup ("commit", G_TYPE_FROM_CLASS (class));
+    g_assert (_signal_commit_id != 0);
+
+    _signal_preedit_changed_id =
+        g_signal_lookup ("preedit-changed", G_TYPE_FROM_CLASS (class));
+    g_assert (_signal_preedit_changed_id != 0);
+
+    _signal_preedit_start_id =
+        g_signal_lookup ("preedit-start", G_TYPE_FROM_CLASS (class));
+    g_assert (_signal_preedit_start_id != 0);
+
+    _signal_preedit_end_id =
+        g_signal_lookup ("preedit-end", G_TYPE_FROM_CLASS (class));
+    g_assert (_signal_preedit_end_id != 0);
+
+    _signal_delete_surrounding_id =
+        g_signal_lookup ("delete-surrounding", G_TYPE_FROM_CLASS (class));
+    g_assert (_signal_delete_surrounding_id != 0);
+
+    _signal_retrieve_surrounding_id =
+        g_signal_lookup ("retrieve-surrounding", G_TYPE_FROM_CLASS (class));
+    g_assert (_signal_retrieve_surrounding_id != 0);
+
+    _use_key_snooper = !_get_boolean_env ("IBUS_DISABLE_SNOOPER",
+                                          !(ENABLE_SNOOPER));
+    _use_sync_mode = _get_boolean_env ("IBUS_ENABLE_SYNC_MODE", FALSE);
+
+    /* env IBUS_DISABLE_SNOOPER does not exist */
+    if (_use_key_snooper) {
+        /* disable snooper if app is in _no_snooper_apps */
+        const gchar * prgname = g_get_prgname ();
+        if (g_getenv ("IBUS_NO_SNOOPER_APPS")) {
+            _no_snooper_apps = g_getenv ("IBUS_NO_SNOOPER_APPS");
+        }
+        gchar **p;
+        gchar ** apps = g_strsplit (_no_snooper_apps, ",", 0);
+        for (p = apps; *p != NULL; p++) {
+            if (g_regex_match_simple (*p, prgname, 0, 0)) {
+                _use_key_snooper = FALSE;
+                break;
+            }
+        }
+        g_strfreev (apps);
+    }
+
+    /* init bus object */
+    if (_bus == NULL) {
+        ibus_set_display (gdk_display_get_name (gdk_display_get_default ()));
+        _bus = ibus_bus_new_async ();
+
+        /* init the global fake context */
+        if (ibus_bus_is_connected (_bus)) {
+            _create_fake_input_context ();
+        }
+
+        g_signal_connect (_bus, "connected", G_CALLBACK (_bus_connected_cb), NULL);
+    }
+
+
+    /* always install snooper */
+    if (_key_snooper_id == 0) {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+        _key_snooper_id = gtk_key_snooper_install (_key_snooper_cb, NULL);
+#pragma GCC diagnostic pop
+    }
+
+    _daemon_name_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
+                                              IBUS_SERVICE_IBUS,
+                                              G_BUS_NAME_WATCHER_FLAGS_NONE,
+                                              daemon_name_appeared,
+                                              daemon_name_vanished,
+                                              NULL,
+                                              NULL);
+}
+
+static void
+ibus_im_context_class_fini (IBusIMContextClass *class)
+{
+    if (_key_snooper_id != 0) {
+        IDEBUG ("snooper is terminated.");
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+        gtk_key_snooper_remove (_key_snooper_id);
+#pragma GCC diagnostic pop
+        _key_snooper_id = 0;
+    }
+
+    g_bus_unwatch_name (_daemon_name_watch_id);
+}
+
+/* Copied from gtk+2.0-2.20.1/modules/input/imcedilla.c to fix crosbug.com/11421.
+ * Overwrite the original Gtk+'s compose table in gtk+-2.x.y/gtk/gtkimcontextsimple.c. */
+
+/* The difference between this and the default input method is the handling
+ * of C+acute - this method produces C WITH CEDILLA rather than C WITH ACUTE.
+ * For languages that use CCedilla and not acute, this is the preferred mapping,
+ * and is particularly important for pt_BR, where the us-intl keyboard is
+ * used extensively.
+ */
+static guint16 cedilla_compose_seqs[] = {
+#ifdef DEPRECATED_GDK_KEYSYMS
+  GDK_dead_acute,      GDK_C,  0,      0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */
+  GDK_dead_acute,      GDK_c,  0,      0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */
+  GDK_Multi_key,       GDK_apostrophe, GDK_C,  0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */
+  GDK_Multi_key,       GDK_apostrophe, GDK_c,  0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */
+  GDK_Multi_key,       GDK_C,  GDK_apostrophe, 0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */
+  GDK_Multi_key,       GDK_c,  GDK_apostrophe, 0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */
+#else
+  GDK_KEY_dead_acute,  GDK_KEY_C,      0,      0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */
+  GDK_KEY_dead_acute,  GDK_KEY_c,      0,      0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */
+  GDK_KEY_Multi_key,   GDK_KEY_apostrophe,     GDK_KEY_C,  0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */
+  GDK_KEY_Multi_key,   GDK_KEY_apostrophe,     GDK_KEY_c,  0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */
+  GDK_KEY_Multi_key,   GDK_KEY_C,  GDK_KEY_apostrophe, 0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */
+  GDK_KEY_Multi_key,   GDK_KEY_c,  GDK_KEY_apostrophe, 0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */
+#endif
+};
+
+static void
+ibus_im_context_init (GObject *obj)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (obj);
+
+    ibusimcontext->client_window = NULL;
+
+    // Init preedit status
+    ibusimcontext->preedit_string = NULL;
+    ibusimcontext->preedit_attrs = NULL;
+    ibusimcontext->preedit_cursor_pos = 0;
+    ibusimcontext->preedit_visible = FALSE;
+
+    // Init cursor area
+    ibusimcontext->cursor_area.x = -1;
+    ibusimcontext->cursor_area.y = -1;
+    ibusimcontext->cursor_area.width = 0;
+    ibusimcontext->cursor_area.height = 0;
+
+    ibusimcontext->ibuscontext = NULL;
+    ibusimcontext->has_focus = FALSE;
+    ibusimcontext->time = GDK_CURRENT_TIME;
+#ifdef ENABLE_SURROUNDING
+    ibusimcontext->caps = IBUS_CAP_PREEDIT_TEXT | IBUS_CAP_FOCUS | IBUS_CAP_SURROUNDING_TEXT;
+#else
+    ibusimcontext->caps = IBUS_CAP_PREEDIT_TEXT | IBUS_CAP_FOCUS;
+#endif
+
+    ibusimcontext->events_queue = g_queue_new ();
+
+    // Create slave im context
+    ibusimcontext->slave = gtk_im_context_simple_new ();
+    gtk_im_context_simple_add_table (GTK_IM_CONTEXT_SIMPLE (ibusimcontext->slave),
+                                     cedilla_compose_seqs,
+                                     4,
+                                     G_N_ELEMENTS (cedilla_compose_seqs) / (4 + 2));
+
+    g_signal_connect (ibusimcontext->slave,
+                      "commit",
+                      G_CALLBACK (_slave_commit_cb),
+                      ibusimcontext);
+    g_signal_connect (ibusimcontext->slave,
+                      "preedit-start",
+                      G_CALLBACK (_slave_preedit_start_cb),
+                      ibusimcontext);
+    g_signal_connect (ibusimcontext->slave,
+                      "preedit-end",
+                      G_CALLBACK (_slave_preedit_end_cb),
+                      ibusimcontext);
+    g_signal_connect (ibusimcontext->slave,
+                      "preedit-changed",
+                      G_CALLBACK (_slave_preedit_changed_cb),
+                      ibusimcontext);
+    g_signal_connect (ibusimcontext->slave,
+                      "retrieve-surrounding",
+                      G_CALLBACK (_slave_retrieve_surrounding_cb),
+                      ibusimcontext);
+    g_signal_connect (ibusimcontext->slave,
+                      "delete-surrounding",
+                      G_CALLBACK (_slave_delete_surrounding_cb),
+                      ibusimcontext);
+
+    if (ibus_bus_is_connected (_bus)) {
+        _create_input_context (ibusimcontext);
+    }
+
+    g_signal_connect (_bus, "connected", G_CALLBACK (_bus_connected_cb), obj);
+}
+
+static void
+ibus_im_context_notify (GObject    *obj,
+                        GParamSpec *pspec)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    if (g_strcmp0 (pspec->name, "input-purpose") == 0 ||
+        g_strcmp0 (pspec->name, "input-hints") == 0) {
+        _set_content_type (IBUS_IM_CONTEXT (obj));
+    }
+}
+
+static void
+ibus_im_context_finalize (GObject *obj)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (obj);
+
+    g_signal_handlers_disconnect_by_func (_bus, G_CALLBACK (_bus_connected_cb), obj);
+
+    if (ibusimcontext->cancellable != NULL) {
+        /* Cancel any ongoing create input context request */
+        g_cancellable_cancel (ibusimcontext->cancellable);
+        g_object_unref (ibusimcontext->cancellable);
+        ibusimcontext->cancellable = NULL;
+    }
+
+    if (ibusimcontext->ibuscontext) {
+        ibus_proxy_destroy ((IBusProxy *)ibusimcontext->ibuscontext);
+    }
+
+    ibus_im_context_set_client_window ((GtkIMContext *)ibusimcontext, NULL);
+
+    if (ibusimcontext->slave) {
+        g_object_unref (ibusimcontext->slave);
+        ibusimcontext->slave = NULL;
+    }
+
+    // release preedit
+    if (ibusimcontext->preedit_string) {
+        g_free (ibusimcontext->preedit_string);
+    }
+    if (ibusimcontext->preedit_attrs) {
+        pango_attr_list_unref (ibusimcontext->preedit_attrs);
+    }
+
+    g_queue_free_full (ibusimcontext->events_queue,
+                       (GDestroyNotify)gdk_event_free);
+
+    G_OBJECT_CLASS(parent_class)->finalize (obj);
+}
+
+static gboolean
+ibus_im_context_filter_keypress (GtkIMContext *context,
+                                 GdkEventKey  *event)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (context);
+
+    if (!_daemon_is_running)
+        return gtk_im_context_filter_keypress (ibusimcontext->slave, event);
+
+    /* If context does not have focus, ibus will process key event in
+     * sync mode.  It is a workaround for increase search in treeview.
+     */
+    if (!ibusimcontext->has_focus)
+        return gtk_im_context_filter_keypress (ibusimcontext->slave, event);
+
+    if (event->state & IBUS_HANDLED_MASK)
+        return TRUE;
+
+    if (event->state & IBUS_IGNORED_MASK)
+        return gtk_im_context_filter_keypress (ibusimcontext->slave, event);
+
+    /* XXX it is a workaround for some applications do not set client
+     * window. */
+    if (ibusimcontext->client_window == NULL && event->window != NULL)
+        gtk_im_context_set_client_window ((GtkIMContext *)ibusimcontext,
+                                          event->window);
+
+    _request_surrounding_text (ibusimcontext);
+
+    ibusimcontext->time = event->time;
+
+    if (ibusimcontext->ibuscontext) {
+        if (_process_key_event (ibusimcontext->ibuscontext, event))
+            return TRUE;
+        else
+            return gtk_im_context_filter_keypress (ibusimcontext->slave,
+                                                   event);
+    }
+
+    /* At this point we _should_ be waiting for the IBus context to be
+     * created or the connection to IBus to be established. If that's
+     * the case we queue events to be processed when the IBus context
+     * is ready. */
+    g_return_val_if_fail (ibusimcontext->cancellable != NULL ||
+                          ibus_bus_is_connected (_bus) == FALSE,
+                          FALSE);
+    g_queue_push_tail (ibusimcontext->events_queue,
+                       gdk_event_copy ((GdkEvent *)event));
+
+    if (g_queue_get_length (ibusimcontext->events_queue) > MAX_QUEUED_EVENTS) {
+        g_warning ("Events queue growing too big, will start to drop.");
+        gdk_event_free ((GdkEvent *)
+                        g_queue_pop_head (ibusimcontext->events_queue));
+    }
+
+    return TRUE;
+}
+
+static void
+ibus_im_context_focus_in (GtkIMContext *context)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    IBusIMContext *ibusimcontext = (IBusIMContext *) context;
+
+    if (ibusimcontext->has_focus)
+        return;
+
+    /* don't set focus on password entry */
+    if (ibusimcontext->client_window != NULL) {
+        GtkWidget *widget;
+
+        gdk_window_get_user_data (ibusimcontext->client_window,
+                                  (gpointer *)&widget);
+
+        if (GTK_IS_ENTRY (widget) &&
+            !gtk_entry_get_visibility (GTK_ENTRY (widget))) {
+            return;
+        }
+    }
+
+    if (_focus_im_context != NULL) {
+        g_assert (_focus_im_context != context);
+        gtk_im_context_focus_out (_focus_im_context);
+        g_assert (_focus_im_context == NULL);
+    }
+    else {
+        /* focus out fake context */
+        if (_fake_context != NULL) {
+            ibus_input_context_focus_out (_fake_context);
+        }
+    }
+
+    ibusimcontext->has_focus = TRUE;
+    if (ibusimcontext->ibuscontext) {
+        _set_content_type (ibusimcontext);
+        ibus_input_context_focus_in (ibusimcontext->ibuscontext);
+    }
+
+    gtk_im_context_focus_in (ibusimcontext->slave);
+
+    /* set_cursor_location_internal() will get origin from X server,
+     * it blocks UI. So delay it to idle callback. */
+    gdk_threads_add_idle_full (G_PRIORITY_DEFAULT_IDLE,
+                               (GSourceFunc) _set_cursor_location_internal,
+                               g_object_ref (ibusimcontext),
+                               (GDestroyNotify) g_object_unref);
+
+    /* retrieve the initial surrounding-text (regardless of whether
+     * the current IBus engine needs surrounding-text) */
+    _request_surrounding_text (ibusimcontext);
+
+    g_object_add_weak_pointer ((GObject *) context,
+                               (gpointer *) &_focus_im_context);
+    _focus_im_context = context;
+}
+
+static void
+ibus_im_context_focus_out (GtkIMContext *context)
+{
+    IDEBUG ("%s", __FUNCTION__);
+    IBusIMContext *ibusimcontext = (IBusIMContext *) context;
+
+    if (ibusimcontext->has_focus == FALSE) {
+        return;
+    }
+
+    g_assert (context == _focus_im_context);
+    g_object_remove_weak_pointer ((GObject *) context,
+                                  (gpointer *) &_focus_im_context);
+    _focus_im_context = NULL;
+
+    ibusimcontext->has_focus = FALSE;
+    if (ibusimcontext->ibuscontext) {
+        ibus_input_context_focus_out (ibusimcontext->ibuscontext);
+    }
+
+    gtk_im_context_focus_out (ibusimcontext->slave);
+
+    /* focus in the fake ic */
+    if (_fake_context != NULL) {
+        ibus_input_context_focus_in (_fake_context);
+    }
+}
+
+static void
+ibus_im_context_reset (GtkIMContext *context)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (context);
+
+    if (ibusimcontext->ibuscontext) {
+        ibus_input_context_reset (ibusimcontext->ibuscontext);
+    }
+    gtk_im_context_reset (ibusimcontext->slave);
+}
+
+
+static void
+ibus_im_context_get_preedit_string (GtkIMContext   *context,
+                                    gchar         **str,
+                                    PangoAttrList **attrs,
+                                    gint           *cursor_pos)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (context);
+
+    if (ibusimcontext->preedit_visible) {
+        if (str) {
+            *str = g_strdup (ibusimcontext->preedit_string ? ibusimcontext->preedit_string: "");
+        }
+
+        if (attrs) {
+            *attrs = ibusimcontext->preedit_attrs ?
+                        pango_attr_list_ref (ibusimcontext->preedit_attrs):
+                        pango_attr_list_new ();
+        }
+
+        if (cursor_pos) {
+            *cursor_pos = ibusimcontext->preedit_cursor_pos;
+        }
+    }
+    else {
+        if (str) {
+            *str = g_strdup ("");
+        }
+        if (attrs) {
+            *attrs = pango_attr_list_new ();
+        }
+        if (cursor_pos) {
+            *cursor_pos = 0;
+        }
+    }
+    IDEBUG ("str=%s", *str);
+}
+
+
+static void
+ibus_im_context_set_client_window (GtkIMContext *context, GdkWindow *client)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (context);
+
+    if (ibusimcontext->client_window) {
+        g_object_unref (ibusimcontext->client_window);
+        ibusimcontext->client_window = NULL;
+    }
+
+    if (client != NULL)
+        ibusimcontext->client_window = g_object_ref (client);
+
+    if (ibusimcontext->slave)
+        gtk_im_context_set_client_window (ibusimcontext->slave, client);
+}
+
+static gboolean
+_set_cursor_location_internal (IBusIMContext *ibusimcontext)
+{
+    GdkRectangle area;
+
+    if(ibusimcontext->client_window == NULL ||
+       ibusimcontext->ibuscontext == NULL) {
+        return FALSE;
+    }
+
+    area = ibusimcontext->cursor_area;
+    if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) {
+#if GTK_CHECK_VERSION (2, 91, 0)
+        area.x = 0;
+        area.y += gdk_window_get_height (ibusimcontext->client_window);
+#else
+        gint w, h;
+        gdk_drawable_get_size (ibusimcontext->client_window, &w, &h);
+        area.y += h;
+        area.x = 0;
+#endif
+    }
+
+    gdk_window_get_root_coords (ibusimcontext->client_window,
+                                area.x, area.y,
+                                &area.x, &area.y);
+    ibus_input_context_set_cursor_location (ibusimcontext->ibuscontext,
+                                            area.x,
+                                            area.y,
+                                            area.width,
+                                            area.height);
+    return FALSE;
+}
+
+static void
+ibus_im_context_set_cursor_location (GtkIMContext *context, GdkRectangle *area)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (context);
+
+    if (ibusimcontext->cursor_area.x == area->x &&
+        ibusimcontext->cursor_area.y == area->y &&
+        ibusimcontext->cursor_area.width == area->width &&
+        ibusimcontext->cursor_area.height == area->height) {
+        return;
+    }
+    ibusimcontext->cursor_area = *area;
+    _set_cursor_location_internal (ibusimcontext);
+    gtk_im_context_set_cursor_location (ibusimcontext->slave, area);
+}
+
+static void
+ibus_im_context_set_use_preedit (GtkIMContext *context, gboolean use_preedit)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (context);
+
+    if (use_preedit) {
+        ibusimcontext->caps |= IBUS_CAP_PREEDIT_TEXT;
+    }
+    else {
+        ibusimcontext->caps &= ~IBUS_CAP_PREEDIT_TEXT;
+    }
+    if(ibusimcontext->ibuscontext) {
+        ibus_input_context_set_capabilities (ibusimcontext->ibuscontext,
+                                             ibusimcontext->caps);
+    }
+    gtk_im_context_set_use_preedit (ibusimcontext->slave, use_preedit);
+}
+
+static guint
+get_selection_anchor_point (IBusIMContext *ibusimcontext,
+                            guint cursor_pos,
+                            guint surrounding_text_len)
+{
+    GtkWidget *widget;
+    if (ibusimcontext->client_window == NULL) {
+        return cursor_pos;
+    }
+    gdk_window_get_user_data (ibusimcontext->client_window, (gpointer *)&widget);
+
+    if (!GTK_IS_TEXT_VIEW (widget)){
+        return cursor_pos;
+    }
+
+    GtkTextView *text_view = GTK_TEXT_VIEW (widget);
+    GtkTextBuffer *buffer = gtk_text_view_get_buffer (text_view);
+
+    if (!gtk_text_buffer_get_has_selection (buffer)) {
+        return cursor_pos;
+    }
+
+    GtkTextIter start_iter, end_iter, cursor_iter;
+    if (!gtk_text_buffer_get_selection_bounds (buffer, &start_iter, &end_iter)) {
+        return cursor_pos;
+    }
+
+    gtk_text_buffer_get_iter_at_mark (buffer,
+                                      &cursor_iter,
+                                      gtk_text_buffer_get_insert (buffer));
+
+    guint start_index = gtk_text_iter_get_offset (&start_iter);
+    guint end_index   = gtk_text_iter_get_offset (&end_iter);
+    guint cursor_index = gtk_text_iter_get_offset (&cursor_iter);
+
+    guint anchor;
+
+    if (start_index == cursor_index) {
+      anchor = end_index;
+    } else if (end_index == cursor_index) {
+      anchor = start_index;
+    } else {
+      return cursor_pos;
+    }
+
+    // Change absolute index to relative position.
+    guint relative_origin = cursor_index - cursor_pos;
+
+    if (anchor < relative_origin) {
+      return cursor_pos;
+    }
+    anchor -= relative_origin;
+
+    if (anchor > surrounding_text_len) {
+      return cursor_pos;
+    }
+
+    return anchor;
+}
+
+static void
+ibus_im_context_set_surrounding (GtkIMContext  *context,
+                                 const gchar   *text,
+                                 gint           len,
+                                 gint           cursor_index)
+{
+    g_return_if_fail (context != NULL);
+    g_return_if_fail (IBUS_IS_IM_CONTEXT (context));
+    g_return_if_fail (text != NULL);
+    g_return_if_fail (strlen (text) >= len);
+    g_return_if_fail (0 <= cursor_index && cursor_index <= len);
+
+    IBusIMContext *ibusimcontext = IBUS_IM_CONTEXT (context);
+
+    if (ibusimcontext->ibuscontext) {
+        IBusText *ibustext;
+        guint cursor_pos;
+        guint utf8_len;
+        gchar *p;
+
+        p = g_strndup (text, len);
+        cursor_pos = g_utf8_strlen (p, cursor_index);
+        utf8_len = g_utf8_strlen(p, len);
+        ibustext = ibus_text_new_from_string (p);
+        g_free (p);
+
+        guint anchor_pos = get_selection_anchor_point (ibusimcontext,
+                                                       cursor_pos,
+                                                       utf8_len);
+        ibus_input_context_set_surrounding_text (ibusimcontext->ibuscontext,
+                                                 ibustext,
+                                                 cursor_pos,
+                                                 anchor_pos);
+    }
+    gtk_im_context_set_surrounding (ibusimcontext->slave,
+                                    text,
+                                    len,
+                                    cursor_index);
+}
+
+static void
+_bus_connected_cb (IBusBus          *bus,
+                   IBusIMContext    *ibusimcontext)
+{
+    IDEBUG ("%s", __FUNCTION__);
+    if (ibusimcontext)
+        _create_input_context (ibusimcontext);
+    else
+        _create_fake_input_context ();
+}
+
+static void
+_ibus_context_commit_text_cb (IBusInputContext *ibuscontext,
+                              IBusText         *text,
+                              IBusIMContext    *ibusimcontext)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    g_signal_emit (ibusimcontext, _signal_commit_id, 0, text->text);
+
+    _request_surrounding_text (ibusimcontext);
+}
+
+static gboolean
+_key_is_modifier (guint keyval)
+{
+  /* See gdkkeys-x11.c:_gdk_keymap_key_is_modifier() for how this
+   * really should be implemented */
+
+    switch (keyval) {
+#ifdef DEPRECATED_GDK_KEYSYMS
+    case GDK_Shift_L:
+    case GDK_Shift_R:
+    case GDK_Control_L:
+    case GDK_Control_R:
+    case GDK_Caps_Lock:
+    case GDK_Shift_Lock:
+    case GDK_Meta_L:
+    case GDK_Meta_R:
+    case GDK_Alt_L:
+    case GDK_Alt_R:
+    case GDK_Super_L:
+    case GDK_Super_R:
+    case GDK_Hyper_L:
+    case GDK_Hyper_R:
+    case GDK_ISO_Lock:
+    case GDK_ISO_Level2_Latch:
+    case GDK_ISO_Level3_Shift:
+    case GDK_ISO_Level3_Latch:
+    case GDK_ISO_Level3_Lock:
+    case GDK_ISO_Level5_Shift:
+    case GDK_ISO_Level5_Latch:
+    case GDK_ISO_Level5_Lock:
+    case GDK_ISO_Group_Shift:
+    case GDK_ISO_Group_Latch:
+    case GDK_ISO_Group_Lock:
+        return TRUE;
+#else
+    case GDK_KEY_Shift_L:
+    case GDK_KEY_Shift_R:
+    case GDK_KEY_Control_L:
+    case GDK_KEY_Control_R:
+    case GDK_KEY_Caps_Lock:
+    case GDK_KEY_Shift_Lock:
+    case GDK_KEY_Meta_L:
+    case GDK_KEY_Meta_R:
+    case GDK_KEY_Alt_L:
+    case GDK_KEY_Alt_R:
+    case GDK_KEY_Super_L:
+    case GDK_KEY_Super_R:
+    case GDK_KEY_Hyper_L:
+    case GDK_KEY_Hyper_R:
+    case GDK_KEY_ISO_Lock:
+    case GDK_KEY_ISO_Level2_Latch:
+    case GDK_KEY_ISO_Level3_Shift:
+    case GDK_KEY_ISO_Level3_Latch:
+    case GDK_KEY_ISO_Level3_Lock:
+    case GDK_KEY_ISO_Level5_Shift:
+    case GDK_KEY_ISO_Level5_Latch:
+    case GDK_KEY_ISO_Level5_Lock:
+    case GDK_KEY_ISO_Group_Shift:
+    case GDK_KEY_ISO_Group_Latch:
+    case GDK_KEY_ISO_Group_Lock:
+        return TRUE;
+#endif
+    default:
+        return FALSE;
+    }
+}
+/* Copy from gdk */
+static GdkEventKey *
+_create_gdk_event (IBusIMContext *ibusimcontext,
+                   guint          keyval,
+                   guint          keycode,
+                   guint          state)
+{
+    gunichar c = 0;
+    gchar buf[8];
+
+    GdkEventKey *event = (GdkEventKey *)gdk_event_new ((state & IBUS_RELEASE_MASK) ? GDK_KEY_RELEASE : GDK_KEY_PRESS);
+
+    if (ibusimcontext && ibusimcontext->client_window)
+        event->window = g_object_ref (ibusimcontext->client_window);
+    else if (_input_window)
+        event->window = g_object_ref (_input_window);
+
+    /* The time is copied the latest value from the previous
+     * GdkKeyEvent in filter_keypress().
+     *
+     * We understand the best way would be to pass the all time value
+     * to IBus functions process_key_event() and IBus DBus functions
+     * ProcessKeyEvent() in IM clients and IM engines so that the
+     * _create_gdk_event() could get the correct time values.
+     * However it would causes to change many functions and the time value
+     * would not provide the useful meanings for each IBus engines but just
+     * pass the original value to ForwardKeyEvent().
+     * We use the saved value at the moment.
+     *
+     * Another idea might be to have the time implementation in X servers
+     * but some Xorg uses clock_gettime() and others use gettimeofday()
+     * and the values would be different in each implementation and 
+     * locale/remote X server. So probably that idea would not work. */
+    if (ibusimcontext) {
+        event->time = ibusimcontext->time;
+    } else {
+        event->time = GDK_CURRENT_TIME;
+    }
+
+    event->send_event = FALSE;
+    event->state = state;
+    event->keyval = keyval;
+    event->string = NULL;
+    event->length = 0;
+    event->hardware_keycode = (keycode != 0) ? keycode + 8 : 0;
+    event->group = 0;
+    event->is_modifier = _key_is_modifier (keyval);
+
+#ifdef DEPRECATED_GDK_KEYSYMS
+    if (keyval != GDK_VoidSymbol)
+#else
+    if (keyval != GDK_KEY_VoidSymbol)
+#endif
+        c = gdk_keyval_to_unicode (keyval);
+
+    if (c) {
+        gsize bytes_written;
+        gint len;
+
+        /* Apply the control key - Taken from Xlib
+         */
+        if (event->state & GDK_CONTROL_MASK) {
+            if ((c >= '@' && c < '\177') || c == ' ') c &= 0x1F;
+            else if (c == '2') {
+                event->string = g_memdup ("\0\0", 2);
+                event->length = 1;
+                buf[0] = '\0';
+                goto out;
+            }
+            else if (c >= '3' && c <= '7') c -= ('3' - '\033');
+            else if (c == '8') c = '\177';
+            else if (c == '/') c = '_' & 0x1F;
+        }
+
+        len = g_unichar_to_utf8 (c, buf);
+        buf[len] = '\0';
+
+        event->string = g_locale_from_utf8 (buf, len,
+                                            NULL, &bytes_written,
+                                            NULL);
+        if (event->string)
+            event->length = bytes_written;
+#ifdef DEPRECATED_GDK_KEYSYMS
+    } else if (keyval == GDK_Escape) {
+#else
+    } else if (keyval == GDK_KEY_Escape) {
+#endif
+        event->length = 1;
+        event->string = g_strdup ("\033");
+    }
+#ifdef DEPRECATED_GDK_KEYSYMS
+    else if (keyval == GDK_Return ||
+             keyval == GDK_KP_Enter) {
+#else
+    else if (keyval == GDK_KEY_Return ||
+             keyval == GDK_KEY_KP_Enter) {
+#endif
+        event->length = 1;
+        event->string = g_strdup ("\r");
+    }
+
+    if (!event->string) {
+        event->length = 0;
+        event->string = g_strdup ("");
+    }
+out:
+    return event;
+}
+
+static void
+_ibus_context_forward_key_event_cb (IBusInputContext  *ibuscontext,
+                                    guint              keyval,
+                                    guint              keycode,
+                                    guint              state,
+                                    IBusIMContext     *ibusimcontext)
+{
+    IDEBUG ("%s", __FUNCTION__);
+    GdkEventKey *event = _create_gdk_event (ibusimcontext, keyval, keycode, state);
+    gdk_event_put ((GdkEvent *)event);
+    gdk_event_free ((GdkEvent *)event);
+}
+
+static void
+_ibus_context_delete_surrounding_text_cb (IBusInputContext *ibuscontext,
+                                          gint              offset_from_cursor,
+                                          guint             nchars,
+                                          IBusIMContext    *ibusimcontext)
+{
+    gboolean return_value;
+    g_signal_emit (ibusimcontext, _signal_delete_surrounding_id, 0, offset_from_cursor, nchars, &return_value);
+}
+
+static void
+_ibus_context_update_preedit_text_cb (IBusInputContext  *ibuscontext,
+                                      IBusText          *text,
+                                      gint               cursor_pos,
+                                      gboolean           visible,
+                                      IBusIMContext     *ibusimcontext)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    const gchar *str;
+    gboolean flag;
+
+    if (ibusimcontext->preedit_string) {
+        g_free (ibusimcontext->preedit_string);
+    }
+    if (ibusimcontext->preedit_attrs) {
+        pango_attr_list_unref (ibusimcontext->preedit_attrs);
+        ibusimcontext->preedit_attrs = NULL;
+    }
+
+    str = text->text;
+    ibusimcontext->preedit_string = g_strdup (str);
+    if (text->attrs) {
+        guint i;
+        ibusimcontext->preedit_attrs = pango_attr_list_new ();
+        for (i = 0; ; i++) {
+            IBusAttribute *attr = ibus_attr_list_get (text->attrs, i);
+            if (attr == NULL) {
+                break;
+            }
+
+            PangoAttribute *pango_attr;
+            switch (attr->type) {
+            case IBUS_ATTR_TYPE_UNDERLINE:
+                pango_attr = pango_attr_underline_new (attr->value);
+                break;
+            case IBUS_ATTR_TYPE_FOREGROUND:
+                pango_attr = pango_attr_foreground_new (
+                                        ((attr->value & 0xff0000) >> 8) | 0xff,
+                                        ((attr->value & 0x00ff00)) | 0xff,
+                                        ((attr->value & 0x0000ff) << 8) | 0xff);
+                break;
+            case IBUS_ATTR_TYPE_BACKGROUND:
+                pango_attr = pango_attr_background_new (
+                                        ((attr->value & 0xff0000) >> 8) | 0xff,
+                                        ((attr->value & 0x00ff00)) | 0xff,
+                                        ((attr->value & 0x0000ff) << 8) | 0xff);
+                break;
+            default:
+                continue;
+            }
+            pango_attr->start_index = g_utf8_offset_to_pointer (str, attr->start_index) - str;
+            pango_attr->end_index = g_utf8_offset_to_pointer (str, attr->end_index) - str;
+            pango_attr_list_insert (ibusimcontext->preedit_attrs, pango_attr);
+        }
+    }
+
+    ibusimcontext->preedit_cursor_pos = cursor_pos;
+
+    flag = ibusimcontext->preedit_visible != visible;
+    ibusimcontext->preedit_visible = visible;
+
+    if (ibusimcontext->preedit_visible) {
+        if (flag) {
+            /* invisible => visible */
+            g_signal_emit (ibusimcontext, _signal_preedit_start_id, 0);
+        }
+        g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0);
+    }
+    else {
+        if (flag) {
+            /* visible => invisible */
+            g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0);
+            g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0);
+        }
+        else {
+            /* still invisible */
+            /* do nothing */
+        }
+    }
+}
+
+static void
+_ibus_context_show_preedit_text_cb (IBusInputContext   *ibuscontext,
+                                    IBusIMContext      *ibusimcontext)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    if (ibusimcontext->preedit_visible == TRUE)
+        return;
+
+    ibusimcontext->preedit_visible = TRUE;
+    g_signal_emit (ibusimcontext, _signal_preedit_start_id, 0);
+    g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0);
+
+    _request_surrounding_text (ibusimcontext);
+}
+
+static void
+_ibus_context_hide_preedit_text_cb (IBusInputContext *ibuscontext,
+                                    IBusIMContext    *ibusimcontext)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    if (ibusimcontext->preedit_visible == FALSE)
+        return;
+
+    ibusimcontext->preedit_visible = FALSE;
+    g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0);
+    g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0);
+}
+
+static void
+_ibus_context_destroy_cb (IBusInputContext *ibuscontext,
+                          IBusIMContext    *ibusimcontext)
+{
+    IDEBUG ("%s", __FUNCTION__);
+    g_assert (ibusimcontext->ibuscontext == ibuscontext);
+
+    g_object_unref (ibusimcontext->ibuscontext);
+    ibusimcontext->ibuscontext = NULL;
+
+    /* clear preedit */
+    ibusimcontext->preedit_visible = FALSE;
+    ibusimcontext->preedit_cursor_pos = 0;
+    g_free (ibusimcontext->preedit_string);
+    ibusimcontext->preedit_string = NULL;
+
+    g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0);
+    g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0);
+}
+
+static void
+_create_input_context_done (IBusBus       *bus,
+                            GAsyncResult  *res,
+                            IBusIMContext *ibusimcontext)
+{
+    GError *error = NULL;
+    IBusInputContext *context = ibus_bus_create_input_context_async_finish (
+            _bus, res, &error);
+
+    if (ibusimcontext->cancellable != NULL) {
+        g_object_unref (ibusimcontext->cancellable);
+        ibusimcontext->cancellable = NULL;
+    }
+
+    if (context == NULL) {
+        g_warning ("Create input context failed: %s.", error->message);
+        g_error_free (error);
+    }
+    else {
+
+        ibusimcontext->ibuscontext = context;
+
+        g_signal_connect (ibusimcontext->ibuscontext,
+                          "commit-text",
+                          G_CALLBACK (_ibus_context_commit_text_cb),
+                          ibusimcontext);
+        g_signal_connect (ibusimcontext->ibuscontext,
+                          "forward-key-event",
+                          G_CALLBACK (_ibus_context_forward_key_event_cb),
+                          ibusimcontext);
+        g_signal_connect (ibusimcontext->ibuscontext,
+                          "delete-surrounding-text",
+                          G_CALLBACK (_ibus_context_delete_surrounding_text_cb),
+                          ibusimcontext);
+        g_signal_connect (ibusimcontext->ibuscontext,
+                          "update-preedit-text",
+                          G_CALLBACK (_ibus_context_update_preedit_text_cb),
+                          ibusimcontext);
+        g_signal_connect (ibusimcontext->ibuscontext,
+                          "show-preedit-text",
+                          G_CALLBACK (_ibus_context_show_preedit_text_cb),
+                          ibusimcontext);
+        g_signal_connect (ibusimcontext->ibuscontext,
+                          "hide-preedit-text",
+                          G_CALLBACK (_ibus_context_hide_preedit_text_cb),
+                          ibusimcontext);
+        g_signal_connect (ibusimcontext->ibuscontext, "destroy",
+                          G_CALLBACK (_ibus_context_destroy_cb),
+                          ibusimcontext);
+
+        ibus_input_context_set_capabilities (ibusimcontext->ibuscontext, ibusimcontext->caps);
+
+        if (ibusimcontext->has_focus) {
+            /* The time order is _create_input_context() ->
+             * ibus_im_context_notify() -> ibus_im_context_focus_in() ->
+             * _create_input_context_done()
+             * so _set_content_type() is called at the beginning here
+             * because ibusimcontext->ibuscontext == NULL before. */
+            _set_content_type (ibusimcontext);
+
+            ibus_input_context_focus_in (ibusimcontext->ibuscontext);
+            _set_cursor_location_internal (ibusimcontext);
+        }
+
+        if (!g_queue_is_empty (ibusimcontext->events_queue)) {
+            GdkEventKey *event;
+            while ((event = g_queue_pop_head (ibusimcontext->events_queue))) {
+                _process_key_event (context, event);
+                gdk_event_free ((GdkEvent *)event);
+            }
+        }
+    }
+
+    g_object_unref (ibusimcontext);
+}
+
+static void
+_create_input_context (IBusIMContext *ibusimcontext)
+{
+    IDEBUG ("%s", __FUNCTION__);
+
+    g_assert (ibusimcontext->ibuscontext == NULL);
+
+    g_return_if_fail (ibusimcontext->cancellable == NULL);
+
+    ibusimcontext->cancellable = g_cancellable_new ();
+
+    ibus_bus_create_input_context_async (_bus,
+            "gtk-im", -1,
+            ibusimcontext->cancellable,
+            (GAsyncReadyCallback)_create_input_context_done,
+            g_object_ref (ibusimcontext));
+}
+
+/* Callback functions for slave context */
+static void
+_slave_commit_cb (GtkIMContext  *slave,
+                  gchar         *string,
+                  IBusIMContext *ibusimcontext)
+{
+    g_signal_emit (ibusimcontext, _signal_commit_id, 0, string);
+}
+
+static void
+_slave_preedit_changed_cb (GtkIMContext  *slave,
+                           IBusIMContext *ibusimcontext)
+{
+    if (ibusimcontext->ibuscontext) {
+        return;
+    }
+
+    g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0);
+}
+
+static void
+_slave_preedit_start_cb (GtkIMContext  *slave,
+                         IBusIMContext *ibusimcontext)
+{
+    if (ibusimcontext->ibuscontext) {
+        return;
+    }
+
+    g_signal_emit (ibusimcontext, _signal_preedit_start_id, 0);
+}
+
+static void
+_slave_preedit_end_cb (GtkIMContext  *slave,
+                       IBusIMContext *ibusimcontext)
+{
+    if (ibusimcontext->ibuscontext) {
+        return;
+    }
+    g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0);
+}
+
+static gboolean
+_slave_retrieve_surrounding_cb (GtkIMContext  *slave,
+                                IBusIMContext *ibusimcontext)
+{
+    gboolean return_value;
+
+    if (ibusimcontext->ibuscontext) {
+        return FALSE;
+    }
+    g_signal_emit (ibusimcontext, _signal_retrieve_surrounding_id, 0,
+                   &return_value);
+    return return_value;
+}
+
+static gboolean
+_slave_delete_surrounding_cb (GtkIMContext  *slave,
+                              gint           offset_from_cursor,
+                              guint          nchars,
+                              IBusIMContext *ibusimcontext)
+{
+    gboolean return_value;
+
+    if (ibusimcontext->ibuscontext) {
+        return FALSE;
+    }
+    g_signal_emit (ibusimcontext, _signal_delete_surrounding_id, 0, offset_from_cursor, nchars, &return_value);
+    return return_value;
+}
+
+#ifdef OS_CHROMEOS
+static void
+_ibus_fake_context_destroy_cb (IBusInputContext *ibuscontext,
+                               gpointer          user_data)
+{
+    /* The fack IC may be destroyed when the connection is lost.
+     * Should release it. */
+    g_assert (ibuscontext == _fake_context);
+    g_object_unref (_fake_context);
+    _fake_context = NULL;
+}
+
+static GCancellable     *_fake_cancellable = NULL;
+
+static void
+_create_fake_input_context_done (IBusBus       *bus,
+                                 GAsyncResult  *res,
+                                 IBusIMContext *ibusimcontext)
+{
+    GError *error = NULL;
+    IBusInputContext *context = ibus_bus_create_input_context_async_finish (
+            _bus, res, &error);
+
+    if (_fake_cancellable != NULL) {
+        g_object_unref (_fake_cancellable);
+        _fake_cancellable = NULL;
+    }
+
+    if (context == NULL) {
+        g_warning ("Create fake input context failed: %s.", error->message);
+        g_error_free (error);
+        return;
+    }
+
+    _fake_context = context;
+
+    g_signal_connect (_fake_context, "forward-key-event",
+                      G_CALLBACK (_ibus_context_forward_key_event_cb),
+                      NULL);
+    g_signal_connect (_fake_context, "destroy",
+                      G_CALLBACK (_ibus_fake_context_destroy_cb),
+                      NULL);
+
+    guint32 caps = IBUS_CAP_PREEDIT_TEXT | IBUS_CAP_FOCUS | IBUS_CAP_SURROUNDING_TEXT;
+    ibus_input_context_set_capabilities (_fake_context, caps);
+
+    /* focus in/out the fake context */
+    if (_focus_im_context == NULL)
+        ibus_input_context_focus_in (_fake_context);
+    else
+        ibus_input_context_focus_out (_fake_context);
+}
+
+static void
+_create_fake_input_context (void)
+{
+    g_return_if_fail (_fake_context == NULL);
+
+     /* Global engine is always enabled in Chrome OS,
+      * so create fake IC, and set focus if no other IC has focus.
+     */
+
+    if (_fake_cancellable != NULL) {
+        g_cancellable_cancel (_fake_cancellable);
+        g_object_unref (_fake_cancellable);
+        _fake_cancellable = NULL;
+    }
+
+    _fake_cancellable = g_cancellable_new ();
+
+    ibus_bus_create_input_context_async (_bus,
+            "fake-gtk-im", -1,
+            _fake_cancellable,
+            (GAsyncReadyCallback)_create_fake_input_context_done,
+            NULL);
+
+}
+#else
+static void
+_create_fake_input_context (void)
+{
+    /* For Linux desktop, do not use fake IC. */
+}
+#endif
deleted file mode 120000 (symlink)
index 29759883e75f7dca9ed0e9d38e0a5fb2e52e9b9b..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../gtk2/ibusimcontext.h
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..c73b3d538e2282aaad13c8df1b65b39bb868dc3a
--- /dev/null
@@ -0,0 +1,77 @@
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+/* vim:set et ts=4: */
+/* ibus - The Input Bus
+ * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
+ * Copyright (C) 2008-2010 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+ * USA
+ */
+#ifndef __IBUS_IM_CONTEXT_H_
+#define __IBUS_IM_CONTEXT_H_
+
+#include <gtk/gtk.h>
+
+/*
+ * Type macros.
+ */
+#define IBUS_TYPE_IM_CONTEXT             \
+    (ibus_im_context_get_type ())
+#define IBUS_IM_CONTEXT(obj)             \
+    (G_TYPE_CHECK_INSTANCE_CAST ((obj), IBUS_TYPE_IM_CONTEXT, IBusIMContext))
+#define IBUS_IM_CONTEXT_CLASS(klass)     \
+    (G_TYPE_CHECK_CLASS_CAST ((klass), IBUS_TYPE_IM_CONTEXT, IBusIMContextClass))
+#define IBUS_IS_IM_CONTEXT(obj)          \
+    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IBUS_TYPE_IM_CONTEXT))
+#define IBUS_IS_IM_CONTEXT_CLASS(klass)  \
+    (G_TYPE_CHECK_CLASS_TYPE ((klass), IBUS_TYPE_IM_CONTEXT))
+#define IBUS_IM_CONTEXT_GET_CLASS(obj)   \
+    (G_TYPE_CHECK_GET_CLASS ((obj), IBUS_TYPE_IM_CONTEXT, IBusIMContextClass))
+
+G_BEGIN_DECLS
+typedef struct _IBusIMContext IBusIMContext;
+typedef struct _IBusIMContextClass IBusIMContextClass;
+typedef struct _IBusIMContextPrivate IBusIMContextPrivate;
+
+
+GType    ibus_im_context_get_type (void);
+IBusIMContext
+        *ibus_im_context_new      (void);
+void     ibus_im_context_register_type
+                                  (GTypeModule    *type_module);
+void     ibus_im_context_shutdown
+                                  (void);
+const gchar
+        *ibus_im_context_get_ic   (IBusIMContext  *context);
+void     ibus_im_context_set_ic   (IBusIMContext  *context,
+                                   const gchar    *ic);
+void     ibus_im_context_enable   (IBusIMContext  *context);
+void     ibus_im_context_disable  (IBusIMContext  *context);
+void     ibus_im_context_commit_string
+                                  (IBusIMContext  *context,
+                                   const gchar    *string);
+void     ibus_im_context_update_preedit
+                                  (IBusIMContext  *context,
+                                   const gchar    *string,
+                                   PangoAttrList  *attrs,
+                                   gint            cursor_pos,
+                                   gboolean        visible);
+void     ibus_im_context_show_preedit
+                                  (IBusIMContext *context);
+void     ibus_im_context_hide_preedit
+                                  (IBusIMContext *context);
+G_END_DECLS
+#endif
+
diff --git a/client/wayland/Makefile.in b/client/wayland/Makefile.in
new file mode 100644 (file)
index 0000000..63e1a1c
--- /dev/null
@@ -0,0 +1,838 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2013 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-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 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.
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+libexec_PROGRAMS = ibus-wayland$(EXEEXT)
+subdir = client/wayland
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp README
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(libexecdir)"
+PROGRAMS = $(libexec_PROGRAMS)
+am__objects_1 = ibus_wayland-input-method-protocol.$(OBJEXT)
+am_ibus_wayland_OBJECTS = $(am__objects_1) ibus_wayland-main.$(OBJEXT)
+ibus_wayland_OBJECTS = $(am_ibus_wayland_OBJECTS)
+am__DEPENDENCIES_1 =
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+ibus_wayland_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ibus_wayland_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(ibus_wayland_SOURCES)
+DIST_SOURCES = $(ibus_wayland_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+protocol_sources = \
+       input-method-protocol.c \
+       input-method-client-protocol.h \
+       $(NULL)
+
+ibus_wayland_SOURCES = \
+       $(protocol_sources) \
+       main.c \
+       $(NULL)
+
+ibus_wayland_DEPENDENCIES = \
+       $(libibus) \
+       $(NULL)
+
+ibus_wayland_LDADD = \
+       $(libibus) \
+       $(GIO2_LIBS) \
+       $(WAYLAND_LIBS) \
+       $(NULL)
+
+ibus_wayland_CFLAGS = \
+       $(GIO2_CFLAGS) \
+       $(WAYLAND_CFLAGS) \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+EXTRA_DIST = \
+       README \
+       $(protocol_sources) \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu client/wayland/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu client/wayland/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-libexecPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
+
+clean-libexecPROGRAMS:
+       @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus-wayland$(EXEEXT): $(ibus_wayland_OBJECTS) $(ibus_wayland_DEPENDENCIES) $(EXTRA_ibus_wayland_DEPENDENCIES) 
+       @rm -f ibus-wayland$(EXEEXT)
+       $(AM_V_CCLD)$(ibus_wayland_LINK) $(ibus_wayland_OBJECTS) $(ibus_wayland_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_wayland-input-method-protocol.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_wayland-main.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ibus_wayland-input-method-protocol.o: input-method-protocol.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_wayland_CFLAGS) $(CFLAGS) -MT ibus_wayland-input-method-protocol.o -MD -MP -MF $(DEPDIR)/ibus_wayland-input-method-protocol.Tpo -c -o ibus_wayland-input-method-protocol.o `test -f 'input-method-protocol.c' || echo '$(srcdir)/'`input-method-protocol.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_wayland-input-method-protocol.Tpo $(DEPDIR)/ibus_wayland-input-method-protocol.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='input-method-protocol.c' object='ibus_wayland-input-method-protocol.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_wayland_CFLAGS) $(CFLAGS) -c -o ibus_wayland-input-method-protocol.o `test -f 'input-method-protocol.c' || echo '$(srcdir)/'`input-method-protocol.c
+
+ibus_wayland-input-method-protocol.obj: input-method-protocol.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_wayland_CFLAGS) $(CFLAGS) -MT ibus_wayland-input-method-protocol.obj -MD -MP -MF $(DEPDIR)/ibus_wayland-input-method-protocol.Tpo -c -o ibus_wayland-input-method-protocol.obj `if test -f 'input-method-protocol.c'; then $(CYGPATH_W) 'input-method-protocol.c'; else $(CYGPATH_W) '$(srcdir)/input-method-protocol.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_wayland-input-method-protocol.Tpo $(DEPDIR)/ibus_wayland-input-method-protocol.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='input-method-protocol.c' object='ibus_wayland-input-method-protocol.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_wayland_CFLAGS) $(CFLAGS) -c -o ibus_wayland-input-method-protocol.obj `if test -f 'input-method-protocol.c'; then $(CYGPATH_W) 'input-method-protocol.c'; else $(CYGPATH_W) '$(srcdir)/input-method-protocol.c'; fi`
+
+ibus_wayland-main.o: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_wayland_CFLAGS) $(CFLAGS) -MT ibus_wayland-main.o -MD -MP -MF $(DEPDIR)/ibus_wayland-main.Tpo -c -o ibus_wayland-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_wayland-main.Tpo $(DEPDIR)/ibus_wayland-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_wayland-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_wayland_CFLAGS) $(CFLAGS) -c -o ibus_wayland-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+ibus_wayland-main.obj: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_wayland_CFLAGS) $(CFLAGS) -MT ibus_wayland-main.obj -MD -MP -MF $(DEPDIR)/ibus_wayland-main.Tpo -c -o ibus_wayland-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_wayland-main.Tpo $(DEPDIR)/ibus_wayland-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_wayland-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_wayland_CFLAGS) $(CFLAGS) -c -o ibus_wayland-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+       for dir in "$(DESTDIR)$(libexecdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libexecPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libexecPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-libexecPROGRAMS install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+       uninstall-libexecPROGRAMS
+
+
+$(libibus):
+       (cd $(top_builddir)/src; make)
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/client/x11/Makefile.in b/client/x11/Makefile.in
new file mode 100644 (file)
index 0000000..d488c37
--- /dev/null
@@ -0,0 +1,850 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+libexec_PROGRAMS = ibus-x11$(EXEEXT)
+subdir = client/x11
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp $(noinst_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(libexecdir)"
+PROGRAMS = $(libexec_PROGRAMS)
+am_ibus_x11_OBJECTS = ibus_x11-main.$(OBJEXT) \
+       ibus_x11-gdk-private.$(OBJEXT)
+ibus_x11_OBJECTS = $(am_ibus_x11_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+ibus_x11_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ibus_x11_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(ibus_x11_SOURCES)
+DIST_SOURCES = $(ibus_x11_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libIMdkit = $(top_builddir)/util/IMdkit/libIMdkit.la
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+ibus_x11_SOURCES = \
+       main.c \
+       gdk-private.c \
+       $(NULL)
+
+ibus_x11_DEPENDENCIES = \
+       $(libIMdkit) \
+       $(libibus) \
+       $(NULL)
+
+ibus_x11_LDADD = \
+       $(libIMdkit) \
+       $(libibus) \
+       @X11_LIBS@ \
+       @GTK2_LIBS@ \
+       $(NULL)
+
+ibus_x11_CFLAGS = \
+       @X11_CFLAGS@ \
+       @GTK2_CFLAGS@ \
+       @DBUS_CFLAGS@ \
+       -I$(top_srcdir)/util/IMdkit \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+noinst_HEADERS = \
+       gdk-private.h \
+       locales.h \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu client/x11/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu client/x11/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-libexecPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
+
+clean-libexecPROGRAMS:
+       @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus-x11$(EXEEXT): $(ibus_x11_OBJECTS) $(ibus_x11_DEPENDENCIES) $(EXTRA_ibus_x11_DEPENDENCIES) 
+       @rm -f ibus-x11$(EXEEXT)
+       $(AM_V_CCLD)$(ibus_x11_LINK) $(ibus_x11_OBJECTS) $(ibus_x11_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_x11-gdk-private.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_x11-main.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ibus_x11-main.o: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_x11_CFLAGS) $(CFLAGS) -MT ibus_x11-main.o -MD -MP -MF $(DEPDIR)/ibus_x11-main.Tpo -c -o ibus_x11-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_x11-main.Tpo $(DEPDIR)/ibus_x11-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_x11-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_x11_CFLAGS) $(CFLAGS) -c -o ibus_x11-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+ibus_x11-main.obj: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_x11_CFLAGS) $(CFLAGS) -MT ibus_x11-main.obj -MD -MP -MF $(DEPDIR)/ibus_x11-main.Tpo -c -o ibus_x11-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_x11-main.Tpo $(DEPDIR)/ibus_x11-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_x11-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_x11_CFLAGS) $(CFLAGS) -c -o ibus_x11-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+ibus_x11-gdk-private.o: gdk-private.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_x11_CFLAGS) $(CFLAGS) -MT ibus_x11-gdk-private.o -MD -MP -MF $(DEPDIR)/ibus_x11-gdk-private.Tpo -c -o ibus_x11-gdk-private.o `test -f 'gdk-private.c' || echo '$(srcdir)/'`gdk-private.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_x11-gdk-private.Tpo $(DEPDIR)/ibus_x11-gdk-private.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gdk-private.c' object='ibus_x11-gdk-private.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_x11_CFLAGS) $(CFLAGS) -c -o ibus_x11-gdk-private.o `test -f 'gdk-private.c' || echo '$(srcdir)/'`gdk-private.c
+
+ibus_x11-gdk-private.obj: gdk-private.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_x11_CFLAGS) $(CFLAGS) -MT ibus_x11-gdk-private.obj -MD -MP -MF $(DEPDIR)/ibus_x11-gdk-private.Tpo -c -o ibus_x11-gdk-private.obj `if test -f 'gdk-private.c'; then $(CYGPATH_W) 'gdk-private.c'; else $(CYGPATH_W) '$(srcdir)/gdk-private.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_x11-gdk-private.Tpo $(DEPDIR)/ibus_x11-gdk-private.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='gdk-private.c' object='ibus_x11-gdk-private.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_x11_CFLAGS) $(CFLAGS) -c -o ibus_x11-gdk-private.obj `if test -f 'gdk-private.c'; then $(CYGPATH_W) 'gdk-private.c'; else $(CYGPATH_W) '$(srcdir)/gdk-private.c'; fi`
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(HEADERS)
+installdirs:
+       for dir in "$(DESTDIR)$(libexecdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libexecPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libexecPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-libexecPROGRAMS install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+       uninstall-libexecPROGRAMS
+
+
+$(IMdkit):
+       (cd $(top_builddir)/util/IMdkit; make)
+
+$(libibus):
+       (cd $(top_builddir)/src; make)
+
+locales.h:
+       ( \
+               locale -a | \
+               gawk -F _ '{ if (length($$1) <= 3) print $$1 }' | \
+               uniq | sort | \
+               xargs python -c 'import sys;print "#define LOCALES_STRING \"%s\"" % ",".join(sys.argv[1:])' \
+        ) > $@
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/codereview.settings b/codereview.settings
deleted file mode 100644 (file)
index 71ecbee..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# This file is used by "git cl" to get code review information.
-CODE_REVIEW_SERVER: codereview.appspot.com
diff --git a/compile b/compile
new file mode 100755 (executable)
index 0000000..531136b
--- /dev/null
+++ b/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""       $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+       # lazily determine how to convert abs files
+       case `uname -s` in
+         MINGW*)
+           file_conv=mingw
+           ;;
+         CYGWIN*)
+           file_conv=cygwin
+           ;;
+         *)
+           file_conv=wine
+           ;;
+       esac
+      fi
+      case $file_conv/,$2, in
+       *,$file_conv,*)
+         ;;
+       mingw/*)
+         file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+         ;;
+       cygwin/*)
+         file=`cygpath -m "$file" || echo "$file"`
+         ;;
+       wine/*)
+         file=`winepath -w "$file" || echo "$file"`
+         ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+       -o)
+         # configure might choose to run compile as 'compile cc -o foo foo.c'.
+         eat=1
+         case $2 in
+           *.o | *.[oO][bB][jJ])
+             func_file_conv "$2"
+             set x "$@" -Fo"$file"
+             shift
+             ;;
+           *)
+             func_file_conv "$2"
+             set x "$@" -Fe"$file"
+             shift
+             ;;
+         esac
+         ;;
+       -I)
+         eat=1
+         func_file_conv "$2" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -I*)
+         func_file_conv "${1#-I}" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -l)
+         eat=1
+         func_cl_dashl "$2"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -l*)
+         func_cl_dashl "${1#-l}"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -L)
+         eat=1
+         func_cl_dashL "$2"
+         ;;
+       -L*)
+         func_cl_dashL "${1#-L}"
+         ;;
+       -static)
+         shared=false
+         ;;
+       -Wl,*)
+         arg=${1#-Wl,}
+         save_ifs="$IFS"; IFS=','
+         for flag in $arg; do
+           IFS="$save_ifs"
+           linker_opts="$linker_opts $flag"
+         done
+         IFS="$save_ifs"
+         ;;
+       -Xlinker)
+         eat=1
+         linker_opts="$linker_opts $2"
+         ;;
+       -*)
+         set x "$@" "$1"
+         shift
+         ;;
+       *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+         func_file_conv "$1"
+         set x "$@" -Tp"$file"
+         shift
+         ;;
+       *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+         func_file_conv "$1" mingw
+         set x "$@" "$file"
+         shift
+         ;;
+       *)
+         set x "$@" "$1"
+         shift
+         ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
+case $1 in
+  '')
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+       # configure might choose to run compile as 'compile cc -o foo foo.c'.
+       # So we strip '-o arg' only if arg is an object.
+       eat=1
+       case $2 in
+         *.o | *.obj)
+           ofile=$2
+           ;;
+         *)
+           set x "$@" -o "$2"
+           shift
+           ;;
+       esac
+       ;;
+      *.c)
+       cfile=$1
+       set x "$@" "$1"
+       shift
+       ;;
+      *)
+       set x "$@" "$1"
+       shift
+       ;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no '-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # '.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/conf/Makefile.in b/conf/Makefile.in
new file mode 100644 (file)
index 0000000..d7dc978
--- /dev/null
@@ -0,0 +1,775 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = conf
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = dconf gconf memconf
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@ENABLE_GCONF_TRUE@GCONF_DIR = \
+@ENABLE_GCONF_TRUE@    gconf \
+@ENABLE_GCONF_TRUE@    $(NULL)
+
+MEMCONF_DIR = \
+       memconf \
+       $(NULL)
+
+@ENABLE_DCONF_TRUE@DCONF_DIR = \
+@ENABLE_DCONF_TRUE@    dconf \
+@ENABLE_DCONF_TRUE@    $(NULL)
+
+SUBDIRS = \
+       $(DCONF_DIR) \
+       $(GCONF_DIR) \
+       $(MEMCONF_DIR) \
+       $(NULL)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu conf/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu conf/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/conf/dconf/Makefile.in b/conf/dconf/Makefile.in
new file mode 100644 (file)
index 0000000..48eec25
--- /dev/null
@@ -0,0 +1,909 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+libexec_PROGRAMS = ibus-dconf$(EXEEXT)
+subdir = conf/dconf
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(libexecdir)" \
+       "$(DESTDIR)$(componentdir)"
+PROGRAMS = $(libexec_PROGRAMS)
+am_ibus_dconf_OBJECTS = ibus_dconf-main.$(OBJEXT) \
+       ibus_dconf-config.$(OBJEXT)
+ibus_dconf_OBJECTS = $(am_ibus_dconf_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+ibus_dconf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ibus_dconf_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(ibus_dconf_SOURCES)
+DIST_SOURCES = $(ibus_dconf_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+DATA = $(component_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+ibus_dconf_SOURCES = \
+       main.c \
+       config.c \
+       config-private.h \
+       $(NULL)
+
+ibus_dconf_CFLAGS = \
+       @GLIB2_CFLAGS@ \
+       @GIO2_CFLAGS@ \
+       @DCONF_CFLAGS@ \
+       -DG_LOG_DOMAIN=\"IBUS\" \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+ibus_dconf_LDADD = \
+       @GOBJECT2_LIBS@ \
+       @GLIB2_LIBS@ \
+       @GIO2_LIBS@ \
+       @DCONF_LIBS@ \
+       $(libibus) \
+       $(NULL)
+
+ibus_dconf_DEPENDENCIES = \
+       $(libibus) \
+       $(NULL)
+
+component_DATA = \
+       dconf.xml \
+       $(NULL)
+
+componentdir = $(pkgdatadir)/component
+CLEANFILES = \
+       dconf.xml \
+       *.pyc \
+       $(NULL)
+
+DISTCLEANFILES = \
+       dconf-override-db \
+       $(NULL)
+
+EXTRA_DIST = \
+       dconf.xml.in \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu conf/dconf/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu conf/dconf/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-libexecPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
+
+clean-libexecPROGRAMS:
+       @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus-dconf$(EXEEXT): $(ibus_dconf_OBJECTS) $(ibus_dconf_DEPENDENCIES) $(EXTRA_ibus_dconf_DEPENDENCIES) 
+       @rm -f ibus-dconf$(EXEEXT)
+       $(AM_V_CCLD)$(ibus_dconf_LINK) $(ibus_dconf_OBJECTS) $(ibus_dconf_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_dconf-config.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_dconf-main.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ibus_dconf-main.o: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_dconf_CFLAGS) $(CFLAGS) -MT ibus_dconf-main.o -MD -MP -MF $(DEPDIR)/ibus_dconf-main.Tpo -c -o ibus_dconf-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_dconf-main.Tpo $(DEPDIR)/ibus_dconf-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_dconf-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_dconf_CFLAGS) $(CFLAGS) -c -o ibus_dconf-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+ibus_dconf-main.obj: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_dconf_CFLAGS) $(CFLAGS) -MT ibus_dconf-main.obj -MD -MP -MF $(DEPDIR)/ibus_dconf-main.Tpo -c -o ibus_dconf-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_dconf-main.Tpo $(DEPDIR)/ibus_dconf-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_dconf-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_dconf_CFLAGS) $(CFLAGS) -c -o ibus_dconf-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+ibus_dconf-config.o: config.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_dconf_CFLAGS) $(CFLAGS) -MT ibus_dconf-config.o -MD -MP -MF $(DEPDIR)/ibus_dconf-config.Tpo -c -o ibus_dconf-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_dconf-config.Tpo $(DEPDIR)/ibus_dconf-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='config.c' object='ibus_dconf-config.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_dconf_CFLAGS) $(CFLAGS) -c -o ibus_dconf-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c
+
+ibus_dconf-config.obj: config.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_dconf_CFLAGS) $(CFLAGS) -MT ibus_dconf-config.obj -MD -MP -MF $(DEPDIR)/ibus_dconf-config.Tpo -c -o ibus_dconf-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_dconf-config.Tpo $(DEPDIR)/ibus_dconf-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='config.c' object='ibus_dconf-config.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_dconf_CFLAGS) $(CFLAGS) -c -o ibus_dconf-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-componentDATA: $(component_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(componentdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(componentdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(componentdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(componentdir)" || exit $$?; \
+       done
+
+uninstall-componentDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(componentdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(componentdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-componentDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libexecPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-componentDATA uninstall-libexecPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-componentDATA \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-libexecPROGRAMS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+       uninstall-am uninstall-componentDATA uninstall-libexecPROGRAMS
+
+
+dconf.xml: dconf.xml.in
+       $(AM_V_GEN) sed \
+               -e 's|@VERSION[@]|$(VERSION)|g' \
+               -e 's|@libexecdir[@]|$(libexecdir)|g' $< > $@.tmp && \
+               mv $@.tmp $@
+
+$(libibus):
+       $(MAKE) -C $(top_builddir)/src
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/conf/gconf/Makefile.in b/conf/gconf/Makefile.in
new file mode 100644 (file)
index 0000000..20315ea
--- /dev/null
@@ -0,0 +1,904 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+libexec_PROGRAMS = ibus-gconf$(EXEEXT)
+subdir = conf/gconf
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(libexecdir)" \
+       "$(DESTDIR)$(componentdir)"
+PROGRAMS = $(libexec_PROGRAMS)
+am_ibus_gconf_OBJECTS = ibus_gconf-main.$(OBJEXT) \
+       ibus_gconf-config.$(OBJEXT)
+ibus_gconf_OBJECTS = $(am_ibus_gconf_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+ibus_gconf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ibus_gconf_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(ibus_gconf_SOURCES)
+DIST_SOURCES = $(ibus_gconf_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+DATA = $(component_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+ibus_gconf_SOURCES = \
+       main.c \
+       config.c \
+       config.h \
+       $(NULL)
+
+ibus_gconf_CFLAGS = \
+       @GLIB2_CFLAGS@ \
+       @GIO2_CFLAGS@ \
+       @GCONF_CFLAGS@ \
+       -DG_LOG_DOMAIN=\"IBUS\" \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+ibus_gconf_LDADD = \
+       @GOBJECT2_LIBS@ \
+       @GLIB2_LIBS@ \
+       @GIO2_LIBS@ \
+       @GCONF_LIBS@ \
+       $(libibus) \
+       $(NULL)
+
+ibus_gconf_DEPENDENCIES = \
+       $(libibus) \
+       $(NULL)
+
+component_DATA = \
+       gconf.xml \
+       $(NULL)
+
+componentdir = $(pkgdatadir)/component
+CLEANFILES = \
+       gconf.xml \
+       *.pyc \
+       $(NULL)
+
+EXTRA_DIST = \
+       gconf.xml.in \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu conf/gconf/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu conf/gconf/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-libexecPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
+
+clean-libexecPROGRAMS:
+       @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus-gconf$(EXEEXT): $(ibus_gconf_OBJECTS) $(ibus_gconf_DEPENDENCIES) $(EXTRA_ibus_gconf_DEPENDENCIES) 
+       @rm -f ibus-gconf$(EXEEXT)
+       $(AM_V_CCLD)$(ibus_gconf_LINK) $(ibus_gconf_OBJECTS) $(ibus_gconf_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_gconf-config.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_gconf-main.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ibus_gconf-main.o: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_gconf_CFLAGS) $(CFLAGS) -MT ibus_gconf-main.o -MD -MP -MF $(DEPDIR)/ibus_gconf-main.Tpo -c -o ibus_gconf-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_gconf-main.Tpo $(DEPDIR)/ibus_gconf-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_gconf-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_gconf_CFLAGS) $(CFLAGS) -c -o ibus_gconf-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+ibus_gconf-main.obj: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_gconf_CFLAGS) $(CFLAGS) -MT ibus_gconf-main.obj -MD -MP -MF $(DEPDIR)/ibus_gconf-main.Tpo -c -o ibus_gconf-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_gconf-main.Tpo $(DEPDIR)/ibus_gconf-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_gconf-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_gconf_CFLAGS) $(CFLAGS) -c -o ibus_gconf-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+ibus_gconf-config.o: config.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_gconf_CFLAGS) $(CFLAGS) -MT ibus_gconf-config.o -MD -MP -MF $(DEPDIR)/ibus_gconf-config.Tpo -c -o ibus_gconf-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_gconf-config.Tpo $(DEPDIR)/ibus_gconf-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='config.c' object='ibus_gconf-config.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_gconf_CFLAGS) $(CFLAGS) -c -o ibus_gconf-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c
+
+ibus_gconf-config.obj: config.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_gconf_CFLAGS) $(CFLAGS) -MT ibus_gconf-config.obj -MD -MP -MF $(DEPDIR)/ibus_gconf-config.Tpo -c -o ibus_gconf-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_gconf-config.Tpo $(DEPDIR)/ibus_gconf-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='config.c' object='ibus_gconf-config.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_gconf_CFLAGS) $(CFLAGS) -c -o ibus_gconf-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-componentDATA: $(component_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(componentdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(componentdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(componentdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(componentdir)" || exit $$?; \
+       done
+
+uninstall-componentDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(componentdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(componentdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-componentDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libexecPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-componentDATA uninstall-libexecPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-componentDATA \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-libexecPROGRAMS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+       uninstall-am uninstall-componentDATA uninstall-libexecPROGRAMS
+
+
+gconf.xml: gconf.xml.in
+       $(AM_V_GEN) sed \
+               -e 's|@VERSION[@]|$(VERSION)|g' \
+               -e 's|@libexecdir[@]|$(libexecdir)|g' $< > $@.tmp && \
+               mv $@.tmp $@
+
+$(libibus):
+       $(MAKE) -C $(top_builddir)/src
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/conf/memconf/Makefile.in b/conf/memconf/Makefile.in
new file mode 100644 (file)
index 0000000..3ec83d3
--- /dev/null
@@ -0,0 +1,917 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2010, Google Inc. All rights reserved.
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@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
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@ENABLE_MEMCONF_TRUE@libexec_PROGRAMS = $(am__EXEEXT_1)
+@ENABLE_MEMCONF_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
+subdir = conf/memconf
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__EXEEXT_1 = ibus-memconf$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(libexecdir)" \
+       "$(DESTDIR)$(componentdir)"
+PROGRAMS = $(libexec_PROGRAMS) $(noinst_PROGRAMS)
+am_ibus_memconf_OBJECTS = ibus_memconf-main.$(OBJEXT) \
+       ibus_memconf-config.$(OBJEXT)
+ibus_memconf_OBJECTS = $(am_ibus_memconf_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+ibus_memconf_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ibus_memconf_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(ibus_memconf_SOURCES)
+DIST_SOURCES = $(ibus_memconf_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+DATA = $(component_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+memconf_programs = \
+       ibus-memconf \
+       $(NULL)
+
+ibus_memconf_SOURCES = \
+       main.c \
+       config.c \
+       config.h \
+       $(NULL)
+
+ibus_memconf_CFLAGS = \
+       @GLIB2_CFLAGS@ \
+       @GIO2_CFLAGS@ \
+       -DG_LOG_DOMAIN=\"IBUS\" \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+ibus_memconf_LDADD = \
+       @GOBJECT2_LIBS@ \
+       @GLIB2_LIBS@ \
+       @GIO2_LIBS@ \
+       $(libibus) \
+       $(NULL)
+
+ibus_memconf_DEPENDENCIES = \
+       $(libibus) \
+       $(NULL)
+
+@ENABLE_MEMCONF_TRUE@component_DATA = \
+@ENABLE_MEMCONF_TRUE@  memconf.xml \
+@ENABLE_MEMCONF_TRUE@  $(NULL)
+
+@ENABLE_MEMCONF_TRUE@componentdir = $(pkgdatadir)/component
+CLEANFILES = \
+       memconf.xml \
+       $(NULL)
+
+EXTRA_DIST = \
+       memconf.xml.in \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu conf/memconf/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu conf/memconf/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-libexecPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
+
+clean-libexecPROGRAMS:
+       @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+clean-noinstPROGRAMS:
+       @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus-memconf$(EXEEXT): $(ibus_memconf_OBJECTS) $(ibus_memconf_DEPENDENCIES) $(EXTRA_ibus_memconf_DEPENDENCIES) 
+       @rm -f ibus-memconf$(EXEEXT)
+       $(AM_V_CCLD)$(ibus_memconf_LINK) $(ibus_memconf_OBJECTS) $(ibus_memconf_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_memconf-config.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_memconf-main.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ibus_memconf-main.o: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_memconf_CFLAGS) $(CFLAGS) -MT ibus_memconf-main.o -MD -MP -MF $(DEPDIR)/ibus_memconf-main.Tpo -c -o ibus_memconf-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_memconf-main.Tpo $(DEPDIR)/ibus_memconf-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_memconf-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_memconf_CFLAGS) $(CFLAGS) -c -o ibus_memconf-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+ibus_memconf-main.obj: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_memconf_CFLAGS) $(CFLAGS) -MT ibus_memconf-main.obj -MD -MP -MF $(DEPDIR)/ibus_memconf-main.Tpo -c -o ibus_memconf-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_memconf-main.Tpo $(DEPDIR)/ibus_memconf-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_memconf-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_memconf_CFLAGS) $(CFLAGS) -c -o ibus_memconf-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+ibus_memconf-config.o: config.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_memconf_CFLAGS) $(CFLAGS) -MT ibus_memconf-config.o -MD -MP -MF $(DEPDIR)/ibus_memconf-config.Tpo -c -o ibus_memconf-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_memconf-config.Tpo $(DEPDIR)/ibus_memconf-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='config.c' object='ibus_memconf-config.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_memconf_CFLAGS) $(CFLAGS) -c -o ibus_memconf-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c
+
+ibus_memconf-config.obj: config.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_memconf_CFLAGS) $(CFLAGS) -MT ibus_memconf-config.obj -MD -MP -MF $(DEPDIR)/ibus_memconf-config.Tpo -c -o ibus_memconf-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_memconf-config.Tpo $(DEPDIR)/ibus_memconf-config.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='config.c' object='ibus_memconf-config.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_memconf_CFLAGS) $(CFLAGS) -c -o ibus_memconf-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-componentDATA: $(component_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(componentdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(componentdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(componentdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(componentdir)" || exit $$?; \
+       done
+
+uninstall-componentDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(componentdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(componentdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
+       clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-componentDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libexecPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-componentDATA uninstall-libexecPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libexecPROGRAMS clean-libtool clean-noinstPROGRAMS \
+       cscopelist-am ctags ctags-am distclean distclean-compile \
+       distclean-generic distclean-libtool distclean-tags distdir dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-componentDATA install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am \
+       install-libexecPROGRAMS install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-am uninstall uninstall-am uninstall-componentDATA \
+       uninstall-libexecPROGRAMS
+
+
+memconf.xml: memconf.xml.in
+       $(AM_V_GEN) sed \
+               -e 's|@VERSION[@]|$(VERSION)|g' \
+               -e 's|@libexecdir[@]|$(libexecdir)|g' $< > $@.tmp && \
+               mv $@.tmp $@
+
+$(libibus):
+       $(MAKE) -C $(top_builddir)/src
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/config.guess b/config.guess
new file mode 100755 (executable)
index 0000000..b79252d
--- /dev/null
@@ -0,0 +1,1558 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
+
+timestamp='2013-06-10'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2013 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+       for c in cc gcc c89 c99 ; do
+         if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+            CC_FOR_BUILD="$c"; break ;
+         fi ;
+       done ;
+       if test x"$CC_FOR_BUILD" = x ; then
+         CC_FOR_BUILD=no_compiler_found ;
+       fi
+       ;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+       PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+       # If the system lacks a compiler, then just pick glibc.
+       # We could probably try harder.
+       LIBC=gnu
+
+       eval $set_cc_for_build
+       cat <<-EOF > $dummy.c
+       #include <features.h>
+       #if defined(__UCLIBC__)
+       LIBC=uclibc
+       #elif defined(__dietlibc__)
+       LIBC=dietlibc
+       #else
+       LIBC=gnu
+       #endif
+       EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+       ;;
+esac
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+       # NetBSD (nbsd) targets should (where applicable) match one or
+       # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+       # switched to ELF, *-*-netbsd* would select the old
+       # object file format.  This provides both forward
+       # compatibility and a consistent mechanism for selecting the
+       # object file format.
+       #
+       # Note: NetBSD doesn't particularly care about the vendor
+       # portion of the name.  We always set it to "unknown".
+       sysctl="sysctl -n hw.machine_arch"
+       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+       case "${UNAME_MACHINE_ARCH}" in
+           armeb) machine=armeb-unknown ;;
+           arm*) machine=arm-unknown ;;
+           sh3el) machine=shl-unknown ;;
+           sh3eb) machine=sh-unknown ;;
+           sh5el) machine=sh5le-unknown ;;
+           *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+       esac
+       # The Operating System including object format, if it has switched
+       # to ELF recently, or will in the future.
+       case "${UNAME_MACHINE_ARCH}" in
+           arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+               eval $set_cc_for_build
+               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+                       | grep -q __ELF__
+               then
+                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+                   # Return netbsd for either.  FIX?
+                   os=netbsd
+               else
+                   os=netbsdelf
+               fi
+               ;;
+           *)
+               os=netbsd
+               ;;
+       esac
+       # The OS release
+       # Debian GNU/NetBSD machines have a different userland, and
+       # thus, need a distinct triplet. However, they do not need
+       # kernel version information, so it can be replaced with a
+       # suitable tag, in the style of linux-gnu.
+       case "${UNAME_VERSION}" in
+           Debian*)
+               release='-gnu'
+               ;;
+           *)
+               release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+               ;;
+       esac
+       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+       # contains redundant information, the shorter form:
+       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+       echo "${machine}-${os}${release}"
+       exit ;;
+    *:Bitrig:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+       exit ;;
+    *:OpenBSD:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+       exit ;;
+    *:ekkoBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+       exit ;;
+    *:SolidBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+       exit ;;
+    macppc:MirBSD:*:*)
+       echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
+    *:MirBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+       exit ;;
+    alpha:OSF1:*:*)
+       case $UNAME_RELEASE in
+       *4.0)
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+               ;;
+       *5.*)
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+               ;;
+       esac
+       # According to Compaq, /usr/sbin/psrinfo has been available on
+       # OSF/1 and Tru64 systems produced since 1995.  I hope that
+       # covers most systems running today.  This code pipes the CPU
+       # types through head -n 1, so we only detect the type of CPU 0.
+       ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+       case "$ALPHA_CPU_TYPE" in
+           "EV4 (21064)")
+               UNAME_MACHINE="alpha" ;;
+           "EV4.5 (21064)")
+               UNAME_MACHINE="alpha" ;;
+           "LCA4 (21066/21068)")
+               UNAME_MACHINE="alpha" ;;
+           "EV5 (21164)")
+               UNAME_MACHINE="alphaev5" ;;
+           "EV5.6 (21164A)")
+               UNAME_MACHINE="alphaev56" ;;
+           "EV5.6 (21164PC)")
+               UNAME_MACHINE="alphapca56" ;;
+           "EV5.7 (21164PC)")
+               UNAME_MACHINE="alphapca57" ;;
+           "EV6 (21264)")
+               UNAME_MACHINE="alphaev6" ;;
+           "EV6.7 (21264A)")
+               UNAME_MACHINE="alphaev67" ;;
+           "EV6.8CB (21264C)")
+               UNAME_MACHINE="alphaev68" ;;
+           "EV6.8AL (21264B)")
+               UNAME_MACHINE="alphaev68" ;;
+           "EV6.8CX (21264D)")
+               UNAME_MACHINE="alphaev68" ;;
+           "EV6.9A (21264/EV69A)")
+               UNAME_MACHINE="alphaev69" ;;
+           "EV7 (21364)")
+               UNAME_MACHINE="alphaev7" ;;
+           "EV7.9 (21364A)")
+               UNAME_MACHINE="alphaev79" ;;
+       esac
+       # A Pn.n version is a patched version.
+       # A Vn.n version is a released version.
+       # A Tn.n version is a released field test version.
+       # A Xn.n version is an unreleased experimental baselevel.
+       # 1.2 uses "1.2" for uname -r.
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+       exitcode=$?
+       trap '' 0
+       exit $exitcode ;;
+    Alpha\ *:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # Should we change UNAME_MACHINE based on the output of uname instead
+       # of the specific Alpha model?
+       echo alpha-pc-interix
+       exit ;;
+    21064:Windows_NT:50:3)
+       echo alpha-dec-winnt3.5
+       exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+       echo m68k-unknown-sysv4
+       exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-amigaos
+       exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-morphos
+       exit ;;
+    *:OS/390:*:*)
+       echo i370-ibm-openedition
+       exit ;;
+    *:z/VM:*:*)
+       echo s390-ibm-zvmoe
+       exit ;;
+    *:OS400:*:*)
+       echo powerpc-ibm-os400
+       exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+       echo arm-acorn-riscix${UNAME_RELEASE}
+       exit ;;
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
+       echo arm-unknown-riscos
+       exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+       echo hppa1.1-hitachi-hiuxmpp
+       exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+       # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+       if test "`(/bin/universe) 2>/dev/null`" = att ; then
+               echo pyramid-pyramid-sysv3
+       else
+               echo pyramid-pyramid-bsd
+       fi
+       exit ;;
+    NILE*:*:*:dcosx)
+       echo pyramid-pyramid-svr4
+       exit ;;
+    DRS?6000:unix:4.0:6*)
+       echo sparc-icl-nx6
+       exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+       case `/usr/bin/uname -p` in
+           sparc) echo sparc-icl-nx7; exit ;;
+       esac ;;
+    s390x:SunOS:*:*)
+       echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4H:SunOS:5.*:*)
+       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+       echo i386-pc-auroraux${UNAME_RELEASE}
+       exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+       eval $set_cc_for_build
+       SUN_ARCH="i386"
+       # If there is a compiler, see if it is configured for 64-bit objects.
+       # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+       # This test works for both compilers.
+       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+           if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+               (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_64BIT_ARCH >/dev/null
+           then
+               SUN_ARCH="x86_64"
+           fi
+       fi
+       echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4*:SunOS:6*:*)
+       # According to config.sub, this is the proper way to canonicalize
+       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+       # it's likely to be more like Solaris than SunOS4.
+       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    sun4*:SunOS:*:*)
+       case "`/usr/bin/arch -k`" in
+           Series*|S4*)
+               UNAME_RELEASE=`uname -v`
+               ;;
+       esac
+       # Japanese Language versions have a version number like `4.1.3-JL'.
+       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+       exit ;;
+    sun3*:SunOS:*:*)
+       echo m68k-sun-sunos${UNAME_RELEASE}
+       exit ;;
+    sun*:*:4.2BSD:*)
+       UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+       case "`/bin/arch`" in
+           sun3)
+               echo m68k-sun-sunos${UNAME_RELEASE}
+               ;;
+           sun4)
+               echo sparc-sun-sunos${UNAME_RELEASE}
+               ;;
+       esac
+       exit ;;
+    aushp:SunOS:*:*)
+       echo sparc-auspex-sunos${UNAME_RELEASE}
+       exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+       exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+       exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+       exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+       echo m68k-milan-mint${UNAME_RELEASE}
+       exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+       echo m68k-hades-mint${UNAME_RELEASE}
+       exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+       echo m68k-unknown-mint${UNAME_RELEASE}
+       exit ;;
+    m68k:machten:*:*)
+       echo m68k-apple-machten${UNAME_RELEASE}
+       exit ;;
+    powerpc:machten:*:*)
+       echo powerpc-apple-machten${UNAME_RELEASE}
+       exit ;;
+    RISC*:Mach:*:*)
+       echo mips-dec-mach_bsd4.3
+       exit ;;
+    RISC*:ULTRIX:*:*)
+       echo mips-dec-ultrix${UNAME_RELEASE}
+       exit ;;
+    VAX*:ULTRIX*:*:*)
+       echo vax-dec-ultrix${UNAME_RELEASE}
+       exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+       echo clipper-intergraph-clix${UNAME_RELEASE}
+       exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
+       #if defined (host_mips) && defined (MIPSEB)
+       #if defined (SYSTYPE_SYSV)
+         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_SVR4)
+         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+       #endif
+       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+       #endif
+       #endif
+         exit (-1);
+       }
+EOF
+       $CC_FOR_BUILD -o $dummy $dummy.c &&
+         dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+         SYSTEM_NAME=`$dummy $dummyarg` &&
+           { echo "$SYSTEM_NAME"; exit; }
+       echo mips-mips-riscos${UNAME_RELEASE}
+       exit ;;
+    Motorola:PowerMAX_OS:*:*)
+       echo powerpc-motorola-powermax
+       exit ;;
+    Motorola:*:4.3:PL8-*)
+       echo powerpc-harris-powermax
+       exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+       echo powerpc-harris-powermax
+       exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+       echo powerpc-harris-powerunix
+       exit ;;
+    m88k:CX/UX:7*:*)
+       echo m88k-harris-cxux7
+       exit ;;
+    m88k:*:4*:R4*)
+       echo m88k-motorola-sysv4
+       exit ;;
+    m88k:*:3*:R3*)
+       echo m88k-motorola-sysv3
+       exit ;;
+    AViiON:dgux:*:*)
+       # DG/UX returns AViiON for all architectures
+       UNAME_PROCESSOR=`/usr/bin/uname -p`
+       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+       then
+           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+              [ ${TARGET_BINARY_INTERFACE}x = x ]
+           then
+               echo m88k-dg-dgux${UNAME_RELEASE}
+           else
+               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+           fi
+       else
+           echo i586-dg-dgux${UNAME_RELEASE}
+       fi
+       exit ;;
+    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
+       echo m88k-dolphin-sysv3
+       exit ;;
+    M88*:*:R3*:*)
+       # Delta 88k system running SVR3
+       echo m88k-motorola-sysv3
+       exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+       echo m88k-tektronix-sysv3
+       exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+       echo m68k-tektronix-bsd
+       exit ;;
+    *:IRIX*:*:*)
+       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+       echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+       echo i386-ibm-aix
+       exit ;;
+    ia64:AIX:*:*)
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+       exit ;;
+    *:AIX:2:3)
+       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+               eval $set_cc_for_build
+               sed 's/^                //' << EOF >$dummy.c
+               #include <sys/systemcfg.h>
+
+               main()
+                       {
+                       if (!__power_pc())
+                               exit(1);
+                       puts("powerpc-ibm-aix3.2.5");
+                       exit(0);
+                       }
+EOF
+               if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+               then
+                       echo "$SYSTEM_NAME"
+               else
+                       echo rs6000-ibm-aix3.2.5
+               fi
+       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+               echo rs6000-ibm-aix3.2.4
+       else
+               echo rs6000-ibm-aix3.2
+       fi
+       exit ;;
+    *:AIX:*:[4567])
+       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+               IBM_ARCH=rs6000
+       else
+               IBM_ARCH=powerpc
+       fi
+       if [ -x /usr/bin/oslevel ] ; then
+               IBM_REV=`/usr/bin/oslevel`
+       else
+               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+       fi
+       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+       exit ;;
+    *:AIX:*:*)
+       echo rs6000-ibm-aix
+       exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+       echo romp-ibm-bsd4.4
+       exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+       exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+       echo rs6000-bull-bosx
+       exit ;;
+    DPX/2?00:B.O.S.:*:*)
+       echo m68k-bull-sysv3
+       exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+       echo m68k-hp-bsd
+       exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+       echo m68k-hp-bsd4.4
+       exit ;;
+    9000/[34678]??:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       case "${UNAME_MACHINE}" in
+           9000/31? )            HP_ARCH=m68000 ;;
+           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/[678][0-9][0-9])
+               if [ -x /usr/bin/getconf ]; then
+                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                   sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                   case "${sc_cpu_version}" in
+                     523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                     528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                     532)                      # CPU_PA_RISC2_0
+                       case "${sc_kernel_bits}" in
+                         32) HP_ARCH="hppa2.0n" ;;
+                         64) HP_ARCH="hppa2.0w" ;;
+                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                       esac ;;
+                   esac
+               fi
+               if [ "${HP_ARCH}" = "" ]; then
+                   eval $set_cc_for_build
+                   sed 's/^            //' << EOF >$dummy.c
+
+               #define _HPUX_SOURCE
+               #include <stdlib.h>
+               #include <unistd.h>
+
+               int main ()
+               {
+               #if defined(_SC_KERNEL_BITS)
+                   long bits = sysconf(_SC_KERNEL_BITS);
+               #endif
+                   long cpu  = sysconf (_SC_CPU_VERSION);
+
+                   switch (cpu)
+                       {
+                       case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+                       case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+                       case CPU_PA_RISC2_0:
+               #if defined(_SC_KERNEL_BITS)
+                           switch (bits)
+                               {
+                               case 64: puts ("hppa2.0w"); break;
+                               case 32: puts ("hppa2.0n"); break;
+                               default: puts ("hppa2.0"); break;
+                               } break;
+               #else  /* !defined(_SC_KERNEL_BITS) */
+                           puts ("hppa2.0"); break;
+               #endif
+                       default: puts ("hppa1.0"); break;
+                       }
+                   exit (0);
+               }
+EOF
+                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+                   test -z "$HP_ARCH" && HP_ARCH=hppa
+               fi ;;
+       esac
+       if [ ${HP_ARCH} = "hppa2.0w" ]
+       then
+           eval $set_cc_for_build
+
+           # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+           # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+           # generating 64-bit code.  GNU and HP use different nomenclature:
+           #
+           # $ CC_FOR_BUILD=cc ./config.guess
+           # => hppa2.0w-hp-hpux11.23
+           # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+           # => hppa64-hp-hpux11.23
+
+           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+               grep -q __LP64__
+           then
+               HP_ARCH="hppa2.0w"
+           else
+               HP_ARCH="hppa64"
+           fi
+       fi
+       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       exit ;;
+    ia64:HP-UX:*:*)
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+       echo ia64-hp-hpux${HPUX_REV}
+       exit ;;
+    3050*:HI-UX:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <unistd.h>
+       int
+       main ()
+       {
+         long cpu = sysconf (_SC_CPU_VERSION);
+         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+            results, however.  */
+         if (CPU_IS_PA_RISC (cpu))
+           {
+             switch (cpu)
+               {
+                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+                 default: puts ("hppa-hitachi-hiuxwe2"); break;
+               }
+           }
+         else if (CPU_IS_HP_MC68K (cpu))
+           puts ("m68k-hitachi-hiuxwe2");
+         else puts ("unknown-hitachi-hiuxwe2");
+         exit (0);
+       }
+EOF
+       $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+               { echo "$SYSTEM_NAME"; exit; }
+       echo unknown-hitachi-hiuxwe2
+       exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+       echo hppa1.1-hp-bsd
+       exit ;;
+    9000/8??:4.3bsd:*:*)
+       echo hppa1.0-hp-bsd
+       exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+       echo hppa1.0-hp-mpeix
+       exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+       echo hppa1.1-hp-osf
+       exit ;;
+    hp8??:OSF1:*:*)
+       echo hppa1.0-hp-osf
+       exit ;;
+    i*86:OSF1:*:*)
+       if [ -x /usr/sbin/sysversion ] ; then
+           echo ${UNAME_MACHINE}-unknown-osf1mk
+       else
+           echo ${UNAME_MACHINE}-unknown-osf1
+       fi
+       exit ;;
+    parisc*:Lites*:*:*)
+       echo hppa1.1-hp-lites
+       exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+       echo c1-convex-bsd
+       exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+       exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+       echo c34-convex-bsd
+       exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+       echo c38-convex-bsd
+       exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+       echo c4-convex-bsd
+       exit ;;
+    CRAY*Y-MP:*:*:*)
+       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*[A-Z]90:*:*:*)
+       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+             -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*TS:*:*:*)
+       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*T3E:*:*:*)
+       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    CRAY*SV1:*:*:*)
+       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    *:UNICOS/mp:*:*)
+       echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+       echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       exit ;;
+    5000:UNIX_System_V:4.*:*)
+       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+       echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+       exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       exit ;;
+    sparc*:BSD/OS:*:*)
+       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       exit ;;
+    *:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       exit ;;
+    *:FreeBSD:*:*)
+       UNAME_PROCESSOR=`/usr/bin/uname -p`
+       case ${UNAME_PROCESSOR} in
+           amd64)
+               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+           *)
+               echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+       esac
+       exit ;;
+    i*:CYGWIN*:*)
+       echo ${UNAME_MACHINE}-pc-cygwin
+       exit ;;
+    *:MINGW64*:*)
+       echo ${UNAME_MACHINE}-pc-mingw64
+       exit ;;
+    *:MINGW*:*)
+       echo ${UNAME_MACHINE}-pc-mingw32
+       exit ;;
+    i*:MSYS*:*)
+       echo ${UNAME_MACHINE}-pc-msys
+       exit ;;
+    i*:windows32*:*)
+       # uname -m includes "-pc" on this system.
+       echo ${UNAME_MACHINE}-mingw32
+       exit ;;
+    i*:PW*:*)
+       echo ${UNAME_MACHINE}-pc-pw32
+       exit ;;
+    *:Interix*:*)
+       case ${UNAME_MACHINE} in
+           x86)
+               echo i586-pc-interix${UNAME_RELEASE}
+               exit ;;
+           authenticamd | genuineintel | EM64T)
+               echo x86_64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+           IA64)
+               echo ia64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+       esac ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+       echo i${UNAME_MACHINE}-pc-mks
+       exit ;;
+    8664:Windows_NT:*)
+       echo x86_64-pc-mks
+       exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+       # UNAME_MACHINE based on the output of uname instead of i386?
+       echo i586-pc-interix
+       exit ;;
+    i*:UWIN*:*)
+       echo ${UNAME_MACHINE}-pc-uwin
+       exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+       echo x86_64-unknown-cygwin
+       exit ;;
+    p*:CYGWIN*:*)
+       echo powerpcle-unknown-cygwin
+       exit ;;
+    prep*:SunOS:5.*:*)
+       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit ;;
+    *:GNU:*:*)
+       # the GNU system
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       exit ;;
+    *:GNU/*:*:*)
+       # other systems with GNU libc and userland
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+       exit ;;
+    i*86:Minix:*:*)
+       echo ${UNAME_MACHINE}-pc-minix
+       exit ;;
+    aarch64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    aarch64_be:Linux:*:*)
+       UNAME_MACHINE=aarch64_be
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    alpha:Linux:*:*)
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+         EV5)   UNAME_MACHINE=alphaev5 ;;
+         EV56)  UNAME_MACHINE=alphaev56 ;;
+         PCA56) UNAME_MACHINE=alphapca56 ;;
+         PCA57) UNAME_MACHINE=alphapca56 ;;
+         EV6)   UNAME_MACHINE=alphaev6 ;;
+         EV67)  UNAME_MACHINE=alphaev67 ;;
+         EV68*) UNAME_MACHINE=alphaev68 ;;
+       esac
+       objdump --private-headers /bin/sh | grep -q ld.so.1
+       if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    arm*:Linux:*:*)
+       eval $set_cc_for_build
+       if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+           | grep -q __ARM_EABI__
+       then
+           echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       else
+           if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+               | grep -q __ARM_PCS_VFP
+           then
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+           else
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+           fi
+       fi
+       exit ;;
+    avr32*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    cris:Linux:*:*)
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+       exit ;;
+    crisv32:Linux:*:*)
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+       exit ;;
+    frv:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    hexagon:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    i*86:Linux:*:*)
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+       exit ;;
+    ia64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    m32r*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    mips:Linux:*:* | mips64:Linux:*:*)
+       eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #undef CPU
+       #undef ${UNAME_MACHINE}
+       #undef ${UNAME_MACHINE}el
+       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+       CPU=${UNAME_MACHINE}el
+       #else
+       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+       CPU=${UNAME_MACHINE}
+       #else
+       CPU=
+       #endif
+       #endif
+EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+       ;;
+    or1k:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    or32:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    padre:Linux:*:*)
+       echo sparc-unknown-linux-${LIBC}
+       exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+       echo hppa64-unknown-linux-${LIBC}
+       exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+       # Look for CPU level
+       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+         PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+         *)    echo hppa-unknown-linux-${LIBC} ;;
+       esac
+       exit ;;
+    ppc64:Linux:*:*)
+       echo powerpc64-unknown-linux-${LIBC}
+       exit ;;
+    ppc:Linux:*:*)
+       echo powerpc-unknown-linux-${LIBC}
+       exit ;;
+    ppc64le:Linux:*:*)
+       echo powerpc64le-unknown-linux-${LIBC}
+       exit ;;
+    ppcle:Linux:*:*)
+       echo powerpcle-unknown-linux-${LIBC}
+       exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+       echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+       exit ;;
+    sh64*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    sh*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    tile*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    vax:Linux:*:*)
+       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+       exit ;;
+    x86_64:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    xtensa*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    i*86:DYNIX/ptx:4*:*)
+       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+       # earlier versions are messed up and put the nodename in both
+       # sysname and nodename.
+       echo i386-sequent-sysv4
+       exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+       # Unixware is an offshoot of SVR4, but it has its own version
+       # number series starting with 2...
+       # I am not positive that other SVR4 systems won't match this,
+       # I just have to hope.  -- rms.
+       # Use sysv4.2uw... so that sysv4* matches it.
+       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+       exit ;;
+    i*86:OS/2:*:*)
+       # If we were able to find `uname', then EMX Unix compatibility
+       # is probably installed.
+       echo ${UNAME_MACHINE}-pc-os2-emx
+       exit ;;
+    i*86:XTS-300:*:STOP)
+       echo ${UNAME_MACHINE}-unknown-stop
+       exit ;;
+    i*86:atheos:*:*)
+       echo ${UNAME_MACHINE}-unknown-atheos
+       exit ;;
+    i*86:syllable:*:*)
+       echo ${UNAME_MACHINE}-pc-syllable
+       exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+       echo i386-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    i*86:*DOS:*:*)
+       echo ${UNAME_MACHINE}-pc-msdosdjgpp
+       exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+       else
+               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+       fi
+       exit ;;
+    i*86:*:5:[678]*)
+       # UnixWare 7.x, OpenUNIX and OpenServer 6.
+       case `/bin/uname -X | grep "^Machine"` in
+           *486*)           UNAME_MACHINE=i486 ;;
+           *Pentium)        UNAME_MACHINE=i586 ;;
+           *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+       esac
+       echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       exit ;;
+    i*86:*:3.2:*)
+       if test -f /usr/options/cb.name; then
+               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+       elif /bin/uname -X 2>/dev/null >/dev/null ; then
+               UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+               (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+               (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+                       && UNAME_MACHINE=i586
+               (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+       else
+               echo ${UNAME_MACHINE}-pc-sysv32
+       fi
+       exit ;;
+    pc:*:*:*)
+       # Left here for compatibility:
+       # uname -m prints for DJGPP always 'pc', but it prints nothing about
+       # the processor, so we play safe by assuming i586.
+       # Note: whatever this is, it MUST be the same as what config.sub
+       # prints for the "djgpp" host, or else GDB configury will decide that
+       # this is a cross-build.
+       echo i586-pc-msdosdjgpp
+       exit ;;
+    Intel:Mach:3*:*)
+       echo i386-pc-mach3
+       exit ;;
+    paragon:*:*:*)
+       echo i860-intel-osf1
+       exit ;;
+    i860:*:4.*:*) # i860-SVR4
+       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+       else # Add other i860-SVR4 vendors below as they are discovered.
+         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+       fi
+       exit ;;
+    mini*:CTIX:SYS*5:*)
+       # "miniframe"
+       echo m68010-convergent-sysv
+       exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+       echo m68k-convergent-sysv
+       exit ;;
+    M680?0:D-NIX:5.3:*)
+       echo m68k-diab-dnix
+       exit ;;
+    M68*:*:R3V[5678]*:*)
+       test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+       OS_REL=''
+       test -r /etc/.relid \
+       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+         && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+         && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+         && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+       OS_REL='.3'
+       test -r /etc/.relid \
+           && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+           && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+           && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+       /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+           && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+       echo m68k-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+       echo m68k-atari-sysv4
+       exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+       echo sparc-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    rs6000:LynxOS:2.*:*)
+       echo rs6000-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+       echo powerpc-unknown-lynxos${UNAME_RELEASE}
+       exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+       echo mips-dde-sysv${UNAME_RELEASE}
+       exit ;;
+    RM*:ReliantUNIX-*:*:*)
+       echo mips-sni-sysv4
+       exit ;;
+    RM*:SINIX-*:*:*)
+       echo mips-sni-sysv4
+       exit ;;
+    *:SINIX-*:*:*)
+       if uname -p 2>/dev/null >/dev/null ; then
+               UNAME_MACHINE=`(uname -p) 2>/dev/null`
+               echo ${UNAME_MACHINE}-sni-sysv4
+       else
+               echo ns32k-sni-sysv
+       fi
+       exit ;;
+    PENTIUM:*:4.0*:*)  # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                       # says <Richard.M.Bartel@ccMail.Census.GOV>
+       echo i586-unisys-sysv4
+       exit ;;
+    *:UNIX_System_V:4*:FTX*)
+       # From Gerald Hewes <hewes@openmarket.com>.
+       # How about differentiating between stratus architectures? -djm
+       echo hppa1.1-stratus-sysv4
+       exit ;;
+    *:*:*:FTX*)
+       # From seanf@swdc.stratus.com.
+       echo i860-stratus-sysv4
+       exit ;;
+    i*86:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo ${UNAME_MACHINE}-stratus-vos
+       exit ;;
+    *:VOS:*:*)
+       # From Paul.Green@stratus.com.
+       echo hppa1.1-stratus-vos
+       exit ;;
+    mc68*:A/UX:*:*)
+       echo m68k-apple-aux${UNAME_RELEASE}
+       exit ;;
+    news*:NEWS-OS:6*:*)
+       echo mips-sony-newsos6
+       exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+       if [ -d /usr/nec ]; then
+               echo mips-nec-sysv${UNAME_RELEASE}
+       else
+               echo mips-unknown-sysv${UNAME_RELEASE}
+       fi
+       exit ;;
+    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
+       echo powerpc-be-beos
+       exit ;;
+    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
+       echo powerpc-apple-beos
+       exit ;;
+    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
+       echo i586-pc-beos
+       exit ;;
+    BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
+       echo i586-pc-haiku
+       exit ;;
+    x86_64:Haiku:*:*)
+       echo x86_64-unknown-haiku
+       exit ;;
+    SX-4:SUPER-UX:*:*)
+       echo sx4-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-5:SUPER-UX:*:*)
+       echo sx5-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-6:SUPER-UX:*:*)
+       echo sx6-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-7:SUPER-UX:*:*)
+       echo sx7-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-8:SUPER-UX:*:*)
+       echo sx8-nec-superux${UNAME_RELEASE}
+       exit ;;
+    SX-8R:SUPER-UX:*:*)
+       echo sx8r-nec-superux${UNAME_RELEASE}
+       exit ;;
+    Power*:Rhapsody:*:*)
+       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       exit ;;
+    *:Rhapsody:*:*)
+       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       exit ;;
+    *:Darwin:*:*)
+       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+       eval $set_cc_for_build
+       if test "$UNAME_PROCESSOR" = unknown ; then
+           UNAME_PROCESSOR=powerpc
+       fi
+       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+           if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+               (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_64BIT_ARCH >/dev/null
+           then
+               case $UNAME_PROCESSOR in
+                   i386) UNAME_PROCESSOR=x86_64 ;;
+                   powerpc) UNAME_PROCESSOR=powerpc64 ;;
+               esac
+           fi
+       fi
+       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+       exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+       UNAME_PROCESSOR=`uname -p`
+       if test "$UNAME_PROCESSOR" = "x86"; then
+               UNAME_PROCESSOR=i386
+               UNAME_MACHINE=pc
+       fi
+       echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+       exit ;;
+    *:QNX:*:4*)
+       echo i386-pc-qnx
+       exit ;;
+    NEO-?:NONSTOP_KERNEL:*:*)
+       echo neo-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    NSE-*:NONSTOP_KERNEL:*:*)
+       echo nse-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+       echo nsr-tandem-nsk${UNAME_RELEASE}
+       exit ;;
+    *:NonStop-UX:*:*)
+       echo mips-compaq-nonstopux
+       exit ;;
+    BS2000:POSIX*:*:*)
+       echo bs2000-siemens-sysv
+       exit ;;
+    DS/*:UNIX_System_V:*:*)
+       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+       exit ;;
+    *:Plan9:*:*)
+       # "uname -m" is not consistent, so use $cputype instead. 386
+       # is converted to i386 for consistency with other x86
+       # operating systems.
+       if test "$cputype" = "386"; then
+           UNAME_MACHINE=i386
+       else
+           UNAME_MACHINE="$cputype"
+       fi
+       echo ${UNAME_MACHINE}-unknown-plan9
+       exit ;;
+    *:TOPS-10:*:*)
+       echo pdp10-unknown-tops10
+       exit ;;
+    *:TENEX:*:*)
+       echo pdp10-unknown-tenex
+       exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+       echo pdp10-dec-tops20
+       exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+       echo pdp10-xkl-tops20
+       exit ;;
+    *:TOPS-20:*:*)
+       echo pdp10-unknown-tops20
+       exit ;;
+    *:ITS:*:*)
+       echo pdp10-unknown-its
+       exit ;;
+    SEI:*:*:SEIUX)
+       echo mips-sei-seiux${UNAME_RELEASE}
+       exit ;;
+    *:DragonFly:*:*)
+       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+       exit ;;
+    *:*VMS:*:*)
+       UNAME_MACHINE=`(uname -p) 2>/dev/null`
+       case "${UNAME_MACHINE}" in
+           A*) echo alpha-dec-vms ; exit ;;
+           I*) echo ia64-dec-vms ; exit ;;
+           V*) echo vax-dec-vms ; exit ;;
+       esac ;;
+    *:XENIX:*:SysV)
+       echo i386-pc-xenix
+       exit ;;
+    i*86:skyos:*:*)
+       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+       exit ;;
+    i*86:rdos:*:*)
+       echo ${UNAME_MACHINE}-pc-rdos
+       exit ;;
+    i*86:AROS:*:*)
+       echo ${UNAME_MACHINE}-pc-aros
+       exit ;;
+    x86_64:VMkernel:*:*)
+       echo ${UNAME_MACHINE}-unknown-esx
+       exit ;;
+esac
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+       "4"
+#else
+       ""
+#endif
+       ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+       printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+       printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+       { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+       echo c1-convex-bsd
+       exit ;;
+    c2*)
+       if getsysinfo -f scalar_acc
+       then echo c32-convex-bsd
+       else echo c2-convex-bsd
+       fi
+       exit ;;
+    c34*)
+       echo c34-convex-bsd
+       exit ;;
+    c38*)
+       echo c38-convex-bsd
+       exit ;;
+    c4*)
+       echo c4-convex-bsd
+       exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.h.in b/config.h.in
new file mode 100644 (file)
index 0000000..bd4118e
--- /dev/null
@@ -0,0 +1,139 @@
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* dconf is 0.13.4 or later */
+#undef DCONF_0_13_4
+
+/* always defined to indicate that i18n is enabled */
+#undef ENABLE_NLS
+
+/* Enable key snooper */
+#undef ENABLE_SNOOPER
+
+/* Enable surrounding-text support */
+#undef ENABLE_SURROUNDING
+
+/* The prefix for out gettext translation domains. */
+#undef GETTEXT_PACKAGE
+
+/* Define the location where the catalogs will be installed */
+#undef GLIB_LOCALE_DIR
+
+/* Define to 1 if you have the `bind_textdomain_codeset' function. */
+#undef HAVE_BIND_TEXTDOMAIN_CODESET
+
+/* Define to 1 if you have the `daemon' function. */
+#undef HAVE_DAEMON
+
+/* Define to 1 if you have the `dcgettext' function. */
+#undef HAVE_DCGETTEXT
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#undef HAVE_GETTEXT
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
+#undef HAVE_LC_MESSAGES
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the <X11/XKBlib.h> header file. */
+#undef HAVE_X11_XKBLIB_H
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#undef LT_OBJDIR
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
+/* Does not enbale keyboard snooper in those applications */
+#undef NO_SNOOPER_APPS
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
diff --git a/config.sub b/config.sub
new file mode 100755 (executable)
index 0000000..c765b34
--- /dev/null
@@ -0,0 +1,1788 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
+
+timestamp='2013-04-24'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2013 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )        # Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+       -sun*os*)
+               # Prevent following clause from handling this invalid input.
+               ;;
+       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+       -apple | -axis | -knuth | -cray | -microblaze*)
+               os=
+               basic_machine=$1
+               ;;
+       -bluegene*)
+               os=-cnk
+               ;;
+       -sim | -cisco | -oki | -wec | -winbond)
+               os=
+               basic_machine=$1
+               ;;
+       -scout)
+               ;;
+       -wrs)
+               os=-vxworks
+               basic_machine=$1
+               ;;
+       -chorusos*)
+               os=-chorusos
+               basic_machine=$1
+               ;;
+       -chorusrdb)
+               os=-chorusrdb
+               basic_machine=$1
+               ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
+       -sco6)
+               os=-sco5v6
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco5)
+               os=-sco3.2v5
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco4)
+               os=-sco3.2v4
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2v[4-9]*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco*)
+               os=-sco3.2v2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -udk*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -isc)
+               os=-isc2.2
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -clix*)
+               basic_machine=clipper-intergraph
+               ;;
+       -isc*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -lynx*178)
+               os=-lynxos178
+               ;;
+       -lynx*5)
+               os=-lynxos5
+               ;;
+       -lynx*)
+               os=-lynxos
+               ;;
+       -ptx*)
+               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+               ;;
+       -windowsnt*)
+               os=`echo $os | sed -e 's/windowsnt/winnt/'`
+               ;;
+       -psos*)
+               os=-psos
+               ;;
+       -mint | -mint[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+       1750a | 580 \
+       | a29k \
+       | aarch64 | aarch64_be \
+       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+       | am33_2.0 \
+       | arc | arceb \
+       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+       | avr | avr32 \
+       | be32 | be64 \
+       | bfin \
+       | c4x | clipper \
+       | d10v | d30v | dlx | dsp16xx \
+       | epiphany \
+       | fido | fr30 | frv \
+       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+       | hexagon \
+       | i370 | i860 | i960 | ia64 \
+       | ip2k | iq2000 \
+       | le32 | le64 \
+       | lm32 \
+       | m32c | m32r | m32rle | m68000 | m68k | m88k \
+       | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+       | mips | mipsbe | mipseb | mipsel | mipsle \
+       | mips16 \
+       | mips64 | mips64el \
+       | mips64octeon | mips64octeonel \
+       | mips64orion | mips64orionel \
+       | mips64r5900 | mips64r5900el \
+       | mips64vr | mips64vrel \
+       | mips64vr4100 | mips64vr4100el \
+       | mips64vr4300 | mips64vr4300el \
+       | mips64vr5000 | mips64vr5000el \
+       | mips64vr5900 | mips64vr5900el \
+       | mipsisa32 | mipsisa32el \
+       | mipsisa32r2 | mipsisa32r2el \
+       | mipsisa64 | mipsisa64el \
+       | mipsisa64r2 | mipsisa64r2el \
+       | mipsisa64sb1 | mipsisa64sb1el \
+       | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipsr5900 | mipsr5900el \
+       | mipstx39 | mipstx39el \
+       | mn10200 | mn10300 \
+       | moxie \
+       | mt \
+       | msp430 \
+       | nds32 | nds32le | nds32be \
+       | nios | nios2 | nios2eb | nios2el \
+       | ns16k | ns32k \
+       | open8 \
+       | or1k | or32 \
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle \
+       | pyramid \
+       | rl78 | rx \
+       | score \
+       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+       | spu \
+       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+       | ubicom32 \
+       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+       | we32k \
+       | x86 | xc16x | xstormy16 | xtensa \
+       | z8k | z80)
+               basic_machine=$basic_machine-unknown
+               ;;
+       c54x)
+               basic_machine=tic54x-unknown
+               ;;
+       c55x)
+               basic_machine=tic55x-unknown
+               ;;
+       c6x)
+               basic_machine=tic6x-unknown
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+               ;;
+       ms1)
+               basic_machine=mt-unknown
+               ;;
+
+       strongarm | thumb | xscale)
+               basic_machine=arm-unknown
+               ;;
+       xgate)
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+       xscaleeb)
+               basic_machine=armeb-unknown
+               ;;
+
+       xscaleel)
+               basic_machine=armel-unknown
+               ;;
+
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+         basic_machine=$basic_machine-pc
+         ;;
+       # Object if more than one company name word.
+       *-*-*)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+       # Recognize the basic CPU types with company name.
+       580-* \
+       | a29k-* \
+       | aarch64-* | aarch64_be-* \
+       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+       | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+       | avr-* | avr32-* \
+       | be32-* | be64-* \
+       | bfin-* | bs2000-* \
+       | c[123]* | c30-* | [cjt]90-* | c4x-* \
+       | clipper-* | craynv-* | cydra-* \
+       | d10v-* | d30v-* | dlx-* \
+       | elxsi-* \
+       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+       | h8300-* | h8500-* \
+       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+       | hexagon-* \
+       | i*86-* | i860-* | i960-* | ia64-* \
+       | ip2k-* | iq2000-* \
+       | le32-* | le64-* \
+       | lm32-* \
+       | m32c-* | m32r-* | m32rle-* \
+       | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+       | microblaze-* | microblazeel-* \
+       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+       | mips16-* \
+       | mips64-* | mips64el-* \
+       | mips64octeon-* | mips64octeonel-* \
+       | mips64orion-* | mips64orionel-* \
+       | mips64r5900-* | mips64r5900el-* \
+       | mips64vr-* | mips64vrel-* \
+       | mips64vr4100-* | mips64vr4100el-* \
+       | mips64vr4300-* | mips64vr4300el-* \
+       | mips64vr5000-* | mips64vr5000el-* \
+       | mips64vr5900-* | mips64vr5900el-* \
+       | mipsisa32-* | mipsisa32el-* \
+       | mipsisa32r2-* | mipsisa32r2el-* \
+       | mipsisa64-* | mipsisa64el-* \
+       | mipsisa64r2-* | mipsisa64r2el-* \
+       | mipsisa64sb1-* | mipsisa64sb1el-* \
+       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipsr5900-* | mipsr5900el-* \
+       | mipstx39-* | mipstx39el-* \
+       | mmix-* \
+       | mt-* \
+       | msp430-* \
+       | nds32-* | nds32le-* | nds32be-* \
+       | nios-* | nios2-* | nios2eb-* | nios2el-* \
+       | none-* | np1-* | ns16k-* | ns32k-* \
+       | open8-* \
+       | orion-* \
+       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+       | pyramid-* \
+       | rl78-* | romp-* | rs6000-* | rx-* \
+       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+       | sparclite-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+       | tahoe-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+       | tile*-* \
+       | tron-* \
+       | ubicom32-* \
+       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+       | vax-* \
+       | we32k-* \
+       | x86-* | x86_64-* | xc16x-* | xps100-* \
+       | xstormy16-* | xtensa*-* \
+       | ymp-* \
+       | z8k-* | z80-*)
+               ;;
+       # Recognize the basic CPU types without company name, with glob match.
+       xtensa*)
+               basic_machine=$basic_machine-unknown
+               ;;
+       # Recognize the various machine names and aliases which stand
+       # for a CPU type and a company and sometimes even an OS.
+       386bsd)
+               basic_machine=i386-unknown
+               os=-bsd
+               ;;
+       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+               basic_machine=m68000-att
+               ;;
+       3b*)
+               basic_machine=we32k-att
+               ;;
+       a29khif)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       abacus)
+               basic_machine=abacus-unknown
+               ;;
+       adobe68k)
+               basic_machine=m68010-adobe
+               os=-scout
+               ;;
+       alliant | fx80)
+               basic_machine=fx80-alliant
+               ;;
+       altos | altos3068)
+               basic_machine=m68k-altos
+               ;;
+       am29k)
+               basic_machine=a29k-none
+               os=-bsd
+               ;;
+       amd64)
+               basic_machine=x86_64-pc
+               ;;
+       amd64-*)
+               basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       amdahl)
+               basic_machine=580-amdahl
+               os=-sysv
+               ;;
+       amiga | amiga-*)
+               basic_machine=m68k-unknown
+               ;;
+       amigaos | amigados)
+               basic_machine=m68k-unknown
+               os=-amigaos
+               ;;
+       amigaunix | amix)
+               basic_machine=m68k-unknown
+               os=-sysv4
+               ;;
+       apollo68)
+               basic_machine=m68k-apollo
+               os=-sysv
+               ;;
+       apollo68bsd)
+               basic_machine=m68k-apollo
+               os=-bsd
+               ;;
+       aros)
+               basic_machine=i386-pc
+               os=-aros
+               ;;
+       aux)
+               basic_machine=m68k-apple
+               os=-aux
+               ;;
+       balance)
+               basic_machine=ns32k-sequent
+               os=-dynix
+               ;;
+       blackfin)
+               basic_machine=bfin-unknown
+               os=-linux
+               ;;
+       blackfin-*)
+               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       bluegene*)
+               basic_machine=powerpc-ibm
+               os=-cnk
+               ;;
+       c54x-*)
+               basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c55x-*)
+               basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c6x-*)
+               basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       c90)
+               basic_machine=c90-cray
+               os=-unicos
+               ;;
+       cegcc)
+               basic_machine=arm-unknown
+               os=-cegcc
+               ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=-bsd
+               ;;
+       convex-c2)
+               basic_machine=c2-convex
+               os=-bsd
+               ;;
+       convex-c32)
+               basic_machine=c32-convex
+               os=-bsd
+               ;;
+       convex-c34)
+               basic_machine=c34-convex
+               os=-bsd
+               ;;
+       convex-c38)
+               basic_machine=c38-convex
+               os=-bsd
+               ;;
+       cray | j90)
+               basic_machine=j90-cray
+               os=-unicos
+               ;;
+       craynv)
+               basic_machine=craynv-cray
+               os=-unicosmp
+               ;;
+       cr16 | cr16-*)
+               basic_machine=cr16-unknown
+               os=-elf
+               ;;
+       crds | unos)
+               basic_machine=m68k-crds
+               ;;
+       crisv32 | crisv32-* | etraxfs*)
+               basic_machine=crisv32-axis
+               ;;
+       cris | cris-* | etrax*)
+               basic_machine=cris-axis
+               ;;
+       crx)
+               basic_machine=crx-unknown
+               os=-elf
+               ;;
+       da30 | da30-*)
+               basic_machine=m68k-da30
+               ;;
+       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+               basic_machine=mips-dec
+               ;;
+       decsystem10* | dec10*)
+               basic_machine=pdp10-dec
+               os=-tops10
+               ;;
+       decsystem20* | dec20*)
+               basic_machine=pdp10-dec
+               os=-tops20
+               ;;
+       delta | 3300 | motorola-3300 | motorola-delta \
+             | 3300-motorola | delta-motorola)
+               basic_machine=m68k-motorola
+               ;;
+       delta88)
+               basic_machine=m88k-motorola
+               os=-sysv3
+               ;;
+       dicos)
+               basic_machine=i686-pc
+               os=-dicos
+               ;;
+       djgpp)
+               basic_machine=i586-pc
+               os=-msdosdjgpp
+               ;;
+       dpx20 | dpx20-*)
+               basic_machine=rs6000-bull
+               os=-bosx
+               ;;
+       dpx2* | dpx2*-bull)
+               basic_machine=m68k-bull
+               os=-sysv3
+               ;;
+       ebmon29k)
+               basic_machine=a29k-amd
+               os=-ebmon
+               ;;
+       elxsi)
+               basic_machine=elxsi-elxsi
+               os=-bsd
+               ;;
+       encore | umax | mmax)
+               basic_machine=ns32k-encore
+               ;;
+       es1800 | OSE68k | ose68k | ose | OSE)
+               basic_machine=m68k-ericsson
+               os=-ose
+               ;;
+       fx2800)
+               basic_machine=i860-alliant
+               ;;
+       genix)
+               basic_machine=ns32k-ns
+               ;;
+       gmicro)
+               basic_machine=tron-gmicro
+               os=-sysv
+               ;;
+       go32)
+               basic_machine=i386-pc
+               os=-go32
+               ;;
+       h3050r* | hiux*)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       h8300hms)
+               basic_machine=h8300-hitachi
+               os=-hms
+               ;;
+       h8300xray)
+               basic_machine=h8300-hitachi
+               os=-xray
+               ;;
+       h8500hms)
+               basic_machine=h8500-hitachi
+               os=-hms
+               ;;
+       harris)
+               basic_machine=m88k-harris
+               os=-sysv3
+               ;;
+       hp300-*)
+               basic_machine=m68k-hp
+               ;;
+       hp300bsd)
+               basic_machine=m68k-hp
+               os=-bsd
+               ;;
+       hp300hpux)
+               basic_machine=m68k-hp
+               os=-hpux
+               ;;
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k2[0-9][0-9] | hp9k31[0-9])
+               basic_machine=m68000-hp
+               ;;
+       hp9k3[2-9][0-9])
+               basic_machine=m68k-hp
+               ;;
+       hp9k6[0-9][0-9] | hp6[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hp9k7[0-79][0-9] | hp7[0-79][0-9])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k78[0-9] | hp78[0-9])
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+               # FIXME: really hppa2.0-hp
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][13679] | hp8[0-9][13679])
+               basic_machine=hppa1.1-hp
+               ;;
+       hp9k8[0-9][0-9] | hp8[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
+       hppa-next)
+               os=-nextstep3
+               ;;
+       hppaosf)
+               basic_machine=hppa1.1-hp
+               os=-osf
+               ;;
+       hppro)
+               basic_machine=hppa1.1-hp
+               os=-proelf
+               ;;
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               ;;
+       i*86v32)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv32
+               ;;
+       i*86v4*)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv4
+               ;;
+       i*86v)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv
+               ;;
+       i*86sol2)
+               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-solaris2
+               ;;
+       i386mach)
+               basic_machine=i386-mach
+               os=-mach
+               ;;
+       i386-vsta | vsta)
+               basic_machine=i386-unknown
+               os=-vsta
+               ;;
+       iris | iris4d)
+               basic_machine=mips-sgi
+               case $os in
+                   -irix*)
+                       ;;
+                   *)
+                       os=-irix4
+                       ;;
+               esac
+               ;;
+       isi68 | isi)
+               basic_machine=m68k-isi
+               os=-sysv
+               ;;
+       m68knommu)
+               basic_machine=m68k-unknown
+               os=-linux
+               ;;
+       m68knommu-*)
+               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       m88k-omron*)
+               basic_machine=m88k-omron
+               ;;
+       magnum | m3230)
+               basic_machine=mips-mips
+               os=-sysv
+               ;;
+       merlin)
+               basic_machine=ns32k-utek
+               os=-sysv
+               ;;
+       microblaze*)
+               basic_machine=microblaze-xilinx
+               ;;
+       mingw64)
+               basic_machine=x86_64-pc
+               os=-mingw64
+               ;;
+       mingw32)
+               basic_machine=i386-pc
+               os=-mingw32
+               ;;
+       mingw32ce)
+               basic_machine=arm-unknown
+               os=-mingw32ce
+               ;;
+       miniframe)
+               basic_machine=m68000-convergent
+               ;;
+       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+       mips3*-*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               ;;
+       mips3*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+               ;;
+       monitor)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       morphos)
+               basic_machine=powerpc-unknown
+               os=-morphos
+               ;;
+       msdos)
+               basic_machine=i386-pc
+               os=-msdos
+               ;;
+       ms1-*)
+               basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+               ;;
+       msys)
+               basic_machine=i386-pc
+               os=-msys
+               ;;
+       mvs)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
+       nacl)
+               basic_machine=le32-unknown
+               os=-nacl
+               ;;
+       ncr3000)
+               basic_machine=i486-ncr
+               os=-sysv4
+               ;;
+       netbsd386)
+               basic_machine=i386-unknown
+               os=-netbsd
+               ;;
+       netwinder)
+               basic_machine=armv4l-rebel
+               os=-linux
+               ;;
+       news | news700 | news800 | news900)
+               basic_machine=m68k-sony
+               os=-newsos
+               ;;
+       news1000)
+               basic_machine=m68030-sony
+               os=-newsos
+               ;;
+       news-3600 | risc-news)
+               basic_machine=mips-sony
+               os=-newsos
+               ;;
+       necv70)
+               basic_machine=v70-nec
+               os=-sysv
+               ;;
+       next | m*-next )
+               basic_machine=m68k-next
+               case $os in
+                   -nextstep* )
+                       ;;
+                   -ns2*)
+                     os=-nextstep2
+                       ;;
+                   *)
+                     os=-nextstep3
+                       ;;
+               esac
+               ;;
+       nh3000)
+               basic_machine=m68k-harris
+               os=-cxux
+               ;;
+       nh[45]000)
+               basic_machine=m88k-harris
+               os=-cxux
+               ;;
+       nindy960)
+               basic_machine=i960-intel
+               os=-nindy
+               ;;
+       mon960)
+               basic_machine=i960-intel
+               os=-mon960
+               ;;
+       nonstopux)
+               basic_machine=mips-compaq
+               os=-nonstopux
+               ;;
+       np1)
+               basic_machine=np1-gould
+               ;;
+       neo-tandem)
+               basic_machine=neo-tandem
+               ;;
+       nse-tandem)
+               basic_machine=nse-tandem
+               ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+       op50n-* | op60c-*)
+               basic_machine=hppa1.1-oki
+               os=-proelf
+               ;;
+       openrisc | openrisc-*)
+               basic_machine=or32-unknown
+               ;;
+       os400)
+               basic_machine=powerpc-ibm
+               os=-os400
+               ;;
+       OSE68000 | ose68000)
+               basic_machine=m68000-ericsson
+               os=-ose
+               ;;
+       os68k)
+               basic_machine=m68k-none
+               os=-os68k
+               ;;
+       pa-hitachi)
+               basic_machine=hppa1.1-hitachi
+               os=-hiuxwe2
+               ;;
+       paragon)
+               basic_machine=i860-intel
+               os=-osf
+               ;;
+       parisc)
+               basic_machine=hppa-unknown
+               os=-linux
+               ;;
+       parisc-*)
+               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
+       pbd)
+               basic_machine=sparc-tti
+               ;;
+       pbb)
+               basic_machine=m68k-tti
+               ;;
+       pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+       pc98)
+               basic_machine=i386-pc
+               ;;
+       pc98-*)
+               basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentium | p5 | k5 | k6 | nexgen | viac3)
+               basic_machine=i586-pc
+               ;;
+       pentiumpro | p6 | 6x86 | athlon | athlon_*)
+               basic_machine=i686-pc
+               ;;
+       pentiumii | pentium2 | pentiumiii | pentium3)
+               basic_machine=i686-pc
+               ;;
+       pentium4)
+               basic_machine=i786-pc
+               ;;
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumpro-* | p6-* | 6x86-* | athlon-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentium4-*)
+               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pn)
+               basic_machine=pn-gould
+               ;;
+       power)  basic_machine=power-ibm
+               ;;
+       ppc | ppcbe)    basic_machine=powerpc-unknown
+               ;;
+       ppc-* | ppcbe-*)
+               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle | ppc-le | powerpc-little)
+               basic_machine=powerpcle-unknown
+               ;;
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64)  basic_machine=powerpc64-unknown
+               ;;
+       ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+               basic_machine=powerpc64le-unknown
+               ;;
+       ppc64le-* | powerpc64little-*)
+               basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ps2)
+               basic_machine=i386-ibm
+               ;;
+       pw32)
+               basic_machine=i586-unknown
+               os=-pw32
+               ;;
+       rdos | rdos64)
+               basic_machine=x86_64-pc
+               os=-rdos
+               ;;
+       rdos32)
+               basic_machine=i386-pc
+               os=-rdos
+               ;;
+       rom68k)
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
+       rm[46]00)
+               basic_machine=mips-siemens
+               ;;
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
+               ;;
+       s390 | s390-*)
+               basic_machine=s390-ibm
+               ;;
+       s390x | s390x-*)
+               basic_machine=s390x-ibm
+               ;;
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       sb1)
+               basic_machine=mipsisa64sb1-unknown
+               ;;
+       sb1el)
+               basic_machine=mipsisa64sb1el-unknown
+               ;;
+       sde)
+               basic_machine=mipsisa32-sde
+               os=-elf
+               ;;
+       sei)
+               basic_machine=mips-sei
+               os=-seiux
+               ;;
+       sequent)
+               basic_machine=i386-sequent
+               ;;
+       sh)
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+       sh5el)
+               basic_machine=sh5le-unknown
+               ;;
+       sh64)
+               basic_machine=sh64-unknown
+               ;;
+       sparclite-wrs | simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+               ;;
+       sps7)
+               basic_machine=m68k-bull
+               os=-sysv2
+               ;;
+       spur)
+               basic_machine=spur-unknown
+               ;;
+       st2000)
+               basic_machine=m68k-tandem
+               ;;
+       stratus)
+               basic_machine=i860-stratus
+               os=-sysv4
+               ;;
+       strongarm-* | thumb-*)
+               basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       sun2)
+               basic_machine=m68000-sun
+               ;;
+       sun2os3)
+               basic_machine=m68000-sun
+               os=-sunos3
+               ;;
+       sun2os4)
+               basic_machine=m68000-sun
+               os=-sunos4
+               ;;
+       sun3os3)
+               basic_machine=m68k-sun
+               os=-sunos3
+               ;;
+       sun3os4)
+               basic_machine=m68k-sun
+               os=-sunos4
+               ;;
+       sun4os3)
+               basic_machine=sparc-sun
+               os=-sunos3
+               ;;
+       sun4os4)
+               basic_machine=sparc-sun
+               os=-sunos4
+               ;;
+       sun4sol2)
+               basic_machine=sparc-sun
+               os=-solaris2
+               ;;
+       sun3 | sun3-*)
+               basic_machine=m68k-sun
+               ;;
+       sun4)
+               basic_machine=sparc-sun
+               ;;
+       sun386 | sun386i | roadrunner)
+               basic_machine=i386-sun
+               ;;
+       sv1)
+               basic_machine=sv1-cray
+               os=-unicos
+               ;;
+       symmetry)
+               basic_machine=i386-sequent
+               os=-dynix
+               ;;
+       t3e)
+               basic_machine=alphaev5-cray
+               os=-unicos
+               ;;
+       t90)
+               basic_machine=t90-cray
+               os=-unicos
+               ;;
+       tile*)
+               basic_machine=$basic_machine-unknown
+               os=-linux-gnu
+               ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
+       toad1)
+               basic_machine=pdp10-xkl
+               os=-tops20
+               ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+       tpf)
+               basic_machine=s390x-ibm
+               os=-tpf
+               ;;
+       udi29k)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
+       ultra3)
+               basic_machine=a29k-nyu
+               os=-sym1
+               ;;
+       v810 | necv810)
+               basic_machine=v810-nec
+               os=-none
+               ;;
+       vaxv)
+               basic_machine=vax-dec
+               os=-sysv
+               ;;
+       vms)
+               basic_machine=vax-dec
+               os=-vms
+               ;;
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
+               ;;
+       vxworks68)
+               basic_machine=m68k-wrs
+               os=-vxworks
+               ;;
+       vxworks29k)
+               basic_machine=a29k-wrs
+               os=-vxworks
+               ;;
+       w65*)
+               basic_machine=w65-wdc
+               os=-none
+               ;;
+       w89k-*)
+               basic_machine=hppa1.1-winbond
+               os=-proelf
+               ;;
+       xbox)
+               basic_machine=i686-pc
+               os=-mingw32
+               ;;
+       xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
+       xscale-* | xscalee[bl]-*)
+               basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+               ;;
+       ymp)
+               basic_machine=ymp-cray
+               os=-unicos
+               ;;
+       z8k-*-coff)
+               basic_machine=z8k-unknown
+               os=-sim
+               ;;
+       z80-*-coff)
+               basic_machine=z80-unknown
+               os=-sim
+               ;;
+       none)
+               basic_machine=none-none
+               os=-none
+               ;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+       w89k)
+               basic_machine=hppa1.1-winbond
+               ;;
+       op50n)
+               basic_machine=hppa1.1-oki
+               ;;
+       op60c)
+               basic_machine=hppa1.1-oki
+               ;;
+       romp)
+               basic_machine=romp-ibm
+               ;;
+       mmix)
+               basic_machine=mmix-knuth
+               ;;
+       rs6000)
+               basic_machine=rs6000-ibm
+               ;;
+       vax)
+               basic_machine=vax-dec
+               ;;
+       pdp10)
+               # there are many clones, so DEC is not a safe bet
+               basic_machine=pdp10-unknown
+               ;;
+       pdp11)
+               basic_machine=pdp11-dec
+               ;;
+       we32k)
+               basic_machine=we32k-att
+               ;;
+       sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+               basic_machine=sh-unknown
+               ;;
+       sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+               basic_machine=sparc-sun
+               ;;
+       cydra)
+               basic_machine=cydra-cydrome
+               ;;
+       orion)
+               basic_machine=orion-highlevel
+               ;;
+       orion105)
+               basic_machine=clipper-highlevel
+               ;;
+       mac | mpw | mac-mpw)
+               basic_machine=m68k-apple
+               ;;
+       pmac | pmac-mpw)
+               basic_machine=powerpc-apple
+               ;;
+       *-unknown)
+               # Make sure to match an already-canonicalized machine name.
+               ;;
+       *)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+       *-digital*)
+               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+               ;;
+       *-commodore*)
+               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+               ;;
+       *)
+               ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+       # First match some system type aliases
+       # that might get confused with valid system types.
+       # -solaris* is a basic system type, with this one exception.
+       -auroraux)
+               os=-auroraux
+               ;;
+       -solaris1 | -solaris1.*)
+               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               ;;
+       -solaris)
+               os=-solaris2
+               ;;
+       -svr4*)
+               os=-sysv4
+               ;;
+       -unixware*)
+               os=-sysv4.2uw
+               ;;
+       -gnu/linux*)
+               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+               ;;
+       # First accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST END IN A *, to match a version number.
+       # -sysv* is not here because it comes later, after sysvr4.
+       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+             | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+             | -sym* | -kopensolaris* | -plan9* \
+             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+             | -aos* | -aros* \
+             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+             | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+             | -bitrig* | -openbsd* | -solidbsd* \
+             | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+             | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+             | -chorusos* | -chorusrdb* | -cegcc* \
+             | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+             | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+             | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+             | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+             | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
+       -qnx*)
+               case $basic_machine in
+                   x86-* | i*86-*)
+                       ;;
+                   *)
+                       os=-nto$os
+                       ;;
+               esac
+               ;;
+       -nto-qnx*)
+               ;;
+       -nto*)
+               os=`echo $os | sed -e 's|nto|nto-qnx|'`
+               ;;
+       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+               ;;
+       -mac*)
+               os=`echo $os | sed -e 's|mac|macos|'`
+               ;;
+       -linux-dietlibc)
+               os=-linux-dietlibc
+               ;;
+       -linux*)
+               os=`echo $os | sed -e 's|linux|linux-gnu|'`
+               ;;
+       -sunos5*)
+               os=`echo $os | sed -e 's|sunos5|solaris2|'`
+               ;;
+       -sunos6*)
+               os=`echo $os | sed -e 's|sunos6|solaris3|'`
+               ;;
+       -opened*)
+               os=-openedition
+               ;;
+       -os400*)
+               os=-os400
+               ;;
+       -wince*)
+               os=-wince
+               ;;
+       -osfrose*)
+               os=-osfrose
+               ;;
+       -osf*)
+               os=-osf
+               ;;
+       -utek*)
+               os=-bsd
+               ;;
+       -dynix*)
+               os=-bsd
+               ;;
+       -acis*)
+               os=-aos
+               ;;
+       -atheos*)
+               os=-atheos
+               ;;
+       -syllable*)
+               os=-syllable
+               ;;
+       -386bsd)
+               os=-bsd
+               ;;
+       -ctix* | -uts*)
+               os=-sysv
+               ;;
+       -nova*)
+               os=-rtmk-nova
+               ;;
+       -ns2 )
+               os=-nextstep2
+               ;;
+       -nsk*)
+               os=-nsk
+               ;;
+       # Preserve the version number of sinix5.
+       -sinix5.*)
+               os=`echo $os | sed -e 's|sinix|sysv|'`
+               ;;
+       -sinix*)
+               os=-sysv4
+               ;;
+       -tpf*)
+               os=-tpf
+               ;;
+       -triton*)
+               os=-sysv3
+               ;;
+       -oss*)
+               os=-sysv3
+               ;;
+       -svr4)
+               os=-sysv4
+               ;;
+       -svr3)
+               os=-sysv3
+               ;;
+       -sysvr4)
+               os=-sysv4
+               ;;
+       # This must come after -sysvr4.
+       -sysv*)
+               ;;
+       -ose*)
+               os=-ose
+               ;;
+       -es1800*)
+               os=-ose
+               ;;
+       -xenix)
+               os=-xenix
+               ;;
+       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+               os=-mint
+               ;;
+       -aros*)
+               os=-aros
+               ;;
+       -zvmoe)
+               os=-zvmoe
+               ;;
+       -dicos*)
+               os=-dicos
+               ;;
+       -nacl*)
+               ;;
+       -none)
+               ;;
+       *)
+               # Get rid of the `-' at the beginning of $os.
+               os=`echo $os | sed 's/[^-]*-//'`
+               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+       score-*)
+               os=-elf
+               ;;
+       spu-*)
+               os=-elf
+               ;;
+       *-acorn)
+               os=-riscix1.2
+               ;;
+       arm*-rebel)
+               os=-linux
+               ;;
+       arm*-semi)
+               os=-aout
+               ;;
+       c4x-* | tic4x-*)
+               os=-coff
+               ;;
+       hexagon-*)
+               os=-elf
+               ;;
+       tic54x-*)
+               os=-coff
+               ;;
+       tic55x-*)
+               os=-coff
+               ;;
+       tic6x-*)
+               os=-coff
+               ;;
+       # This must come before the *-dec entry.
+       pdp10-*)
+               os=-tops20
+               ;;
+       pdp11-*)
+               os=-none
+               ;;
+       *-dec | vax-*)
+               os=-ultrix4.2
+               ;;
+       m68*-apollo)
+               os=-domain
+               ;;
+       i386-sun)
+               os=-sunos4.0.2
+               ;;
+       m68000-sun)
+               os=-sunos3
+               ;;
+       m68*-cisco)
+               os=-aout
+               ;;
+       mep-*)
+               os=-elf
+               ;;
+       mips*-cisco)
+               os=-elf
+               ;;
+       mips*-*)
+               os=-elf
+               ;;
+       or1k-*)
+               os=-elf
+               ;;
+       or32-*)
+               os=-coff
+               ;;
+       *-tti)  # must be before sparc entry or we get the wrong os.
+               os=-sysv3
+               ;;
+       sparc-* | *-sun)
+               os=-sunos4.1.1
+               ;;
+       *-be)
+               os=-beos
+               ;;
+       *-haiku)
+               os=-haiku
+               ;;
+       *-ibm)
+               os=-aix
+               ;;
+       *-knuth)
+               os=-mmixware
+               ;;
+       *-wec)
+               os=-proelf
+               ;;
+       *-winbond)
+               os=-proelf
+               ;;
+       *-oki)
+               os=-proelf
+               ;;
+       *-hp)
+               os=-hpux
+               ;;
+       *-hitachi)
+               os=-hiux
+               ;;
+       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+               os=-sysv
+               ;;
+       *-cbm)
+               os=-amigaos
+               ;;
+       *-dg)
+               os=-dgux
+               ;;
+       *-dolphin)
+               os=-sysv3
+               ;;
+       m68k-ccur)
+               os=-rtu
+               ;;
+       m88k-omron*)
+               os=-luna
+               ;;
+       *-next )
+               os=-nextstep
+               ;;
+       *-sequent)
+               os=-ptx
+               ;;
+       *-crds)
+               os=-unos
+               ;;
+       *-ns)
+               os=-genix
+               ;;
+       i370-*)
+               os=-mvs
+               ;;
+       *-next)
+               os=-nextstep3
+               ;;
+       *-gould)
+               os=-sysv
+               ;;
+       *-highlevel)
+               os=-bsd
+               ;;
+       *-encore)
+               os=-bsd
+               ;;
+       *-sgi)
+               os=-irix
+               ;;
+       *-siemens)
+               os=-sysv4
+               ;;
+       *-masscomp)
+               os=-rtu
+               ;;
+       f30[01]-fujitsu | f700-fujitsu)
+               os=-uxpv
+               ;;
+       *-rom68k)
+               os=-coff
+               ;;
+       *-*bug)
+               os=-coff
+               ;;
+       *-apple)
+               os=-macos
+               ;;
+       *-atari*)
+               os=-mint
+               ;;
+       *)
+               os=-none
+               ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+       *-unknown)
+               case $os in
+                       -riscix*)
+                               vendor=acorn
+                               ;;
+                       -sunos*)
+                               vendor=sun
+                               ;;
+                       -cnk*|-aix*)
+                               vendor=ibm
+                               ;;
+                       -beos*)
+                               vendor=be
+                               ;;
+                       -hpux*)
+                               vendor=hp
+                               ;;
+                       -mpeix*)
+                               vendor=hp
+                               ;;
+                       -hiux*)
+                               vendor=hitachi
+                               ;;
+                       -unos*)
+                               vendor=crds
+                               ;;
+                       -dgux*)
+                               vendor=dg
+                               ;;
+                       -luna*)
+                               vendor=omron
+                               ;;
+                       -genix*)
+                               vendor=ns
+                               ;;
+                       -mvs* | -opened*)
+                               vendor=ibm
+                               ;;
+                       -os400*)
+                               vendor=ibm
+                               ;;
+                       -ptx*)
+                               vendor=sequent
+                               ;;
+                       -tpf*)
+                               vendor=ibm
+                               ;;
+                       -vxsim* | -vxworks* | -windiss*)
+                               vendor=wrs
+                               ;;
+                       -aux*)
+                               vendor=apple
+                               ;;
+                       -hms*)
+                               vendor=hitachi
+                               ;;
+                       -mpw* | -macos*)
+                               vendor=apple
+                               ;;
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                               vendor=atari
+                               ;;
+                       -vos*)
+                               vendor=stratus
+                               ;;
+               esac
+               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/configure b/configure
new file mode 100755 (executable)
index 0000000..8d534dc
--- /dev/null
+++ b/configure
@@ -0,0 +1,22035 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for ibus 1.5.4.
+#
+# Report bugs to <http://code.google.com/p/ibus/issues/entry>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+       expr "X$arg" : "X\\(.*\\)$as_nl";
+       arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""       $as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1
+
+  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+        /*)
+          for as_base in sh bash ksh sh5; do
+            # Try only shells that exist, to save several forks.
+            as_shell=$as_dir/$as_base
+            if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+                   { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+                  if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+          done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+             { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org and
+$0: http://code.google.com/p/ibus/issues/entry about your
+$0: system, including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+as_awk_strverscmp='
+  # Use only awk features that work with 7th edition Unix awk (1978).
+  # My, what an old awk you have, Mr. Solaris!
+  END {
+    while (length(v1) && length(v2)) {
+      # Set d1 to be the next thing to compare from v1, and likewise for d2.
+      # Normally this is a single character, but if v1 and v2 contain digits,
+      # compare them as integers and fractions as strverscmp does.
+      if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
+       # Split v1 and v2 into their leading digit string components d1 and d2,
+       # and advance v1 and v2 past the leading digit strings.
+       for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue
+       for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue
+       d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1)
+       d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1)
+       if (d1 ~ /^0/) {
+         if (d2 ~ /^0/) {
+           # Compare two fractions.
+           while (d1 ~ /^0/ && d2 ~ /^0/) {
+             d1 = substr(d1, 2); len1--
+             d2 = substr(d2, 2); len2--
+           }
+           if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) {
+             # The two components differ in length, and the common prefix
+             # contains only leading zeros.  Consider the longer to be less.
+             d1 = -len1
+             d2 = -len2
+           } else {
+             # Otherwise, compare as strings.
+             d1 = "x" d1
+             d2 = "x" d2
+           }
+         } else {
+           # A fraction is less than an integer.
+           exit 1
+         }
+       } else {
+         if (d2 ~ /^0/) {
+           # An integer is greater than a fraction.
+           exit 2
+         } else {
+           # Compare two integers.
+           d1 += 0
+           d2 += 0
+         }
+       }
+      } else {
+       # The normal case, without worrying about digits.
+       d1 = substr(v1, 1, 1); v1 = substr(v1, 2)
+       d2 = substr(v2, 1, 1); v2 = substr(v2, 2)
+      }
+      if (d1 < d2) exit 1
+      if (d1 > d2) exit 2
+    }
+    # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10),
+    # which mishandles some comparisons of empty strings to integers.
+    if (length(v2)) exit 1
+    if (length(v1)) exit 2
+  }
+'
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='ibus'
+PACKAGE_TARNAME='ibus'
+PACKAGE_VERSION='1.5.4'
+PACKAGE_STRING='ibus 1.5.4'
+PACKAGE_BUGREPORT='http://code.google.com/p/ibus/issues/entry'
+PACKAGE_URL=''
+
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+ISOCODES_PREFIX
+ISOCODES_LIBS
+ISOCODES_CFLAGS
+LIBNOTIFY_LIBS
+LIBNOTIFY_CFLAGS
+ENABLE_LIBNOTIFY_FALSE
+ENABLE_LIBNOTIFY_TRUE
+ENABLE_ENGINE_FALSE
+ENABLE_ENGINE_TRUE
+ENABLE_UI_FALSE
+ENABLE_UI_TRUE
+IBUS_ICON_KEYBOARD
+DBUS_PYTHON_LIBS
+DBUS_PYTHON_CFLAGS
+GTK3_IM_MODULEDIR
+GTK2_IM_MODULEDIR
+PYTHON_INCLUDES
+PYTHON_CONFIG
+ENABLE_PYGOBJECT_FALSE
+ENABLE_PYGOBJECT_TRUE
+pyoverridesdir
+PYTHON_LIBS
+PYTHON_CFLAGS
+pkgpyexecdir
+pyexecdir
+pkgpythondir
+pythondir
+PYTHON_PLATFORM
+PYTHON_EXEC_PREFIX
+PYTHON_PREFIX
+PYTHON_VERSION
+PYTHON
+ENABLE_DAEMON_FALSE
+ENABLE_DAEMON_TRUE
+ENABLE_SETUP_FALSE
+ENABLE_SETUP_TRUE
+ENABLE_PYTHON_LIBRARY_FALSE
+ENABLE_PYTHON_LIBRARY_TRUE
+ENV_IBUS_TEST
+GSETTINGS_SCHEMA_CONVERT
+GSETTINGS_RULES
+GLIB_COMPILE_SCHEMAS
+gsettingsschemadir
+GSETTINGS_DISABLE_SCHEMAS_COMPILE
+DCONF_LIBS
+DCONF_CFLAGS
+ENABLE_DCONF_FALSE
+ENABLE_DCONF_TRUE
+ENABLE_MEMCONF_FALSE
+ENABLE_MEMCONF_TRUE
+GCONF_SCHEMAS_INSTALL_FALSE
+GCONF_SCHEMAS_INSTALL_TRUE
+GCONF_SCHEMA_FILE_DIR
+GCONF_SCHEMA_CONFIG_SOURCE
+GCONFTOOL
+GCONF_LIBS
+GCONF_CFLAGS
+ENABLE_GCONF_FALSE
+ENABLE_GCONF_TRUE
+DBUS_LIBS
+DBUS_CFLAGS
+GTK_DOC_USE_REBASE_FALSE
+GTK_DOC_USE_REBASE_TRUE
+GTK_DOC_USE_LIBTOOL_FALSE
+GTK_DOC_USE_LIBTOOL_TRUE
+GTK_DOC_BUILD_PDF_FALSE
+GTK_DOC_BUILD_PDF_TRUE
+GTK_DOC_BUILD_HTML_FALSE
+GTK_DOC_BUILD_HTML_TRUE
+ENABLE_GTK_DOC_FALSE
+ENABLE_GTK_DOC_TRUE
+GTKDOC_DEPS_LIBS
+GTKDOC_DEPS_CFLAGS
+HTML_DIR
+GTKDOC_MKPDF
+GTKDOC_REBASE
+GTKDOC_CHECK
+ENABLE_VAPIGEN_FALSE
+ENABLE_VAPIGEN_TRUE
+VAPIGEN_MAKEFILE
+VAPIGEN_VAPIDIR
+VAPIGEN
+IBUS_GIR_SCANNERFLAGS
+HAVE_INTROSPECTION_FALSE
+HAVE_INTROSPECTION_TRUE
+INTROSPECTION_MAKEFILE
+INTROSPECTION_LIBS
+INTROSPECTION_CFLAGS
+INTROSPECTION_TYPELIBDIR
+INTROSPECTION_GIRDIR
+INTROSPECTION_GENERATE
+INTROSPECTION_COMPILER
+INTROSPECTION_SCANNER
+WAYLAND_LIBS
+WAYLAND_CFLAGS
+X11_LIBS
+X11_CFLAGS
+GDK3_LIBS
+GDK3_CFLAGS
+GTK3_LIBS
+GTK3_CFLAGS
+GDK2_LIBS
+GDK2_CFLAGS
+GTK2_LIBS
+GTK2_CFLAGS
+ENABLE_WAYLAND_FALSE
+ENABLE_WAYLAND_TRUE
+ENABLE_XIM_FALSE
+ENABLE_XIM_TRUE
+ENABLE_GTK3_FALSE
+ENABLE_GTK3_TRUE
+ENABLE_GTK2_FALSE
+ENABLE_GTK2_TRUE
+ENABLE_TESTS_FALSE
+ENABLE_TESTS_TRUE
+GTHREAD2_LIBS
+GTHREAD2_CFLAGS
+GIO2_LIBS
+GIO2_CFLAGS
+GOBJECT2_LIBS
+GOBJECT2_CFLAGS
+GLIB2_LIBS
+GLIB2_CFLAGS
+GLIB_COMPILE_RESOURCES
+GLIB_MKENUMS
+GOBJECT_QUERY
+GLIB_GENMARSHAL
+GLIB_LIBS
+GLIB_CFLAGS
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
+ALL_LINGUAS
+INTLTOOL_PERL
+MSGMERGE
+INTLTOOL_POLICY_RULE
+INTLTOOL_SERVICE_RULE
+INTLTOOL_THEME_RULE
+INTLTOOL_SCHEMAS_RULE
+INTLTOOL_CAVES_RULE
+INTLTOOL_XML_NOMERGE_RULE
+INTLTOOL_XML_RULE
+INTLTOOL_KBD_RULE
+INTLTOOL_XAM_RULE
+INTLTOOL_UI_RULE
+INTLTOOL_SOUNDLIST_RULE
+INTLTOOL_SHEET_RULE
+INTLTOOL_SERVER_RULE
+INTLTOOL_PONG_RULE
+INTLTOOL_OAF_RULE
+INTLTOOL_PROP_RULE
+INTLTOOL_KEYS_RULE
+INTLTOOL_DIRECTORY_RULE
+INTLTOOL_DESKTOP_RULE
+intltool__v_merge_options_0
+intltool__v_merge_options_
+INTLTOOL_V_MERGE_OPTIONS
+INTLTOOL__v_MERGE_0
+INTLTOOL__v_MERGE_
+INTLTOOL_V_MERGE
+INTLTOOL_EXTRACT
+INTLTOOL_MERGE
+INTLTOOL_UPDATE
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+DLLTOOL
+OBJDUMP
+LN_S
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+SED
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+LIBTOOL
+VALAC
+DATE_DISPLAY
+GLIB_LOCALE_DIR
+MKINSTALLDIRS
+POSUB
+POFILES
+PO_IN_DATADIR_FALSE
+PO_IN_DATADIR_TRUE
+INTLLIBS
+INSTOBJEXT
+GMOFILES
+DATADIRNAME
+CATOBJEXT
+CATALOGS
+XGETTEXT
+GMSGFMT
+MSGFMT_OPTS
+MSGFMT
+USE_NLS
+GETTEXT_PACKAGE
+LT_CURRENT_MINUS_AGE
+LT_VERSION_INFO
+IBUS_BINARY_VERSION
+IBUS_VERSION
+IBUS_API_VERSION
+IBUS_ABI_AGE
+IBUS_ABI_REVISION
+IBUS_ABI_CURRENT
+IBUS_MICRO_VERSION
+IBUS_MINOR_VERSION
+IBUS_MAJOR_VERSION
+EGREP
+GREP
+CPP
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+VALA_TARGET_GLIB_VERSION
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_maintainer_mode
+enable_dependency_tracking
+enable_static
+enable_shared
+with_pic
+enable_fast_install
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+enable_nls
+enable_glibtest
+enable_tests
+enable_gtk2
+enable_gtk3
+enable_xim
+enable_wayland
+enable_introspection
+enable_vala
+with_html_dir
+enable_gtk_doc
+enable_gtk_doc_html
+enable_gtk_doc_pdf
+enable_gconf
+with_gconf_source
+with_gconf_schema_file_dir
+enable_schemas_install
+enable_memconf
+enable_dconf
+enable_schemas_compile
+enable_python_library
+enable_setup
+with_gtk2_im_module_dir
+with_gtk3_im_module_dir
+enable_dbus_python_check
+enable_key_snooper
+with_no_snooper_apps
+with_panel_icon_keyboard
+enable_surrounding_text
+enable_ui
+enable_engine
+enable_libnotify
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+GLIB2_CFLAGS
+GLIB2_LIBS
+GOBJECT2_CFLAGS
+GOBJECT2_LIBS
+GIO2_CFLAGS
+GIO2_LIBS
+GTHREAD2_CFLAGS
+GTHREAD2_LIBS
+GTK2_CFLAGS
+GTK2_LIBS
+GDK2_CFLAGS
+GDK2_LIBS
+GTK3_CFLAGS
+GTK3_LIBS
+GDK3_CFLAGS
+GDK3_LIBS
+X11_CFLAGS
+X11_LIBS
+WAYLAND_CFLAGS
+WAYLAND_LIBS
+GTKDOC_DEPS_CFLAGS
+GTKDOC_DEPS_LIBS
+DBUS_CFLAGS
+DBUS_LIBS
+GCONF_CFLAGS
+GCONF_LIBS
+DCONF_CFLAGS
+DCONF_LIBS
+PYTHON
+PYTHON_CFLAGS
+PYTHON_LIBS
+DBUS_PYTHON_CFLAGS
+DBUS_PYTHON_LIBS
+LIBNOTIFY_CFLAGS
+LIBNOTIFY_LIBS
+ISOCODES_CFLAGS
+ISOCODES_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+        ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
+               datadir sysconfdir sharedstatedir localstatedir includedir \
+               oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+               libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_myself" : 'X\(//\)[^/]' \| \
+        X"$as_myself" : 'X\(//\)$' \| \
+        X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+       cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+       pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures ibus 1.5.4 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/ibus]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of ibus 1.5.4:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --disable-maintainer-mode
+                          disable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
+  --enable-static[=PKGS]  build static libraries [default=no]
+  --enable-shared[=PKGS]  build shared libraries [default=yes]
+  --enable-fast-install[=PKGS]
+                          optimize for fast installation [default=yes]
+  --disable-libtool-lock  avoid locking (might break parallel builds)
+  --disable-nls           do not use Native Language Support
+  --disable-glibtest      do not try to compile and run a test GLIB program
+  --disable-tests         Do not run tests
+  --disable-gtk2          Do not build gtk2 im module
+  --disable-gtk3          Do not build gtk3 im module
+  --disable-xim           Do not build xim server
+  --enable-wayland        Build wayland support
+  --enable-introspection=[no/auto/yes]
+                          Enable introspection for this build
+  --enable-vala=[no/auto/yes]
+                          build Vala bindings [default=auto]
+  --enable-gtk-doc        use gtk-doc to build documentation [[default=no]]
+  --enable-gtk-doc-html   build documentation in html format [[default=yes]]
+  --enable-gtk-doc-pdf    build documentation in pdf format [[default=no]]
+  --enable-gconf          Use GConf code
+  --disable-schemas-install
+                          Disable the schemas installation
+  --enable-memconf        Enable configure base on memory
+  --disable-dconf         Disable configure base on dconf
+  --disable-schemas-compile
+                          Disable regeneration of gschemas.compiled on install
+  --enable-python-library Use ibus python library
+  --disable-setup         Do not use setup ui.
+  --disable-dbus-python-check
+                          Do not check dbus-python
+  --disable-key-snooper   Always disable key snooper in gtk im module
+  --disable-surrounding-text
+                          Enable surrounding-text support
+  --disable-ui            Disable ibus default user interface
+  --disable-engine        Disable ibus simple engine
+  --disable-libnotify     Disable to link libnotify
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-sysroot=DIR Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).
+  --with-html-dir=PATH    path to installed docs
+  --with-gconf-source=sourceaddress
+                          Config database for installing schema files.
+  --with-gconf-schema-file-dir=dir
+                          Directory for installing schema files.
+  --with-gtk2-im-module-dir=DIR
+                          Select gtk2 immodule dir
+  --with-gtk3-im-module-dir=DIR
+                          Select gtk3 immodule dir
+  --with-no-snooper-apps=regex1,regex2
+                          Does not enable keyboard snooper in those
+                          applications (like: .*chrome.*,firefox.*)
+  --with-panel-icon-keyboard=icon_name
+                          Set the default panel icon (default:
+                          "ibus-keyboard")
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+  PKG_CONFIG  path to pkg-config utility
+  PKG_CONFIG_PATH
+              directories to add to pkg-config's search path
+  PKG_CONFIG_LIBDIR
+              path overriding pkg-config's built-in search path
+  GLIB2_CFLAGS
+              C compiler flags for GLIB2, overriding pkg-config
+  GLIB2_LIBS  linker flags for GLIB2, overriding pkg-config
+  GOBJECT2_CFLAGS
+              C compiler flags for GOBJECT2, overriding pkg-config
+  GOBJECT2_LIBS
+              linker flags for GOBJECT2, overriding pkg-config
+  GIO2_CFLAGS C compiler flags for GIO2, overriding pkg-config
+  GIO2_LIBS   linker flags for GIO2, overriding pkg-config
+  GTHREAD2_CFLAGS
+              C compiler flags for GTHREAD2, overriding pkg-config
+  GTHREAD2_LIBS
+              linker flags for GTHREAD2, overriding pkg-config
+  GTK2_CFLAGS C compiler flags for GTK2, overriding pkg-config
+  GTK2_LIBS   linker flags for GTK2, overriding pkg-config
+  GDK2_CFLAGS C compiler flags for GDK2, overriding pkg-config
+  GDK2_LIBS   linker flags for GDK2, overriding pkg-config
+  GTK3_CFLAGS C compiler flags for GTK3, overriding pkg-config
+  GTK3_LIBS   linker flags for GTK3, overriding pkg-config
+  GDK3_CFLAGS C compiler flags for GDK3, overriding pkg-config
+  GDK3_LIBS   linker flags for GDK3, overriding pkg-config
+  X11_CFLAGS  C compiler flags for X11, overriding pkg-config
+  X11_LIBS    linker flags for X11, overriding pkg-config
+  WAYLAND_CFLAGS
+              C compiler flags for WAYLAND, overriding pkg-config
+  WAYLAND_LIBS
+              linker flags for WAYLAND, overriding pkg-config
+  GTKDOC_DEPS_CFLAGS
+              C compiler flags for GTKDOC_DEPS, overriding pkg-config
+  GTKDOC_DEPS_LIBS
+              linker flags for GTKDOC_DEPS, overriding pkg-config
+  DBUS_CFLAGS C compiler flags for DBUS, overriding pkg-config
+  DBUS_LIBS   linker flags for DBUS, overriding pkg-config
+  GCONF_CFLAGS
+              C compiler flags for GCONF, overriding pkg-config
+  GCONF_LIBS  linker flags for GCONF, overriding pkg-config
+  DCONF_CFLAGS
+              C compiler flags for DCONF, overriding pkg-config
+  DCONF_LIBS  linker flags for DCONF, overriding pkg-config
+  PYTHON      the Python interpreter
+  PYTHON_CFLAGS
+              C compiler flags for PYTHON, overriding pkg-config
+  PYTHON_LIBS linker flags for PYTHON, overriding pkg-config
+  DBUS_PYTHON_CFLAGS
+              C compiler flags for DBUS_PYTHON, overriding pkg-config
+  DBUS_PYTHON_LIBS
+              linker flags for DBUS_PYTHON, overriding pkg-config
+  LIBNOTIFY_CFLAGS
+              C compiler flags for LIBNOTIFY, overriding pkg-config
+  LIBNOTIFY_LIBS
+              linker flags for LIBNOTIFY, overriding pkg-config
+  ISOCODES_CFLAGS
+              C compiler flags for ISOCODES, overriding pkg-config
+  ISOCODES_LIBS
+              linker flags for ISOCODES, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <http://code.google.com/p/ibus/issues/entry>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+ibus configure 1.5.4
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## --------------------------------------------------------- ##
+## Report this to http://code.google.com/p/ibus/issues/entry ##
+## --------------------------------------------------------- ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by ibus $as_me 1.5.4, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+       ac_must_keep_next=false # Got value, back to normal.
+      else
+       case $ac_arg in
+         *=* | --config-cache | -C | -disable-* | --disable-* \
+         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+         | -with-* | --with-* | -without-* | --without-* | --x)
+           case "$ac_configure_args0 " in
+             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+           esac
+           ;;
+         -* ) ac_must_keep_next=true ;;
+       esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+       "s/'\''/'\''\\\\'\'''\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+       eval ac_val=\$$ac_var
+       case $ac_val in
+       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+       esac
+       $as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+       # differences in whitespace do not lead to failure.
+       ac_old_val_w=`echo x $ac_old_val`
+       ac_new_val_w=`echo x $ac_new_val`
+       if test "$ac_old_val_w" != "$ac_new_val_w"; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+         ac_cache_corrupted=:
+       else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+         eval $ac_var=\$ac_old_val
+       fi
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+
+
+
+
+# Required versions of other packages.
+
+
+# VALA_TARGET_GLIB_VERSION is used by valac --ccode --target-glib .
+# VALA_TARGET_GLIB_VERSION and glib_required_version will be different
+# in the future.
+VALA_TARGET_GLIB_VERSION=2.32
+
+
+# Init automake.
+am__api_version='1.13'
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+       if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+         if test $ac_prog = install &&
+           grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+           # AIX install.  It has an incompatible calling convention.
+           :
+         elif test $ac_prog = install &&
+           grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+           # program-specific install script used by HP pwplus--don't use.
+           :
+         else
+           rm -rf conftest.one conftest.two conftest.dir
+           echo one > conftest.one
+           echo two > conftest.two
+           mkdir conftest.dir
+           if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+             test -s conftest.one && test -s conftest.two &&
+             test -s conftest.dir/conftest.one &&
+             test -s conftest.dir/conftest.two
+           then
+             ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+             break 3
+           fi
+         fi
+       fi
+      done
+    done
+    ;;
+esac
+
+  done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[\\\"\#\$\&\'\`$am_lf]*)
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+  *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+       && test "$*" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\    *)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\    *)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+  if ${ac_cv_path_mkdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in mkdir gmkdir; do
+        for ac_exec_ext in '' $ac_executable_extensions; do
+          as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+          case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+            'mkdir (GNU coreutils) '* | \
+            'mkdir (coreutils) '* | \
+            'mkdir (fileutils) '4.1*)
+              ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+              break 3;;
+          esac
+        done
+       done
+  done
+IFS=$as_save_IFS
+
+fi
+
+  test -d ./--version && rmdir ./--version
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+       @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  am__isrc=' -I$(srcdir)'
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='ibus'
+ VERSION='1.5.4'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+    # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+  USE_MAINTAINER_MODE=yes
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+   if test $USE_MAINTAINER_MODE = yes; then
+  MAINTAINER_MODE_TRUE=
+  MAINTAINER_MODE_FALSE='#'
+else
+  MAINTAINER_MODE_TRUE='#'
+  MAINTAINER_MODE_FALSE=
+fi
+
+  MAINT=$MAINTAINER_MODE_TRUE
+
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+       @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+  enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+       ;;
+    [ab].out )
+       # We found the default executable, but exeext='' is most
+       # certainly right.
+       break;;
+    *.* )
+       if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+       then :; else
+          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+       fi
+       # We set ac_cv_exeext here because the later test for it is not
+       # safe: cross compilers may not add the suffix if given an `-o'
+       # argument, so we may need to know it at that point already.
+       # Even if this section looks crufty: it has the advantage of
+       # actually working.
+       break;;
+    * )
+       break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+         break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+        CFLAGS="-g"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+                  (('a' <= (c) && (c) <= 'i') \
+                    || ('j' <= (c) && (c) <= 'r') \
+                    || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                 inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+  MINIX=yes
+else
+  MINIX=
+fi
+
+
+  if test "$MINIX" = yes; then
+
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "#define _MINIX 1" >>confdefs.h
+
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#         define __EXTENSIONS__ 1
+          $ac_includes_default
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_safe_to_define___extensions__=yes
+else
+  ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+
+
+# Support silent build rules. Disable
+# by either passing --disable-silent-rules to configure or passing V=1
+# to make
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=0;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+
+# Define sustituted variables:
+IBUS_MAJOR_VERSION=1
+IBUS_MINOR_VERSION=5
+IBUS_MICRO_VERSION=4
+IBUS_ABI_CURRENT=5
+IBUS_ABI_REVISION=504
+IBUS_ABI_AGE=0
+IBUS_VERSION=1.5.4
+IBUS_API_VERSION=1.0
+IBUS_BINARY_VERSION=1.5.0.504
+
+
+
+
+
+
+
+
+
+
+# libtool versioning
+#
+# If LT_VERSION_INFO="lt_current:lt_revision:lt_age", libibus is
+# libibus-ibus_api_version.so.(lt_current - lt_age).lt_age.lt_revision
+# If the abi is changed, but it is compatible with last version,
+# ibus_abi_current++, ibus_abi_age++;
+# If the abi is not compatible with last version,
+# ibus_abi_current++, ibus_abi_age = 0;
+
+
+
+LT_VERSION_INFO="5:504:0"
+LT_CURRENT_MINUS_AGE=5
+
+
+
+# Define GETTEXT_* variables.
+GETTEXT_PACKAGE=ibus10
+
+
+cat >>confdefs.h <<_ACEOF
+#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
+_ACEOF
+
+
+   for ac_header in locale.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
+if test "x$ac_cv_header_locale_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LOCALE_H 1
+_ACEOF
+
+fi
+
+done
+
+    if test $ac_cv_header_locale_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
+$as_echo_n "checking for LC_MESSAGES... " >&6; }
+if ${am_cv_val_LC_MESSAGES+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+int
+main ()
+{
+return LC_MESSAGES
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_val_LC_MESSAGES=yes
+else
+  am_cv_val_LC_MESSAGES=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5
+$as_echo "$am_cv_val_LC_MESSAGES" >&6; }
+    if test $am_cv_val_LC_MESSAGES = yes; then
+
+$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
+
+    fi
+  fi
+     USE_NLS=yes
+
+
+    gt_cv_have_gettext=no
+
+    CATOBJEXT=NONE
+    XGETTEXT=:
+    INTLLIBS=
+
+    ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes; then :
+  gt_cv_func_dgettext_libintl="no"
+      libintl_extra_libs=""
+
+      #
+      # First check in libc
+      #
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5
+$as_echo_n "checking for ngettext in libc... " >&6; }
+if ${gt_cv_func_ngettext_libc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <libintl.h>
+
+int
+main ()
+{
+return !ngettext ("","", 1)
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_ngettext_libc=yes
+else
+  gt_cv_func_ngettext_libc=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5
+$as_echo "$gt_cv_func_ngettext_libc" >&6; }
+
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5
+$as_echo_n "checking for dgettext in libc... " >&6; }
+if ${gt_cv_func_dgettext_libc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <libintl.h>
+
+int
+main ()
+{
+return !dgettext ("","")
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_dgettext_libc=yes
+else
+  gt_cv_func_dgettext_libc=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5
+$as_echo "$gt_cv_func_dgettext_libc" >&6; }
+      fi
+
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+        for ac_func in bind_textdomain_codeset
+do :
+  ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
+_ACEOF
+
+fi
+done
+
+      fi
+
+      #
+      # If we don't have everything we want, check in libintl
+      #
+      if test "$gt_cv_func_dgettext_libc" != "yes" \
+        || test "$gt_cv_func_ngettext_libc" != "yes" \
+         || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5
+$as_echo_n "checking for bindtextdomain in -lintl... " >&6; }
+if ${ac_cv_lib_intl_bindtextdomain+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char bindtextdomain ();
+int
+main ()
+{
+return bindtextdomain ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_bindtextdomain=yes
+else
+  ac_cv_lib_intl_bindtextdomain=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5
+$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; }
+if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
+$as_echo_n "checking for ngettext in -lintl... " >&6; }
+if ${ac_cv_lib_intl_ngettext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ngettext ();
+int
+main ()
+{
+return ngettext ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_ngettext=yes
+else
+  ac_cv_lib_intl_ngettext=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
+$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
+if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5
+$as_echo_n "checking for dgettext in -lintl... " >&6; }
+if ${ac_cv_lib_intl_dgettext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dgettext ();
+int
+main ()
+{
+return dgettext ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_dgettext=yes
+else
+  ac_cv_lib_intl_dgettext=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5
+$as_echo "$ac_cv_lib_intl_dgettext" >&6; }
+if test "x$ac_cv_lib_intl_dgettext" = xyes; then :
+  gt_cv_func_dgettext_libintl=yes
+fi
+
+fi
+
+fi
+
+
+       if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5
+$as_echo_n "checking if -liconv is needed to use gettext... " >&6; }
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
+$as_echo_n "checking for ngettext in -lintl... " >&6; }
+if ${ac_cv_lib_intl_ngettext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl -liconv $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ngettext ();
+int
+main ()
+{
+return ngettext ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_ngettext=yes
+else
+  ac_cv_lib_intl_ngettext=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
+$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
+if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5
+$as_echo_n "checking for dcgettext in -lintl... " >&6; }
+if ${ac_cv_lib_intl_dcgettext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl -liconv $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dcgettext ();
+int
+main ()
+{
+return dcgettext ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_dcgettext=yes
+else
+  ac_cv_lib_intl_dcgettext=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5
+$as_echo "$ac_cv_lib_intl_dcgettext" >&6; }
+if test "x$ac_cv_lib_intl_dcgettext" = xyes; then :
+  gt_cv_func_dgettext_libintl=yes
+                       libintl_extra_libs=-liconv
+else
+  :
+fi
+
+else
+  :
+fi
+
+        fi
+
+        #
+        # If we found libintl, then check in it for bind_textdomain_codeset();
+        # we'll prefer libc if neither have bind_textdomain_codeset(),
+        # and both have dgettext and ngettext
+        #
+        if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
+          glib_save_LIBS="$LIBS"
+          LIBS="$LIBS -lintl $libintl_extra_libs"
+          unset ac_cv_func_bind_textdomain_codeset
+          for ac_func in bind_textdomain_codeset
+do :
+  ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
+_ACEOF
+
+fi
+done
+
+          LIBS="$glib_save_LIBS"
+
+          if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
+            gt_cv_func_dgettext_libc=no
+          else
+            if test "$gt_cv_func_dgettext_libc" = "yes" \
+               && test "$gt_cv_func_ngettext_libc" = "yes"; then
+              gt_cv_func_dgettext_libintl=no
+            fi
+          fi
+        fi
+      fi
+
+      if test "$gt_cv_func_dgettext_libc" = "yes" \
+       || test "$gt_cv_func_dgettext_libintl" = "yes"; then
+        gt_cv_have_gettext=yes
+      fi
+
+      if test "$gt_cv_func_dgettext_libintl" = "yes"; then
+        INTLLIBS="-lintl $libintl_extra_libs"
+      fi
+
+      if test "$gt_cv_have_gettext" = "yes"; then
+
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
+
+       # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGFMT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case "$MSGFMT" in
+  /*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+       ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
+  ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != "no"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+       if test "$MSGFMT" != "no"; then
+          glib_save_LIBS="$LIBS"
+          LIBS="$LIBS $INTLLIBS"
+         for ac_func in dcgettext
+do :
+  ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext"
+if test "x$ac_cv_func_dcgettext" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DCGETTEXT 1
+_ACEOF
+
+fi
+done
+
+         MSGFMT_OPTS=
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5
+$as_echo_n "checking if msgfmt accepts -c... " >&6; }
+         cat >conftest.foo <<_ACEOF
+
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: test 1.0\n"
+"PO-Revision-Date: 2007-02-15 12:01+0100\n"
+"Last-Translator: test <foo@bar.xx>\n"
+"Language-Team: C <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+_ACEOF
+if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5
+  ($MSGFMT -c -o /dev/null conftest.foo) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+echo "$as_me: failed input was:" >&5
+sed 's/^/| /' conftest.foo >&5
+fi
+
+         # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GMSGFMT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GMSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+         # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XGETTEXT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+       ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+extern int _nl_msg_cat_cntr;
+                        return _nl_msg_cat_cntr
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  CATOBJEXT=.gmo
+             DATADIRNAME=share
+else
+  case $host in
+           *-*-solaris*)
+                                                               ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
+  CATOBJEXT=.gmo
+               DATADIRNAME=share
+else
+  CATOBJEXT=.mo
+               DATADIRNAME=lib
+fi
+
+           ;;
+           *-*-openbsd*)
+           CATOBJEXT=.mo
+            DATADIRNAME=share
+           ;;
+           *)
+           CATOBJEXT=.mo
+            DATADIRNAME=lib
+           ;;
+           esac
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+          LIBS="$glib_save_LIBS"
+         INSTOBJEXT=.mo
+       else
+         gt_cv_have_gettext=no
+       fi
+      fi
+
+fi
+
+
+
+    if test "$gt_cv_have_gettext" = "yes" ; then
+
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
+
+    fi
+
+        if test "$XGETTEXT" != ":"; then
+                  if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+        : ;
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
+$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
+        XGETTEXT=":"
+      fi
+    fi
+
+    # We need to process the po/ directory.
+    POSUB=po
+
+    ac_config_commands="$ac_config_commands default-1"
+
+
+                for lang in $ALL_LINGUAS; do
+      GMOFILES="$GMOFILES $lang.gmo"
+      POFILES="$POFILES $lang.po"
+    done
+
+
+
+
+
+
+
+
+
+
+
+
+
+   if test "$gt_cv_have_gettext" = "yes"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
+$as_echo_n "checking for catalogs to be installed... " >&6; }
+       NEW_LINGUAS=
+       for presentlang in $ALL_LINGUAS; do
+         useit=no
+         if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
+           desiredlanguages="$LINGUAS"
+         else
+           desiredlanguages="$ALL_LINGUAS"
+         fi
+         for desiredlang in $desiredlanguages; do
+          # Use the presentlang catalog if desiredlang is
+           #   a. equal to presentlang, or
+           #   b. a variant of presentlang (because in this case,
+           #      presentlang can be used as a fallback for messages
+           #      which are not translated in the desiredlang catalog).
+           case "$desiredlang" in
+             "$presentlang"*) useit=yes;;
+           esac
+         done
+         if test $useit = yes; then
+           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+         fi
+       done
+       LINGUAS=$NEW_LINGUAS
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
+$as_echo "$LINGUAS" >&6; }
+     fi
+
+          if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
+
+            MKINSTALLDIRS=
+   if test -n "$ac_aux_dir"; then
+     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+   fi
+   if test -z "$MKINSTALLDIRS"; then
+     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+   fi
+
+
+         test -d po || mkdir po
+   if test "x$srcdir" != "x."; then
+     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+       posrcprefix="$srcdir/"
+     else
+       posrcprefix="../$srcdir/"
+     fi
+   else
+     posrcprefix="../"
+   fi
+   rm -f po/POTFILES
+   sed -e "/^#/d" -e "/^\$/d" -e "s,.*,        $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+       < $srcdir/po/POTFILES.in > po/POTFILES
+
+glib_save_prefix="$prefix"
+glib_save_exec_prefix="$exec_prefix"
+glib_save_datarootdir="$datarootdir"
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+datarootdir=`eval echo "${datarootdir}"`
+if test "x$CATOBJEXT" = "x.mo" ; then
+  localedir=`eval echo "${libdir}/locale"`
+else
+  localedir=`eval echo "${datadir}/locale"`
+fi
+prefix="$glib_save_prefix"
+exec_prefix="$glib_save_exec_prefix"
+datarootdir="$glib_save_datarootdir"
+
+cat >>confdefs.h <<_ACEOF
+#define GLIB_LOCALE_DIR "$localedir"
+_ACEOF
+
+
+GLIB_LOCALE_DIR=$localedir
+
+
+# For dislpay date.
+
+DATE_DISPLAY="Fri Sep 20 2013"
+
+
+
+# Check for programs.
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+        CFLAGS="-g"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+if test "x$CC" != xcc; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
+$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
+$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
+fi
+set dummy $CC; ac_cc=`$as_echo "$2" |
+                     sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+rm -f conftest2.*
+if { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+   test -f conftest2.$ac_objext && { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
+then
+  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+  if test "x$CC" != xcc; then
+    # Test first that cc exists at all.
+    if { ac_try='cc -c conftest.$ac_ext >&5'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+      rm -f conftest2.*
+      if { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+        test -f conftest2.$ac_objext && { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
+      then
+       # cc works too.
+       :
+      else
+       # cc exists but doesn't like -o.
+       eval ac_cv_prog_cc_${ac_cc}_c_o=no
+      fi
+    fi
+  fi
+else
+  eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f core conftest*
+
+fi
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+
+
+   case $ac_cv_prog_cc_stdc in #(
+  no) :
+    ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #(
+  *) :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+if ${ac_cv_prog_cc_c99+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros.  These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+  int x = 1234;
+  int y = 5678;
+  debug ("Flag");
+  debug ("X = %d\n", x);
+  showlist (The first, second, and third items.);
+  report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+  your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+  your preprocessor is broken;
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+  int datasize;
+  double data[];
+};
+
+struct named_init {
+  int number;
+  const wchar_t *name;
+  double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+  // See if C++-style comments work.
+  // Iterate through items via the restricted pointer.
+  // Also check for declarations in for loops.
+  for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+    continue;
+  return 0;
+}
+
+// Check varargs and va_copy.
+static void
+test_varargs (const char *format, ...)
+{
+  va_list args;
+  va_start (args, format);
+  va_list args_copy;
+  va_copy (args_copy, args);
+
+  const char *str;
+  int number;
+  float fnumber;
+
+  while (*format)
+    {
+      switch (*format++)
+       {
+       case 's': // string
+         str = va_arg (args_copy, const char *);
+         break;
+       case 'd': // int
+         number = va_arg (args_copy, int);
+         break;
+       case 'f': // float
+         fnumber = va_arg (args_copy, double);
+         break;
+       default:
+         break;
+       }
+    }
+  va_end (args_copy);
+  va_end (args);
+}
+
+int
+main ()
+{
+
+  // Check bool.
+  _Bool success = false;
+
+  // Check restrict.
+  if (test_restrict ("String literal") == 0)
+    success = true;
+  char *restrict newvar = "Another string";
+
+  // Check varargs.
+  test_varargs ("s, d' f .", "string", 65, 34.234);
+  test_varargs_macros ();
+
+  // Check flexible array members.
+  struct incomplete_array *ia =
+    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+  ia->datasize = 10;
+  for (int i = 0; i < ia->datasize; ++i)
+    ia->data[i] = i * 1.234;
+
+  // Check named initializers.
+  struct named_init ni = {
+    .number = 34,
+    .name = L"Test wide string",
+    .average = 543.34343,
+  };
+
+  ni.number = 58;
+
+  int dynamic_array[ni.number];
+  dynamic_array[ni.number - 1] = 543;
+
+  // work around unused variable warnings
+  return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+         || dynamic_array[ni.number - 1] != 543);
+
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c99"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c99" != xno; then :
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+else
+  ac_cv_prog_cc_stdc=no
+fi
+
+fi
+ ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5
+$as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; }
+  if ${ac_cv_prog_cc_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+
+  case $ac_cv_prog_cc_stdc in #(
+  no) :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;; #(
+  '') :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;; #(
+  *) :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5
+$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;;
+esac
+
+# Extract the first word of "valac", so it can be a program name with args.
+set dummy valac; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_VALAC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $VALAC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_VALAC="$VALAC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_VALAC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_VALAC" && ac_cv_path_VALAC="valac"
+  ;;
+esac
+fi
+VALAC=$ac_cv_path_VALAC
+if test -n "$VALAC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALAC" >&5
+$as_echo "$VALAC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+   if test "$VALAC" != valac && test -n "0.14"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $VALAC is at least version 0.14" >&5
+$as_echo_n "checking whether $VALAC is at least version 0.14... " >&6; }
+       am__vala_version=`$VALAC --version | sed 's/Vala  *//'`
+       as_arg_v1=0.14
+as_arg_v2="$am__vala_version"
+awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
+case $? in #(
+  1) :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; } ;; #(
+  0) :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; } ;; #(
+  2) :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+          VALAC=valac ;; #(
+  *) :
+     ;;
+esac
+fi
+    if test "$VALAC" = valac; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no proper vala compiler found" >&5
+$as_echo "$as_me: WARNING: no proper vala compiler found" >&2;}
+         { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: you will not be able to compile vala source files" >&5
+$as_echo "$as_me: WARNING: you will not be able to compile vala source files" >&2;}
+    else
+      :
+    fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+       @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+# i18n stuff
+
+   for ac_header in locale.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
+if test "x$ac_cv_header_locale_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LOCALE_H 1
+_ACEOF
+
+fi
+
+done
+
+    if test $ac_cv_header_locale_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
+$as_echo_n "checking for LC_MESSAGES... " >&6; }
+if ${am_cv_val_LC_MESSAGES+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <locale.h>
+int
+main ()
+{
+return LC_MESSAGES
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_val_LC_MESSAGES=yes
+else
+  am_cv_val_LC_MESSAGES=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_val_LC_MESSAGES" >&5
+$as_echo "$am_cv_val_LC_MESSAGES" >&6; }
+    if test $am_cv_val_LC_MESSAGES = yes; then
+
+$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
+
+    fi
+  fi
+     USE_NLS=yes
+
+
+    gt_cv_have_gettext=no
+
+    CATOBJEXT=NONE
+    XGETTEXT=:
+    INTLLIBS=
+
+    ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes; then :
+  gt_cv_func_dgettext_libintl="no"
+      libintl_extra_libs=""
+
+      #
+      # First check in libc
+      #
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in libc" >&5
+$as_echo_n "checking for ngettext in libc... " >&6; }
+if ${gt_cv_func_ngettext_libc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <libintl.h>
+
+int
+main ()
+{
+return !ngettext ("","", 1)
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_ngettext_libc=yes
+else
+  gt_cv_func_ngettext_libc=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_ngettext_libc" >&5
+$as_echo "$gt_cv_func_ngettext_libc" >&6; }
+
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in libc" >&5
+$as_echo_n "checking for dgettext in libc... " >&6; }
+if ${gt_cv_func_dgettext_libc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <libintl.h>
+
+int
+main ()
+{
+return !dgettext ("","")
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_dgettext_libc=yes
+else
+  gt_cv_func_dgettext_libc=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_dgettext_libc" >&5
+$as_echo "$gt_cv_func_dgettext_libc" >&6; }
+      fi
+
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+        for ac_func in bind_textdomain_codeset
+do :
+  ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
+_ACEOF
+
+fi
+done
+
+      fi
+
+      #
+      # If we don't have everything we want, check in libintl
+      #
+      if test "$gt_cv_func_dgettext_libc" != "yes" \
+        || test "$gt_cv_func_ngettext_libc" != "yes" \
+         || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5
+$as_echo_n "checking for bindtextdomain in -lintl... " >&6; }
+if ${ac_cv_lib_intl_bindtextdomain+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char bindtextdomain ();
+int
+main ()
+{
+return bindtextdomain ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_bindtextdomain=yes
+else
+  ac_cv_lib_intl_bindtextdomain=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5
+$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; }
+if test "x$ac_cv_lib_intl_bindtextdomain" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
+$as_echo_n "checking for ngettext in -lintl... " >&6; }
+if ${ac_cv_lib_intl_ngettext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ngettext ();
+int
+main ()
+{
+return ngettext ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_ngettext=yes
+else
+  ac_cv_lib_intl_ngettext=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
+$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
+if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5
+$as_echo_n "checking for dgettext in -lintl... " >&6; }
+if ${ac_cv_lib_intl_dgettext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dgettext ();
+int
+main ()
+{
+return dgettext ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_dgettext=yes
+else
+  ac_cv_lib_intl_dgettext=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5
+$as_echo "$ac_cv_lib_intl_dgettext" >&6; }
+if test "x$ac_cv_lib_intl_dgettext" = xyes; then :
+  gt_cv_func_dgettext_libintl=yes
+fi
+
+fi
+
+fi
+
+
+       if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -liconv is needed to use gettext" >&5
+$as_echo_n "checking if -liconv is needed to use gettext... " >&6; }
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ngettext in -lintl" >&5
+$as_echo_n "checking for ngettext in -lintl... " >&6; }
+if ${ac_cv_lib_intl_ngettext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl -liconv $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ngettext ();
+int
+main ()
+{
+return ngettext ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_ngettext=yes
+else
+  ac_cv_lib_intl_ngettext=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_ngettext" >&5
+$as_echo "$ac_cv_lib_intl_ngettext" >&6; }
+if test "x$ac_cv_lib_intl_ngettext" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dcgettext in -lintl" >&5
+$as_echo_n "checking for dcgettext in -lintl... " >&6; }
+if ${ac_cv_lib_intl_dcgettext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl -liconv $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dcgettext ();
+int
+main ()
+{
+return dcgettext ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_intl_dcgettext=yes
+else
+  ac_cv_lib_intl_dcgettext=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dcgettext" >&5
+$as_echo "$ac_cv_lib_intl_dcgettext" >&6; }
+if test "x$ac_cv_lib_intl_dcgettext" = xyes; then :
+  gt_cv_func_dgettext_libintl=yes
+                       libintl_extra_libs=-liconv
+else
+  :
+fi
+
+else
+  :
+fi
+
+        fi
+
+        #
+        # If we found libintl, then check in it for bind_textdomain_codeset();
+        # we'll prefer libc if neither have bind_textdomain_codeset(),
+        # and both have dgettext and ngettext
+        #
+        if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
+          glib_save_LIBS="$LIBS"
+          LIBS="$LIBS -lintl $libintl_extra_libs"
+          unset ac_cv_func_bind_textdomain_codeset
+          for ac_func in bind_textdomain_codeset
+do :
+  ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
+_ACEOF
+
+fi
+done
+
+          LIBS="$glib_save_LIBS"
+
+          if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
+            gt_cv_func_dgettext_libc=no
+          else
+            if test "$gt_cv_func_dgettext_libc" = "yes" \
+               && test "$gt_cv_func_ngettext_libc" = "yes"; then
+              gt_cv_func_dgettext_libintl=no
+            fi
+          fi
+        fi
+      fi
+
+      if test "$gt_cv_func_dgettext_libc" = "yes" \
+       || test "$gt_cv_func_dgettext_libintl" = "yes"; then
+        gt_cv_have_gettext=yes
+      fi
+
+      if test "$gt_cv_func_dgettext_libintl" = "yes"; then
+        INTLLIBS="-lintl $libintl_extra_libs"
+      fi
+
+      if test "$gt_cv_have_gettext" = "yes"; then
+
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
+
+       # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGFMT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case "$MSGFMT" in
+  /*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+       ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
+  ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != "no"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+       if test "$MSGFMT" != "no"; then
+          glib_save_LIBS="$LIBS"
+          LIBS="$LIBS $INTLLIBS"
+         for ac_func in dcgettext
+do :
+  ac_fn_c_check_func "$LINENO" "dcgettext" "ac_cv_func_dcgettext"
+if test "x$ac_cv_func_dcgettext" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DCGETTEXT 1
+_ACEOF
+
+fi
+done
+
+         MSGFMT_OPTS=
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if msgfmt accepts -c" >&5
+$as_echo_n "checking if msgfmt accepts -c... " >&6; }
+         cat >conftest.foo <<_ACEOF
+
+msgid ""
+msgstr ""
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: test 1.0\n"
+"PO-Revision-Date: 2007-02-15 12:01+0100\n"
+"Last-Translator: test <foo@bar.xx>\n"
+"Language-Team: C <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+_ACEOF
+if { { $as_echo "$as_me:${as_lineno-$LINENO}: \$MSGFMT -c -o /dev/null conftest.foo"; } >&5
+  ($MSGFMT -c -o /dev/null conftest.foo) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  MSGFMT_OPTS=-c; { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+echo "$as_me: failed input was:" >&5
+sed 's/^/| /' conftest.foo >&5
+fi
+
+         # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GMSGFMT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GMSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+         # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XGETTEXT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+       ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+extern int _nl_msg_cat_cntr;
+                        return _nl_msg_cat_cntr
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  CATOBJEXT=.gmo
+             DATADIRNAME=share
+else
+  case $host in
+           *-*-solaris*)
+                                                               ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
+  CATOBJEXT=.gmo
+               DATADIRNAME=share
+else
+  CATOBJEXT=.mo
+               DATADIRNAME=lib
+fi
+
+           ;;
+           *-*-openbsd*)
+           CATOBJEXT=.mo
+            DATADIRNAME=share
+           ;;
+           *)
+           CATOBJEXT=.mo
+            DATADIRNAME=lib
+           ;;
+           esac
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+          LIBS="$glib_save_LIBS"
+         INSTOBJEXT=.mo
+       else
+         gt_cv_have_gettext=no
+       fi
+      fi
+
+fi
+
+
+
+    if test "$gt_cv_have_gettext" = "yes" ; then
+
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
+
+    fi
+
+        if test "$XGETTEXT" != ":"; then
+                  if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+        : ;
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
+$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
+        XGETTEXT=":"
+      fi
+    fi
+
+    # We need to process the po/ directory.
+    POSUB=po
+
+    ac_config_commands="$ac_config_commands default-2"
+
+
+                for lang in $ALL_LINGUAS; do
+      GMOFILES="$GMOFILES $lang.gmo"
+      POFILES="$POFILES $lang.po"
+    done
+
+
+
+
+
+
+
+
+
+
+
+
+
+   if test "$gt_cv_have_gettext" = "yes"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
+$as_echo_n "checking for catalogs to be installed... " >&6; }
+       NEW_LINGUAS=
+       for presentlang in $ALL_LINGUAS; do
+         useit=no
+         if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then
+           desiredlanguages="$LINGUAS"
+         else
+           desiredlanguages="$ALL_LINGUAS"
+         fi
+         for desiredlang in $desiredlanguages; do
+          # Use the presentlang catalog if desiredlang is
+           #   a. equal to presentlang, or
+           #   b. a variant of presentlang (because in this case,
+           #      presentlang can be used as a fallback for messages
+           #      which are not translated in the desiredlang catalog).
+           case "$desiredlang" in
+             "$presentlang"*) useit=yes;;
+           esac
+         done
+         if test $useit = yes; then
+           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+         fi
+       done
+       LINGUAS=$NEW_LINGUAS
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
+$as_echo "$LINGUAS" >&6; }
+     fi
+
+          if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
+
+            MKINSTALLDIRS=
+   if test -n "$ac_aux_dir"; then
+     MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
+   fi
+   if test -z "$MKINSTALLDIRS"; then
+     MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+   fi
+
+
+         test -d po || mkdir po
+   if test "x$srcdir" != "x."; then
+     if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+       posrcprefix="$srcdir/"
+     else
+       posrcprefix="../$srcdir/"
+     fi
+   else
+     posrcprefix="../"
+   fi
+   rm -f po/POTFILES
+   sed -e "/^#/d" -e "/^\$/d" -e "s,.*,        $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+       < $srcdir/po/POTFILES.in > po/POTFILES
+
+
+# Define PACKAGE_VERSION_* variables.
+# Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+  enableval=$enable_static; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_static=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_static=no
+fi
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
+$as_echo_n "checking for library containing strerror... " >&6; }
+if ${ac_cv_search_strerror+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char strerror ();
+int
+main ()
+{
+return strerror ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' cposix; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_strerror=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_strerror+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_strerror+:} false; then :
+
+else
+  ac_cv_search_strerror=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
+$as_echo "$ac_cv_search_strerror" >&6; }
+ac_res=$ac_cv_search_strerror
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+                  (('a' <= (c) && (c) <= 'i') \
+                    || ('j' <= (c) && (c) <= 'r') \
+                    || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+case `pwd` in
+  *\ * | *\    *)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.2'
+macro_revision='1.3337'
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO ""
+}
+
+case "$ECHO" in
+  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+  # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+  rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+   then ac_cv_path_FGREP="$GREP -F"
+   else
+     if test -z "$FGREP"; then
+  ac_path_FGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in fgrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+  # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'FGREP' >> "conftest.nl"
+    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_FGREP="$ac_path_FGREP"
+      ac_path_FGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_FGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_FGREP"; then
+    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_FGREP=$FGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+       ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+       test "$with_gnu_ld" != no && break
+       ;;
+      *)
+       test "$with_gnu_ld" != yes && break
+       ;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+       # Check to see if the nm accepts a BSD-compat flag.
+       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+       #   nm: unknown option "B" ignored
+       # Tru64's nm complains that /dev/null is an invalid object file
+       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+       */dev/null* | *'Invalid file or object type'*)
+         lt_cv_path_NM="$tmp_nm -B"
+         break
+         ;;
+       *)
+         case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+         */dev/null*)
+           lt_cv_path_NM="$tmp_nm -p"
+           break
+           ;;
+         *)
+           lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+           continue # so that we can try to find one that supports BSD flags
+           ;;
+         esac
+         ;;
+       esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in dumpbin "link -dump"
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DUMPBIN"; then
+  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$DUMPBIN" && break
+  done
+fi
+if test -z "$DUMPBIN"; then
+  ac_ct_DUMPBIN=$DUMPBIN
+  for ac_prog in dumpbin "link -dump"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DUMPBIN"; then
+  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_DUMPBIN" && break
+done
+
+  if test "x$ac_ct_DUMPBIN" = x; then
+    DUMPBIN=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DUMPBIN=$ac_ct_DUMPBIN
+  fi
+fi
+
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&5
+  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+  cat conftest.out >&5
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
+fi
+
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+    i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536      # usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[         ]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+             test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
+
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OBJDUMP"; then
+  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+  ac_ct_OBJDUMP=$OBJDUMP
+  # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OBJDUMP"; then
+  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OBJDUMP="objdump"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OBJDUMP" = x; then
+    OBJDUMP="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OBJDUMP=$ac_ct_OBJDUMP
+  fi
+else
+  OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[45]*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc*)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[3-9]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DLLTOOL" = x; then
+    DLLTOOL="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DLLTOOL=$ac_ct_DLLTOOL
+  fi
+else
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in ar
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$AR" && break
+  done
+fi
+if test -z "$AR"; then
+  ac_ct_AR=$AR
+  for ac_prog in ar
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_AR" && break
+done
+
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+fi
+
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ar_at_file=no
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+  (eval $lt_ar_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    RANLIB=$ac_ct_RANLIB
+  fi
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDEGRST]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[BCDEGRST]'
+  ;;
+osf*)
+  symcode='[BCDEGQRST]'
+  ;;
+solaris*)
+  symcode='[BDRT]'
+  ;;
+sco3.2v5*)
+  symcode='[DT]'
+  ;;
+sysv4.2uw2*)
+  symcode='[DT]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[ABDT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK '"\
+"     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[     ]\($symcode$symcode*\)[         ][      ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+       mv -f "$nlist"T "$nlist"
+      else
+       rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+       if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+         cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+         # Now generate the symbol file.
+         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+         cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+LT_DLSYM_CONST struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+         cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+         # Now try linking the two files.
+         mv conftest.$ac_objext conftstm.$ac_objext
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
+         LIBS="conftstm.$ac_objext"
+         CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+         if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+           pipe_works=yes
+         fi
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
+       else
+         echo "cannot find nm_test_func in $nlist" >&5
+       fi
+      else
+       echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+  withval=$with_sysroot;
+else
+  with_sysroot=no
+fi
+
+
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
+$as_echo "${with_sysroot}" >&6; }
+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+   ;;
+esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+  enableval=$enable_libtool_lock;
+fi
+
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+       HPUX_IA64_MODE="32"
+       ;;
+      *ELF-64*)
+       HPUX_IA64_MODE="64"
+       ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+       *32-bit*)
+         LD="${LD-ld} -melf32bsmip"
+         ;;
+       *N32*)
+         LD="${LD-ld} -melf32bmipn32"
+         ;;
+       *64-bit*)
+         LD="${LD-ld} -melf64bmip"
+       ;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+       *32-bit*)
+         LD="${LD-ld} -32"
+         ;;
+       *N32*)
+         LD="${LD-ld} -n32"
+         ;;
+       *64-bit*)
+         LD="${LD-ld} -64"
+         ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+       case $host in
+         x86_64-*kfreebsd*-gnu)
+           LD="${LD-ld} -m elf_i386_fbsd"
+           ;;
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_i386"
+           ;;
+         ppc64-*linux*|powerpc64-*linux*)
+           LD="${LD-ld} -m elf32ppclinux"
+           ;;
+         s390x-*linux*)
+           LD="${LD-ld} -m elf_s390"
+           ;;
+         sparc64-*linux*)
+           LD="${LD-ld} -m elf32_sparc"
+           ;;
+       esac
+       ;;
+      *64-bit*)
+       case $host in
+         x86_64-*kfreebsd*-gnu)
+           LD="${LD-ld} -m elf_x86_64_fbsd"
+           ;;
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_x86_64"
+           ;;
+         ppc*-*linux*|powerpc*-*linux*)
+           LD="${LD-ld} -m elf64ppc"
+           ;;
+         s390*-*linux*|s390*-*tpf*)
+           LD="${LD-ld} -m elf64_s390"
+           ;;
+         sparc*-*linux*)
+           LD="${LD-ld} -m elf64_sparc"
+           ;;
+       esac
+       ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_cc_needs_belf=yes
+else
+  lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
+      *)
+       if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+         LD="${LD-ld} -64"
+       fi
+       ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$MANIFEST_TOOL"; then
+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+  # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_MANIFEST_TOOL"; then
+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
+    MANIFEST_TOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+  fi
+else
+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&5
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+  case $host_os in
+    rhapsody* | darwin*)
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DSYMUTIL"; then
+  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+  ac_ct_DSYMUTIL=$DSYMUTIL
+  # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DSYMUTIL"; then
+  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DSYMUTIL" = x; then
+    DSYMUTIL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DSYMUTIL=$ac_ct_DSYMUTIL
+  fi
+else
+  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NMEDIT"; then
+  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+  ac_ct_NMEDIT=$NMEDIT
+  # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_NMEDIT"; then
+  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_NMEDIT="nmedit"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_NMEDIT" = x; then
+    NMEDIT=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    NMEDIT=$ac_ct_NMEDIT
+  fi
+else
+  NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$LIPO"; then
+  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+  ac_ct_LIPO=$LIPO
+  # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_LIPO"; then
+  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_LIPO="lipo"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_LIPO" = x; then
+    LIPO=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    LIPO=$ac_ct_LIPO
+  fi
+else
+  LIPO="$ac_cv_prog_LIPO"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OTOOL"; then
+  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+  ac_ct_OTOOL=$OTOOL
+  # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OTOOL"; then
+  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OTOOL="otool"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OTOOL" = x; then
+    OTOOL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OTOOL=$ac_ct_OTOOL
+  fi
+else
+  OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$OTOOL64"; then
+  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+  ac_ct_OTOOL64=$OTOOL64
+  # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_OTOOL64"; then
+  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OTOOL64="otool64"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_OTOOL64" = x; then
+    OTOOL64=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OTOOL64=$ac_ct_OTOOL64
+  fi
+else
+  OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+       # By default we will add the -single_module flag. You can override
+       # by either setting the environment variable LT_MULTI_MODULE
+       # non-empty at configure time, or by adding -multi_module to the
+       # link flags.
+       rm -rf libconftest.dylib*
+       echo "int foo(void){return 1;}" > conftest.c
+       echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+       $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+         -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&5
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+         lt_cv_apple_cc_single_mod=yes
+       else
+         cat conftest.err >&5
+       fi
+       rm -rf libconftest.dylib*
+       rm -f conftest.*
+      fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_ld_exported_symbols_list=yes
+else
+  lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+       LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+      echo "$AR cru libconftest.a conftest.o" >&5
+      $AR cru libconftest.a conftest.o 2>&5
+      echo "$RANLIB libconftest.a" >&5
+      $RANLIB libconftest.a 2>&5
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&5
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&5
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+    case $host_os in
+    rhapsody* | darwin1.[012])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+       10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+       10.[012]*)
+         _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+       10.*)
+         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+
+for ac_header in dlfcn.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+# Set options
+
+
+
+        enable_dlopen=no
+
+
+  enable_win32_dll=no
+
+
+            # Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+  enableval=$enable_shared; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_shared=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+  withval=$with_pic; lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+       IFS="$lt_save_ifs"
+       if test "X$lt_pkg" = "X$lt_p"; then
+         pic_mode=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  pic_mode=default
+fi
+
+
+test -z "$pic_mode" && pic_mode=default
+
+
+
+
+
+
+
+  # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+  enableval=$enable_fast_install; p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_fast_install=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
+
+
+
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/${ac_tool_prefix}file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+      if test -n "$file_magic_test_file"; then
+       case $deplibs_check_method in
+       "file_magic "*)
+         file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+           $EGREP "$file_magic_regex" > /dev/null; then
+           :
+         else
+           cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+         fi ;;
+       esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+      if test -n "$file_magic_test_file"; then
+       case $deplibs_check_method in
+       "file_magic "*)
+         file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+           $EGREP "$file_magic_regex" > /dev/null; then
+           :
+         else
+           cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+         fi ;;
+       esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  else
+    MAGIC_CMD=:
+  fi
+fi
+
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+  case $cc_basename in
+  nvcc*)
+    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+  *)
+    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+  esac
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+
+
+
+
+
+  lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl='-Wl,'
+    lt_prog_compiler_static='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            lt_prog_compiler_pic='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      lt_prog_compiler_static=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+       # +Z the default
+       ;;
+      *)
+       lt_prog_compiler_pic='-fPIC'
+       ;;
+      esac
+      ;;
+
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       lt_prog_compiler_pic=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      lt_prog_compiler_wl='-Xlinker '
+      if test -n "$lt_prog_compiler_pic"; then
+        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+      fi
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl='-Wl,'
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       lt_prog_compiler_static='-Bstatic'
+      else
+       lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+       # +Z the default
+       ;;
+      *)
+       lt_prog_compiler_pic='+Z'
+       ;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+       lt_prog_compiler_wl='-Wl,'
+       lt_prog_compiler_pic='-KPIC'
+       lt_prog_compiler_static='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+       lt_prog_compiler_wl='-Wl,'
+       lt_prog_compiler_pic='-fPIC'
+       lt_prog_compiler_static='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+       lt_prog_compiler_wl='-Wl,'
+       lt_prog_compiler_pic='--shared'
+       lt_prog_compiler_static='--static'
+       ;;
+      nagfor*)
+       # NAG Fortran compiler
+       lt_prog_compiler_wl='-Wl,-Wl,,'
+       lt_prog_compiler_pic='-PIC'
+       lt_prog_compiler_static='-Bstatic'
+       ;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+       # which looks to be a dead project)
+       lt_prog_compiler_wl='-Wl,'
+       lt_prog_compiler_pic='-fpic'
+       lt_prog_compiler_static='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+       # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+       lt_prog_compiler_wl='-Wl,'
+       lt_prog_compiler_pic='-qpic'
+       lt_prog_compiler_static='-qstaticlink'
+       ;;
+      *)
+       case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+         # Sun Fortran 8.3 passes all unrecognized flags to the linker
+         lt_prog_compiler_pic='-KPIC'
+         lt_prog_compiler_static='-Bstatic'
+         lt_prog_compiler_wl=''
+         ;;
+       *Sun\ F* | *Sun*Fortran*)
+         lt_prog_compiler_pic='-KPIC'
+         lt_prog_compiler_static='-Bstatic'
+         lt_prog_compiler_wl='-Qoption ld '
+         ;;
+       *Sun\ C*)
+         # Sun C 5.9
+         lt_prog_compiler_pic='-KPIC'
+         lt_prog_compiler_static='-Bstatic'
+         lt_prog_compiler_wl='-Wl,'
+         ;;
+        *Intel*\ [CF]*Compiler*)
+         lt_prog_compiler_wl='-Wl,'
+         lt_prog_compiler_pic='-fPIC'
+         lt_prog_compiler_static='-static'
+         ;;
+       *Portland\ Group*)
+         lt_prog_compiler_wl='-Wl,'
+         lt_prog_compiler_pic='-fpic'
+         lt_prog_compiler_static='-Bstatic'
+         ;;
+       esac
+       ;;
+      esac
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      lt_prog_compiler_pic='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    rdos*)
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+       lt_prog_compiler_wl='-Qoption ld ';;
+      *)
+       lt_prog_compiler_wl='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl='-Qoption ld '
+      lt_prog_compiler_pic='-PIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+       lt_prog_compiler_pic='-Kconform_pic'
+       lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_can_build_shared=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic='-pic'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared=no
+      ;;
+    esac
+  fi
+
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic=
+    ;;
+  *)
+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+    ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_pic_works=no
+   ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works=yes
+     fi
+   fi
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+    case $lt_prog_compiler_pic in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+     esac
+else
+    lt_prog_compiler_pic=
+     lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler_static_works=yes
+       fi
+     else
+       lt_cv_prog_compiler_static_works=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+    :
+else
+    lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+  if test "$hard_links" = no; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+  runpath_var=
+  allow_undefined_flag=
+  always_export_symbols=no
+  archive_cmds=
+  archive_expsym_cmds=
+  compiler_needs_object=no
+  enable_shared_with_static_runtimes=no
+  export_dynamic_flag_spec=
+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  hardcode_automatic=no
+  hardcode_direct=no
+  hardcode_direct_absolute=no
+  hardcode_libdir_flag_spec=
+  hardcode_libdir_separator=
+  hardcode_minus_L=no
+  hardcode_shlibpath_var=unsupported
+  inherit_rpath=no
+  link_all_deplibs=unknown
+  module_cmds=
+  module_expsym_cmds=
+  old_archive_from_new_cmds=
+  old_archive_from_expsyms_cmds=
+  thread_safe_flag_spec=
+  whole_archive_flag_spec=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+       # The AIX port of GNU ld has always aspired to compatibility
+       # with the native linker.  However, as the warning in the GNU ld
+       # block says, versions before 2.19.5* couldn't really create working
+       # shared libraries, regardless of the interface used.
+       case `$LD -v 2>&1` in
+         *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+         *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+         *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+         *)
+           lt_use_gnu_ld_interface=yes
+           ;;
+       esac
+       ;;
+      *)
+       lt_use_gnu_ld_interface=yes
+       ;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+    export_dynamic_flag_spec='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      whole_archive_flag_spec=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[3-9]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+       ld_shlibs=no
+       cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_expsym_cmds=''
+        ;;
+      m68k)
+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_minus_L=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+       allow_undefined_flag=unsupported
+       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+       # support --undefined.  This deserves some investigation.  FIXME
+       archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+       ld_shlibs=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      export_dynamic_flag_spec='${wl}--export-all-symbols'
+      allow_undefined_flag=unsupported
+      always_export_symbols=no
+      enable_shared_with_static_runtimes=yes
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+       # If the export-symbols file already is a .def file (1st line
+       # is EXPORTS), use it as is; otherwise, prepend...
+       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+         cp $export_symbols $output_objdir/$soname.def;
+       else
+         echo EXPORTS > $output_objdir/$soname.def;
+         cat $export_symbols >> $output_objdir/$soname.def;
+       fi~
+       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+       ld_shlibs=no
+      fi
+      ;;
+
+    haiku*)
+      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      link_all_deplibs=yes
+      ;;
+
+    interix[3-9]*)
+      hardcode_direct=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+       case $cc_basename in
+         diet\ *) tmp_diet=yes;;       # linux-dietlibc with static linking (!diet-dyn)
+       esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+        && test "$tmp_diet" = no
+      then
+       tmp_addflag=' $pic_flag'
+       tmp_sharedflag='-shared'
+       case $cc_basename,$host_cpu in
+        pgcc*)                         # Portland Group C compiler
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         tmp_addflag=' $pic_flag'
+         ;;
+       pgf77* | pgf90* | pgf95* | pgfortran*)
+                                       # Portland Group f77 and f90 compilers
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         tmp_addflag=' $pic_flag -Mnomain' ;;
+       ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
+         tmp_addflag=' -i_dynamic' ;;
+       efc*,ia64* | ifort*,ia64*)      # Intel Fortran compiler on ia64
+         tmp_addflag=' -i_dynamic -nofor_main' ;;
+       ifc* | ifort*)                  # Intel Fortran compiler
+         tmp_addflag=' -nofor_main' ;;
+       lf95*)                          # Lahey Fortran 8.1
+         whole_archive_flag_spec=
+         tmp_sharedflag='--shared' ;;
+       xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+         tmp_sharedflag='-qmkshrobj'
+         tmp_addflag= ;;
+       nvcc*)  # Cuda Compiler Driver 2.2
+         whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         compiler_needs_object=yes
+         ;;
+       esac
+       case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ C*)                       # Sun C 5.9
+         whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         compiler_needs_object=yes
+         tmp_sharedflag='-G' ;;
+       *Sun\ F*)                       # Sun Fortran 8.3
+         tmp_sharedflag='-G' ;;
+       esac
+       archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+           cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+           echo "local: *; };" >> $output_objdir/$libname.ver~
+           $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+       case $cc_basename in
+       xlf* | bgf* | bgxlf* | mpixlf*)
+         # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+         whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+         hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+         archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+         if test "x$supports_anon_versioning" = xyes; then
+           archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+             cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+             echo "local: *; };" >> $output_objdir/$libname.ver~
+             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+         fi
+         ;;
+       esac
+      else
+        ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+       archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+       wlarc=
+      else
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+       ld_shlibs=no
+       cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+       ld_shlibs=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+       ld_shlibs=no
+       cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+       ;;
+       *)
+         # For security reasons, it is highly recommended that you always
+         # use absolute paths for naming shared libraries, and exclude the
+         # DT_RUNPATH tag from executables and libraries.  But doing so
+         # requires that you compile everything twice, which is a pain.
+         if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+           hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+           archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+           archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+         else
+           ld_shlibs=no
+         fi
+       ;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+       ld_shlibs=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec=
+      export_dynamic_flag_spec=
+      whole_archive_flag_spec=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag=unsupported
+      always_export_symbols=yes
+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+       # Neither direct hardcoding nor static linking is supported with a
+       # broken collect2.
+       hardcode_direct=unsupported
+      fi
+      ;;
+
+    aix[4-9]*)
+      if test "$host_cpu" = ia64; then
+       # On IA64, the linker does run time linking by default, so we don't
+       # have to do anything special.
+       aix_use_runtimelinking=no
+       exp_sym_flag='-Bexport'
+       no_entry_flag=""
+      else
+       # If we're using GNU nm, then we don't want the "-C" option.
+       # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       # Also, AIX nm treats weak defined symbols like other global
+       # defined symbols, whereas GNU nm marks them as "W".
+       if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+         export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+       else
+         export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+       fi
+       aix_use_runtimelinking=no
+
+       # Test if we are trying to use run time linking or normal
+       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+       # need to do runtime linking.
+       case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+         for ld_flag in $LDFLAGS; do
+         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+           aix_use_runtimelinking=yes
+           break
+         fi
+         done
+         ;;
+       esac
+
+       exp_sym_flag='-bexport'
+       no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds=''
+      hardcode_direct=yes
+      hardcode_direct_absolute=yes
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      file_list_spec='${wl}-f,'
+
+      if test "$GCC" = yes; then
+       case $host_os in aix4.[012]|aix4.[012].*)
+       # We only want to do this on AIX 4.2 and lower, the check
+       # below for broken collect2 doesn't work under 4.3+
+         collect2name=`${CC} -print-prog-name=collect2`
+         if test -f "$collect2name" &&
+          strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+         then
+         # We have reworked collect2
+         :
+         else
+         # We have old collect2
+         hardcode_direct=unsupported
+         # It fails to find uninstalled libraries when the uninstalled
+         # path is not listed in the libpath.  Setting hardcode_minus_L
+         # to unsupported forces relinking
+         hardcode_minus_L=yes
+         hardcode_libdir_flag_spec='-L$libdir'
+         hardcode_libdir_separator=
+         fi
+         ;;
+       esac
+       shared_flag='-shared'
+       if test "$aix_use_runtimelinking" = yes; then
+         shared_flag="$shared_flag "'${wl}-G'
+       fi
+      else
+       # not using gcc
+       if test "$host_cpu" = ia64; then
+       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+       # chokes on -Wl,-G. The following line is correct:
+         shared_flag='-G'
+       else
+         if test "$aix_use_runtimelinking" = yes; then
+           shared_flag='${wl}-G'
+         else
+           shared_flag='${wl}-bM:SRE'
+         fi
+       fi
+      fi
+
+      export_dynamic_flag_spec='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols=yes
+      if test "$aix_use_runtimelinking" = yes; then
+       # Warning - without using the other runtime loading flags (-brtl),
+       # -berok will link without error, but may produce a broken library.
+       allow_undefined_flag='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
+
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+       if test "$host_cpu" = ia64; then
+         hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+         allow_undefined_flag="-z nodefs"
+         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+       else
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  if ${lt_cv_aix_libpath_+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+  lt_aix_libpath_sed='
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }'
+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  if test -z "$lt_cv_aix_libpath_"; then
+    lt_cv_aix_libpath_="/usr/lib:/lib"
+  fi
+
+fi
+
+  aix_libpath=$lt_cv_aix_libpath_
+fi
+
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+         # Warning - without using the other run time loading flags,
+         # -berok will link without error, but may produce a broken library.
+         no_undefined_flag=' ${wl}-bernotok'
+         allow_undefined_flag=' ${wl}-berok'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           whole_archive_flag_spec='$convenience'
+         fi
+         archive_cmds_need_lc=yes
+         # This is similar to how AIX traditionally builds its shared libraries.
+         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+       fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            archive_expsym_cmds=''
+        ;;
+      m68k)
+            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_minus_L=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       always_export_symbols=yes
+       file_list_spec='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+       enable_shared_with_static_runtimes=yes
+       exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+       export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       old_postinstall_cmds='chmod 644 $oldlib'
+       postlink_cmds='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       hardcode_libdir_flag_spec=' '
+       allow_undefined_flag=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       old_archive_from_new_cmds='true'
+       # FIXME: Should let the user specify the lib program.
+       old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       enable_shared_with_static_runtimes=yes
+       ;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+
+
+  archive_cmds_need_lc=no
+  hardcode_direct=no
+  hardcode_automatic=yes
+  hardcode_shlibpath_var=unsupported
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+  else
+    whole_archive_flag_spec=''
+  fi
+  link_all_deplibs=yes
+  allow_undefined_flag="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=func_echo_all
+    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+  else
+  ld_shlibs=no
+  fi
+
+      ;;
+
+    dgux*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2.*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+       archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+       archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      export_dynamic_flag_spec='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+       hardcode_libdir_separator=:
+       hardcode_direct=yes
+       hardcode_direct_absolute=yes
+       export_dynamic_flag_spec='${wl}-E'
+       # hardcode_minus_L: Not really in the search PATH,
+       # but as the default location of the library.
+       hardcode_minus_L=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       case $host_cpu in
+       hppa*64*)
+         archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       ia64*)
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       *)
+         archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       esac
+      else
+       case $host_cpu in
+       hppa*64*)
+         archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       ia64*)
+         archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       *)
+
+         # Older versions of the 11.00 compiler do not understand -b yet
+         # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_prog_compiler__b=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS -b"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler__b=yes
+       fi
+     else
+       lt_cv_prog_compiler__b=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+         ;;
+       esac
+      fi
+      if test "$with_gnu_ld" = no; then
+       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+       hardcode_libdir_separator=:
+
+       case $host_cpu in
+       hppa*64*|ia64*)
+         hardcode_direct=no
+         hardcode_shlibpath_var=no
+         ;;
+       *)
+         hardcode_direct=yes
+         hardcode_direct_absolute=yes
+         export_dynamic_flag_spec='${wl}-E'
+
+         # hardcode_minus_L: Not really in the search PATH,
+         # but as the default location of the library.
+         hardcode_minus_L=yes
+         ;;
+       esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+       archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       # Try to use the -exported_symbol ld option, if it does not
+       # work, assume that -exports_file does not work either and
+       # implicitly export all symbols.
+       # This should be the same for all languages, so no per-tag cache variable.
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  lt_cv_irix_exported_symbol=yes
+else
+  lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+           LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
+      else
+       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      inherit_rpath=yes
+      link_all_deplibs=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+       archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    newsos6)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_shlibpath_var=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+       hardcode_direct=yes
+       hardcode_shlibpath_var=no
+       hardcode_direct_absolute=yes
+       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+         archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+         archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+         hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+         export_dynamic_flag_spec='${wl}-E'
+       else
+         case $host_os in
+          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+            archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+            hardcode_libdir_flag_spec='-R$libdir'
+            ;;
+          *)
+            archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+            ;;
+         esac
+       fi
+      else
+       ld_shlibs=no
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+       allow_undefined_flag=' -expect_unresolved \*'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+
+    osf4* | osf5*)     # as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+       archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+       allow_undefined_flag=' -expect_unresolved \*'
+       archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+       # Both c and cxx compiler support -rpath directly
+       hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      archive_cmds_need_lc='no'
+      hardcode_libdir_separator=:
+      ;;
+
+    solaris*)
+      no_undefined_flag=' -z defs'
+      if test "$GCC" = yes; then
+       wlarc='${wl}'
+       archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+       case `$CC -V 2>&1` in
+       *"Compilers 5.0"*)
+         wlarc=''
+         archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+         $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+         ;;
+       *)
+         wlarc='${wl}'
+         archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+         archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+         $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         ;;
+       esac
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_shlibpath_var=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+       # The compiler driver will combine and reorder linker options,
+       # but understands `-z linker_flag'.  GCC discards it without `$wl',
+       # but is careful enough not to reorder.
+       # Supported since Solaris 2.6 (maybe 2.5.1?)
+       if test "$GCC" = yes; then
+         whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+       else
+         whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+       fi
+       ;;
+      esac
+      link_all_deplibs=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+       # Use $CC to link under sequent, because it throws in some extra .o
+       # files that make .init and .fini sections work.
+       archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+       sni)
+         archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         hardcode_direct=yes # is this really true???
+       ;;
+       siemens)
+         ## LD is ld it makes a PLAMLIB
+         ## CC just makes a GrossModule.
+         archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+         reload_cmds='$CC -r -o $output$reload_objs'
+         hardcode_direct=no
+        ;;
+       motorola)
+         archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+       ;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+       hardcode_shlibpath_var=no
+       runpath_var=LD_RUN_PATH
+       hardcode_runpath_var=yes
+       ld_shlibs=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag='${wl}-z,text'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+       archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag='${wl}-z,text'
+      allow_undefined_flag='${wl}-z,nodefs'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-R,$libdir'
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      export_dynamic_flag_spec='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+       archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      ld_shlibs=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+       export_dynamic_flag_spec='${wl}-Blargedynsym'
+       ;;
+      esac
+    fi
+  fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  $RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+       if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$lt_prog_compiler_wl
+         pic_flag=$lt_prog_compiler_pic
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$allow_undefined_flag
+         allow_undefined_flag=
+         if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+         then
+           lt_cv_archive_cmds_need_lc=no
+         else
+           lt_cv_archive_cmds_need_lc=yes
+         fi
+         allow_undefined_flag=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+       lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[lt_foo]++; }
+  if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[4-9]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+          echo ' yes '
+          echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+       :
+      else
+       can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
+    ;;
+
+  *)
+    # Assume MSVC wrapper
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
+    ;;
+  esac
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[23].*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2.*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[3-9]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+       if test "$lt_cv_prog_gnu_ld" = yes; then
+               version_type=linux # correct to gnu/linux during the next big refactor
+       else
+               version_type=irix
+       fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+        LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+  lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+
+fi
+
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Add ABI-specific directories to the system library path.
+  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[      ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+       shlibpath_overrides_runpath=no
+       ;;
+      *)
+       shlibpath_overrides_runpath=yes
+       ;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux # correct to gnu/linux during the next big refactor
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+       ;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+   test -n "$runpath_var" ||
+   test "X$hardcode_automatic" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$hardcode_direct" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+     test "$hardcode_minus_L" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+   test "$inherit_rpath" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+
+
+
+
+  if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dl_dlopen=yes
+else
+  ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+    ;;
+
+  *)
+    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+  lt_cv_dlopen="shl_load"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dld_shl_load=yes
+else
+  ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dl_dlopen=yes
+else
+  ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_svld_dlopen=yes
+else
+  ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dld_dld_link=yes
+else
+  ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+         if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL          RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL                DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL                0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW         DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW       RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW     DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW     0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}
+_LT_EOF
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+         if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL          RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL                DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL                0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW         DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW       RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW     DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW     0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}
+_LT_EOF
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    fi
+    ;;
+  *)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+    ;;
+  esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+  # Report which library types will actually be built
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[4-9]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+    # Check whether --enable-nls was given.
+if test "${enable_nls+set}" = set; then :
+  enableval=$enable_nls; USE_NLS=$enableval
+else
+  USE_NLS=yes
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+
+
+
+
+case "$am__api_version" in
+    1.01234)
+       as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5
+    ;;
+    *)
+    ;;
+esac
+
+INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35.0 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
+INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+if test -n "0.35.0"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.35.0" >&5
+$as_echo_n "checking for intltool >= 0.35.0... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5
+$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; }
+    test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+       as_fn_error $? "Your intltool is too old.  You need intltool 0.35.0 or later." "$LINENO" 5
+fi
+
+# Extract the first word of "intltool-update", so it can be a program name with args.
+set dummy intltool-update; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $INTLTOOL_UPDATE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE
+if test -n "$INTLTOOL_UPDATE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5
+$as_echo "$INTLTOOL_UPDATE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "intltool-merge", so it can be a program name with args.
+set dummy intltool-merge; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_INTLTOOL_MERGE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $INTLTOOL_MERGE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE
+if test -n "$INTLTOOL_MERGE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5
+$as_echo "$INTLTOOL_MERGE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "intltool-extract", so it can be a program name with args.
+set dummy intltool-extract; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $INTLTOOL_EXTRACT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT
+if test -n "$INTLTOOL_EXTRACT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5
+$as_echo "$INTLTOOL_EXTRACT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
+    as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5
+fi
+
+if test -z "$AM_DEFAULT_VERBOSITY"; then
+  AM_DEFAULT_VERBOSITY=1
+fi
+
+
+INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))'
+INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))'
+INTLTOOL__v_MERGE_0='@echo "  ITMRG " $@;'
+
+
+
+
+INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))'
+intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))'
+intltool__v_merge_options_0='-q'
+
+
+
+
+  INTLTOOL_DESKTOP_RULE='%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+     INTLTOOL_KEYS_RULE='%.keys:      %.keys.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+     INTLTOOL_PROP_RULE='%.prop:      %.prop.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+      INTLTOOL_OAF_RULE='%.oaf:       %.oaf.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< $@'
+     INTLTOOL_PONG_RULE='%.pong:      %.pong.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+   INTLTOOL_SERVER_RULE='%.server:    %.server.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+    INTLTOOL_SHEET_RULE='%.sheet:     %.sheet.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+       INTLTOOL_UI_RULE='%.ui:        %.ui.in        $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+      INTLTOOL_XML_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then
+      INTLTOOL_XML_NOMERGE_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< $@'
+else
+      INTLTOOL_XML_NOMERGE_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.$$RANDOM && mkdir $$_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u $$_it_tmp_dir $< $@ && rmdir $$_it_tmp_dir'
+fi
+      INTLTOOL_XAM_RULE='%.xam:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+      INTLTOOL_KBD_RULE='%.kbd:       %.kbd.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+    INTLTOOL_CAVES_RULE='%.caves:     %.caves.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+  INTLTOOL_SCHEMAS_RULE='%.schemas:   %.schemas.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+    INTLTOOL_THEME_RULE='%.theme:     %.theme.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+    INTLTOOL_SERVICE_RULE='%.service: %.service.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+   INTLTOOL_POLICY_RULE='%.policy:    %.policy.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check the gettext tools to make sure they are GNU
+# Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XGETTEXT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $XGETTEXT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+XGETTEXT=$ac_cv_path_XGETTEXT
+if test -n "$XGETTEXT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGMERGE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MSGMERGE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MSGMERGE=$ac_cv_path_MSGMERGE
+if test -n "$MSGMERGE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
+$as_echo "$MSGMERGE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGFMT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $MSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MSGFMT=$ac_cv_path_MSGFMT
+if test -n "$MSGFMT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GMSGFMT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GMSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
+    as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5
+fi
+xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
+mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
+mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
+if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
+    as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5
+fi
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_INTLTOOL_PERL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $INTLTOOL_PERL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL
+if test -n "$INTLTOOL_PERL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5
+$as_echo "$INTLTOOL_PERL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+if test -z "$INTLTOOL_PERL"; then
+   as_fn_error $? "perl not found" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5
+$as_echo_n "checking for perl >= 5.8.1... " >&6; }
+$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
+if test $? -ne 0; then
+   as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5
+else
+   IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"`
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5
+$as_echo "$IT_PERL_VERSION" >&6; }
+fi
+if test "x" != "xno-xml"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5
+$as_echo_n "checking for XML::Parser... " >&6; }
+   if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+   else
+       as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5
+   fi
+fi
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+extern int _nl_msg_cat_cntr;
+                       return _nl_msg_cat_cntr
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  DATADIRNAME=share
+else
+  case $host in
+    *-*-solaris*)
+                        ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset"
+if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then :
+  DATADIRNAME=share
+else
+  DATADIRNAME=lib
+fi
+
+    ;;
+    *)
+    DATADIRNAME=lib
+    ;;
+    esac
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+
+
+
+
+
+
+# Check functions.
+for ac_func in daemon
+do :
+  ac_fn_c_check_func "$LINENO" "daemon" "ac_cv_func_daemon"
+if test "x$ac_cv_func_daemon" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_DAEMON 1
+_ACEOF
+
+fi
+done
+
+
+# Check packages.
+# Check glib2.
+# Check whether --enable-glibtest was given.
+if test "${enable_glibtest+set}" = set; then :
+  enableval=$enable_glibtest;
+else
+  enable_glibtest=yes
+fi
+
+
+  pkg_config_args=glib-2.0
+  for module in .
+  do
+      case "$module" in
+         gmodule)
+             pkg_config_args="$pkg_config_args gmodule-2.0"
+         ;;
+         gmodule-no-export)
+             pkg_config_args="$pkg_config_args gmodule-no-export-2.0"
+         ;;
+         gobject)
+             pkg_config_args="$pkg_config_args gobject-2.0"
+         ;;
+         gthread)
+             pkg_config_args="$pkg_config_args gthread-2.0"
+         ;;
+         gio*)
+             pkg_config_args="$pkg_config_args $module-2.0"
+         ;;
+      esac
+  done
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=0.16
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       else
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+               PKG_CONFIG=""
+       fi
+fi
+
+  no_glib=""
+
+  if test "x$PKG_CONFIG" = x ; then
+    no_glib=yes
+    PKG_CONFIG=no
+  fi
+
+  min_glib_version=2.0.0
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB - version >= $min_glib_version" >&5
+$as_echo_n "checking for GLIB - version >= $min_glib_version... " >&6; }
+
+  if test x$PKG_CONFIG != xno ; then
+    ## don't try to run the test against uninstalled libtool libs
+    if $PKG_CONFIG --uninstalled $pkg_config_args; then
+         echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
+         enable_glibtest=no
+    fi
+
+    if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then
+         :
+    else
+         no_glib=yes
+    fi
+  fi
+
+  if test x"$no_glib" = x ; then
+    GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
+    GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0`
+    GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
+    GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable=glib_compile_resources gio-2.0`
+
+    GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args`
+    GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args`
+    glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \
+           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+    glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \
+           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+    glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \
+           sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+    if test "x$enable_glibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GLIB_CFLAGS"
+      LIBS="$GLIB_LIBS $LIBS"
+      rm -f conf.glibtest
+      if test "$cross_compiling" = yes; then :
+  echo $ac_n "cross compiling; assumed OK... $ac_c"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main ()
+{
+  unsigned int major, minor, micro;
+  char *tmp_version;
+
+  fclose (fopen ("conf.glibtest", "w"));
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_glib_version");
+  if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_glib_version");
+     exit(1);
+   }
+
+  if ((glib_major_version != $glib_config_major_version) ||
+      (glib_minor_version != $glib_config_minor_version) ||
+      (glib_micro_version != $glib_config_micro_version))
+    {
+      printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
+             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
+             glib_major_version, glib_minor_version, glib_micro_version);
+      printf ("*** was found! If pkg-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GLib. You may also be able to fix the error\n");
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+      printf("*** required on your system.\n");
+      printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
+      printf("*** to point to the correct configuration files\n");
+    }
+  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
+          (glib_minor_version != GLIB_MINOR_VERSION) ||
+           (glib_micro_version != GLIB_MICRO_VERSION))
+    {
+      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
+            GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+            glib_major_version, glib_minor_version, glib_micro_version);
+    }
+  else
+    {
+      if ((glib_major_version > major) ||
+        ((glib_major_version == major) && (glib_minor_version > minor)) ||
+        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GLIB (%u.%u.%u) was found.\n",
+               glib_major_version, glib_minor_version, glib_micro_version);
+        printf("*** You need a version of GLIB newer than %u.%u.%u. The latest version of\n",
+              major, minor, micro);
+        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n");
+        printf("*** correct copy of pkg-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+      }
+    }
+  return 1;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  no_glib=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_glib" = x ; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5
+$as_echo "yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6; }
+     :
+  else
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+     if test "$PKG_CONFIG" = "no" ; then
+       echo "*** A new enough version of pkg-config was not found."
+       echo "*** See http://www.freedesktop.org/software/pkgconfig/"
+     else
+       if test -f conf.glibtest ; then
+        :
+       else
+          echo "*** Could not run GLIB test program, checking why..."
+          ac_save_CFLAGS="$CFLAGS"
+          ac_save_LIBS="$LIBS"
+          CFLAGS="$CFLAGS $GLIB_CFLAGS"
+          LIBS="$LIBS $GLIB_LIBS"
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <glib.h>
+#include <stdio.h>
+
+int
+main ()
+{
+ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version));
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+   echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
+          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+         echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+else
+   echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GLIB is incorrectly installed."
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GLIB_CFLAGS=""
+     GLIB_LIBS=""
+     GLIB_GENMARSHAL=""
+     GOBJECT_QUERY=""
+     GLIB_MKENUMS=""
+     GLIB_COMPILE_RESOURCES=""
+     :
+  fi
+
+
+
+
+
+
+  rm -f conf.glibtest
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB2" >&5
+$as_echo_n "checking for GLIB2... " >&6; }
+
+if test -n "$GLIB2_CFLAGS"; then
+    pkg_cv_GLIB2_CFLAGS="$GLIB2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    glib-2.0 >= 2.32.0
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    glib-2.0 >= 2.32.0
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GLIB2_CFLAGS=`$PKG_CONFIG --cflags "
+    glib-2.0 >= 2.32.0
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GLIB2_LIBS"; then
+    pkg_cv_GLIB2_LIBS="$GLIB2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    glib-2.0 >= 2.32.0
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    glib-2.0 >= 2.32.0
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GLIB2_LIBS=`$PKG_CONFIG --libs "
+    glib-2.0 >= 2.32.0
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GLIB2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+    glib-2.0 >= 2.32.0
+" 2>&1`
+        else
+               GLIB2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+    glib-2.0 >= 2.32.0
+" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GLIB2_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+    glib-2.0 >= 2.32.0
+) were not met:
+
+$GLIB2_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GLIB2_CFLAGS
+and GLIB2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GLIB2_CFLAGS
+and GLIB2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GLIB2_CFLAGS=$pkg_cv_GLIB2_CFLAGS
+       GLIB2_LIBS=$pkg_cv_GLIB2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GOBJECT2" >&5
+$as_echo_n "checking for GOBJECT2... " >&6; }
+
+if test -n "$GOBJECT2_CFLAGS"; then
+    pkg_cv_GOBJECT2_CFLAGS="$GOBJECT2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    gobject-2.0 >= 2.32.0
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    gobject-2.0 >= 2.32.0
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GOBJECT2_CFLAGS=`$PKG_CONFIG --cflags "
+    gobject-2.0 >= 2.32.0
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GOBJECT2_LIBS"; then
+    pkg_cv_GOBJECT2_LIBS="$GOBJECT2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    gobject-2.0 >= 2.32.0
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    gobject-2.0 >= 2.32.0
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GOBJECT2_LIBS=`$PKG_CONFIG --libs "
+    gobject-2.0 >= 2.32.0
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GOBJECT2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+    gobject-2.0 >= 2.32.0
+" 2>&1`
+        else
+               GOBJECT2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+    gobject-2.0 >= 2.32.0
+" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GOBJECT2_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+    gobject-2.0 >= 2.32.0
+) were not met:
+
+$GOBJECT2_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GOBJECT2_CFLAGS
+and GOBJECT2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GOBJECT2_CFLAGS
+and GOBJECT2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GOBJECT2_CFLAGS=$pkg_cv_GOBJECT2_CFLAGS
+       GOBJECT2_LIBS=$pkg_cv_GOBJECT2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO2" >&5
+$as_echo_n "checking for GIO2... " >&6; }
+
+if test -n "$GIO2_CFLAGS"; then
+    pkg_cv_GIO2_CFLAGS="$GIO2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    gio-2.0 >= 2.32.0
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    gio-2.0 >= 2.32.0
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GIO2_CFLAGS=`$PKG_CONFIG --cflags "
+    gio-2.0 >= 2.32.0
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GIO2_LIBS"; then
+    pkg_cv_GIO2_LIBS="$GIO2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    gio-2.0 >= 2.32.0
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    gio-2.0 >= 2.32.0
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GIO2_LIBS=`$PKG_CONFIG --libs "
+    gio-2.0 >= 2.32.0
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GIO2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+    gio-2.0 >= 2.32.0
+" 2>&1`
+        else
+               GIO2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+    gio-2.0 >= 2.32.0
+" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GIO2_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+    gio-2.0 >= 2.32.0
+) were not met:
+
+$GIO2_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GIO2_CFLAGS
+and GIO2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GIO2_CFLAGS
+and GIO2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GIO2_CFLAGS=$pkg_cv_GIO2_CFLAGS
+       GIO2_LIBS=$pkg_cv_GIO2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTHREAD2" >&5
+$as_echo_n "checking for GTHREAD2... " >&6; }
+
+if test -n "$GTHREAD2_CFLAGS"; then
+    pkg_cv_GTHREAD2_CFLAGS="$GTHREAD2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    gthread-2.0 >= 2.32.0
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    gthread-2.0 >= 2.32.0
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTHREAD2_CFLAGS=`$PKG_CONFIG --cflags "
+    gthread-2.0 >= 2.32.0
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GTHREAD2_LIBS"; then
+    pkg_cv_GTHREAD2_LIBS="$GTHREAD2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    gthread-2.0 >= 2.32.0
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    gthread-2.0 >= 2.32.0
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTHREAD2_LIBS=`$PKG_CONFIG --libs "
+    gthread-2.0 >= 2.32.0
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GTHREAD2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+    gthread-2.0 >= 2.32.0
+" 2>&1`
+        else
+               GTHREAD2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+    gthread-2.0 >= 2.32.0
+" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GTHREAD2_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+    gthread-2.0 >= 2.32.0
+) were not met:
+
+$GTHREAD2_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GTHREAD2_CFLAGS
+and GTHREAD2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GTHREAD2_CFLAGS
+and GTHREAD2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GTHREAD2_CFLAGS=$pkg_cv_GTHREAD2_CFLAGS
+       GTHREAD2_LIBS=$pkg_cv_GTHREAD2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+# --disable-tests option.
+# Check whether --enable-tests was given.
+if test "${enable_tests+set}" = set; then :
+  enableval=$enable_tests; enable_tests=$enableval
+else
+  enable_tests=yes
+
+fi
+
+ if test x"$enable_tests" = x"yes"; then
+  ENABLE_TESTS_TRUE=
+  ENABLE_TESTS_FALSE='#'
+else
+  ENABLE_TESTS_TRUE='#'
+  ENABLE_TESTS_FALSE=
+fi
+
+if test x"$enable_tests" != x"yes"; then
+    enable_tests="no (disabled, use --enable-tests to enable)"
+fi
+
+# --disable-gtk2 option.
+# Check whether --enable-gtk2 was given.
+if test "${enable_gtk2+set}" = set; then :
+  enableval=$enable_gtk2; enable_gtk2=$enableval
+else
+  enable_gtk2=yes
+
+fi
+
+ if test x"$enable_gtk2" = x"yes"; then
+  ENABLE_GTK2_TRUE=
+  ENABLE_GTK2_FALSE='#'
+else
+  ENABLE_GTK2_TRUE='#'
+  ENABLE_GTK2_FALSE=
+fi
+
+
+# --disable-gtk3 option.
+# Check whether --enable-gtk3 was given.
+if test "${enable_gtk3+set}" = set; then :
+  enableval=$enable_gtk3; enable_gtk3=$enableval
+else
+  enable_gtk3=yes
+
+fi
+
+ if test x"$enable_gtk3" = x"yes"; then
+  ENABLE_GTK3_TRUE=
+  ENABLE_GTK3_FALSE='#'
+else
+  ENABLE_GTK3_TRUE='#'
+  ENABLE_GTK3_FALSE=
+fi
+
+
+# --disable-xim option.
+# Check whether --enable-xim was given.
+if test "${enable_xim+set}" = set; then :
+  enableval=$enable_xim; enable_xim=$enableval
+else
+  enable_xim=yes
+
+fi
+
+ if test x"$enable_xim" = x"yes"; then
+  ENABLE_XIM_TRUE=
+  ENABLE_XIM_FALSE='#'
+else
+  ENABLE_XIM_TRUE='#'
+  ENABLE_XIM_FALSE=
+fi
+
+
+# --enable-wayland option.
+# Check whether --enable-wayland was given.
+if test "${enable_wayland+set}" = set; then :
+  enableval=$enable_wayland; enable_wayland=$enableval
+else
+  enable_wayland=no
+
+fi
+
+ if test x"$enable_wayland" = x"yes"; then
+  ENABLE_WAYLAND_TRUE=
+  ENABLE_WAYLAND_FALSE='#'
+else
+  ENABLE_WAYLAND_TRUE='#'
+  ENABLE_WAYLAND_FALSE=
+fi
+
+
+if test x"$enable_gtk2" = x"yes" -o x"$enable_xim" = x"yes" ; then
+    # check for gtk2
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK2" >&5
+$as_echo_n "checking for GTK2... " >&6; }
+
+if test -n "$GTK2_CFLAGS"; then
+    pkg_cv_GTK2_CFLAGS="$GTK2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        gtk+-2.0
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        gtk+-2.0
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK2_CFLAGS=`$PKG_CONFIG --cflags "
+        gtk+-2.0
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GTK2_LIBS"; then
+    pkg_cv_GTK2_LIBS="$GTK2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        gtk+-2.0
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        gtk+-2.0
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK2_LIBS=`$PKG_CONFIG --libs "
+        gtk+-2.0
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GTK2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+        gtk+-2.0
+    " 2>&1`
+        else
+               GTK2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+        gtk+-2.0
+    " 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GTK2_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+        gtk+-2.0
+    ) were not met:
+
+$GTK2_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GTK2_CFLAGS
+and GTK2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GTK2_CFLAGS
+and GTK2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GTK2_CFLAGS=$pkg_cv_GTK2_CFLAGS
+       GTK2_LIBS=$pkg_cv_GTK2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+fi
+
+if test x"$enable_gtk2" = x"yes"; then
+    # check for gdk2
+    gtk2_binary_version=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
+    GTK2_IM_MODULEDIR="$libdir"/gtk-2.0/$gtk2_binary_version/immodules
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GDK2" >&5
+$as_echo_n "checking for GDK2... " >&6; }
+
+if test -n "$GDK2_CFLAGS"; then
+    pkg_cv_GDK2_CFLAGS="$GDK2_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        gdk-2.0
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        gdk-2.0
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GDK2_CFLAGS=`$PKG_CONFIG --cflags "
+        gdk-2.0
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GDK2_LIBS"; then
+    pkg_cv_GDK2_LIBS="$GDK2_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        gdk-2.0
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        gdk-2.0
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GDK2_LIBS=`$PKG_CONFIG --libs "
+        gdk-2.0
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GDK2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+        gdk-2.0
+    " 2>&1`
+        else
+               GDK2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+        gdk-2.0
+    " 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GDK2_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+        gdk-2.0
+    ) were not met:
+
+$GDK2_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GDK2_CFLAGS
+and GDK2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GDK2_CFLAGS
+and GDK2_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GDK2_CFLAGS=$pkg_cv_GDK2_CFLAGS
+       GDK2_LIBS=$pkg_cv_GDK2_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+else
+    enable_gtk2="no (disabled, use --enable-gtk2 to enable)"
+fi
+
+if test x"$enable_gtk3" = x"yes"; then
+    # check for gtk3, gdk3
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK3" >&5
+$as_echo_n "checking for GTK3... " >&6; }
+
+if test -n "$GTK3_CFLAGS"; then
+    pkg_cv_GTK3_CFLAGS="$GTK3_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        gtk+-3.0
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        gtk+-3.0
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_CFLAGS=`$PKG_CONFIG --cflags "
+        gtk+-3.0
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GTK3_LIBS"; then
+    pkg_cv_GTK3_LIBS="$GTK3_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        gtk+-3.0
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        gtk+-3.0
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTK3_LIBS=`$PKG_CONFIG --libs "
+        gtk+-3.0
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GTK3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+        gtk+-3.0
+    " 2>&1`
+        else
+               GTK3_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+        gtk+-3.0
+    " 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GTK3_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+        gtk+-3.0
+    ) were not met:
+
+$GTK3_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GTK3_CFLAGS
+and GTK3_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GTK3_CFLAGS
+and GTK3_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GTK3_CFLAGS=$pkg_cv_GTK3_CFLAGS
+       GTK3_LIBS=$pkg_cv_GTK3_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+    gtk3_binary_version=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
+    GTK3_IM_MODULEDIR="$libdir"/gtk-3.0/$gtk3_binary_version/immodules
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GDK3" >&5
+$as_echo_n "checking for GDK3... " >&6; }
+
+if test -n "$GDK3_CFLAGS"; then
+    pkg_cv_GDK3_CFLAGS="$GDK3_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        gdk-3.0
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        gdk-3.0
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GDK3_CFLAGS=`$PKG_CONFIG --cflags "
+        gdk-3.0
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GDK3_LIBS"; then
+    pkg_cv_GDK3_LIBS="$GDK3_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        gdk-3.0
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        gdk-3.0
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GDK3_LIBS=`$PKG_CONFIG --libs "
+        gdk-3.0
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GDK3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+        gdk-3.0
+    " 2>&1`
+        else
+               GDK3_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+        gdk-3.0
+    " 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GDK3_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+        gdk-3.0
+    ) were not met:
+
+$GDK3_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GDK3_CFLAGS
+and GDK3_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GDK3_CFLAGS
+and GDK3_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GDK3_CFLAGS=$pkg_cv_GDK3_CFLAGS
+       GDK3_LIBS=$pkg_cv_GDK3_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+else
+    enable_gtk3="no (disabled, use --enable-gtk3 to enable)"
+fi
+
+if test x"$enable_xim" = x"yes"; then
+    # Check for x11
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11" >&5
+$as_echo_n "checking for X11... " >&6; }
+
+if test -n "$X11_CFLAGS"; then
+    pkg_cv_X11_CFLAGS="$X11_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        x11
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        x11
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_X11_CFLAGS=`$PKG_CONFIG --cflags "
+        x11
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$X11_LIBS"; then
+    pkg_cv_X11_LIBS="$X11_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        x11
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        x11
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_X11_LIBS=`$PKG_CONFIG --libs "
+        x11
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+        x11
+    " 2>&1`
+        else
+               X11_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+        x11
+    " 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$X11_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+        x11
+    ) were not met:
+
+$X11_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables X11_CFLAGS
+and X11_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables X11_CFLAGS
+and X11_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       X11_CFLAGS=$pkg_cv_X11_CFLAGS
+       X11_LIBS=$pkg_cv_X11_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+    for ac_header in X11/XKBlib.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "X11/XKBlib.h" "ac_cv_header_X11_XKBlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_X11_XKBlib_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_X11_XKBLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+else
+    enable_xim="no (disabled, use --enable-xim to enable)"
+fi
+
+if test x"$enable_wayland" = x"yes"; then
+    # Check for wayland
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for WAYLAND" >&5
+$as_echo_n "checking for WAYLAND... " >&6; }
+
+if test -n "$WAYLAND_CFLAGS"; then
+    pkg_cv_WAYLAND_CFLAGS="$WAYLAND_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        wayland-client >= 1.2.0
+        xkbcommon
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        wayland-client >= 1.2.0
+        xkbcommon
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_WAYLAND_CFLAGS=`$PKG_CONFIG --cflags "
+        wayland-client >= 1.2.0
+        xkbcommon
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$WAYLAND_LIBS"; then
+    pkg_cv_WAYLAND_LIBS="$WAYLAND_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        wayland-client >= 1.2.0
+        xkbcommon
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        wayland-client >= 1.2.0
+        xkbcommon
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_WAYLAND_LIBS=`$PKG_CONFIG --libs "
+        wayland-client >= 1.2.0
+        xkbcommon
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               WAYLAND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+        wayland-client >= 1.2.0
+        xkbcommon
+    " 2>&1`
+        else
+               WAYLAND_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+        wayland-client >= 1.2.0
+        xkbcommon
+    " 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$WAYLAND_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+        wayland-client >= 1.2.0
+        xkbcommon
+    ) were not met:
+
+$WAYLAND_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables WAYLAND_CFLAGS
+and WAYLAND_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables WAYLAND_CFLAGS
+and WAYLAND_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       WAYLAND_CFLAGS=$pkg_cv_WAYLAND_CFLAGS
+       WAYLAND_LIBS=$pkg_cv_WAYLAND_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+else
+    enable_wayland="no (disabled, use --enable-wayland to enable)"
+fi
+
+# GObject introspection
+
+
+
+                # Check whether --enable-introspection was given.
+if test "${enable_introspection+set}" = set; then :
+  enableval=$enable_introspection;
+else
+  enable_introspection=auto
+fi
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-introspection" >&5
+$as_echo_n "checking for gobject-introspection... " >&6; }
+
+        case $enable_introspection in #(
+  no) :
+            found_introspection="no (disabled, use --enable-introspection to enable)"
+     ;; #(
+      yes) :
+            if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  :
+else
+  as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5
+fi
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.8\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.8") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  found_introspection=yes
+else
+  as_fn_error $? "You need to have gobject-introspection >= 0.6.8 installed to build ibus" "$LINENO" 5
+fi
+     ;; #(
+      auto) :
+            if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.8\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.8") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  found_introspection=yes
+else
+  found_introspection=no
+fi
+     ;; #(
+  *) :
+                as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5
+     ;;
+esac
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5
+$as_echo "$found_introspection" >&6; }
+
+    INTROSPECTION_SCANNER=
+    INTROSPECTION_COMPILER=
+    INTROSPECTION_GENERATE=
+    INTROSPECTION_GIRDIR=
+    INTROSPECTION_TYPELIBDIR=
+    if test "x$found_introspection" = "xyes"; then
+       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+    fi
+
+
+
+
+
+
+
+
+
+     if test "x$found_introspection" = "xyes"; then
+  HAVE_INTROSPECTION_TRUE=
+  HAVE_INTROSPECTION_FALSE='#'
+else
+  HAVE_INTROSPECTION_TRUE='#'
+  HAVE_INTROSPECTION_FALSE=
+fi
+
+
+
+
+IBUS_GIR_SCANNERFLAGS=
+if test x"$found_introspection" = x"yes" ; then
+    IBUS_GIR_SCANNERFLAGS="--warn-all --identifier-prefix=IBus --symbol-prefix=ibus"
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.9.6\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.9.6") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  gir_symbol_prefix=yes
+else
+  gir_symbol_prefix=no
+fi
+    if test x"$gir_symbol_prefix" = x"no" ; then
+        IBUS_GIR_SCANNERFLAGS="--strip-prefix=IBus"
+    fi
+fi
+
+
+# Check vapigen.
+
+
+
+
+  # Check whether --enable-vala was given.
+if test "${enable_vala+set}" = set; then :
+  enableval=$enable_vala;
+else
+
+      if test "x" = "x"; then :
+
+          enable_vala=auto
+
+else
+
+          enable_vala=
+
+fi
+
+fi
+
+
+  case $enable_vala in #(
+  no) :
+    enable_vala=no ;; #(
+  yes) :
+
+        if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then :
+
+            as_fn_error $? "Vala bindings require GObject Introspection" "$LINENO" 5
+
+fi
+       ;; #(
+  auto) :
+
+        if test "x" != "xyes" -a "x$found_introspection" != "xyes"; then :
+
+            enable_vala=no
+
+fi
+       ;; #(
+  *) :
+
+        as_fn_error $? "Invalid argument passed to --enable-vala, should be one of [no/auto/yes]" "$LINENO" 5
+       ;;
+esac
+
+  if test "x" = "x"; then :
+
+      vapigen_pkg_name=vapigen
+
+else
+
+      vapigen_pkg_name=vapigen-
+
+fi
+  if test "x0.16" = "x"; then :
+
+      vapigen_pkg="$vapigen_pkg_name"
+
+else
+
+      vapigen_pkg="$vapigen_pkg_name >= 0.16"
+
+fi
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=0.9.0
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       else
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+               PKG_CONFIG=""
+       fi
+fi
+
+  if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$vapigen_pkg\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$vapigen_pkg") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+
+      if test "$enable_vala" = "auto"; then :
+
+          enable_vala=yes
+
+fi
+
+else
+
+      case $enable_vala in #(
+  yes) :
+
+          as_fn_error $? "$vapigen_pkg not found" "$LINENO" 5
+         ;; #(
+  auto) :
+
+          enable_vala=no
+         ;; #(
+  *) :
+     ;;
+esac
+
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vapigen" >&5
+$as_echo_n "checking for vapigen... " >&6; }
+
+  case $enable_vala in #(
+  yes) :
+
+      VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
+      VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
+      if test "x" = "x"; then :
+
+          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
+
+else
+
+          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
+
+fi
+     ;; #(
+  *) :
+     ;;
+esac
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_vala" >&5
+$as_echo "$enable_vala" >&6; }
+
+
+
+
+
+   if test "x$enable_vala" = "xyes"; then
+  ENABLE_VAPIGEN_TRUE=
+  ENABLE_VAPIGEN_FALSE='#'
+else
+  ENABLE_VAPIGEN_TRUE='#'
+  ENABLE_VAPIGEN_FALSE=
+fi
+
+
+
+# Check for gtk-doc.
+
+
+
+    # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+set dummy gtkdoc-check; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GTKDOC_CHECK in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
+if test -n "$GTKDOC_CHECK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
+$as_echo "$GTKDOC_CHECK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  for ac_prog in gtkdoc-rebase
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_REBASE+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GTKDOC_REBASE in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE
+if test -n "$GTKDOC_REBASE"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5
+$as_echo "$GTKDOC_REBASE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$GTKDOC_REBASE" && break
+done
+test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true"
+
+  # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args.
+set dummy gtkdoc-mkpdf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_MKPDF+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GTKDOC_MKPDF in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF
+if test -n "$GTKDOC_MKPDF"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5
+$as_echo "$GTKDOC_MKPDF" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+# Check whether --with-html-dir was given.
+if test "${with_html_dir+set}" = set; then :
+  withval=$with_html_dir;
+else
+  with_html_dir='${datadir}/gtk-doc/html'
+fi
+
+  HTML_DIR="$with_html_dir"
+
+
+    # Check whether --enable-gtk-doc was given.
+if test "${enable_gtk_doc+set}" = set; then :
+  enableval=$enable_gtk_doc;
+else
+  enable_gtk_doc=no
+fi
+
+
+  if test x$enable_gtk_doc = xyes; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.9\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.9") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  :
+else
+  as_fn_error $? "You need to have gtk-doc >= 1.9 installed to build $PACKAGE_NAME" "$LINENO" 5
+fi
+        if test "x$PACKAGE_NAME" != "xglib"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
+$as_echo_n "checking for GTKDOC_DEPS... " >&6; }
+
+if test -n "$GTKDOC_DEPS_CFLAGS"; then
+    pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GTKDOC_DEPS_LIBS"; then
+    pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0" 2>&1`
+        else
+               GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
+
+       :
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       :
+else
+       GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
+       GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+    fi
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
+$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
+$as_echo "$enable_gtk_doc" >&6; }
+
+    # Check whether --enable-gtk-doc-html was given.
+if test "${enable_gtk_doc_html+set}" = set; then :
+  enableval=$enable_gtk_doc_html;
+else
+  enable_gtk_doc_html=yes
+fi
+
+    # Check whether --enable-gtk-doc-pdf was given.
+if test "${enable_gtk_doc_pdf+set}" = set; then :
+  enableval=$enable_gtk_doc_pdf;
+else
+  enable_gtk_doc_pdf=no
+fi
+
+
+  if test -z "$GTKDOC_MKPDF"; then
+    enable_gtk_doc_pdf=no
+  fi
+
+  if test -z "$AM_DEFAULT_VERBOSITY"; then
+    AM_DEFAULT_VERBOSITY=1
+  fi
+
+
+   if test x$enable_gtk_doc = xyes; then
+  ENABLE_GTK_DOC_TRUE=
+  ENABLE_GTK_DOC_FALSE='#'
+else
+  ENABLE_GTK_DOC_TRUE='#'
+  ENABLE_GTK_DOC_FALSE=
+fi
+
+   if test x$enable_gtk_doc_html = xyes; then
+  GTK_DOC_BUILD_HTML_TRUE=
+  GTK_DOC_BUILD_HTML_FALSE='#'
+else
+  GTK_DOC_BUILD_HTML_TRUE='#'
+  GTK_DOC_BUILD_HTML_FALSE=
+fi
+
+   if test x$enable_gtk_doc_pdf = xyes; then
+  GTK_DOC_BUILD_PDF_TRUE=
+  GTK_DOC_BUILD_PDF_FALSE='#'
+else
+  GTK_DOC_BUILD_PDF_TRUE='#'
+  GTK_DOC_BUILD_PDF_FALSE=
+fi
+
+   if test -n "$LIBTOOL"; then
+  GTK_DOC_USE_LIBTOOL_TRUE=
+  GTK_DOC_USE_LIBTOOL_FALSE='#'
+else
+  GTK_DOC_USE_LIBTOOL_TRUE='#'
+  GTK_DOC_USE_LIBTOOL_FALSE=
+fi
+
+   if test -n "$GTKDOC_REBASE"; then
+  GTK_DOC_USE_REBASE_TRUE=
+  GTK_DOC_USE_REBASE_FALSE='#'
+else
+  GTK_DOC_USE_REBASE_TRUE='#'
+  GTK_DOC_USE_REBASE_FALSE=
+fi
+
+
+if test x"$enable_gtk_doc" = x"no"; then
+    enable_gtk_doc="no (disabled, use --enable-gtk-doc to enable)"
+fi
+
+# Check for dbus.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS" >&5
+$as_echo_n "checking for DBUS... " >&6; }
+
+if test -n "$DBUS_CFLAGS"; then
+    pkg_cv_DBUS_CFLAGS="$DBUS_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    dbus-1
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    dbus-1
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DBUS_CFLAGS=`$PKG_CONFIG --cflags "
+    dbus-1
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$DBUS_LIBS"; then
+    pkg_cv_DBUS_LIBS="$DBUS_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    dbus-1
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    dbus-1
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DBUS_LIBS=`$PKG_CONFIG --libs "
+    dbus-1
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+    dbus-1
+" 2>&1`
+        else
+               DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+    dbus-1
+" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$DBUS_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+    dbus-1
+) were not met:
+
+$DBUS_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables DBUS_CFLAGS
+and DBUS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables DBUS_CFLAGS
+and DBUS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       DBUS_CFLAGS=$pkg_cv_DBUS_CFLAGS
+       DBUS_LIBS=$pkg_cv_DBUS_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+# --enable-gconf option.
+# Check whether --enable-gconf was given.
+if test "${enable_gconf+set}" = set; then :
+  enableval=$enable_gconf; enable_gconf=$enableval
+else
+  enable_gconf=no
+
+fi
+
+ if test x"$enable_gconf" = x"yes"; then
+  ENABLE_GCONF_TRUE=
+  ENABLE_GCONF_FALSE='#'
+else
+  ENABLE_GCONF_TRUE='#'
+  ENABLE_GCONF_FALSE=
+fi
+
+
+if test x"$enable_gconf" = x"yes"; then
+    # check gconf
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCONF" >&5
+$as_echo_n "checking for GCONF... " >&6; }
+
+if test -n "$GCONF_CFLAGS"; then
+    pkg_cv_GCONF_CFLAGS="$GCONF_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gconf-2.0 >= 2.12\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gconf-2.0 >= 2.12") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0 >= 2.12" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GCONF_LIBS"; then
+    pkg_cv_GCONF_LIBS="$GCONF_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gconf-2.0 >= 2.12\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gconf-2.0 >= 2.12") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0 >= 2.12" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               GCONF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gconf-2.0 >= 2.12" 2>&1`
+        else
+               GCONF_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gconf-2.0 >= 2.12" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$GCONF_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (gconf-2.0 >= 2.12) were not met:
+
+$GCONF_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GCONF_CFLAGS
+and GCONF_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GCONF_CFLAGS
+and GCONF_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       GCONF_CFLAGS=$pkg_cv_GCONF_CFLAGS
+       GCONF_LIBS=$pkg_cv_GCONF_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+    # Extract the first word of "gconftool-2", so it can be a program name with args.
+set dummy gconftool-2; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GCONFTOOL+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GCONFTOOL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GCONFTOOL="$GCONFTOOL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GCONFTOOL="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_GCONFTOOL" && ac_cv_path_GCONFTOOL="no"
+  ;;
+esac
+fi
+GCONFTOOL=$ac_cv_path_GCONFTOOL
+if test -n "$GCONFTOOL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONFTOOL" >&5
+$as_echo "$GCONFTOOL" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    if test x"$GCONFTOOL" = xno; then
+        as_fn_error $? "gconftool-2 executable not found in your path - should be installed with GConf" "$LINENO" 5
+    fi
+
+
+  if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
+    GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+  else
+    GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
+  fi
+
+
+# Check whether --with-gconf-source was given.
+if test "${with_gconf_source+set}" = set; then :
+  withval=$with_gconf_source; GCONF_SCHEMA_CONFIG_SOURCE="$withval"
+fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5
+$as_echo "Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6; }
+
+  if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
+    GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+  fi
+
+
+# Check whether --with-gconf-schema-file-dir was given.
+if test "${with_gconf_schema_file_dir+set}" = set; then :
+  withval=$with_gconf_schema_file_dir; GCONF_SCHEMA_FILE_DIR="$withval"
+fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5
+$as_echo "Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6; }
+
+  # Check whether --enable-schemas-install was given.
+if test "${enable_schemas_install+set}" = set; then :
+  enableval=$enable_schemas_install; case ${enableval} in
+       yes|no) ;;
+       *) as_fn_error $? "bad value ${enableval} for --enable-schemas-install" "$LINENO" 5 ;;
+      esac
+fi
+
+   if test "$enable_schemas_install" != no; then
+  GCONF_SCHEMAS_INSTALL_TRUE=
+  GCONF_SCHEMAS_INSTALL_FALSE='#'
+else
+  GCONF_SCHEMAS_INSTALL_TRUE='#'
+  GCONF_SCHEMAS_INSTALL_FALSE=
+fi
+
+
+    # GCONF_SCHEMAS_INSTALL should be set in macro AM_GCONF_SOURCE_2
+else
+     if false; then
+  GCONF_SCHEMAS_INSTALL_TRUE=
+  GCONF_SCHEMAS_INSTALL_FALSE='#'
+else
+  GCONF_SCHEMAS_INSTALL_TRUE='#'
+  GCONF_SCHEMAS_INSTALL_FALSE=
+fi
+
+    enable_gconf="no (disabled, use --enable-gconf to enable)"
+fi
+
+# --enable-memconf option.
+# Check whether --enable-memconf was given.
+if test "${enable_memconf+set}" = set; then :
+  enableval=$enable_memconf; enable_memconf=$enableval
+else
+  enable_memconf=no
+
+fi
+
+ if test "x$enable_memconf" = "xyes"; then
+  ENABLE_MEMCONF_TRUE=
+  ENABLE_MEMCONF_FALSE='#'
+else
+  ENABLE_MEMCONF_TRUE='#'
+  ENABLE_MEMCONF_FALSE=
+fi
+
+
+# Check whether --enable-dconf was given.
+if test "${enable_dconf+set}" = set; then :
+  enableval=$enable_dconf; enable_dconf=$enableval
+else
+  enable_dconf=yes
+
+fi
+
+ if test x"$enable_dconf" = x"yes"; then
+  ENABLE_DCONF_TRUE=
+  ENABLE_DCONF_FALSE='#'
+else
+  ENABLE_DCONF_TRUE='#'
+  ENABLE_DCONF_FALSE=
+fi
+
+
+if test x"$enable_dconf" = x"yes"; then
+    # check dconf
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DCONF" >&5
+$as_echo_n "checking for DCONF... " >&6; }
+
+if test -n "$DCONF_CFLAGS"; then
+    pkg_cv_DCONF_CFLAGS="$DCONF_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dconf >= 0.7.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dconf >= 0.7.5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DCONF_CFLAGS=`$PKG_CONFIG --cflags "dconf >= 0.7.5" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$DCONF_LIBS"; then
+    pkg_cv_DCONF_LIBS="$DCONF_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dconf >= 0.7.5\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dconf >= 0.7.5") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DCONF_LIBS=`$PKG_CONFIG --libs "dconf >= 0.7.5" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               DCONF_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dconf >= 0.7.5" 2>&1`
+        else
+               DCONF_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dconf >= 0.7.5" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$DCONF_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (dconf >= 0.7.5) were not met:
+
+$DCONF_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables DCONF_CFLAGS
+and DCONF_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables DCONF_CFLAGS
+and DCONF_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       DCONF_CFLAGS=$pkg_cv_DCONF_CFLAGS
+       DCONF_LIBS=$pkg_cv_DCONF_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dconf >= 0.13.4\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dconf >= 0.13.4") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+
+$as_echo "#define DCONF_0_13_4 TRUE" >>confdefs.h
+
+fi
+    # check glib-compile-schemas
+
+
+  # Check whether --enable-schemas-compile was given.
+if test "${enable_schemas_compile+set}" = set; then :
+  enableval=$enable_schemas_compile; case ${enableval} in
+                  yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE=""  ;;
+                  no)  GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;;
+                  *) as_fn_error $? "bad value ${enableval} for --enable-schemas-compile" "$LINENO" 5 ;;
+                 esac
+fi
+
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+       if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+       _pkg_min_version=0.16
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+       if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       else
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+               PKG_CONFIG=""
+       fi
+fi
+  gsettingsschemadir=${datadir}/glib-2.0/schemas
+
+  if test x$cross_compiling != xyes; then
+    GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0`
+  else
+    # Extract the first word of "glib-compile-schemas", so it can be a program name with args.
+set dummy glib-compile-schemas; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GLIB_COMPILE_SCHEMAS+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GLIB_COMPILE_SCHEMAS in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GLIB_COMPILE_SCHEMAS="$GLIB_COMPILE_SCHEMAS" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GLIB_COMPILE_SCHEMAS="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+GLIB_COMPILE_SCHEMAS=$ac_cv_path_GLIB_COMPILE_SCHEMAS
+if test -n "$GLIB_COMPILE_SCHEMAS"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_SCHEMAS" >&5
+$as_echo "$GLIB_COMPILE_SCHEMAS" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+
+  if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then
+    as_fn_error $? "glib-compile-schemas not found." "$LINENO" 5
+  else
+    :
+  fi
+
+  GSETTINGS_RULES='
+.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas
+
+mostlyclean-am: clean-gsettings-schemas
+
+gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE))
+
+%.gschema.valid: %.gschema.xml $(gsettings__enum_file)
+       $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch $@
+
+all-am: $(gsettings_SCHEMAS:.xml=.valid)
+uninstall-am: uninstall-gsettings-schemas
+install-data-am: install-gsettings-schemas
+
+.SECONDARY: $(gsettings_SCHEMAS)
+
+install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file)
+       @$(NORMAL_INSTALL)
+       if test -n "$^"; then \
+               test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \
+               $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \
+               test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \
+       fi
+
+uninstall-gsettings-schemas:
+       @$(NORMAL_UNINSTALL)
+       @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files
+       test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir)
+
+clean-gsettings-schemas:
+       rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file)
+
+ifdef gsettings_ENUM_NAMESPACE
+$(gsettings__enum_file): $(gsettings_ENUM_FILES)
+       $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead "  <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod "    <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail "  </@type@>" --ftail "</schemalist>" $^ > $@.tmp && mv $@.tmp $@
+endif
+'
+
+
+
+
+
+
+    # Extract the first word of "gsettings-schema-convert", so it can be a program name with args.
+set dummy gsettings-schema-convert; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GSETTINGS_SCHEMA_CONVERT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GSETTINGS_SCHEMA_CONVERT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GSETTINGS_SCHEMA_CONVERT="$GSETTINGS_SCHEMA_CONVERT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GSETTINGS_SCHEMA_CONVERT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+GSETTINGS_SCHEMA_CONVERT=$ac_cv_path_GSETTINGS_SCHEMA_CONVERT
+if test -n "$GSETTINGS_SCHEMA_CONVERT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSETTINGS_SCHEMA_CONVERT" >&5
+$as_echo "$GSETTINGS_SCHEMA_CONVERT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    if test x"$ac_cv_path_GSETTINGS_SCHEMA_CONVERT" = x""; then :
+  as_fn_error $? "gsettings-schema-convert from GConf2 is required for dconf support" "$LINENO" 5
+fi
+    enable_dconf="yes (enabled, use --disable-dconf to disable)"
+fi
+
+# Check env.
+# Extract the first word of "env", so it can be a program name with args.
+set dummy env; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ENV_IBUS_TEST+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ENV_IBUS_TEST in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ENV_IBUS_TEST="$ENV_IBUS_TEST" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ENV_IBUS_TEST="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ENV_IBUS_TEST=$ac_cv_path_ENV_IBUS_TEST
+if test -n "$ENV_IBUS_TEST"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENV_IBUS_TEST" >&5
+$as_echo "$ENV_IBUS_TEST" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
+# Check whether --enable-python-library was given.
+if test "${enable_python_library+set}" = set; then :
+  enableval=$enable_python_library; enable_python_library=$enableval
+else
+  enable_python_library=no
+
+fi
+
+
+# Check whether --enable-setup was given.
+if test "${enable_setup+set}" = set; then :
+  enableval=$enable_setup; enable_setup=$enableval
+else
+  enable_setup=yes
+
+fi
+
+
+ if test x"$enable_python_library" = x"yes"; then
+  ENABLE_PYTHON_LIBRARY_TRUE=
+  ENABLE_PYTHON_LIBRARY_FALSE='#'
+else
+  ENABLE_PYTHON_LIBRARY_TRUE='#'
+  ENABLE_PYTHON_LIBRARY_FALSE=
+fi
+
+ if test x"$enable_setup" = x"yes"; then
+  ENABLE_SETUP_TRUE=
+  ENABLE_SETUP_FALSE='#'
+else
+  ENABLE_SETUP_TRUE='#'
+  ENABLE_SETUP_FALSE=
+fi
+
+ if true; then
+  ENABLE_DAEMON_TRUE=
+  ENABLE_DAEMON_FALSE='#'
+else
+  ENABLE_DAEMON_TRUE='#'
+  ENABLE_DAEMON_FALSE=
+fi
+
+
+
+
+
+
+
+
+        if test -n "$PYTHON"; then
+      # If the user set $PYTHON, use it and don't search something else.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.5" >&5
+$as_echo_n "checking whether $PYTHON version is >= 2.5... " >&6; }
+      prog="import sys
+# split strings by '.' and convert to numeric.  Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
+sys.exit(sys.hexversion < minverhex)"
+  if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5
+   ($PYTHON -c "$prog") >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                              as_fn_error $? "Python interpreter is too old" "$LINENO" 5
+fi
+      am_display_PYTHON=$PYTHON
+    else
+      # Otherwise, try each interpreter until we find one that satisfies
+      # VERSION.
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.5" >&5
+$as_echo_n "checking for a Python interpreter with version >= 2.5... " >&6; }
+if ${am_cv_pathless_PYTHON+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+       for am_cv_pathless_PYTHON in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do
+         test "$am_cv_pathless_PYTHON" = none && break
+         prog="import sys
+# split strings by '.' and convert to numeric.  Append some zeros
+# because we need at least 4 digits for the hex conversion.
+# map returns an iterator in Python 3.0 and a list in 2.x
+minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0]
+minverhex = 0
+# xrange is not present in Python 3.0 and range returns an iterator
+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
+sys.exit(sys.hexversion < minverhex)"
+  if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5
+   ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; then :
+  break
+fi
+       done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5
+$as_echo "$am_cv_pathless_PYTHON" >&6; }
+      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+      if test "$am_cv_pathless_PYTHON" = none; then
+       PYTHON=:
+      else
+        # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args.
+set dummy $am_cv_pathless_PYTHON; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PYTHON in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+if test -n "$PYTHON"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
+$as_echo "$PYTHON" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+      fi
+      am_display_PYTHON=$am_cv_pathless_PYTHON
+    fi
+
+
+  if test "$PYTHON" = :; then
+      as_fn_error $? "no suitable Python interpreter found" "$LINENO" 5
+  else
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
+$as_echo_n "checking for $am_display_PYTHON version... " >&6; }
+if ${am_cv_python_version+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
+$as_echo "$am_cv_python_version" >&6; }
+  PYTHON_VERSION=$am_cv_python_version
+
+
+
+  PYTHON_PREFIX='${prefix}'
+
+  PYTHON_EXEC_PREFIX='${exec_prefix}'
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
+$as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
+if ${am_cv_python_platform+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
+$as_echo "$am_cv_python_platform" >&6; }
+  PYTHON_PLATFORM=$am_cv_python_platform
+
+
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
+
+
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
+$as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
+if ${am_cv_python_pythondir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$prefix" = xNONE
+     then
+       am_py_prefix=$ac_default_prefix
+     else
+       am_py_prefix=$prefix
+     fi
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pythondir in
+     $am_py_prefix*)
+       am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+       am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
+       ;;
+     *)
+       case $am_py_prefix in
+         /usr|/System*) ;;
+         *)
+         am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
+         ;;
+       esac
+       ;;
+     esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
+$as_echo "$am_cv_python_pythondir" >&6; }
+  pythondir=$am_cv_python_pythondir
+
+
+
+  pkgpythondir=\${pythondir}/$PACKAGE
+
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
+$as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
+if ${am_cv_python_pyexecdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$exec_prefix" = xNONE
+     then
+       am_py_exec_prefix=$am_py_prefix
+     else
+       am_py_exec_prefix=$exec_prefix
+     fi
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
+     case $am_cv_python_pyexecdir in
+     $am_py_exec_prefix*)
+       am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+       am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
+       ;;
+     *)
+       case $am_py_exec_prefix in
+         /usr|/System*) ;;
+         *)
+          am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
+          ;;
+       esac
+       ;;
+     esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
+$as_echo "$am_cv_python_pyexecdir" >&6; }
+  pyexecdir=$am_cv_python_pyexecdir
+
+
+
+  pkgpyexecdir=\${pyexecdir}/$PACKAGE
+
+
+
+  fi
+
+
+
+PYGOBJECT_REQUIRED=3.0.0
+
+if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pygobject-3.0 >= \$PYGOBJECT_REQUIRED\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "pygobject-3.0 >= $PYGOBJECT_REQUIRED") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  enable_pygobject=yes
+else
+  enable_pygobject=no
+fi
+
+if test "x$enable_pygobject" = "xyes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PYTHON" >&5
+$as_echo_n "checking for PYTHON... " >&6; }
+
+if test -n "$PYTHON_CFLAGS"; then
+    pkg_cv_PYTHON_CFLAGS="$PYTHON_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pygobject-3.0 >= \$PYGOBJECT_REQUIRED\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "pygobject-3.0 >= $PYGOBJECT_REQUIRED") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_PYTHON_CFLAGS=`$PKG_CONFIG --cflags "pygobject-3.0 >= $PYGOBJECT_REQUIRED" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$PYTHON_LIBS"; then
+    pkg_cv_PYTHON_LIBS="$PYTHON_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pygobject-3.0 >= \$PYGOBJECT_REQUIRED\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "pygobject-3.0 >= $PYGOBJECT_REQUIRED") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_PYTHON_LIBS=`$PKG_CONFIG --libs "pygobject-3.0 >= $PYGOBJECT_REQUIRED" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               PYTHON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "pygobject-3.0 >= $PYGOBJECT_REQUIRED" 2>&1`
+        else
+               PYTHON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "pygobject-3.0 >= $PYGOBJECT_REQUIRED" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$PYTHON_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (pygobject-3.0 >= $PYGOBJECT_REQUIRED) were not met:
+
+$PYTHON_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables PYTHON_CFLAGS
+and PYTHON_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables PYTHON_CFLAGS
+and PYTHON_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       PYTHON_CFLAGS=$pkg_cv_PYTHON_CFLAGS
+       PYTHON_LIBS=$pkg_cv_PYTHON_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
+       pyoverridesdir=`$PYTHON -c "import gi; print(gi._overridesdir)"`
+
+fi
+
+ if test x"$enable_pygobject" = "xyes"; then
+  ENABLE_PYGOBJECT_TRUE=
+  ENABLE_PYGOBJECT_FALSE='#'
+else
+  ENABLE_PYGOBJECT_TRUE='#'
+  ENABLE_PYGOBJECT_FALSE=
+fi
+
+
+if test x"$enable_python_library" = x"yes"; then
+    # Check python.
+    # Extract the first word of "python$PYTHON_VERSION-config", so it can be a program name with args.
+set dummy python$PYTHON_VERSION-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PYTHON_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PYTHON_CONFIG="$PYTHON_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHON_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PYTHON_CONFIG=$ac_cv_path_PYTHON_CONFIG
+if test -n "$PYTHON_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CONFIG" >&5
+$as_echo "$PYTHON_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    if test x"$PYTHON_CONFIG" = x""; then
+        # Extract the first word of "python-config", so it can be a program name with args.
+set dummy python-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PYTHON_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PYTHON_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PYTHON_CONFIG="$PYTHON_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHON_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PYTHON_CONFIG=$ac_cv_path_PYTHON_CONFIG
+if test -n "$PYTHON_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_CONFIG" >&5
+$as_echo "$PYTHON_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    fi
+    if test x"$PYTHON_CONFIG" != x""; then
+        PYTHON_CFLAGS=`$PYTHON_CONFIG --includes`
+        PYTHON_LIBS=`$PYTHON_CONFIG --libs`
+    else
+        PYTHON_CFLAGS=`$PYTHON $srcdir/python-config.py --includes`
+        PYTHON_LIBS=`$PYTHON $srcdir/python-config.py --libs`
+    fi
+    PYTHON_INCLUDES="$PYTHON_CFLAGS"
+
+
+
+else
+    enable_python_library="no (disabled, use --enable-python-library to enable)"
+fi
+
+# Define gtk2 immodule dir.
+
+# Check whether --with-gtk2-im-module-dir was given.
+if test "${with_gtk2_im_module_dir+set}" = set; then :
+  withval=$with_gtk2_im_module_dir; GTK2_IM_MODULEDIR=$with_gtk2_im_module_dir
+
+fi
+
+
+
+# Define gtk3 immodule dir.
+
+# Check whether --with-gtk3-im-module-dir was given.
+if test "${with_gtk3_im_module_dir+set}" = set; then :
+  withval=$with_gtk3_im_module_dir; GTK3_IM_MODULEDIR=$with_gtk3_im_module_dir
+
+fi
+
+
+
+if test x"$enable_python" = x"yes"; then
+    # Check for dbus-python.
+    # Check whether --enable-dbus-python-check was given.
+if test "${enable_dbus_python_check+set}" = set; then :
+  enableval=$enable_dbus_python_check; enable_dbus_python_check=$enableval
+else
+  enable_dbus_python_check=yes
+
+fi
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DBUS_PYTHON" >&5
+$as_echo_n "checking for DBUS_PYTHON... " >&6; }
+
+if test -n "$DBUS_PYTHON_CFLAGS"; then
+    pkg_cv_DBUS_PYTHON_CFLAGS="$DBUS_PYTHON_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-python >= 0.83.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-python >= 0.83.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DBUS_PYTHON_CFLAGS=`$PKG_CONFIG --cflags "dbus-python >= 0.83.0" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$DBUS_PYTHON_LIBS"; then
+    pkg_cv_DBUS_PYTHON_LIBS="$DBUS_PYTHON_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dbus-python >= 0.83.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "dbus-python >= 0.83.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_DBUS_PYTHON_LIBS=`$PKG_CONFIG --libs "dbus-python >= 0.83.0" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               DBUS_PYTHON_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-python >= 0.83.0" 2>&1`
+        else
+               DBUS_PYTHON_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-python >= 0.83.0" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$DBUS_PYTHON_PKG_ERRORS" >&5
+
+       IBUS_HAS_DBUS_PYTHON=no
+
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       IBUS_HAS_DBUS_PYTHON=no
+
+else
+       DBUS_PYTHON_CFLAGS=$pkg_cv_DBUS_PYTHON_CFLAGS
+       DBUS_PYTHON_LIBS=$pkg_cv_DBUS_PYTHON_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       IBUS_HAS_DBUS_PYTHON=yes
+fi
+    if test x"$IBUS_HAS_DBUS_PYTHON" != x"yes"; then
+        if test x"$enable_dbus_python_check" != x"no"; then
+            as_fn_error $? "can not find dbus-python >= 0.83.0. Please install or update dbus-python." "$LINENO" 5
+        else
+            { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: can not find dbus-python >= 0.83.0. It is required." >&5
+$as_echo "$as_me: WARNING: can not find dbus-python >= 0.83.0. It is required." >&2;}
+        fi
+    fi
+fi
+
+# Option for always disable snooper applications.
+# Check whether --enable-key-snooper was given.
+if test "${enable_key_snooper+set}" = set; then :
+  enableval=$enable_key_snooper; enable_key_snooper=$enableval
+else
+  enable_key_snooper=yes
+
+fi
+
+if test x"$enable_key_snooper" = x"yes"; then
+
+$as_echo "#define ENABLE_SNOOPER TRUE" >>confdefs.h
+
+else
+
+$as_echo "#define ENABLE_SNOOPER FALSE" >>confdefs.h
+
+    enable_key_snooper="no (disabled, use --enable-key-snooper to enable)"
+fi
+
+# Option for no snooper applications.
+
+# Check whether --with-no-snooper-apps was given.
+if test "${with_no_snooper_apps+set}" = set; then :
+  withval=$with_no_snooper_apps; NO_SNOOPER_APPS=$with_no_snooper_apps
+else
+  NO_SNOOPER_APPS=.*chrome.*,.*chromium.*,firefox.*,Do.*
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define NO_SNOOPER_APPS "$NO_SNOOPER_APPS"
+_ACEOF
+
+
+# GNOME 3 uses the theme's icon.
+
+# Check whether --with-panel-icon-keyboard was given.
+if test "${with_panel_icon_keyboard+set}" = set; then :
+  withval=$with_panel_icon_keyboard; if test x"$with_panel_icon_keyboard" = x"yes" -o \
+             x"$with_panel_icon_keyboard" = x; then
+         with_panel_icon_keyboard="input-keyboard-symbolic"
+     fi
+     if test x"$with_panel_icon_keyboard" = x"legacy"; then
+         with_panel_icon_keyboard="ibus-keyboard"
+     fi
+     IBUS_ICON_KEYBOARD=$with_panel_icon_keyboard
+
+else
+  IBUS_ICON_KEYBOARD="ibus-keyboard"
+
+fi
+
+
+
+# --disable-surrounding-text option.
+# Check whether --enable-surrounding-text was given.
+if test "${enable_surrounding_text+set}" = set; then :
+  enableval=$enable_surrounding_text; enable_surrounding_text=$enableval
+else
+  enable_surrounding_text=yes
+
+fi
+
+if test x"$enable_surrounding_text" = x"yes"; then
+
+$as_echo "#define ENABLE_SURROUNDING TRUE" >>confdefs.h
+
+else
+    enable_surrounding_text="no (disabled, use --enable-surrounding-text to enable)"
+fi
+
+# --disable-ui
+# Check whether --enable-ui was given.
+if test "${enable_ui+set}" = set; then :
+  enableval=$enable_ui; enable_ui=$enableval
+else
+  enable_ui=yes
+
+fi
+
+ if test x"$enable_ui" = x"yes"; then
+  ENABLE_UI_TRUE=
+  ENABLE_UI_FALSE='#'
+else
+  ENABLE_UI_TRUE='#'
+  ENABLE_UI_FALSE=
+fi
+
+if test x"$enable_ui" = x"yes"; then
+    enable_ui="yes (enabled, use --disable-ui to disable)"
+fi
+
+# --disable-engine
+# Check whether --enable-engine was given.
+if test "${enable_engine+set}" = set; then :
+  enableval=$enable_engine; enable_engine=$enableval
+else
+  enable_engine=yes
+
+fi
+
+ if test x"$enable_engine" = x"yes"; then
+  ENABLE_ENGINE_TRUE=
+  ENABLE_ENGINE_FALSE='#'
+else
+  ENABLE_ENGINE_TRUE='#'
+  ENABLE_ENGINE_FALSE=
+fi
+
+if test x"$enable_engine" = x"yes"; then
+    enable_engine="yes (enabled, use --disable-engine to disable)"
+fi
+
+# --disable-libnotify
+# Check whether --enable-libnotify was given.
+if test "${enable_libnotify+set}" = set; then :
+  enableval=$enable_libnotify; enable_libnotify=$enableval
+else
+  enable_libnotify=yes
+
+fi
+
+ if test x"$enable_libnotify" = x"yes"; then
+  ENABLE_LIBNOTIFY_TRUE=
+  ENABLE_LIBNOTIFY_FALSE='#'
+else
+  ENABLE_LIBNOTIFY_TRUE='#'
+  ENABLE_LIBNOTIFY_FALSE=
+fi
+
+if test x"$enable_libnotify" = x"yes"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNOTIFY" >&5
+$as_echo_n "checking for LIBNOTIFY... " >&6; }
+
+if test -n "$LIBNOTIFY_CFLAGS"; then
+    pkg_cv_LIBNOTIFY_CFLAGS="$LIBNOTIFY_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        libnotify >= 0.7
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        libnotify >= 0.7
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBNOTIFY_CFLAGS=`$PKG_CONFIG --cflags "
+        libnotify >= 0.7
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$LIBNOTIFY_LIBS"; then
+    pkg_cv_LIBNOTIFY_LIBS="$LIBNOTIFY_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+        libnotify >= 0.7
+    \""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+        libnotify >= 0.7
+    ") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_LIBNOTIFY_LIBS=`$PKG_CONFIG --libs "
+        libnotify >= 0.7
+    " 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               LIBNOTIFY_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+        libnotify >= 0.7
+    " 2>&1`
+        else
+               LIBNOTIFY_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+        libnotify >= 0.7
+    " 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$LIBNOTIFY_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+        libnotify >= 0.7
+    ) were not met:
+
+$LIBNOTIFY_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables LIBNOTIFY_CFLAGS
+and LIBNOTIFY_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables LIBNOTIFY_CFLAGS
+and LIBNOTIFY_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       LIBNOTIFY_CFLAGS=$pkg_cv_LIBNOTIFY_CFLAGS
+       LIBNOTIFY_LIBS=$pkg_cv_LIBNOTIFY_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+    enable_libnotify="yes (enabled, use --disable-libnotify to disable)"
+fi
+
+# Check iso-codes.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ISOCODES" >&5
+$as_echo_n "checking for ISOCODES... " >&6; }
+
+if test -n "$ISOCODES_CFLAGS"; then
+    pkg_cv_ISOCODES_CFLAGS="$ISOCODES_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    iso-codes
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    iso-codes
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_ISOCODES_CFLAGS=`$PKG_CONFIG --cflags "
+    iso-codes
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$ISOCODES_LIBS"; then
+    pkg_cv_ISOCODES_LIBS="$ISOCODES_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
+    iso-codes
+\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "
+    iso-codes
+") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_ISOCODES_LIBS=`$PKG_CONFIG --libs "
+    iso-codes
+" 2>/dev/null`
+                     test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               ISOCODES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "
+    iso-codes
+" 2>&1`
+        else
+               ISOCODES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "
+    iso-codes
+" 2>&1`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$ISOCODES_PKG_ERRORS" >&5
+
+       as_fn_error $? "Package requirements (
+    iso-codes
+) were not met:
+
+$ISOCODES_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables ISOCODES_CFLAGS
+and ISOCODES_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables ISOCODES_CFLAGS
+and ISOCODES_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+       ISOCODES_CFLAGS=$pkg_cv_ISOCODES_CFLAGS
+       ISOCODES_LIBS=$pkg_cv_ISOCODES_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+ISOCODES_PREFIX=`pkg-config iso-codes --variable=prefix`
+
+
+# OUTPUT files
+ac_config_files="$ac_config_files po/Makefile.in Makefile ibus-1.0.pc ibus.spec client/Makefile client/gtk2/Makefile client/gtk3/Makefile client/x11/Makefile client/wayland/Makefile src/Makefile src/ibusversion.h src/tests/Makefile bus/Makefile engine/Makefile util/Makefile util/IMdkit/Makefile data/Makefile data/icons/Makefile data/keymaps/Makefile data/dconf/Makefile docs/Makefile docs/reference/Makefile docs/reference/ibus/ibus-docs.sgml docs/reference/ibus/Makefile m4/Makefile ibus/_config.py ibus/Makefile ibus/interface/Makefile ui/Makefile ui/gtk3/Makefile setup/Makefile setup/ibus-setup bindings/Makefile bindings/pygobject/Makefile bindings/vala/Makefile conf/Makefile conf/gconf/Makefile conf/dconf/Makefile conf/memconf/Makefile tools/Makefile"
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+       "s/'/'\\\\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+       cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+         mv -f confcache "$cache_file"$$ &&
+         mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+         mv -f confcache "$cache_file" ;;
+       esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+  am__EXEEXT_TRUE=
+  am__EXEEXT_FALSE='#'
+else
+  am__EXEEXT_TRUE='#'
+  am__EXEEXT_FALSE=
+fi
+
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+  as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+  ac_config_commands="$ac_config_commands po/stamp-it"
+
+
+if test -z "${ENABLE_TESTS_TRUE}" && test -z "${ENABLE_TESTS_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_TESTS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_GTK2_TRUE}" && test -z "${ENABLE_GTK2_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_GTK2\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_GTK3_TRUE}" && test -z "${ENABLE_GTK3_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_GTK3\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_XIM_TRUE}" && test -z "${ENABLE_XIM_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_XIM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_WAYLAND_TRUE}" && test -z "${ENABLE_WAYLAND_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_WAYLAND\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_VAPIGEN_TRUE}" && test -z "${ENABLE_VAPIGEN_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_VAPIGEN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then
+  as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_GCONF_TRUE}" && test -z "${ENABLE_GCONF_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_GCONF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GCONF_SCHEMAS_INSTALL_TRUE}" && test -z "${GCONF_SCHEMAS_INSTALL_FALSE}"; then
+  as_fn_error $? "conditional \"GCONF_SCHEMAS_INSTALL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GCONF_SCHEMAS_INSTALL_TRUE}" && test -z "${GCONF_SCHEMAS_INSTALL_FALSE}"; then
+  as_fn_error $? "conditional \"GCONF_SCHEMAS_INSTALL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_MEMCONF_TRUE}" && test -z "${ENABLE_MEMCONF_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_MEMCONF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_DCONF_TRUE}" && test -z "${ENABLE_DCONF_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_DCONF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_PYTHON_LIBRARY_TRUE}" && test -z "${ENABLE_PYTHON_LIBRARY_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_PYTHON_LIBRARY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_SETUP_TRUE}" && test -z "${ENABLE_SETUP_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_SETUP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_DAEMON_TRUE}" && test -z "${ENABLE_DAEMON_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_DAEMON\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_PYGOBJECT_TRUE}" && test -z "${ENABLE_PYGOBJECT_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_PYGOBJECT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_UI_TRUE}" && test -z "${ENABLE_UI_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_UI\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_ENGINE_TRUE}" && test -z "${ENABLE_ENGINE_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_ENGINE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ENABLE_LIBNOTIFY_TRUE}" && test -z "${ENABLE_LIBNOTIFY_FALSE}"; then
+  as_fn_error $? "conditional \"ENABLE_LIBNOTIFY\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+       expr "X$arg" : "X\\(.*\\)$as_nl";
+       arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""       $as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\/\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by ibus $as_me 1.5.4, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <http://code.google.com/p/ibus/issues/entry>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+ibus config.status 1.5.4
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+DLLTOOL \
+sharedlib_from_linklib_cmd \
+AR \
+AR_FLAGS \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+nm_file_list_spec \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[\\\\\\\`\\"\\\$]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+sys_lib_dlsearch_path_spec; do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[\\\\\\\`\\"\\\$]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+xsi_shell='$xsi_shell'
+lt_shell_append='$lt_shell_append'
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'
+
+
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+    "default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;;
+    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+    "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "ibus-1.0.pc") CONFIG_FILES="$CONFIG_FILES ibus-1.0.pc" ;;
+    "ibus.spec") CONFIG_FILES="$CONFIG_FILES ibus.spec" ;;
+    "client/Makefile") CONFIG_FILES="$CONFIG_FILES client/Makefile" ;;
+    "client/gtk2/Makefile") CONFIG_FILES="$CONFIG_FILES client/gtk2/Makefile" ;;
+    "client/gtk3/Makefile") CONFIG_FILES="$CONFIG_FILES client/gtk3/Makefile" ;;
+    "client/x11/Makefile") CONFIG_FILES="$CONFIG_FILES client/x11/Makefile" ;;
+    "client/wayland/Makefile") CONFIG_FILES="$CONFIG_FILES client/wayland/Makefile" ;;
+    "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+    "src/ibusversion.h") CONFIG_FILES="$CONFIG_FILES src/ibusversion.h" ;;
+    "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;;
+    "bus/Makefile") CONFIG_FILES="$CONFIG_FILES bus/Makefile" ;;
+    "engine/Makefile") CONFIG_FILES="$CONFIG_FILES engine/Makefile" ;;
+    "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;;
+    "util/IMdkit/Makefile") CONFIG_FILES="$CONFIG_FILES util/IMdkit/Makefile" ;;
+    "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;;
+    "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;;
+    "data/keymaps/Makefile") CONFIG_FILES="$CONFIG_FILES data/keymaps/Makefile" ;;
+    "data/dconf/Makefile") CONFIG_FILES="$CONFIG_FILES data/dconf/Makefile" ;;
+    "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
+    "docs/reference/Makefile") CONFIG_FILES="$CONFIG_FILES docs/reference/Makefile" ;;
+    "docs/reference/ibus/ibus-docs.sgml") CONFIG_FILES="$CONFIG_FILES docs/reference/ibus/ibus-docs.sgml" ;;
+    "docs/reference/ibus/Makefile") CONFIG_FILES="$CONFIG_FILES docs/reference/ibus/Makefile" ;;
+    "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
+    "ibus/_config.py") CONFIG_FILES="$CONFIG_FILES ibus/_config.py" ;;
+    "ibus/Makefile") CONFIG_FILES="$CONFIG_FILES ibus/Makefile" ;;
+    "ibus/interface/Makefile") CONFIG_FILES="$CONFIG_FILES ibus/interface/Makefile" ;;
+    "ui/Makefile") CONFIG_FILES="$CONFIG_FILES ui/Makefile" ;;
+    "ui/gtk3/Makefile") CONFIG_FILES="$CONFIG_FILES ui/gtk3/Makefile" ;;
+    "setup/Makefile") CONFIG_FILES="$CONFIG_FILES setup/Makefile" ;;
+    "setup/ibus-setup") CONFIG_FILES="$CONFIG_FILES setup/ibus-setup" ;;
+    "bindings/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/Makefile" ;;
+    "bindings/pygobject/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/pygobject/Makefile" ;;
+    "bindings/vala/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/vala/Makefile" ;;
+    "conf/Makefile") CONFIG_FILES="$CONFIG_FILES conf/Makefile" ;;
+    "conf/gconf/Makefile") CONFIG_FILES="$CONFIG_FILES conf/gconf/Makefile" ;;
+    "conf/dconf/Makefile") CONFIG_FILES="$CONFIG_FILES conf/dconf/Makefile" ;;
+    "conf/memconf/Makefile") CONFIG_FILES="$CONFIG_FILES conf/memconf/Makefile" ;;
+    "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
+    "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = "\a"
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[         ]*VPATH[        ]*=[    ]*/{
+h
+s///
+s/^/:/
+s/[     ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[  ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[      ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[    ]*#[    ]*define[       ][      ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[    ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[        ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[    ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[        ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = "\a"
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+        # (if the path is not absolute).  The absolute path cannot be DOS-style,
+        # because $ac_f cannot contain `:'.
+        test -f "$ac_f" ||
+          case $ac_f in
+          [\\/$]*) false;;
+          *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+          esac ||
+          as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+         $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+       `' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$ac_file" : 'X\(//\)[^/]' \| \
+        X"$ac_file" : 'X\(//\)$' \| \
+        X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+  ac_MKDIR_P=$MKDIR_P
+  case $MKDIR_P in
+  [\\/$]* | ?:[\\/]* ) ;;
+  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$ac_tmp/config.h" "$ac_file" \
+       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$_am_arg" : 'X\(//\)[^/]' \| \
+        X"$_am_arg" : 'X\(//\)$' \| \
+        X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named 'Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$mf" : 'X\(//\)[^/]' \| \
+        X"$mf" : 'X\(//\)$' \| \
+        X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running 'make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "$am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$file" : 'X\(//\)[^/]' \| \
+        X"$file" : 'X\(//\)$' \| \
+        X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+ ;;
+    "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*)
+        sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+      esac ;;
+    "default-2":C) case "$CONFIG_FILES" in *po/Makefile.in*)
+        sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
+      esac ;;
+    "libtool":C)
+
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=""
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive.
+AR_FLAGS=$lt_AR_FLAGS
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and in which our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+
+ltmain="$ac_aux_dir/ltmain.sh"
+
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+  if test x"$xsi_shell" = xyes; then
+  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
+func_dirname ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_basename ()$/,/^} # func_basename /c\
+func_basename ()\
+{\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
+func_dirname_and_basename ()\
+{\
+\    case ${1} in\
+\      */*) func_dirname_result="${1%/*}${2}" ;;\
+\      *  ) func_dirname_result="${3}" ;;\
+\    esac\
+\    func_basename_result="${1##*/}"\
+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
+func_stripname ()\
+{\
+\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
+\    # positional parameters, so assign one to ordinary parameter first.\
+\    func_stripname_result=${3}\
+\    func_stripname_result=${func_stripname_result#"${1}"}\
+\    func_stripname_result=${func_stripname_result%"${2}"}\
+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
+func_split_long_opt ()\
+{\
+\    func_split_long_opt_name=${1%%=*}\
+\    func_split_long_opt_arg=${1#*=}\
+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
+func_split_short_opt ()\
+{\
+\    func_split_short_opt_arg=${1#??}\
+\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
+func_lo2o ()\
+{\
+\    case ${1} in\
+\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
+\      *)    func_lo2o_result=${1} ;;\
+\    esac\
+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_xform ()$/,/^} # func_xform /c\
+func_xform ()\
+{\
+    func_xform_result=${1%.*}.lo\
+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_arith ()$/,/^} # func_arith /c\
+func_arith ()\
+{\
+    func_arith_result=$(( $* ))\
+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_len ()$/,/^} # func_len /c\
+func_len ()\
+{\
+    func_len_result=${#1}\
+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  sed -e '/^func_append ()$/,/^} # func_append /c\
+func_append ()\
+{\
+    eval "${1}+=\\${2}"\
+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
+func_append_quoted ()\
+{\
+\    func_quote_for_eval "${2}"\
+\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
+fi
+
+
+   mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+
+ ;;
+    "po/stamp-it":C)
+    if  ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then
+       as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5
+    fi
+    rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp"
+    >"po/stamp-it.tmp"
+    sed '/^#/d
+        s/^[[].*] *//
+        /^[    ]*$/d
+       '"s|^|  $ac_top_srcdir/|" \
+      "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES"
+
+    sed '/^POTFILES =/,/[^\\]$/ {
+               /^POTFILES =/!d
+               r po/POTFILES
+         }
+        ' "po/Makefile.in" >"po/Makefile"
+    rm -f "po/Makefile.tmp"
+    mv "po/stamp-it.tmp" "po/stamp-it"
+   ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result:
+Build options:
+  Version                   $IBUS_VERSION
+  Install prefix            $prefix
+  Build shared libs         $enable_shared
+  Build static libs         $enable_static
+  CFLAGS                    $CFLAGS
+  Gtk2 immodule dir         $GTK2_IM_MODULEDIR
+  Gtk3 immodule dir         $GTK3_IM_MODULEDIR
+  Build gtk2 immodule       $enable_gtk2
+  Build gtk3 immodule       $enable_gtk3
+  Build XIM agent server    $enable_xim
+  Build wayland support     $enable_wayland
+  Build python library      $enable_python_library
+  Build gconf modules       $enable_gconf
+  Build memconf modules     $enable_memconf
+  Build dconf modules       $enable_dconf
+  Build introspection       $found_introspection
+  IBus-1.0.gir scannerflags \"$IBUS_GIR_SCANNERFLAGS\"
+  Build vala binding        $enable_vala
+  Build document            $enable_gtk_doc
+  Build UI                  $enable_ui
+  Build engine              $enable_engine
+  Enable key snooper        $enable_key_snooper
+  No snooper regexes        \"$NO_SNOOPER_APPS\"
+  Panel icon                \"$IBUS_ICON_KEYBOARD\"
+  Enable surrounding-text   $enable_surrounding_text
+  Enable libnotify          $enable_libnotify
+  Run test cases            $enable_tests
+" >&5
+$as_echo "
+Build options:
+  Version                   $IBUS_VERSION
+  Install prefix            $prefix
+  Build shared libs         $enable_shared
+  Build static libs         $enable_static
+  CFLAGS                    $CFLAGS
+  Gtk2 immodule dir         $GTK2_IM_MODULEDIR
+  Gtk3 immodule dir         $GTK3_IM_MODULEDIR
+  Build gtk2 immodule       $enable_gtk2
+  Build gtk3 immodule       $enable_gtk3
+  Build XIM agent server    $enable_xim
+  Build wayland support     $enable_wayland
+  Build python library      $enable_python_library
+  Build gconf modules       $enable_gconf
+  Build memconf modules     $enable_memconf
+  Build dconf modules       $enable_dconf
+  Build introspection       $found_introspection
+  IBus-1.0.gir scannerflags \"$IBUS_GIR_SCANNERFLAGS\"
+  Build vala binding        $enable_vala
+  Build document            $enable_gtk_doc
+  Build UI                  $enable_ui
+  Build engine              $enable_engine
+  Enable key snooper        $enable_key_snooper
+  No snooper regexes        \"$NO_SNOOPER_APPS\"
+  Panel icon                \"$IBUS_ICON_KEYBOARD\"
+  Enable surrounding-text   $enable_surrounding_text
+  Enable libnotify          $enable_libnotify
+  Run test cases            $enable_tests
+" >&6; }
+
diff --git a/data/Makefile.in b/data/Makefile.in
new file mode 100644 (file)
index 0000000..670cb60
--- /dev/null
@@ -0,0 +1,835 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@ENABLE_DCONF_TRUE@am__append_1 = dconf
+subdir = data
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(schemasdir)"
+DATA = $(schemas_DATA)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = icons keymaps dconf
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = icons keymaps $(NULL) $(am__append_1)
+schemasdir = $(GCONF_SCHEMA_FILE_DIR)
+schemas_in_files = ibus.schemas.in
+schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
+EXTRA_DIST = \
+       $(schemas_in_files) \
+       $(NULL)
+
+DISTCLEANFILES = \
+       $(schemas_DATA) \
+       $(NULL)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-schemasDATA: $(schemas_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(schemas_DATA)'; test -n "$(schemasdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(schemasdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(schemasdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(schemasdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(schemasdir)" || exit $$?; \
+       done
+
+uninstall-schemasDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(schemas_DATA)'; test -n "$(schemasdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(schemasdir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+       for dir in "$(DESTDIR)$(schemasdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local install-schemasDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-schemasDATA
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am \
+       install-data-local install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-schemasDATA install-strip \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-am uninstall uninstall-am uninstall-schemasDATA
+
+@INTLTOOL_SCHEMAS_RULE@
+
+install-data-local:
+@GCONF_SCHEMAS_INSTALL_TRUE@   if test -z "$(DESTDIR)" ; then \
+@GCONF_SCHEMAS_INSTALL_TRUE@           for p in $(schemas_DATA) ; do \
+@GCONF_SCHEMAS_INSTALL_TRUE@                   GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) \
+@GCONF_SCHEMAS_INSTALL_TRUE@                           --makefile-install-rule $(top_builddir)/data/$$p >&1 > /dev/null; \
+@GCONF_SCHEMAS_INSTALL_TRUE@           done \
+@GCONF_SCHEMAS_INSTALL_TRUE@   fi
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/dconf/00-upstream-settings b/data/dconf/00-upstream-settings
new file mode 100644 (file)
index 0000000..407cd3a
--- /dev/null
@@ -0,0 +1,38 @@
+# This file is a part of the IBus packaging and should not be changed.
+#
+# Instead create your own file next to it with a higher numbered prefix,
+# and run
+#
+#       dconf update
+#
+
+[desktop/ibus/general]
+dconf-preserve-name-prefixes=['/desktop/ibus/engine/pinyin', '/desktop/ibus/engine/bopomofo', '/desktop/ibus/engine/hangul']
+embed-preedit-text=true
+enable-by-default=false
+engines-order=@as []
+preload-engines=@as []
+switcher-delay-time=400
+use-global-engine=true
+use-system-keyboard-layout=false
+version=''
+
+[desktop/ibus/general/hotkey]
+disable-unconditional=@as []
+enable-unconditional=@as []
+next-engine=['Alt+Shift_L']
+next-engine-in-menu=['Alt+Shift_L']
+prev-engine=@as []
+previous-engine=@as []
+trigger=['Control+space', 'Zenkaku_Hankaku', 'Alt+Kanji', 'Alt+grave', 'Hangul', 'Alt+Release+Alt_R']
+triggers=['<Super>space']
+
+[desktop/ibus/panel]
+custom-font='Sans 10'
+lookup-table-orientation=1
+show=0
+show-icon-on-systray=true
+show-im-name=false
+use-custom-font=false
+x=-1
+y=-1
diff --git a/data/dconf/Makefile.in b/data/dconf/Makefile.in
new file mode 100644 (file)
index 0000000..c3ca104
--- /dev/null
@@ -0,0 +1,725 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2011 Daiki Ueno <ueno@unixuser.org>
+# Copyright (c) 2007-2011 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/dconf
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(dist_gsettingsconvert_DATA)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(dconfdbdir)" \
+       "$(DESTDIR)$(dconfprofiledir)" \
+       "$(DESTDIR)$(gsettingsconvertdir)"
+DATA = $(dconfdb_DATA) $(dconfprofile_DATA) \
+       $(dist_gsettingsconvert_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+gsettings_schemas_in_files = org.freedesktop.ibus.gschema.xml.in
+gsettings_SCHEMAS = $(gsettings_schemas_in_files:.gschema.xml.in=.gschema.xml)
+gsettingsconvertdir = $(datadir)/GConf/gsettings
+dist_gsettingsconvert_DATA = ibus.convert
+EXTRA_DIST = \
+       $(gsettings_schemas_in_files) \
+       make-dconf-override-db.sh \
+       profile/ibus \
+       00-upstream-settings \
+       $(NULL)
+
+CLEANFILES = \
+       $(gsettings_SCHEMAS) \
+       $(NULL)
+
+MAINTAINERCLEANFILES = \
+       $(gsettings_schemas_in_files) \
+       00-upstream-settings \
+       $(NULL)
+
+dconfprofiledir = $(sysconfdir)/dconf/profile
+dconfprofile_DATA = profile/ibus
+dconfdbdir = $(sysconfdir)/dconf/db/ibus.d
+dconfdb_DATA = 00-upstream-settings
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/dconf/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/dconf/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-dconfdbDATA: $(dconfdb_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(dconfdb_DATA)'; test -n "$(dconfdbdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(dconfdbdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(dconfdbdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dconfdbdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(dconfdbdir)" || exit $$?; \
+       done
+
+uninstall-dconfdbDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dconfdb_DATA)'; test -n "$(dconfdbdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(dconfdbdir)'; $(am__uninstall_files_from_dir)
+install-dconfprofileDATA: $(dconfprofile_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(dconfprofile_DATA)'; test -n "$(dconfprofiledir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(dconfprofiledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(dconfprofiledir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dconfprofiledir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(dconfprofiledir)" || exit $$?; \
+       done
+
+uninstall-dconfprofileDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dconfprofile_DATA)'; test -n "$(dconfprofiledir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(dconfprofiledir)'; $(am__uninstall_files_from_dir)
+install-dist_gsettingsconvertDATA: $(dist_gsettingsconvert_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(dist_gsettingsconvert_DATA)'; test -n "$(gsettingsconvertdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(gsettingsconvertdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(gsettingsconvertdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gsettingsconvertdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(gsettingsconvertdir)" || exit $$?; \
+       done
+
+uninstall-dist_gsettingsconvertDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_gsettingsconvert_DATA)'; test -n "$(gsettingsconvertdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(gsettingsconvertdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(dconfdbdir)" "$(DESTDIR)$(dconfprofiledir)" "$(DESTDIR)$(gsettingsconvertdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dconfdbDATA install-dconfprofileDATA \
+       install-dist_gsettingsconvertDATA
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dconfdbDATA uninstall-dconfprofileDATA \
+       uninstall-dist_gsettingsconvertDATA
+
+.MAKE: install-am install-data-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am \
+       install-data-hook install-dconfdbDATA install-dconfprofileDATA \
+       install-dist_gsettingsconvertDATA install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+       uninstall-am uninstall-dconfdbDATA uninstall-dconfprofileDATA \
+       uninstall-dist_gsettingsconvertDATA
+
+@GSETTINGS_RULES@
+@INTLTOOL_XML_NOMERGE_RULE@
+
+org.freedesktop.ibus.gschema.xml.in: $(top_srcdir)/data/ibus.schemas.in
+       $(AM_V_GEN) $(GSETTINGS_SCHEMA_CONVERT) --force --gconf --xml \
+               --schema-id "org.freedesktop.ibus" \
+               --output $@ $<
+
+00-upstream-settings: $(srcdir)/make-dconf-override-db.sh | $(gsettings_SCHEMAS)
+       @$(MKDIR_P) db
+       $(AM_V_GEN) $(srcdir)/make-dconf-override-db.sh > $@ || \
+               { rc=$$?; $(RM) -rf $@; exit $$rc; }
+
+install-data-hook:
+       dconf update
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/dconf/org.freedesktop.ibus.gschema.xml.in b/data/dconf/org.freedesktop.ibus.gschema.xml.in
new file mode 100644 (file)
index 0000000..258027c
--- /dev/null
@@ -0,0 +1 @@
+<schemalist><schema id="org.freedesktop.ibus" path="/desktop/ibus/"><child name="general" schema="org.freedesktop.ibus.general" /><child name="panel" schema="org.freedesktop.ibus.panel" /></schema><schema id="org.freedesktop.ibus.general" path="/desktop/ibus/general/"><key name="preload-engines" type="as"><default>[]</default><summary>Preload engines</summary><description>Preload engines during ibus starts up</description></key><key name="engines-order" type="as"><default>[]</default><summary>Engines order</summary><description>Saved engines order in input method list</description></key><key name="switcher-delay-time" type="i"><default>400</default><summary>Popup delay milliseconds for IME switcher window</summary><description>Set popup delay milliseconds to show IME switcher window. The default is 400. 0 = Show the window immediately. 0 &lt; Delay milliseconds. 0 &gt; Do not show the window and switch prev/next engines.</description></key><key name="version" type="s"><default>''</default><summary>Saved version number</summary><description>The saved version number will be used to check the difference between the version of the previous installed ibus and one of the current ibus.</description></key><key name="use-system-keyboard-layout" type="b"><default>false</default><summary>Use system keyboard layout</summary><description>Use system keyboard (XKB) layout</description></key><key name="embed-preedit-text" type="b"><default>true</default><summary>Embed Preedit Text</summary><description>Embed Preedit Text in Application Window</description></key><key name="use-global-engine" type="b"><default>true</default><summary>Use global input method</summary><description>Share the same input method among all applications</description></key><key name="enable-by-default" type="b"><default>false</default><summary>Enable input method by default</summary><description>Enable input method by default when the application gets input focus</description></key><key name="dconf-preserve-name-prefixes" type="as"><default>[ '/desktop/ibus/engine/pinyin', '/desktop/ibus/engine/bopomofo', '/desktop/ibus/engine/hangul' ]</default><summary>DConf preserve name prefixes</summary><description>Prefixes of DConf keys to stop name conversion</description></key><child name="hotkey" schema="org.freedesktop.ibus.general.hotkey" /></schema><schema id="org.freedesktop.ibus.general.hotkey" path="/desktop/ibus/general/hotkey/"><key name="trigger" type="as"><default>[ 'Control+space', 'Zenkaku_Hankaku', 'Alt+Kanji', 'Alt+grave', 'Hangul', 'Alt+Release+Alt_R' ]</default><summary>Trigger shortcut keys</summary><description>The shortcut keys for turning input method on or off</description></key><key name="triggers" type="as"><default>[ '&lt;Super&gt;space' ]</default><summary>Trigger shortcut keys for gtk_accelerator_parse</summary><description>The shortcut keys for turning input method on or off</description></key><key name="enable-unconditional" type="as"><default>[]</default><summary>Enable shortcut keys</summary><description>The shortcut keys for turning input method on</description></key><key name="disable-unconditional" type="as"><default>[]</default><summary>Disable shortcut keys</summary><description>The shortcut keys for turning input method off</description></key><key name="next-engine" type="as"><default>[ 'Alt+Shift_L' ]</default><summary>Next engine shortcut keys</summary><description>The shortcut keys for switching to the next input method in the list</description></key><key name="next-engine-in-menu" type="as"><default>[ 'Alt+Shift_L' ]</default><summary>Next engine shortcut keys</summary><description>The shortcut keys for switching to the next input method in the list</description></key><key name="prev-engine" type="as"><default>[]</default><summary>Prev engine shortcut keys</summary><description>The shortcut keys for switching to the previous input method</description></key><key name="previous-engine" type="as"><default>[]</default><summary>Prev engine shortcut keys</summary><description>The shortcut keys for switching to the previous input method</description></key></schema><schema id="org.freedesktop.ibus.panel" path="/desktop/ibus/panel/"><key name="show" type="i"><default>0</default><summary>Auto hide</summary><description>The behavior of language panel. 0 = Embedded in menu, 1 = Auto hide, 2 = Always show</description></key><key name="x" type="i"><default>-1</default><summary>Language panel position</summary></key><key name="y" type="i"><default>-1</default><summary>Language panel position</summary></key><key name="lookup-table-orientation" type="i"><default>1</default><summary>Orientation of lookup table</summary><description>Orientation of lookup table. 0 = Horizontal, 1 = Vertical</description></key><key name="show-icon-on-systray" type="b"><default>true</default><summary>Show icon on system tray</summary><description>Show icon on system tray</description></key><key name="show-im-name" type="b"><default>false</default><summary>Show input method name</summary><description>Show input method name on language bar</description></key><key name="use-custom-font" type="b"><default>false</default><summary>Use custom font</summary><description>Use custom font name for language panel</description></key><key name="custom-font" type="s"><default>'Sans 10'</default><summary>Custom font</summary><description>Custom font name for language panel</description></key></schema></schemalist>
\ No newline at end of file
diff --git a/data/icons/Makefile.in b/data/icons/Makefile.in
new file mode 100644 (file)
index 0000000..964c230
--- /dev/null
@@ -0,0 +1,855 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/icons
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(hicolor_icon_16dir)" \
+       "$(DESTDIR)$(hicolor_icon_22dir)" \
+       "$(DESTDIR)$(hicolor_icon_24dir)" \
+       "$(DESTDIR)$(hicolor_icon_32dir)" \
+       "$(DESTDIR)$(hicolor_icon_48dir)" \
+       "$(DESTDIR)$(hicolor_icon_scalabledir)" \
+       "$(DESTDIR)$(iconsdir)" "$(DESTDIR)$(sysiconsdir)"
+DATA = $(hicolor_icon_16_DATA) $(hicolor_icon_22_DATA) \
+       $(hicolor_icon_24_DATA) $(hicolor_icon_32_DATA) \
+       $(hicolor_icon_48_DATA) $(hicolor_icon_scalable_DATA) \
+       $(icons_DATA) $(sysicons_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+icons_DATA = \
+       $(NULL)
+
+iconsdir = $(pkgdatadir)/icons
+sysicons_DATA = \
+       $(NULL)
+
+sysiconsdir = $(datadir)/pixmaps
+hicolor_icon_16_DATA = \
+       16/ibus-keyboard.png \
+       $(NULL)
+
+hicolor_icon_16dir = $(datadir)/icons/hicolor/16x16/apps/
+hicolor_icon_22_DATA = \
+       22/ibus-keyboard.png \
+       $(NULL)
+
+hicolor_icon_22dir = $(datadir)/icons/hicolor/22x22/apps/
+hicolor_icon_24_DATA = \
+       24/ibus-keyboard.png \
+       $(NULL)
+
+hicolor_icon_24dir = $(datadir)/icons/hicolor/24x24/apps/
+hicolor_icon_32_DATA = \
+       32/ibus-keyboard.png \
+       $(NULL)
+
+hicolor_icon_32dir = $(datadir)/icons/hicolor/32x32/apps/
+hicolor_icon_48_DATA = \
+       48/ibus-keyboard.png \
+       $(NULL)
+
+hicolor_icon_48dir = $(datadir)/icons/hicolor/48x48/apps/
+hicolor_icon_scalable_DATA = \
+       scalable/ibus.svg \
+       scalable/ibus-setup.svg \
+       scalable/ibus-engine.svg \
+       scalable/ibus-keyboard.svg \
+       $(NULL)
+
+hicolor_icon_scalabledir = $(datadir)/icons/hicolor/scalable/apps/
+EXTRA_DIST = \
+       $(icons_DATA) \
+       $(sysicons_DATA) \
+       $(hicolor_icon_16_DATA) \
+       $(hicolor_icon_22_DATA) \
+       $(hicolor_icon_24_DATA) \
+       $(hicolor_icon_32_DATA) \
+       $(hicolor_icon_48_DATA) \
+       $(hicolor_icon_scalable_DATA) \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/icons/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-hicolor_icon_16DATA: $(hicolor_icon_16_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(hicolor_icon_16_DATA)'; test -n "$(hicolor_icon_16dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(hicolor_icon_16dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(hicolor_icon_16dir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(hicolor_icon_16dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(hicolor_icon_16dir)" || exit $$?; \
+       done
+
+uninstall-hicolor_icon_16DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(hicolor_icon_16_DATA)'; test -n "$(hicolor_icon_16dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(hicolor_icon_16dir)'; $(am__uninstall_files_from_dir)
+install-hicolor_icon_22DATA: $(hicolor_icon_22_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(hicolor_icon_22_DATA)'; test -n "$(hicolor_icon_22dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(hicolor_icon_22dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(hicolor_icon_22dir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(hicolor_icon_22dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(hicolor_icon_22dir)" || exit $$?; \
+       done
+
+uninstall-hicolor_icon_22DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(hicolor_icon_22_DATA)'; test -n "$(hicolor_icon_22dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(hicolor_icon_22dir)'; $(am__uninstall_files_from_dir)
+install-hicolor_icon_24DATA: $(hicolor_icon_24_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(hicolor_icon_24_DATA)'; test -n "$(hicolor_icon_24dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(hicolor_icon_24dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(hicolor_icon_24dir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(hicolor_icon_24dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(hicolor_icon_24dir)" || exit $$?; \
+       done
+
+uninstall-hicolor_icon_24DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(hicolor_icon_24_DATA)'; test -n "$(hicolor_icon_24dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(hicolor_icon_24dir)'; $(am__uninstall_files_from_dir)
+install-hicolor_icon_32DATA: $(hicolor_icon_32_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(hicolor_icon_32_DATA)'; test -n "$(hicolor_icon_32dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(hicolor_icon_32dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(hicolor_icon_32dir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(hicolor_icon_32dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(hicolor_icon_32dir)" || exit $$?; \
+       done
+
+uninstall-hicolor_icon_32DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(hicolor_icon_32_DATA)'; test -n "$(hicolor_icon_32dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(hicolor_icon_32dir)'; $(am__uninstall_files_from_dir)
+install-hicolor_icon_48DATA: $(hicolor_icon_48_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(hicolor_icon_48_DATA)'; test -n "$(hicolor_icon_48dir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(hicolor_icon_48dir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(hicolor_icon_48dir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(hicolor_icon_48dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(hicolor_icon_48dir)" || exit $$?; \
+       done
+
+uninstall-hicolor_icon_48DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(hicolor_icon_48_DATA)'; test -n "$(hicolor_icon_48dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(hicolor_icon_48dir)'; $(am__uninstall_files_from_dir)
+install-hicolor_icon_scalableDATA: $(hicolor_icon_scalable_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(hicolor_icon_scalable_DATA)'; test -n "$(hicolor_icon_scalabledir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(hicolor_icon_scalabledir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(hicolor_icon_scalabledir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(hicolor_icon_scalabledir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(hicolor_icon_scalabledir)" || exit $$?; \
+       done
+
+uninstall-hicolor_icon_scalableDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(hicolor_icon_scalable_DATA)'; test -n "$(hicolor_icon_scalabledir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(hicolor_icon_scalabledir)'; $(am__uninstall_files_from_dir)
+install-iconsDATA: $(icons_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(iconsdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(iconsdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(iconsdir)" || exit $$?; \
+       done
+
+uninstall-iconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(icons_DATA)'; test -n "$(iconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(iconsdir)'; $(am__uninstall_files_from_dir)
+install-sysiconsDATA: $(sysicons_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(sysicons_DATA)'; test -n "$(sysiconsdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(sysiconsdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(sysiconsdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysiconsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(sysiconsdir)" || exit $$?; \
+       done
+
+uninstall-sysiconsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(sysicons_DATA)'; test -n "$(sysiconsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(sysiconsdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(hicolor_icon_16dir)" "$(DESTDIR)$(hicolor_icon_22dir)" "$(DESTDIR)$(hicolor_icon_24dir)" "$(DESTDIR)$(hicolor_icon_32dir)" "$(DESTDIR)$(hicolor_icon_48dir)" "$(DESTDIR)$(hicolor_icon_scalabledir)" "$(DESTDIR)$(iconsdir)" "$(DESTDIR)$(sysiconsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-hicolor_icon_16DATA \
+       install-hicolor_icon_22DATA install-hicolor_icon_24DATA \
+       install-hicolor_icon_32DATA install-hicolor_icon_48DATA \
+       install-hicolor_icon_scalableDATA install-iconsDATA \
+       install-sysiconsDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-hicolor_icon_16DATA \
+       uninstall-hicolor_icon_22DATA uninstall-hicolor_icon_24DATA \
+       uninstall-hicolor_icon_32DATA uninstall-hicolor_icon_48DATA \
+       uninstall-hicolor_icon_scalableDATA uninstall-iconsDATA \
+       uninstall-sysiconsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am \
+       install-hicolor_icon_16DATA install-hicolor_icon_22DATA \
+       install-hicolor_icon_24DATA install-hicolor_icon_32DATA \
+       install-hicolor_icon_48DATA install-hicolor_icon_scalableDATA \
+       install-html install-html-am install-iconsDATA install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip install-sysiconsDATA \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+       uninstall-am uninstall-hicolor_icon_16DATA \
+       uninstall-hicolor_icon_22DATA uninstall-hicolor_icon_24DATA \
+       uninstall-hicolor_icon_32DATA uninstall-hicolor_icon_48DATA \
+       uninstall-hicolor_icon_scalableDATA uninstall-iconsDATA \
+       uninstall-sysiconsDATA
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/icons/ibus-help.png b/data/icons/ibus-help.png
deleted file mode 100644 (file)
index aff3318..0000000
Binary files a/data/icons/ibus-help.png and /dev/null differ
diff --git a/data/icons/ibus-locale.svg b/data/icons/ibus-locale.svg
deleted file mode 100644 (file)
index 0d737d9..0000000
+++ /dev/null
@@ -1,884 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="32.000000mm"
-   height="32.000000mm"
-   viewBox="0 0.292 127 104"
-   overflow="visible"
-   enable-background="new 0 0.292 127 104"
-   xml:space="preserve"
-   id="svg15517"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docname="ibus-locale.svg"
-   sodipodi:docbase="/home/jr/devel/kdebase/pics/crystalsvg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"><defs
-   id="defs15687"><radialGradient
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   fy="-112.685"
-   fx="-260.979"
-   r="56.667198"
-   cy="-112.685"
-   cx="-260.979"
-   id="radialGradient3328">
-                                       <stop
-   id="stop3330"
-   style="stop-color:#ffff00;stop-opacity:1;"
-   offset="0" />
-
-                                       <stop
-   id="stop3332"
-   style="stop-color:#ffff6d;stop-opacity:1;"
-   offset="1" />
-
-                               </radialGradient><linearGradient
-   inkscape:collect="always"
-   id="linearGradient3320"><stop
-     style="stop-color:#ffff00;stop-opacity:1;"
-     offset="0"
-     id="stop3322" /><stop
-     style="stop-color:#ffff00;stop-opacity:0;"
-     offset="1"
-     id="stop3324" /></linearGradient><inkscape:perspective
-   sodipodi:type="inkscape:persp3d"
-   inkscape:vp_x="0 : 56.692913 : 1"
-   inkscape:vp_y="0 : 1000 : 0"
-   inkscape:vp_z="113.38583 : 56.692913 : 1"
-   inkscape:persp3d-origin="56.692913 : 37.795275 : 1"
-   id="perspective61" />
-                       
-
-                       
-
-                       
-
-               
-                               <radialGradient
-   id="path601_3_"
-   cx="-260.979"
-   cy="-112.963"
-   r="56.666901"
-   fx="-260.979"
-   fy="-112.963"
-   gradientTransform="translate(308.371,199.852)"
-   gradientUnits="userSpaceOnUse">
-                                       <stop
-   offset="0"
-   style="stop-color:#ff4442;stop-opacity:1;"
-   id="stop15615" />
-
-                                       <stop
-   offset="1"
-   style="stop-color:#ff0000;stop-opacity:1;"
-   id="stop15617" />
-
-                                       <a:midPointStop
-   offset="0"
-   style="stop-color:#42FF00"
-   id="midPointStop15619" />
-
-                                       <a:midPointStop
-   offset="0.5"
-   style="stop-color:#42FF00"
-   id="midPointStop15621" />
-
-                                       <a:midPointStop
-   offset="1"
-   style="stop-color:#007200"
-   id="midPointStop15623" />
-
-                               </radialGradient>
-
-                               
-
-                               
-
-                               <radialGradient
-   id="path609_3_"
-   cx="-260.979"
-   cy="-112.685"
-   r="56.667198"
-   fx="-260.979"
-   fy="-112.685"
-   gradientTransform="translate(308.371,199.852)"
-   gradientUnits="userSpaceOnUse">
-                                       <stop
-   offset="0"
-   style="stop-color:rgb(255,255,121)"
-   id="stop15632" />
-
-                                       <stop
-   offset="1"
-   style="stop-color:rgb(255,222,0)"
-   id="stop15634" />
-
-                               </radialGradient>
-
-                               
-
-                               
-
-                               <radialGradient
-   id="path617_3_"
-   cx="-260.918"
-   cy="-112.684"
-   r="56.5989"
-   fx="-260.918"
-   fy="-112.684"
-   gradientTransform="translate(308.371,199.852)"
-   gradientUnits="userSpaceOnUse">
-                                       <stop
-   offset="0"
-   style="stop-color:rgb(162,212,255)"
-   id="stop15643" />
-
-                                       <stop
-   offset="1"
-   style="stop-color:rgb(0,0,159)"
-   id="stop15645" />
-
-                               </radialGradient>
-
-                               
-
-                               
-
-                               <radialGradient
-   id="path625_3_"
-   cx="-260.91901"
-   cy="-112.684"
-   r="56.599899"
-   fx="-260.91901"
-   fy="-112.684"
-   gradientTransform="translate(308.371,199.852)"
-   gradientUnits="userSpaceOnUse">
-                                       <stop
-   offset="0"
-   style="stop-color:rgb(162,212,255)"
-   id="stop15654" />
-
-                                       <stop
-   offset="1"
-   style="stop-color:rgb(0,0,159)"
-   id="stop15656" />
-
-                                       <a:midPointStop
-   offset="0"
-   style="stop-color:#A2D4FF"
-   id="midPointStop15658" />
-
-                                       <a:midPointStop
-   offset="0.5"
-   style="stop-color:#A2D4FF"
-   id="midPointStop15660" />
-
-                                       <a:midPointStop
-   offset="1"
-   style="stop-color:#00009F"
-   id="midPointStop15662" />
-
-                               </radialGradient>
-
-                               
-
-                               
-
-                               
-
-                               
-
-                               <linearGradient
-   id="path635_3_"
-   gradientUnits="userSpaceOnUse"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34"
-   gradientTransform="translate(308.371,199.852)">
-                                       <stop
-   offset="10.9195%"
-   style="stop-color:rgb(255,255,255)"
-   id="stop15675" />
-
-                                       <stop
-   offset="100%"
-   style="stop-opacity:0;stop-color:rgb(255,255,255)"
-   id="stop15677" />
-
-                               </linearGradient>
-
-                               
-
-                       <linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient2512"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient2530"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3318"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994"
-   gradientUnits="userSpaceOnUse" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3326"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994"
-   gradientUnits="userSpaceOnUse" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3336"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3338"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3342"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3344"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3348"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3350"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3354"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3356"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient3374"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient3377"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient3414"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient3416"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3418"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3420"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3422"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3424"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3426"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3428"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3430"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3432"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3434"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3436"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient3444"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient3447"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient2469"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient2472"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient2496"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient2498"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient2500"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient2502"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient2504"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient2506"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient2508"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient2510"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /></defs>
-<metadata
-   id="metadata15686">
-  <rdf:RDF>
-    <cc:Work
-   rdf:about="">
-      <dc:format>image/svg+xml</dc:format>
-      <dc:type
-   rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-    </cc:Work>
-  </rdf:RDF>
-</metadata>
-<sodipodi:namedview
-   id="base"
-   pagecolor="#ffffff"
-   bordercolor="#666666"
-   borderopacity="1.0"
-   inkscape:pageopacity="0.0"
-   inkscape:pageshadow="2"
-   inkscape:zoom="4.1671875"
-   inkscape:cx="51.849929"
-   inkscape:cy="62.829207"
-   inkscape:window-width="1024"
-   inkscape:window-height="693"
-   inkscape:window-x="0"
-   inkscape:window-y="26"
-   inkscape:current-layer="Layer_1_2_"
-   showgrid="false" />
-
-       <g
-   id="Layer_1_2_">
-               <path
-   d="M104.427 80.724 L88.68 88.897 L91.103 94.575 L107.823 85.948 z"
-   style="fill-rule:evenodd;clip-rule:evenodd;fill:rgb(255,255,255)"
-   id="path15521" />
-
-               <g
-   id="g551_2_">
-                               <g
-   id="g552_2_">
-                                       <radialGradient
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   fy="-99.676804"
-   fx="-227.502"
-   r="44.128799"
-   cy="-99.676804"
-   cx="-227.502"
-   id="path568_3_">
-                                               <stop
-   id="stop15531"
-   style="stop-color:rgb(255,255,255)"
-   offset="0" />
-
-                                               <stop
-   id="stop15533"
-   style="stop-color:rgb(231,231,231)"
-   offset="0.1204" />
-
-                                               <stop
-   id="stop15535"
-   style="stop-color:rgb(170,170,170)"
-   offset="0.3746" />
-
-                                               <stop
-   id="stop15537"
-   style="stop-color:rgb(74,74,74)"
-   offset="0.7382" />
-
-                                               <stop
-   id="stop15539"
-   style="stop-color:rgb(0,0,0)"
-   offset="1" />
-
-                                               <a:midPointStop
-   id="midPointStop15541"
-   style="stop-color:#FFFFFF"
-   offset="0" />
-
-                                               <a:midPointStop
-   id="midPointStop15543"
-   style="stop-color:#FFFFFF"
-   offset="0.5" />
-
-                                               <a:midPointStop
-   id="midPointStop15545"
-   style="stop-color:#E7E7E7"
-   offset="0.1204" />
-
-                                               <a:midPointStop
-   id="midPointStop15547"
-   style="stop-color:#E7E7E7"
-   offset="0.5" />
-
-                                               <a:midPointStop
-   id="midPointStop15549"
-   style="stop-color:#AAAAAA"
-   offset="0.3746" />
-
-                                               <a:midPointStop
-   id="midPointStop15551"
-   style="stop-color:#AAAAAA"
-   offset="0.5" />
-
-                                               <a:midPointStop
-   id="midPointStop15553"
-   style="stop-color:#4A4A4A"
-   offset="0.7382" />
-
-                                               <a:midPointStop
-   id="midPointStop15555"
-   style="stop-color:#4A4A4A"
-   offset="0.5" />
-
-                                               <a:midPointStop
-   id="midPointStop15557"
-   style="stop-color:#000000"
-   offset="1" />
-
-                                       </radialGradient>
-
-                                       <path
-   style="fill:url(#path568_3_)"
-   d="M 79.872,47.497 C 105.853,32.964 120.164,45.888 125.062,52.022 L 126.525,35.822 C 126.525,35.822 112.891,15.537 81.176,30.049 C 49.461,44.561 40.896,32.674 40.896,32.674 L 38.47,51.487 C 40.695,54.178 51.158,63.558 79.872,47.497 z"
-   id="path568_2_" />
-
-                                       <path
-   id="path15562"
-   d="M 81.044,29.758 C 49.994,43.966 41.241,32.604 41.156,32.486 L 40.683,31.837 L 38.137,51.584 L 38.226,51.69 C 40.806,54.813 51.448,63.763 80.029,47.776 C 105.754,33.386 119.919,46.092 124.814,52.223 L 125.311,52.845 L 126.856,35.739 L 126.793,35.646 C 126.654,35.439 112.641,15.301 81.044,29.758 z M 81.31,30.339 C 111.526,16.514 125.324,34.7 126.198,35.912 C 126.178,36.135 124.941,49.828 124.815,51.22 C 119.406,44.785 105.063,33.039 79.716,47.217 C 51.84,62.809 41.436,54.484 38.807,51.381 C 38.843,51.104 40.956,34.712 41.123,33.419 C 43.329,35.663 53.388,43.116 81.31,30.339 z" />
-
-                                       <radialGradient
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   fy="-99.669403"
-   fx="-227.498"
-   r="44.130299"
-   cy="-99.669403"
-   cx="-227.498"
-   id="path576_3_">
-                                               <stop
-   id="stop15566"
-   style="stop-color:rgb(255,255,93)"
-   offset="0" />
-
-                                               <stop
-   id="stop15568"
-   style="stop-color:rgb(220,0,0)"
-   offset="1" />
-
-                                               <a:midPointStop
-   id="midPointStop15570"
-   style="stop-color:#FFFF5D"
-   offset="0" />
-
-                                               <a:midPointStop
-   id="midPointStop15572"
-   style="stop-color:#FFFF5D"
-   offset="0.5" />
-
-                                               <a:midPointStop
-   id="midPointStop15574"
-   style="stop-color:#DC0000"
-   offset="1" />
-
-                                       </radialGradient>
-
-                                       <path
-   style="fill:url(#path576_3_)"
-   d="M 77.544,71.964 C 102.653,57.918 117.142,68.855 122.95,75.439 L 125.063,52.022 C 120.165,45.887 105.854,32.963 79.873,47.497 C 51.158,63.559 40.695,54.178 38.471,51.486 L 35.453,74.893 L 35.3,76.353 C 38.054,79.426 49.035,87.909 77.544,71.964 z"
-   id="path576_2_" />
-
-                                       <path
-   id="path15579"
-   style="fill:#790000"
-   d="M 79.716,47.217 C 51.566,62.963 41.219,54.309 38.718,51.282 L 38.249,50.713 L 35.136,74.852 C 35.135,74.86 34.967,76.459 34.967,76.459 L 35.061,76.564 C 37.796,79.616 48.951,88.322 77.7,72.241 C 102.173,58.551 116.405,68.501 122.71,75.649 L 123.202,76.207 L 125.393,51.923 L 125.313,51.822 C 120.315,45.564 105.868,32.588 79.716,47.217 z M 80.027,47.775 C 105.622,33.459 119.767,45.96 124.731,52.125 C 124.71,52.376 122.818,73.337 122.695,74.688 C 116.035,67.451 101.647,58.114 77.385,71.684 C 49.331,87.377 38.421,79.272 35.631,76.237 C 35.657,75.995 35.769,74.926 35.769,74.926 C 35.769,74.926 38.216,55.947 38.698,52.213 C 41.942,55.662 52.879,62.962 80.027,47.775 z" />
-
-                                       <radialGradient
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   fy="-99.959"
-   fx="-227.496"
-   r="44.117199"
-   cy="-99.959"
-   cx="-227.496"
-   id="path584_3_">
-                                               <stop
-   id="stop15583"
-   style="stop-color:rgb(255,255,106)"
-   offset="0" />
-
-                                               <stop
-   id="stop15585"
-   style="stop-color:rgb(255,159,0)"
-   offset="1" />
-
-                                               <a:midPointStop
-   id="midPointStop15587"
-   style="stop-color:#FFFF6A"
-   offset="0" />
-
-                                               <a:midPointStop
-   id="midPointStop15589"
-   style="stop-color:#FFFF6A"
-   offset="0.5" />
-
-                                               <a:midPointStop
-   id="midPointStop15591"
-   style="stop-color:#FF9F00"
-   offset="1" />
-
-                                       </radialGradient>
-
-                                       <path
-   style="fill:url(#path584_3_)"
-   d="M 33.356,98.526 C 37.308,101.234 53.757,110.381 81.177,97.836 C 112.892,83.324 120.876,97.836 120.876,97.836 L 122.949,75.44 C 117.14,68.856 102.652,57.919 77.542,71.965 C 49.035,87.909 38.054,79.427 35.298,76.353 L 32.932,98.227 C 33.053,98.315 33.194,98.415 33.356,98.526 z"
-   id="path584_2_" />
-
-                                       <path
-   id="path15596"
-   style="fill:#ff9500"
-   d="M 77.387,71.684 C 49.054,87.534 38.192,79.101 35.537,76.138 L 35.059,75.604 L 32.594,98.377 L 33.174,98.788 C 37.559,101.793 53.991,110.626 81.31,98.124 C 112.342,83.925 120.518,97.846 120.597,97.987 L 121.099,98.893 L 123.281,75.33 L 123.189,75.225 C 116.757,67.935 102.252,57.775 77.387,71.684 z M 77.7,72.242 C 102.059,58.616 116.269,68.409 122.618,75.55 C 122.594,75.818 120.782,95.393 120.637,96.955 C 118.412,94.187 108.449,85.002 81.044,97.544 C 54.032,109.905 37.852,101.219 33.536,98.263 C 33.536,98.263 33.393,98.161 33.271,98.074 C 33.31,97.719 35.41,78.309 35.545,77.059 C 38.943,80.415 50.341,87.545 77.7,72.242 z M 33.177,98.791 L 33.176,98.79 L 33.177,98.791 z" />
-
-                               </g>
-
-                               <linearGradient
-   gradientTransform="translate(308.371,199.852)"
-   y2="-114.038"
-   x2="-222.24001"
-   y1="-231.07899"
-   x1="-203.05299"
-   gradientUnits="userSpaceOnUse"
-   id="path592_3_">
-                                       <stop
-   id="stop15601"
-   style="stop-color:rgb(255,255,255)"
-   offset="4.5977%" />
-
-                                       <stop
-   id="stop15603"
-   style="stop-opacity:0;stop-color:rgb(255,255,255)"
-   offset="100%" />
-
-                               </linearGradient>
-
-                               <path
-   style="fill:url(#path592_3_)"
-   d="M 105.457,27.003 C 99.47,26.168 91.956,26.836 82.811,30.586 L 80.631,47.477 L 76.62,78.599 C 76.619,78.607 76.44,80.31 76.408,80.62 L 74.365,99.496 C 76.362,98.778 78.423,97.95 80.56,96.971 C 87.315,93.88 92.933,92.189 97.586,91.413 L 99.634,72.486 C 99.662,72.215 99.82,70.722 99.821,70.715 L 103.339,43.434 L 105.457,27.003 z"
-   a:adobe-blending-mode="screen"
-   id="path592_2_" />
-
-                       </g>
-
-       <g
-   id="g2519"><path
-     id="path593_2_"
-     d="M 93.632,80.4 L 94.136,81.31 L 99.25,24.67 C 93.991,25.097 87.937,26.605 81.044,29.758 C 49.994,43.966 41.241,32.604 41.156,32.486 L 40.683,31.837 L 38.249,50.714 L 35.136,74.853 C 35.135,74.86 34.996,76.18 34.972,76.419 L 33.872,86.578 C 39.829,85.855 46.665,84.05 54.344,80.536 C 85.376,66.336 93.552,80.257 93.632,80.4 z"
-     style="opacity:0.2" /><path
-     id="path15628"
-     style="fill:#fd0000;fill-opacity:1"
-     d="M 48.961,5.208 C 17.912,19.416 9.158,8.053 9.073,7.937 L 8.6,7.288 L 0,73.981 L 0.133,74.093 C 0.305,74.239 17.693,88.572 49.228,74.14 C 80.26,59.941 88.436,73.862 88.516,74.003 L 89.021,74.914 L 94.774,11.187 L 94.71,11.094 C 94.571,10.889 80.557,-9.249 48.961,5.208 z M 49.228,5.79 C 79.443,-8.035 93.244,10.151 94.116,11.364 C 94.095,11.596 88.703,71.312 88.553,72.968 C 86.327,70.198 76.362,61.022 48.962,73.559 C 19.225,87.167 2.296,74.966 0.681,73.711 C 0.726,73.358 8.864,10.242 9.041,8.868 C 11.246,11.112 21.305,18.566 49.228,5.79 z" /><path
-     style="fill:url(#radialGradient2472)"
-     d="M 49.095,5.499 C 17.379,20.01 8.814,8.124 8.814,8.124 L 0.34,73.849 C 0.34,73.849 17.38,88.362 49.095,73.849 C 80.808,59.338 88.794,73.849 88.794,73.849 L 94.443,11.272 C 94.443,11.272 80.808,-9.012 49.095,5.499 z"
-     id="path601_2_" /><path
-     style="fill:url(#linearGradient2469)"
-     d="M 76.038,2.702 C 70.051,1.867 62.537,2.535 53.391,6.285 L 51.213,23.175 L 47.2,54.296 C 47.2,54.305 47.021,56.008 46.988,56.318 L 44.946,75.194 C 46.943,74.475 49.003,73.648 51.141,72.669 C 57.897,69.578 63.515,67.886 68.168,67.111 L 70.216,48.184 C 70.244,47.913 70.402,46.42 70.402,46.413 L 73.92,19.133 L 76.038,2.702 z"
-     a:adobe-blending-mode="screen"
-     id="path635_2_" /><g
-     id="g2512"><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient3418);fill-opacity:1;stroke:url(#linearGradient3420);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3302"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(2.0851858,0,0,2.0628385,-8.33475,-14.64284)" /><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient2496);fill-opacity:1;stroke:url(#linearGradient2498);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3334"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(0.4498098,-0.6682571,0.7276501,0.4897878,24.112563,14.615719)" /><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient2500);fill-opacity:1;stroke:url(#linearGradient2502);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3340"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(0.7958611,-7.9811433e-2,8.6904843e-2,0.8665951,33.979565,9.5278548)" /><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient2504);fill-opacity:1;stroke:url(#linearGradient2506);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3346"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(8.7215567e-2,0.806874,-0.8785868,9.4967075e-2,61.3378,22.171134)" /><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient2508);fill-opacity:1;stroke:url(#linearGradient2510);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3352"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(0.7958594,0.2930099,-0.319052,0.8665934,33.030306,21.823519)" /></g></g></g>
-
-</svg>
\ No newline at end of file
diff --git a/data/icons/ibus-zh.svg b/data/icons/ibus-zh.svg
deleted file mode 100644 (file)
index 7747876..0000000
+++ /dev/null
@@ -1,684 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="32.000000mm"
-   height="32.000000mm"
-   viewBox="0 0.292 127 104"
-   overflow="visible"
-   enable-background="new 0 0.292 127 104"
-   xml:space="preserve"
-   id="svg15517"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docname="ibus-zh.svg"
-   sodipodi:docbase="/home/jr/devel/kdebase/pics/crystalsvg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"><defs
-   id="defs15687"><radialGradient
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   fy="-112.685"
-   fx="-260.979"
-   r="56.667198"
-   cy="-112.685"
-   cx="-260.979"
-   id="radialGradient3328">
-                                       <stop
-   id="stop3330"
-   style="stop-color:#ffff00;stop-opacity:1;"
-   offset="0" />
-
-                                       <stop
-   id="stop3332"
-   style="stop-color:#ffff6d;stop-opacity:1;"
-   offset="1" />
-
-                               </radialGradient><linearGradient
-   inkscape:collect="always"
-   id="linearGradient3320"><stop
-     style="stop-color:#ffff00;stop-opacity:1;"
-     offset="0"
-     id="stop3322" /><stop
-     style="stop-color:#ffff00;stop-opacity:0;"
-     offset="1"
-     id="stop3324" /></linearGradient><inkscape:perspective
-   sodipodi:type="inkscape:persp3d"
-   inkscape:vp_x="0 : 56.692913 : 1"
-   inkscape:vp_y="0 : 1000 : 0"
-   inkscape:vp_z="113.38583 : 56.692913 : 1"
-   inkscape:persp3d-origin="56.692913 : 37.795275 : 1"
-   id="perspective61" />
-                       
-
-                       
-
-                       
-
-               
-                               <radialGradient
-   id="path601_3_"
-   cx="-260.979"
-   cy="-112.963"
-   r="56.666901"
-   fx="-260.979"
-   fy="-112.963"
-   gradientTransform="translate(308.371,199.852)"
-   gradientUnits="userSpaceOnUse">
-                                       <stop
-   offset="0"
-   style="stop-color:#ff4442;stop-opacity:1;"
-   id="stop15615" />
-
-                                       <stop
-   offset="1"
-   style="stop-color:#ff0000;stop-opacity:1;"
-   id="stop15617" />
-
-                                       <a:midPointStop
-   offset="0"
-   style="stop-color:#42FF00"
-   id="midPointStop15619" />
-
-                                       <a:midPointStop
-   offset="0.5"
-   style="stop-color:#42FF00"
-   id="midPointStop15621" />
-
-                                       <a:midPointStop
-   offset="1"
-   style="stop-color:#007200"
-   id="midPointStop15623" />
-
-                               </radialGradient>
-
-                               
-
-                               
-
-                               <radialGradient
-   id="path609_3_"
-   cx="-260.979"
-   cy="-112.685"
-   r="56.667198"
-   fx="-260.979"
-   fy="-112.685"
-   gradientTransform="translate(308.371,199.852)"
-   gradientUnits="userSpaceOnUse">
-                                       <stop
-   offset="0"
-   style="stop-color:rgb(255,255,121)"
-   id="stop15632" />
-
-                                       <stop
-   offset="1"
-   style="stop-color:rgb(255,222,0)"
-   id="stop15634" />
-
-                               </radialGradient>
-
-                               
-
-                               
-
-                               <radialGradient
-   id="path617_3_"
-   cx="-260.918"
-   cy="-112.684"
-   r="56.5989"
-   fx="-260.918"
-   fy="-112.684"
-   gradientTransform="translate(308.371,199.852)"
-   gradientUnits="userSpaceOnUse">
-                                       <stop
-   offset="0"
-   style="stop-color:rgb(162,212,255)"
-   id="stop15643" />
-
-                                       <stop
-   offset="1"
-   style="stop-color:rgb(0,0,159)"
-   id="stop15645" />
-
-                               </radialGradient>
-
-                               
-
-                               
-
-                               <radialGradient
-   id="path625_3_"
-   cx="-260.91901"
-   cy="-112.684"
-   r="56.599899"
-   fx="-260.91901"
-   fy="-112.684"
-   gradientTransform="translate(308.371,199.852)"
-   gradientUnits="userSpaceOnUse">
-                                       <stop
-   offset="0"
-   style="stop-color:rgb(162,212,255)"
-   id="stop15654" />
-
-                                       <stop
-   offset="1"
-   style="stop-color:rgb(0,0,159)"
-   id="stop15656" />
-
-                                       <a:midPointStop
-   offset="0"
-   style="stop-color:#A2D4FF"
-   id="midPointStop15658" />
-
-                                       <a:midPointStop
-   offset="0.5"
-   style="stop-color:#A2D4FF"
-   id="midPointStop15660" />
-
-                                       <a:midPointStop
-   offset="1"
-   style="stop-color:#00009F"
-   id="midPointStop15662" />
-
-                               </radialGradient>
-
-                               
-
-                               
-
-                               
-
-                               
-
-                               <linearGradient
-   id="path635_3_"
-   gradientUnits="userSpaceOnUse"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34"
-   gradientTransform="translate(308.371,199.852)">
-                                       <stop
-   offset="10.9195%"
-   style="stop-color:rgb(255,255,255)"
-   id="stop15675" />
-
-                                       <stop
-   offset="100%"
-   style="stop-opacity:0;stop-color:rgb(255,255,255)"
-   id="stop15677" />
-
-                               </linearGradient>
-
-                               
-
-                       <linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient2512"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient2530"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3318"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994"
-   gradientUnits="userSpaceOnUse" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3326"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994"
-   gradientUnits="userSpaceOnUse" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3336"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3338"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3342"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3344"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3348"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3350"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3354"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3356"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient3374"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient3377"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient3414"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient3416"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3418"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3420"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3422"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3424"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3426"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3428"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3430"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3432"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient3434"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient3436"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient3444"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient3447"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="translate(308.371,199.852)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient2496"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient2498"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient2500"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient2502"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient2504"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient2506"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#radialGradient3328"
-   id="linearGradient2508"
-   gradientUnits="userSpaceOnUse"
-   x1="9.6597681"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#linearGradient3320"
-   id="linearGradient2510"
-   gradientUnits="userSpaceOnUse"
-   x1="9.659768"
-   y1="20.0994"
-   x2="19.81918"
-   y2="20.0994" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient2481"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="matrix(1.2626898,0,0,1.2626898,389.91448,251.81663)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient2484"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="matrix(1.2626898,0,0,1.2626898,389.91448,251.81663)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /><linearGradient
-   inkscape:collect="always"
-   xlink:href="#path635_3_"
-   id="linearGradient2456"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="matrix(1.3260613,0,0,1.3260613,409.45641,264.4823)"
-   x1="-232.472"
-   y1="-255.38"
-   x2="-251.659"
-   y2="-138.34" /><radialGradient
-   inkscape:collect="always"
-   xlink:href="#path601_3_"
-   id="radialGradient2459"
-   gradientUnits="userSpaceOnUse"
-   gradientTransform="matrix(1.3260613,0,0,1.3260613,409.45641,264.4823)"
-   cx="-260.979"
-   cy="-112.963"
-   fx="-260.979"
-   fy="-112.963"
-   r="56.666901" /></defs>
-<metadata
-   id="metadata15686">
-  <rdf:RDF>
-    <cc:Work
-   rdf:about="">
-      <dc:format>image/svg+xml</dc:format>
-      <dc:type
-   rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-    </cc:Work>
-  </rdf:RDF>
-</metadata>
-<sodipodi:namedview
-   id="base"
-   pagecolor="#ffffff"
-   bordercolor="#666666"
-   borderopacity="1.0"
-   inkscape:pageopacity="0.0"
-   inkscape:pageshadow="2"
-   inkscape:zoom="4.1671875"
-   inkscape:cx="51.849929"
-   inkscape:cy="59.517161"
-   inkscape:window-width="1024"
-   inkscape:window-height="693"
-   inkscape:window-x="0"
-   inkscape:window-y="26"
-   inkscape:current-layer="Layer_1_2_"
-   showgrid="false" />
-
-       <g
-   id="Layer_1_2_">
-               
-
-               
-
-       <g
-   id="g2463"><path
-     id="path15628"
-     style="fill:#fd0000;fill-opacity:1"
-     d="M 65.462853,6.3724245 C 24.289976,25.213104 12.681635,10.145069 12.568921,9.9912457 L 11.941693,9.130632 L 0.5375661,97.569638 L 0.71393225,97.718157 C 0.9420148,97.911761 23.999569,116.9182 65.816912,97.780482 C 106.96725,78.951738 117.80912,97.411836 117.91521,97.598812 L 118.58486,98.806853 L 126.2137,14.300945 L 126.12883,14.177621 C 125.94451,13.905779 107.36109,-12.798444 65.462853,6.3724245 z M 65.816912,7.1441921 C 105.88385,-11.188605 124.18482,12.927146 125.34115,14.535658 C 125.3133,14.843304 118.16318,94.03038 117.96428,96.226338 C 115.01246,92.553148 101.79826,80.385209 65.464179,97.01004 C 26.031095,115.05508 3.5822029,98.875809 1.4406139,97.211601 C 1.5002866,96.743502 12.291773,13.047817 12.526487,11.225809 C 15.450452,14.20149 28.789302,24.085951 65.816912,7.1441921 z" /><path
-     style="fill:url(#radialGradient2459)"
-     d="M 65.640546,6.7583083 C 23.583185,26.000784 12.22547,10.239219 12.22547,10.239219 L 0.98842694,97.394598 C 0.98842694,97.394598 23.584512,116.63972 65.640546,97.394598 C 107.69392,78.152123 118.28385,97.394598 118.28385,97.394598 L 125.77477,14.41366 C 125.77477,14.41366 107.69392,-12.484167 65.640546,6.7583083 z"
-     id="path601_2_" /><path
-     style="fill:url(#linearGradient2456)"
-     d="M 101.36861,3.0493149 C 93.429486,1.9420538 83.465461,2.8278626 71.337305,7.8005925 L 68.449143,30.197768 L 63.12766,71.466122 C 63.12766,71.478056 62.890294,73.736339 62.846534,74.147418 L 60.138717,99.17815 C 62.786861,98.224712 65.518547,97.12806 68.353667,95.829845 C 77.312537,91.73099 84.76235,89.487294 90.932512,88.459597 L 93.648286,63.361235 C 93.685415,63.001872 93.894933,61.022063 93.894933,61.01278 L 98.560021,24.837828 L 101.36861,3.0493149 z"
-     a:adobe-blending-mode="screen"
-     id="path635_2_" /><g
-     transform="matrix(1.3260613,0,0,1.3260613,0.5375661,-0.5337027)"
-     id="g2512"><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient3418);fill-opacity:1;stroke:url(#linearGradient3420);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3302"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(2.0851858,0,0,2.0628385,-8.33475,-14.64284)" /><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient2496);fill-opacity:1;stroke:url(#linearGradient2498);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3334"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(0.4498098,-0.6682571,0.7276501,0.4897878,24.112563,14.615719)" /><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient2500);fill-opacity:1;stroke:url(#linearGradient2502);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3340"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(0.7958611,-7.9811433e-2,8.6904843e-2,0.8665951,33.979565,9.5278548)" /><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient2504);fill-opacity:1;stroke:url(#linearGradient2506);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3346"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(8.7215567e-2,0.806874,-0.8785868,9.4967075e-2,61.3378,22.171134)" /><path
-       sodipodi:type="star"
-       style="fill:url(#linearGradient2508);fill-opacity:1;stroke:url(#linearGradient2510);stroke-width:0.42338625;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
-       id="path3352"
-       sodipodi:sides="5"
-       sodipodi:cx="14.514286"
-       sodipodi:cy="20.37401"
-       sodipodi:r1="5.1701455"
-       sodipodi:r2="2.5850728"
-       sodipodi:arg1="1.0838971"
-       sodipodi:arg2="1.7122156"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 16.933334,24.943322 L 14.149924,22.933276 L 10.916139,24.086656 L 11.967686,20.818338 L 9.8714612,18.099239 L 13.304762,18.089354 L 15.24301,15.255478 L 16.31336,18.517687 L 19.607487,19.485354 L 16.835699,21.511395 L 16.933334,24.943322 z"
-       transform="matrix(0.7958594,0.2930099,-0.319052,0.8665934,33.030306,21.823519)" /></g></g></g>
-
-</svg>
\ No newline at end of file
diff --git a/data/keymaps/Makefile.in b/data/keymaps/Makefile.in
new file mode 100644 (file)
index 0000000..d697c77
--- /dev/null
@@ -0,0 +1,686 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+# keymaps = \
+#      ar \
+#      common \
+#      da \
+#      de \
+#      de-ch \
+#      en-gb \
+#      es \
+#      et \
+#      fi \
+#      fo \
+#      fr \
+#      fr-be \
+#      fr-ca \
+#      fr-ch \
+#      hr \
+#      hu \
+#      in \
+#      is \
+#      it \
+#      jp \
+#      lt \
+#      lv \
+#      mk \
+#      modifiers \
+#      nl \
+#      nl-be \
+#      no \
+#      pl \
+#      pt \
+#      pt-br \
+#      ru \
+#      sl \
+#      sv \
+#      th \
+#      tr \
+#      us \
+#      $(NULL)
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = data/keymaps
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(keymapsdir)"
+DATA = $(keymaps_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+keymaps = \
+       common \
+       modifiers \
+       us \
+       jp \
+       kr \
+       in \
+       $(NULL)
+
+keymaps_DATA = $(keymaps)
+keymapsdir = $(pkgdatadir)/keymaps
+EXTRA_DIST = \
+       $(keymaps) \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/keymaps/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu data/keymaps/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-keymapsDATA: $(keymaps_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(keymaps_DATA)'; test -n "$(keymapsdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(keymapsdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(keymapsdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(keymapsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(keymapsdir)" || exit $$?; \
+       done
+
+uninstall-keymapsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(keymaps_DATA)'; test -n "$(keymapsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(keymapsdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(keymapsdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-keymapsDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-keymapsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am \
+       install-keymapsDATA install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+       uninstall-am uninstall-keymapsDATA
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/data/keymaps/ar b/data/keymaps/ar
deleted file mode 100644 (file)
index 0d006ee..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    shift keycode 3 = at
-    shift keycode 4 = numbersign
-    shift keycode 5 = dollar
-    shift keycode 6 = percent
-    shift keycode 7 = asciicircum
-    shift keycode 8 = ampersand
-    shift keycode 9 = asterisk
-    shift keycode 10 = parenleft
-    shift keycode 11 = parenright
-keycode 12 = minus
-    shift keycode 12 = underscore
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 16 = Arabic_dad
-    shift altgr keycode 16 = Arabic_fatha
-    altgr keycode 17 = Arabic_sad
-    shift altgr keycode 17 = Arabic_fathatan
-    altgr keycode 18 = Arabic_theh
-    shift altgr keycode 18 = Arabic_damma
-    altgr keycode 19 = Arabic_qaf
-    shift altgr keycode 19 = Arabic_dammatan
-    altgr keycode 20 = Arabic_feh
-#    shift altgr keycode 20 = UFEF9
-    altgr keycode 21 = Arabic_ghain
-    shift altgr keycode 21 = Arabic_hamzaunderalef
-    altgr keycode 22 = Arabic_ain
-    shift altgr keycode 22 = grave
-    altgr keycode 23 = Arabic_ha
-    shift altgr keycode 23 = division
-    altgr keycode 24 = Arabic_khah
-    shift altgr keycode 24 = multiply
-    altgr keycode 25 = Arabic_hah
-    shift altgr keycode 25 = Arabic_semicolon
-keycode 26 = bracketleft
-    shift keycode 26 = braceleft
-    altgr keycode 26 = Arabic_jeem
-keycode 27 = bracketright
-    shift keycode 27 = braceright
-    altgr keycode 27 = Arabic_dal
-    altgr keycode 30 = Arabic_sheen
-    shift altgr keycode 30 = backslash
-    altgr keycode 31 = Arabic_seen
-    altgr keycode 32 = Arabic_yeh
-    shift altgr keycode 32 = bracketleft
-    altgr keycode 33 = Arabic_beh
-    shift altgr keycode 33 = bracketright
-    altgr keycode 34 = Arabic_lam
-#    shift altgr keycode 34 = UFEF7
-    altgr keycode 35 = Arabic_alef
-    shift altgr keycode 35 = Arabic_hamzaonalef
-    altgr keycode 36 = Arabic_teh
-    shift altgr keycode 36 = Arabic_tatweel
-    altgr keycode 37 = Arabic_noon
-    shift altgr keycode 37 = Arabic_comma
-    altgr keycode 38 = Arabic_meem
-    shift altgr keycode 38 = slash
-keycode 39 = semicolon
-    shift keycode 39 = colon
-    altgr keycode 39 = Arabic_kaf
-keycode 40 = apostrophe
-    shift keycode 40 = quotedbl
-    altgr keycode 40 = Arabic_tah
-keycode 41 = grave
-    shift keycode 41 = asciitilde
-    altgr keycode 41 = Arabic_thal
-    shift altgr keycode 41 = Arabic_shadda
-keycode 43 = backslash
-    shift keycode 43 = bar
-    altgr keycode 43 = less
-    shift altgr keycode 43 = greater
-    altgr keycode 44 = Arabic_hamzaonyeh
-    shift altgr keycode 44 = asciitilde
-    altgr keycode 45 = Arabic_hamza
-    shift altgr keycode 45 = Arabic_sukun
-    altgr keycode 46 = Arabic_hamzaonwaw
-    shift altgr keycode 46 = Arabic_kasra
-    altgr keycode 47 = Arabic_ra
-    shift altgr keycode 47 = Arabic_kasratan
-#    altgr keycode 48 = UFEFB
-#    shift altgr keycode 48 = UFEF5
-    altgr keycode 49 = Arabic_alefmaksura
-    shift altgr keycode 49 = Arabic_maddaonalef
-    altgr keycode 50 = Arabic_tehmarbuta
-    shift altgr keycode 50 = apostrophe
-keycode 51 = comma
-    shift keycode 51 = less
-    altgr keycode 51 = Arabic_waw
-keycode 52 = period
-    shift keycode 52 = greater
-    altgr keycode 52 = Arabic_zain
-keycode 53 = slash
-    shift keycode 53 = question
-    altgr keycode 53 = Arabic_zah
-    shift altgr keycode 53 = Arabic_question_mark
diff --git a/data/keymaps/da b/data/keymaps/da
deleted file mode 100644 (file)
index 742625c..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = exclamdown
-    shift altgr keycode 2 = onesuperior
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift altgr keycode 3 = twosuperior
-    shift keycode 4 = numbersign
-    altgr keycode 4 = sterling
-    shift altgr keycode 4 = threesuperior
-    shift keycode 5 = currency
-    altgr keycode 5 = dollar
-    shift altgr keycode 5 = onequarter
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = cent
-    shift keycode 7 = ampersand
-    altgr keycode 7 = yen
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = division
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = guillemotleft
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = guillemotright
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = plus
-    shift keycode 12 = question
-    altgr keycode 12 = plusminus
-    shift altgr keycode 12 = questiondown
-keycode 13 = dead_acute
-    shift keycode 13 = dead_grave
-    altgr keycode 13 = bar
-    shift altgr keycode 13 = brokenbar
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    shift altgr keycode 18 = cent
-    altgr keycode 19 = registered
-    altgr keycode 20 = thorn
-    shift altgr keycode 20 = THORN
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oe
-    shift altgr keycode 24 = OE
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = aring
-    shift keycode 26 = Aring
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = dead_diaeresis
-    shift keycode 27 = dead_circumflex
-    altgr keycode 27 = dead_tilde
-    shift altgr keycode 27 = dead_caron
-    altgr keycode 30 = ordfeminine
-    shift altgr keycode 30 = masculine
-    altgr keycode 31 = ssharp
-    shift altgr keycode 31 = section
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = ae
-    shift keycode 39 = AE
-keycode 40 = oslash
-    shift keycode 40 = Ooblique
-    shift altgr keycode 40 = dead_caron
-keycode 41 = onehalf
-    shift keycode 41 = section
-    altgr keycode 41 = threequarters
-    shift altgr keycode 41 = paragraph
-keycode 43 = apostrophe
-    shift keycode 43 = asterisk
-    altgr keycode 43 = dead_doubleacute
-    shift altgr keycode 43 = multiply
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = dead_cedilla
-    shift altgr keycode 51 = dead_ogonek
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = dead_abovedot
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = hyphen
-    shift altgr keycode 53 = macron
-    altgr keycode 57 = nobreakspace
-keycode 86 = less
-    shift keycode 86 = greater
-    altgr keycode 86 = backslash
-    shift altgr keycode 86 = notsign
diff --git a/data/keymaps/de b/data/keymaps/de
deleted file mode 100644 (file)
index d458ec5..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = twosuperior
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = section
-    altgr keycode 4 = threesuperior
-    shift altgr keycode 4 = sterling
-    shift keycode 5 = dollar
-    altgr keycode 5 = onequarter
-    shift altgr keycode 5 = currency
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = ampersand
-    altgr keycode 7 = threequarters
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-keycode 12 = ssharp
-    shift keycode 12 = question
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = dead_acute
-    shift keycode 13 = dead_grave
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = dead_ogonek
-    altgr keycode 16 = at
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-keycode 21 = z
-    shift keycode 21 = Z
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = udiaeresis
-    shift keycode 26 = Udiaeresis
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = plus
-    shift keycode 27 = asterisk
-    altgr keycode 27 = dead_tilde
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-keycode 39 = odiaeresis
-    shift keycode 39 = Odiaeresis
-    altgr keycode 39 = dead_doubleacute
-keycode 40 = adiaeresis
-    shift keycode 40 = Adiaeresis
-    shift altgr keycode 40 = dead_caron
-keycode 41 = dead_circumflex
-    shift keycode 41 = degree
-    altgr keycode 41 = notsign
-keycode 43 = numbersign
-    shift keycode 43 = apostrophe
-    shift altgr keycode 43 = dead_breve
-keycode 44 = y
-    shift keycode 44 = Y
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
diff --git a/data/keymaps/de-ch b/data/keymaps/de-ch
deleted file mode 100644 (file)
index 48f728a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-include common
-    shift keycode 2 = plus
-    altgr keycode 2 = brokenbar
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift keycode 4 = asterisk
-    altgr keycode 4 = numbersign
-    shift keycode 5 = ccedilla
-    shift keycode 6 = percent
-    shift keycode 7 = ampersand
-    altgr keycode 7 = notsign
-    shift keycode 8 = slash
-    altgr keycode 8 = bar
-    shift keycode 9 = parenleft
-    altgr keycode 9 = cent
-    shift keycode 10 = parenright
-    shift keycode 11 = equal
-keycode 12 = apostrophe
-    shift keycode 12 = question
-    altgr keycode 12 = dead_acute
-keycode 13 = dead_circumflex
-    shift keycode 13 = dead_grave
-    altgr keycode 13 = dead_tilde
-    altgr keycode 18 = EuroSign
-keycode 21 = z
-    shift keycode 21 = Z
-keycode 26 = udiaeresis
-    shift keycode 26 = egrave
-    altgr keycode 26 = bracketleft
-keycode 27 = dead_diaeresis
-    shift keycode 27 = exclam
-    altgr keycode 27 = bracketright
-keycode 39 = odiaeresis
-    shift keycode 39 = eacute
-keycode 40 = adiaeresis
-    shift keycode 40 = agrave
-    altgr keycode 40 = braceleft
-keycode 41 = section
-    shift keycode 41 = degree
-keycode 43 = dollar
-    shift keycode 43 = sterling
-    altgr keycode 43 = braceright
-keycode 44 = y
-    shift keycode 44 = Y
-keycode 51 = comma
-    shift keycode 51 = semicolon
-keycode 52 = period
-    shift keycode 52 = colon
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 86 = backslash
diff --git a/data/keymaps/dvorak-common b/data/keymaps/dvorak-common
deleted file mode 100644 (file)
index 85edcaf..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-include modifiers
-keycode 1 = Escape
-keycode 14 = BackSpace
-keycode 15 = Tab
-    shift keycode 15 = ISO_Left_Tab
-keycode 17 = comma
-    shift keycode 17 = less
-keycode 18 = period
-    shift keycode 18 = greater
-keycode 19 = p
-    shift keycode 19 = P
-keycode 20 = y
-    shift keycode 20 = Y
-keycode 21 = f
-    shift keycode 21 = F
-keycode 22 = g
-    shift keycode 22 = G
-keycode 23 = c
-    shift keycode 23 = C
-keycode 24 = r
-    shift keycode 24 = R
-keycode 25 = l
-    shift keycode 25 = L
-keycode 28 = Return
-keycode 30 = a
-    shift keycode 30 = A
-keycode 31 = o
-    shift keycode 31 = O
-keycode 32 = e
-    shift keycode 32 = E
-keycode 33 = u
-    shift keycode 33 = U
-keycode 34 = i
-    shift keycode 34 = I
-keycode 35 = d
-    shift keycode 35 = D
-keycode 36 = h
-    shift keycode 36 = H
-keycode 37 = t
-    shift keycode 37 = T
-keycode 38 = n
-    shift keycode 38 = N
-keycode 39 = s
-    shift keycode 39 = S
-keycode 40 = minus
-    shift keycode 40 = underscore
-keycode 43 = backslash
-    shift keycode 43 = bar
-keycode 45 = q
-    shift keycode 45 = Q
-keycode 46 = j
-    shift keycode 46 = J
-keycode 47 = k
-    shift keycode 47 = K
-keycode 48 = x
-    shift keycode 48 = X
-keycode 49 = b
-    shift keycode 49 = B
-keycode 50 = m
-    shift keycode 50 = M
-keycode 51 = w
-    shift keycode 51 = W
-keycode 52 = v
-    shift keycode 52 = V
-keycode 53 = z
-    shift keycode 53 = Z
-keycode 55 = KP_Multiply
-keycode 57 = space
-keycode 58 = Caps_Lock
-keycode 59 = F1
-keycode 60 = F2
-keycode 61 = F3
-keycode 62 = F4
-keycode 63 = F5
-keycode 64 = F6
-keycode 65 = F7
-keycode 66 = F8
-keycode 67 = F9
-keycode 68 = F10
-keycode 69 = Num_Lock
-keycode 70 = Scroll_Lock
-keycode 71 = KP_Home
-    numlock keycode 71 = KP_7
-keycode 72 = KP_Up
-    numlock keycode 72 = KP_8
-keycode 73 = KP_Prior
-    numlock keycode 73 = KP_9
-keycode 74 = KP_Subtract
-keycode 75 = KP_Left
-    numlock keycode 75 = KP_4
-keycode 76 = KP_Begin
-    numlock keycode 76 = KP_5
-keycode 77 = KP_Right
-    numlock keycode 77 = KP_6
-keycode 78 = KP_Add
-keycode 79 = KP_End
-    numlock keycode 79 = KP_1
-keycode 80 = KP_Down
-    numlock keycode 80 = KP_2
-keycode 81 = KP_Next
-    numlock keycode 81 = KP_3
-keycode 82 = KP_Insert
-    numlock keycode 82 = KP_0
-keycode 83 = KP_Delete
-    numlock keycode 83 = KP_Separator
-keycode 86 = less
-    shift keycode 86 = greater
-    altgr keycode 86 = bar
-    shift altgr keycode 86 = brokenbar
-keycode 87 = F11
-keycode 88 = F12
-keycode 96 = KP_Enter
-keycode 98 = KP_Divide
-keycode 102 = Home
-keycode 103 = Up
-keycode 104 = Page_Up
-keycode 105 = Left
-keycode 106 = Right
-keycode 107 = End
-keycode 108 = Down
-keycode 109 = Page_Down
-keycode 110 = Insert
-keycode 111 = Delete
-
diff --git a/data/keymaps/en-gb b/data/keymaps/en-gb
deleted file mode 100644 (file)
index fdfb73a..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = twosuperior
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = sterling
-    altgr keycode 4 = threesuperior
-    shift keycode 5 = dollar
-    altgr keycode 5 = EuroSign
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = asciicircum
-    altgr keycode 7 = threequarters
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = ampersand
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = asterisk
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenleft
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = parenright
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = minus
-    shift keycode 12 = underscore
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = dead_ogonek
-    altgr keycode 16 = at
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = bracketleft
-    shift keycode 26 = braceleft
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = bracketright
-    shift keycode 27 = braceright
-    altgr keycode 27 = dead_tilde
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 31 = ssharp
-    shift altgr keycode 31 = section
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = semicolon
-    shift keycode 39 = colon
-    altgr keycode 39 = dead_acute
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = apostrophe
-    shift keycode 40 = at
-    altgr keycode 40 = dead_circumflex
-    shift altgr keycode 40 = dead_caron
-keycode 41 = grave
-    shift keycode 41 = notsign
-    altgr keycode 41 = bar
-keycode 43 = numbersign
-    shift keycode 43 = asciitilde
-    altgr keycode 43 = dead_grave
-    shift altgr keycode 43 = dead_breve
-    altgr keycode 44 = guillemotleft
-    shift altgr keycode 44 = less
-    altgr keycode 45 = guillemotright
-    shift altgr keycode 45 = greater
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = less
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = greater
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = slash
-    shift keycode 53 = question
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
-keycode 86 = backslash
-    shift keycode 86 = bar
diff --git a/data/keymaps/es b/data/keymaps/es
deleted file mode 100644 (file)
index 9287ed6..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = bar
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = periodcentered
-    altgr keycode 4 = numbersign
-    shift altgr keycode 4 = sterling
-    shift keycode 5 = dollar
-    altgr keycode 5 = asciitilde
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = ampersand
-    altgr keycode 7 = notsign
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = parenleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = equal
-    shift altgr keycode 11 = degree
-keycode 12 = apostrophe
-    shift keycode 12 = question
-keycode 13 = exclamdown
-    shift keycode 13 = questiondown
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = dead_grave
-    shift keycode 26 = dead_circumflex
-    altgr keycode 26 = bracketleft
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = plus
-    shift keycode 27 = asterisk
-    altgr keycode 27 = bracketright
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 31 = ssharp
-    shift altgr keycode 31 = section
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = ntilde
-    shift keycode 39 = Ntilde
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = dead_acute
-    shift keycode 40 = dead_diaeresis
-    altgr keycode 40 = braceleft
-keycode 41 = masculine
-    shift keycode 41 = ordfeminine
-    altgr keycode 41 = backslash
-keycode 43 = ccedilla
-    shift keycode 43 = Ccedilla
-    altgr keycode 43 = braceright
-    shift altgr keycode 43 = dead_breve
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 50 = mu
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = colon
-    shift altgr keycode 52 = division
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
-keycode 86 = less
-    shift keycode 86 = greater
diff --git a/data/keymaps/et b/data/keymaps/et
deleted file mode 100644 (file)
index 2a80a76..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift keycode 4 = numbersign
-    altgr keycode 4 = sterling
-    shift keycode 5 = currency
-    altgr keycode 5 = dollar
-    shift keycode 6 = percent
-    shift keycode 7 = ampersand
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-keycode 12 = plus
-    shift keycode 12 = question
-    altgr keycode 12 = backslash
-keycode 13 = dead_acute
-    shift keycode 13 = dead_grave
-    altgr keycode 18 = EuroSign
-keycode 26 = udiaeresis
-    shift keycode 26 = Udiaeresis
-keycode 27 = otilde
-    shift keycode 27 = Otilde
-    altgr keycode 27 = section
-    altgr keycode 31 = scaron
-    shift altgr keycode 31 = Scaron
-keycode 39 = odiaeresis
-    shift keycode 39 = Odiaeresis
-keycode 40 = adiaeresis
-    shift keycode 40 = Adiaeresis
-    altgr keycode 40 = asciicircum
-keycode 41 = dead_caron
-    shift keycode 41 = dead_tilde
-keycode 43 = apostrophe
-    shift keycode 43 = asterisk
-    altgr keycode 43 = onehalf
-    altgr keycode 44 = zcaron
-    shift altgr keycode 44 = Zcaron
-keycode 51 = comma
-    shift keycode 51 = semicolon
-keycode 52 = period
-    shift keycode 52 = colon
-keycode 53 = minus
-    shift keycode 53 = underscore
-keycode 86 = less
-    shift keycode 86 = greater
-    altgr keycode 86 = bar
diff --git a/data/keymaps/fi b/data/keymaps/fi
deleted file mode 100644 (file)
index 5efd036..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = exclamdown
-    shift altgr keycode 2 = onesuperior
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift altgr keycode 3 = twosuperior
-    shift keycode 4 = numbersign
-    altgr keycode 4 = sterling
-    shift altgr keycode 4 = threesuperior
-    shift keycode 5 = currency
-    altgr keycode 5 = dollar
-    shift altgr keycode 5 = onequarter
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = cent
-    shift keycode 7 = ampersand
-    altgr keycode 7 = yen
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = division
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = guillemotleft
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = guillemotright
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = plus
-    shift keycode 12 = question
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = dead_acute
-    shift keycode 13 = dead_grave
-    altgr keycode 13 = plusminus
-    shift altgr keycode 13 = notsign
-    altgr keycode 16 = at
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    shift altgr keycode 18 = cent
-    altgr keycode 19 = registered
-    altgr keycode 20 = thorn
-    shift altgr keycode 20 = THORN
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oe
-    shift altgr keycode 24 = OE
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = aring
-    shift keycode 26 = Aring
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = dead_diaeresis
-    shift keycode 27 = dead_circumflex
-    altgr keycode 27 = dead_tilde
-    shift altgr keycode 27 = dead_caron
-    altgr keycode 30 = ordfeminine
-    shift altgr keycode 30 = masculine
-    altgr keycode 31 = ssharp
-    shift altgr keycode 31 = section
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    shift altgr keycode 37 = ampersand
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = odiaeresis
-    shift keycode 39 = Odiaeresis
-    altgr keycode 39 = oslash
-    shift altgr keycode 39 = Ooblique
-keycode 40 = adiaeresis
-    shift keycode 40 = Adiaeresis
-    altgr keycode 40 = ae
-    shift altgr keycode 40 = AE
-keycode 41 = section
-    shift keycode 41 = onehalf
-    altgr keycode 41 = paragraph
-    shift altgr keycode 41 = threequarters
-keycode 43 = apostrophe
-    shift keycode 43 = asterisk
-    altgr keycode 43 = acute
-    shift altgr keycode 43 = multiply
-    altgr keycode 44 = guillemotleft
-    shift altgr keycode 44 = less
-    altgr keycode 45 = guillemotright
-    shift altgr keycode 45 = greater
-    altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = rightdoublequotemark
-    shift altgr keycode 48 = apostrophe
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = dead_cedilla
-    shift altgr keycode 51 = dead_ogonek
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = dead_abovedot
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = hyphen
-    shift altgr keycode 53 = macron
-    altgr keycode 57 = nobreakspace
diff --git a/data/keymaps/fo b/data/keymaps/fo
deleted file mode 100644 (file)
index bfda445..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift keycode 4 = numbersign
-    altgr keycode 4 = sterling
-    shift keycode 5 = currency
-    altgr keycode 5 = dollar
-    shift keycode 6 = percent
-    shift keycode 7 = ampersand
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-keycode 12 = plus
-    shift keycode 12 = question
-    altgr keycode 12 = plusminus
-keycode 13 = dead_acute
-    altgr keycode 13 = bar
-    altgr keycode 18 = EuroSign
-keycode 26 = aring
-    shift keycode 26 = Aring
-keycode 27 = eth
-    shift keycode 27 = ETH
-    altgr keycode 27 = asciitilde
-keycode 39 = ae
-    shift keycode 39 = AE
-keycode 40 = oslash
-    shift keycode 40 = Ooblique
-keycode 41 = onehalf
-    shift keycode 41 = section
-keycode 43 = apostrophe
-    shift keycode 43 = asterisk
-keycode 51 = comma
-    shift keycode 51 = semicolon
-keycode 52 = period
-    shift keycode 52 = colon
-keycode 53 = minus
-    shift keycode 53 = underscore
-keycode 86 = less
-    shift keycode 86 = greater
-    altgr keycode 86 = backslash
diff --git a/data/keymaps/fr b/data/keymaps/fr
deleted file mode 100644 (file)
index 40de16f..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-include common
-keycode 2 = ampersand
-    shift keycode 2 = 1
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-keycode 3 = eacute
-    shift keycode 3 = 2
-    altgr keycode 3 = asciitilde
-    shift altgr keycode 3 = oneeighth
-keycode 4 = quotedbl
-    shift keycode 4 = 3
-    altgr keycode 4 = numbersign
-keycode 5 = apostrophe
-    shift keycode 5 = 4
-    altgr keycode 5 = braceleft
-keycode 6 = parenleft
-    shift keycode 6 = 5
-    altgr keycode 6 = bracketleft
-    shift altgr keycode 6 = threeeighths
-keycode 7 = minus
-    shift keycode 7 = 6
-    altgr keycode 7 = bar
-    shift altgr keycode 7 = fiveeighths
-keycode 8 = egrave
-    shift keycode 8 = 7
-    altgr keycode 8 = grave
-    shift altgr keycode 8 = seveneighths
-keycode 9 = underscore
-    shift keycode 9 = 8
-    altgr keycode 9 = backslash
-    shift altgr keycode 9 = trademark
-keycode 10 = ccedilla
-    shift keycode 10 = 9
-    altgr keycode 10 = asciicircum
-    shift altgr keycode 10 = plusminus
-keycode 11 = agrave
-    shift keycode 11 = 0
-    altgr keycode 11 = at
-keycode 12 = parenright
-    shift keycode 12 = degree
-    altgr keycode 12 = bracketright
-    shift altgr keycode 12 = questiondown
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 13 = braceright
-    shift altgr keycode 13 = dead_ogonek
-keycode 16 = a
-    shift keycode 16 = A
-    altgr keycode 16 = ae
-    shift altgr keycode 16 = AE
-keycode 17 = z
-    shift keycode 17 = Z
-    altgr keycode 17 = guillemotleft
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = dead_circumflex
-    shift keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = dollar
-    shift keycode 27 = sterling
-    altgr keycode 27 = currency
-    shift altgr keycode 27 = dead_macron
-keycode 30 = q
-    shift keycode 30 = Q
-    shift altgr keycode 30 = Greek_OMEGA
-    altgr keycode 31 = ssharp
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = m
-    shift keycode 39 = M
-    shift altgr keycode 39 = masculine
-keycode 40 = ugrave
-    shift keycode 40 = percent
-    shift altgr keycode 40 = dead_caron
-keycode 41 = twosuperior
-    altgr keycode 41 = notsign
-keycode 43 = asterisk
-    shift keycode 43 = mu
-    altgr keycode 43 = dead_grave
-    shift altgr keycode 43 = dead_breve
-keycode 44 = w
-    shift keycode 44 = W
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    altgr keycode 48 = rightdoublequotemark
-keycode 50 = comma
-    shift keycode 50 = question
-    altgr keycode 50 = dead_acute
-    shift altgr keycode 50 = dead_doubleacute
-keycode 51 = semicolon
-    shift keycode 51 = period
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = colon
-    shift keycode 52 = slash
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = exclam
-    shift keycode 53 = section
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
-keycode 86 = less
-    shift keycode 86 = greater
diff --git a/data/keymaps/fr-be b/data/keymaps/fr-be
deleted file mode 100644 (file)
index e9e40e7..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-include common
-keycode 2 = ampersand
-    shift keycode 2 = 1
-    altgr keycode 2 = bar
-    shift altgr keycode 2 = exclamdown
-keycode 3 = eacute
-    shift keycode 3 = 2
-    altgr keycode 3 = at
-    shift altgr keycode 3 = oneeighth
-keycode 4 = quotedbl
-    shift keycode 4 = 3
-    altgr keycode 4 = numbersign
-    shift altgr keycode 4 = sterling
-keycode 5 = apostrophe
-    shift keycode 5 = 4
-    altgr keycode 5 = onequarter
-    shift altgr keycode 5 = dollar
-keycode 6 = parenleft
-    shift keycode 6 = 5
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-keycode 7 = section
-    shift keycode 7 = 6
-    altgr keycode 7 = asciicircum
-    shift altgr keycode 7 = fiveeighths
-keycode 8 = egrave
-    shift keycode 8 = 7
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-keycode 9 = exclam
-    shift keycode 9 = 8
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = trademark
-keycode 10 = ccedilla
-    shift keycode 10 = 9
-    altgr keycode 10 = braceleft
-    shift altgr keycode 10 = plusminus
-keycode 11 = agrave
-    shift keycode 11 = 0
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = parenright
-    shift keycode 12 = degree
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = minus
-    shift keycode 13 = underscore
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = dead_ogonek
-keycode 16 = a
-    shift keycode 16 = A
-    shift altgr keycode 16 = Greek_OMEGA
-keycode 17 = z
-    shift keycode 17 = Z
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    shift altgr keycode 18 = cent
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = dead_circumflex
-    shift keycode 26 = dead_diaeresis
-    altgr keycode 26 = bracketleft
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = dollar
-    shift keycode 27 = asterisk
-    altgr keycode 27 = bracketright
-    shift altgr keycode 27 = dead_macron
-keycode 30 = q
-    shift keycode 30 = Q
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 31 = ssharp
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = m
-    shift keycode 39 = M
-    altgr keycode 39 = dead_acute
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = ugrave
-    shift keycode 40 = percent
-    altgr keycode 40 = dead_acute
-    shift altgr keycode 40 = dead_caron
-keycode 41 = twosuperior
-    shift keycode 41 = threesuperior
-    altgr keycode 41 = notsign
-keycode 43 = mu
-    shift keycode 43 = sterling
-    altgr keycode 43 = dead_grave
-    shift altgr keycode 43 = dead_breve
-keycode 44 = w
-    shift keycode 44 = W
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = rightdoublequotemark
-keycode 50 = comma
-    shift keycode 50 = question
-    altgr keycode 50 = dead_cedilla
-    shift altgr keycode 50 = masculine
-keycode 51 = semicolon
-    shift keycode 51 = period
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = colon
-    shift keycode 52 = slash
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = equal
-    shift keycode 53 = plus
-    altgr keycode 53 = dead_tilde
-    shift altgr keycode 53 = dead_abovedot
-    altgr keycode 86 = backslash
diff --git a/data/keymaps/fr-ca b/data/keymaps/fr-ca
deleted file mode 100644 (file)
index c9ff4bc..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = plusminus
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift keycode 4 = slash
-    altgr keycode 4 = sterling
-    shift keycode 5 = dollar
-    altgr keycode 5 = cent
-    shift keycode 6 = percent
-    altgr keycode 6 = currency
-    shift keycode 7 = question
-    altgr keycode 7 = notsign
-    shift keycode 8 = ampersand
-    shift keycode 9 = asterisk
-    altgr keycode 9 = twosuperior
-    shift keycode 10 = parenleft
-    altgr keycode 10 = threesuperior
-    shift keycode 11 = parenright
-    altgr keycode 11 = onequarter
-    shift keycode 12 = underscore
-    altgr keycode 12 = onehalf
-    shift keycode 13 = plus
-    altgr keycode 13 = threequarters
-    altgr keycode 24 = section
-    altgr keycode 25 = paragraph
-keycode 26 = dead_circumflex
-    shift keycode 26 = dead_circumflex
-    altgr keycode 26 = bracketleft
-keycode 27 = dead_cedilla
-    shift keycode 27 = dead_diaeresis
-    altgr keycode 27 = bracketright
-    altgr keycode 39 = asciitilde
-keycode 40 = dead_grave
-    altgr keycode 40 = braceleft
-    shift keycode 41 = bar
-    altgr keycode 41 = backslash
-keycode 43 = less
-    shift keycode 43 = greater
-    altgr keycode 43 = braceright
-    altgr keycode 50 = mu
-keycode 53 = eacute
-    altgr keycode 53 = dead_acute
-keycode 86 = guillemotleft
-    shift keycode 86 = guillemotright
-    altgr keycode 86 = degree
diff --git a/data/keymaps/fr-ch b/data/keymaps/fr-ch
deleted file mode 100644 (file)
index d458ec5..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = twosuperior
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = section
-    altgr keycode 4 = threesuperior
-    shift altgr keycode 4 = sterling
-    shift keycode 5 = dollar
-    altgr keycode 5 = onequarter
-    shift altgr keycode 5 = currency
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = ampersand
-    altgr keycode 7 = threequarters
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-keycode 12 = ssharp
-    shift keycode 12 = question
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = dead_acute
-    shift keycode 13 = dead_grave
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = dead_ogonek
-    altgr keycode 16 = at
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-keycode 21 = z
-    shift keycode 21 = Z
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = udiaeresis
-    shift keycode 26 = Udiaeresis
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = plus
-    shift keycode 27 = asterisk
-    altgr keycode 27 = dead_tilde
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-keycode 39 = odiaeresis
-    shift keycode 39 = Odiaeresis
-    altgr keycode 39 = dead_doubleacute
-keycode 40 = adiaeresis
-    shift keycode 40 = Adiaeresis
-    shift altgr keycode 40 = dead_caron
-keycode 41 = dead_circumflex
-    shift keycode 41 = degree
-    altgr keycode 41 = notsign
-keycode 43 = numbersign
-    shift keycode 43 = apostrophe
-    shift altgr keycode 43 = dead_breve
-keycode 44 = y
-    shift keycode 44 = Y
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
diff --git a/data/keymaps/hr b/data/keymaps/hr
deleted file mode 100644 (file)
index 9423a91..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = asciitilde
-    shift altgr keycode 2 = dead_tilde
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = dead_caron
-    shift altgr keycode 3 = caron
-    shift keycode 4 = numbersign
-    altgr keycode 4 = asciicircum
-    shift altgr keycode 4 = dead_circumflex
-    shift keycode 5 = dollar
-    altgr keycode 5 = dead_breve
-    shift altgr keycode 5 = breve
-    shift keycode 6 = percent
-    altgr keycode 6 = degree
-    shift altgr keycode 6 = dead_abovering
-    shift keycode 7 = ampersand
-    altgr keycode 7 = dead_ogonek
-    shift altgr keycode 7 = ogonek
-    shift keycode 8 = slash
-    altgr keycode 8 = grave
-    shift altgr keycode 8 = dead_grave
-    shift keycode 9 = parenleft
-    altgr keycode 9 = dead_abovedot
-    shift altgr keycode 9 = abovedot
-    shift keycode 10 = parenright
-    altgr keycode 10 = dead_acute
-    shift altgr keycode 10 = apostrophe
-    shift keycode 11 = equal
-    altgr keycode 11 = dead_doubleacute
-    shift altgr keycode 11 = doubleacute
-keycode 12 = apostrophe
-    shift keycode 12 = question
-    altgr keycode 12 = dead_diaeresis
-    shift altgr keycode 12 = diaeresis
-keycode 13 = plus
-    shift keycode 13 = asterisk
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = cedilla
-    altgr keycode 16 = backslash
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = bar
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-keycode 21 = z
-    shift keycode 21 = Z
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = scaron
-    shift keycode 26 = Scaron
-    altgr keycode 26 = division
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = dstroke
-    shift keycode 27 = Dstroke
-    altgr keycode 27 = multiply
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 31 = ssharp
-    shift altgr keycode 31 = section
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = bracketleft
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = bracketright
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = lstroke
-    shift altgr keycode 37 = ampersand
-    altgr keycode 38 = Lstroke
-keycode 39 = ccaron
-    shift keycode 39 = Ccaron
-    altgr keycode 39 = dead_acute
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = cacute
-    shift keycode 40 = Cacute
-    altgr keycode 40 = ssharp
-    shift altgr keycode 40 = dead_caron
-keycode 41 = dead_cedilla
-    shift keycode 41 = dead_diaeresis
-    altgr keycode 41 = notsign
-keycode 43 = zcaron
-    shift keycode 43 = Zcaron
-    altgr keycode 43 = currency
-    shift altgr keycode 43 = dead_breve
-keycode 44 = y
-    shift keycode 44 = Y
-    altgr keycode 44 = guillemotleft
-    shift altgr keycode 44 = less
-    altgr keycode 45 = guillemotright
-    shift altgr keycode 45 = greater
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = at
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = braceleft
-    shift altgr keycode 48 = apostrophe
-    altgr keycode 49 = braceright
-    altgr keycode 50 = section
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
diff --git a/data/keymaps/hu b/data/keymaps/hu
deleted file mode 100644 (file)
index 42b58a3..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-include common
-    shift keycode 2 = apostrophe
-    altgr keycode 2 = asciitilde
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = caron
-    shift keycode 4 = plus
-    altgr keycode 4 = asciicircum
-    shift keycode 5 = exclam
-    altgr keycode 5 = breve
-    shift keycode 6 = percent
-    altgr keycode 6 = degree
-    shift keycode 7 = slash
-    altgr keycode 7 = ogonek
-    shift keycode 8 = equal
-    altgr keycode 8 = grave
-    shift keycode 9 = parenleft
-    altgr keycode 9 = abovedot
-    shift keycode 10 = parenright
-    altgr keycode 10 = acute
-keycode 11 = odiaeresis
-    shift keycode 11 = Odiaeresis
-    altgr keycode 11 = doubleacute
-keycode 12 = udiaeresis
-    shift keycode 12 = Udiaeresis
-    altgr keycode 12 = diaeresis
-keycode 13 = oacute
-    shift keycode 13 = Oacute
-    altgr keycode 13 = cedilla
-    altgr keycode 16 = backslash
-    altgr keycode 17 = bar
-    altgr keycode 18 = EuroSign
-keycode 21 = z
-    shift keycode 21 = Z
-    altgr keycode 23 = Iacute
-keycode 26 = odoubleacute
-    shift keycode 26 = Odoubleacute
-    altgr keycode 26 = division
-keycode 27 = uacute
-    shift keycode 27 = Uacute
-    altgr keycode 27 = multiply
-    altgr keycode 31 = dstroke
-    altgr keycode 32 = Dstroke
-    altgr keycode 33 = bracketleft
-    altgr keycode 34 = bracketright
-    altgr keycode 36 = iacute
-    altgr keycode 37 = lstroke
-    altgr keycode 38 = Lstroke
-keycode 39 = eacute
-    shift keycode 39 = Eacute
-    altgr keycode 39 = dollar
-keycode 40 = aacute
-    shift keycode 40 = Aacute
-    altgr keycode 40 = ssharp
-keycode 41 = 0
-    shift keycode 41 = section
-    altgr keycode 41 = notsign
-keycode 43 = udoubleacute
-    shift keycode 43 = Udoubleacute
-    altgr keycode 43 = currency
-keycode 44 = y
-    shift keycode 44 = Y
-    altgr keycode 44 = greater
-    altgr keycode 45 = numbersign
-    altgr keycode 46 = ampersand
-    altgr keycode 47 = at
-    altgr keycode 48 = braceleft
-    altgr keycode 49 = braceright
-keycode 51 = comma
-    shift keycode 51 = question
-    altgr keycode 51 = semicolon
-keycode 52 = period
-    shift keycode 52 = colon
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = asterisk
-    shift keycode 59 = F13
-    shift keycode 60 = F14
-    shift keycode 61 = F15
-    shift keycode 62 = F16
-    shift keycode 63 = F17
-    shift keycode 64 = F18
-    shift keycode 65 = F19
-    shift keycode 66 = F20
-    shift keycode 67 = F21
-    shift keycode 68 = F22
-    altgr keycode 86 = less
-    shift keycode 87 = F23
-    shift keycode 88 = F24
diff --git a/data/keymaps/is b/data/keymaps/is
deleted file mode 100644 (file)
index 2f10e83..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = twosuperior
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = numbersign
-    altgr keycode 4 = threesuperior
-    shift altgr keycode 4 = sterling
-    shift keycode 5 = dollar
-    altgr keycode 5 = onequarter
-    shift altgr keycode 5 = currency
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = ampersand
-    altgr keycode 7 = threequarters
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-keycode 12 = odiaeresis
-    shift keycode 12 = Odiaeresis
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = minus
-    shift keycode 13 = underscore
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = dead_ogonek
-    altgr keycode 16 = at
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-keycode 26 = eth
-    shift keycode 26 = ETH
-keycode 27 = apostrophe
-    shift keycode 27 = question
-    altgr keycode 27 = asciitilde
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-keycode 39 = ae
-    shift keycode 39 = AE
-    altgr keycode 39 = dead_doubleacute
-keycode 40 = dead_acute
-keycode 43 = plus
-    shift keycode 43 = asterisk
-    altgr keycode 43 = grave
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = thorn
-    shift keycode 53 = THORN
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
diff --git a/data/keymaps/it b/data/keymaps/it
deleted file mode 100644 (file)
index 7195ba5..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = twosuperior
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = sterling
-    altgr keycode 4 = threesuperior
-    shift keycode 5 = dollar
-    altgr keycode 5 = onequarter
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = ampersand
-    altgr keycode 7 = threequarters
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = parenleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = apostrophe
-    shift keycode 12 = question
-    altgr keycode 12 = grave
-    shift altgr keycode 12 = questiondown
-keycode 13 = igrave
-    shift keycode 13 = asciicircum
-    altgr keycode 13 = asciitilde
-    shift altgr keycode 13 = dead_ogonek
-    altgr keycode 16 = at
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    shift altgr keycode 18 = cent
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = egrave
-    shift keycode 26 = eacute
-    altgr keycode 26 = bracketleft
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = plus
-    shift keycode 27 = asterisk
-    altgr keycode 27 = bracketright
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 31 = ssharp
-    shift altgr keycode 31 = section
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = ograve
-    shift keycode 39 = ccedilla
-    altgr keycode 39 = at
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = agrave
-    shift keycode 40 = degree
-    altgr keycode 40 = numbersign
-keycode 41 = backslash
-    shift keycode 41 = bar
-    altgr keycode 41 = notsign
-keycode 43 = ugrave
-    shift keycode 43 = section
-    altgr keycode 43 = dead_grave
-    shift altgr keycode 43 = dead_breve
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
diff --git a/data/keymaps/keycode.py b/data/keymaps/keycode.py
deleted file mode 100755 (executable)
index d938f27..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python
-import gtk
-
-def press_cb(window, e, label):
-    s = "keycode: %d,  keysym: %s,  keyval:%d ." % (e.hardware_keycode - 8, gtk.gdk.keyval_name(e.keyval), e.keyval)
-    label.set_text(s)
-
-def main():
-    window = gtk.Window()
-    window.set_default_size(400, 100)
-    window.set_position(gtk.WIN_POS_CENTER_ALWAYS)
-    label = gtk.Label("Please make sure you are using evdev of xorg!\nPress some key.")
-    window.add(label)
-
-    window.connect("delete-event", gtk.main_quit)
-    window.connect("key-press-event", press_cb, label)
-
-    window.show_all()
-    gtk.main()
-
-if __name__ == "__main__":
-    main()
diff --git a/data/keymaps/lt b/data/keymaps/lt
deleted file mode 100644 (file)
index 02b6f0b..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = aogonek
-    shift altgr keycode 2 = Aogonek
-    shift keycode 3 = at
-    altgr keycode 3 = ccaron
-    shift altgr keycode 3 = Ccaron
-    shift keycode 4 = numbersign
-    altgr keycode 4 = eogonek
-    shift altgr keycode 4 = Eogonek
-    shift keycode 5 = dollar
-    altgr keycode 5 = eabovedot
-    shift altgr keycode 5 = Eabovedot
-    shift keycode 6 = percent
-    altgr keycode 6 = iogonek
-    shift altgr keycode 6 = Iogonek
-    shift keycode 7 = asciicircum
-    altgr keycode 7 = scaron
-    shift altgr keycode 7 = Scaron
-    shift keycode 8 = ampersand
-    altgr keycode 8 = uogonek
-    shift altgr keycode 8 = Uogonek
-    shift keycode 9 = asterisk
-    altgr keycode 9 = umacron
-    shift altgr keycode 9 = Umacron
-    shift keycode 10 = parenleft
-    altgr keycode 10 = doublelowquotemark
-    shift keycode 11 = parenright
-    altgr keycode 11 = leftdoublequotemark
-keycode 12 = minus
-    shift keycode 12 = underscore
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 13 = zcaron
-    shift altgr keycode 13 = Zcaron
-keycode 26 = bracketleft
-    shift keycode 26 = braceleft
-keycode 27 = bracketright
-    shift keycode 27 = braceright
-keycode 39 = semicolon
-    shift keycode 39 = colon
-keycode 40 = apostrophe
-    shift keycode 40 = quotedbl
-keycode 41 = grave
-    shift keycode 41 = asciitilde
-keycode 43 = backslash
-    shift keycode 43 = bar
-keycode 51 = comma
-    shift keycode 51 = less
-keycode 52 = period
-    shift keycode 52 = greater
-keycode 53 = slash
-    shift keycode 53 = question
-keycode 86 = endash
-    shift keycode 86 = EuroSign
diff --git a/data/keymaps/lv b/data/keymaps/lv
deleted file mode 100644 (file)
index 0ad3eeb..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = at
-    altgr keycode 3 = twosuperior
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = numbersign
-    altgr keycode 4 = threesuperior
-    shift altgr keycode 4 = sterling
-    shift keycode 5 = dollar
-    altgr keycode 5 = EuroSign
-    shift altgr keycode 5 = cent
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = asciicircum
-    altgr keycode 7 = threequarters
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = ampersand
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = asterisk
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenleft
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = parenright
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = minus
-    shift keycode 12 = underscore
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = dead_ogonek
-    altgr keycode 16 = at
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = emacron
-    shift altgr keycode 18 = Emacron
-    altgr keycode 19 = rcedilla
-    shift altgr keycode 19 = Rcedilla
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = umacron
-    shift altgr keycode 22 = Umacron
-    altgr keycode 23 = imacron
-    shift altgr keycode 23 = Imacron
-    altgr keycode 24 = omacron
-    shift altgr keycode 24 = Omacron
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = bracketleft
-    shift keycode 26 = braceleft
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = bracketright
-    shift keycode 27 = braceright
-    altgr keycode 27 = dead_tilde
-    shift altgr keycode 27 = dead_macron
-    shift keycode 28 = ISO_Next_Group
-    altgr keycode 30 = amacron
-    shift altgr keycode 30 = Amacron
-    altgr keycode 31 = scaron
-    shift altgr keycode 31 = Scaron
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = gcedilla
-    shift altgr keycode 34 = Gcedilla
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kcedilla
-    shift altgr keycode 37 = Kcedilla
-    altgr keycode 38 = lcedilla
-    shift altgr keycode 38 = Lcedilla
-keycode 39 = semicolon
-    shift keycode 39 = colon
-    altgr keycode 39 = dead_acute
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = apostrophe
-    shift keycode 40 = quotedbl
-    altgr keycode 40 = leftdoublequotemark
-    shift altgr keycode 40 = doublelowquotemark
-keycode 41 = grave
-    shift keycode 41 = asciitilde
-    altgr keycode 41 = notsign
-keycode 43 = backslash
-    shift keycode 43 = bar
-    altgr keycode 43 = dead_grave
-    shift altgr keycode 43 = dead_breve
-    altgr keycode 44 = zcaron
-    shift altgr keycode 44 = Zcaron
-    altgr keycode 45 = guillemotright
-    shift altgr keycode 45 = greater
-    altgr keycode 46 = ccaron
-    shift altgr keycode 46 = Ccaron
-    altgr keycode 47 = leftdoublequotemark
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = rightdoublequotemark
-    shift altgr keycode 48 = apostrophe
-    altgr keycode 49 = ncedilla
-    shift altgr keycode 49 = Ncedilla
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = less
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = greater
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = slash
-    shift keycode 53 = question
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
-    altgr keycode 57 = nobreakspace
diff --git a/data/keymaps/mk b/data/keymaps/mk
deleted file mode 100644 (file)
index 8b5e07b..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    shift keycode 3 = at
-    shift altgr keycode 3 = doublelowquotemark
-    shift keycode 4 = numbersign
-    shift altgr keycode 4 = leftdoublequotemark
-    shift keycode 5 = dollar
-    shift keycode 6 = percent
-    shift keycode 7 = asciicircum
-    shift keycode 8 = ampersand
-    shift keycode 9 = asterisk
-    shift keycode 10 = parenleft
-    shift keycode 11 = parenright
-keycode 12 = minus
-    shift keycode 12 = underscore
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 16 = Cyrillic_lje
-    shift altgr keycode 16 = Cyrillic_LJE
-    altgr keycode 17 = Cyrillic_nje
-    shift altgr keycode 17 = Cyrillic_NJE
-    altgr keycode 18 = Cyrillic_ie
-    shift altgr keycode 18 = Cyrillic_IE
-    altgr keycode 19 = Cyrillic_er
-    shift altgr keycode 19 = Cyrillic_ER
-    altgr keycode 20 = Cyrillic_te
-    shift altgr keycode 20 = Cyrillic_TE
-    altgr keycode 21 = Macedonia_dse
-    shift altgr keycode 21 = Macedonia_DSE
-    altgr keycode 22 = Cyrillic_u
-    shift altgr keycode 22 = Cyrillic_U
-    altgr keycode 23 = Cyrillic_i
-    shift altgr keycode 23 = Cyrillic_I
-    altgr keycode 24 = Cyrillic_o
-    shift altgr keycode 24 = Cyrillic_O
-    altgr keycode 25 = Cyrillic_pe
-    shift altgr keycode 25 = Cyrillic_PE
-keycode 26 = bracketleft
-    shift keycode 26 = braceleft
-    altgr keycode 26 = Cyrillic_sha
-    shift altgr keycode 26 = Cyrillic_SHA
-keycode 27 = bracketright
-    shift keycode 27 = braceright
-    altgr keycode 27 = Macedonia_gje
-    shift altgr keycode 27 = Macedonia_GJE
-    altgr keycode 30 = Cyrillic_a
-    shift altgr keycode 30 = Cyrillic_A
-    altgr keycode 31 = Cyrillic_es
-    shift altgr keycode 31 = Cyrillic_ES
-    altgr keycode 32 = Cyrillic_de
-    shift altgr keycode 32 = Cyrillic_DE
-    altgr keycode 33 = Cyrillic_ef
-    shift altgr keycode 33 = Cyrillic_EF
-    altgr keycode 34 = Cyrillic_ghe
-    shift altgr keycode 34 = Cyrillic_GHE
-    altgr keycode 35 = Cyrillic_ha
-    shift altgr keycode 35 = Cyrillic_HA
-    altgr keycode 36 = Cyrillic_je
-    shift altgr keycode 36 = Cyrillic_JE
-    altgr keycode 37 = Cyrillic_ka
-    shift altgr keycode 37 = Cyrillic_KA
-    altgr keycode 38 = Cyrillic_el
-    shift altgr keycode 38 = Cyrillic_EL
-keycode 39 = semicolon
-    shift keycode 39 = colon
-    altgr keycode 39 = Cyrillic_che
-    shift altgr keycode 39 = Cyrillic_CHE
-keycode 40 = apostrophe
-    shift keycode 40 = quotedbl
-    altgr keycode 40 = Macedonia_kje
-    shift altgr keycode 40 = Macedonia_KJE
-keycode 41 = grave
-    shift keycode 41 = asciitilde
-keycode 43 = backslash
-    shift keycode 43 = bar
-    altgr keycode 43 = Cyrillic_zhe
-    shift altgr keycode 43 = Cyrillic_ZHE
-    altgr keycode 44 = Cyrillic_ze
-    shift altgr keycode 44 = Cyrillic_ZE
-    altgr keycode 45 = Cyrillic_dzhe
-    shift altgr keycode 45 = Cyrillic_DZHE
-    altgr keycode 46 = Cyrillic_tse
-    shift altgr keycode 46 = Cyrillic_TSE
-    altgr keycode 47 = Cyrillic_ve
-    shift altgr keycode 47 = Cyrillic_VE
-    altgr keycode 48 = Cyrillic_be
-    shift altgr keycode 48 = Cyrillic_BE
-    altgr keycode 49 = Cyrillic_en
-    shift altgr keycode 49 = Cyrillic_EN
-    altgr keycode 50 = Cyrillic_em
-    shift altgr keycode 50 = Cyrillic_EM
-keycode 51 = comma
-    shift keycode 51 = less
-    shift altgr keycode 51 = semicolon
-keycode 52 = period
-    shift keycode 52 = greater
-    shift altgr keycode 52 = colon
-keycode 53 = slash
-    shift keycode 53 = question
diff --git a/data/keymaps/nl b/data/keymaps/nl
deleted file mode 100644 (file)
index 21aef87..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-#    shift keycode 3 = quotebl
-    altgr keycode 3 = twosuperior
-    shift keycode 4 = numbersign
-    altgr keycode 4 = threesuperior
-    shift keycode 5 = dollar
-    altgr keycode 5 = onequarter
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift keycode 7 = ampersand
-    altgr keycode 7 = threequarters
-    shift keycode 8 = underscore
-    altgr keycode 8 = sterling
-    shift keycode 9 = parenleft
-    altgr keycode 9 = braceleft
-    shift keycode 10 = parenright
-    altgr keycode 10 = braceright
-    shift keycode 11 = apostrophe
-keycode 12 = slash
-    shift keycode 12 = question
-    altgr keycode 12 = backslash
-keycode 13 = degree
-    shift keycode 13 = dead_tilde
-    altgr keycode 13 = dead_cedilla
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = paragraph
-keycode 26 = dead_diaeresis
-    shift keycode 26 = dead_circumflex
-keycode 27 = asterisk
-    shift keycode 27 = bar
-    altgr keycode 31 = ssharp
-keycode 39 = plus
-    shift keycode 39 = plusminus
-keycode 40 = dead_acute
-    shift keycode 40 = dead_grave
-keycode 41 = at
-    shift keycode 41 = section
-    altgr keycode 41 = notsign
-keycode 43 = less
-    shift keycode 43 = greater
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = copyright
-    altgr keycode 50 = mu
-keycode 51 = comma
-    shift keycode 51 = semicolon
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-keycode 53 = hyphen
-    shift keycode 53 = equal
-keycode 86 = bracketright
-    shift keycode 86 = bracketleft
-    altgr keycode 86 = brokenbar
diff --git a/data/keymaps/nl-be b/data/keymaps/nl-be
deleted file mode 100644 (file)
index 6f1966f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-include common
diff --git a/data/keymaps/no b/data/keymaps/no
deleted file mode 100644 (file)
index 0b94ac8..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = exclamdown
-    shift altgr keycode 2 = onesuperior
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift altgr keycode 3 = twosuperior
-    shift keycode 4 = numbersign
-    altgr keycode 4 = sterling
-    shift altgr keycode 4 = threesuperior
-    shift keycode 5 = currency
-    altgr keycode 5 = dollar
-    shift altgr keycode 5 = onequarter
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = cent
-    shift keycode 7 = ampersand
-    altgr keycode 7 = yen
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = division
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = guillemotleft
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = guillemotright
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = plus
-    shift keycode 12 = question
-    altgr keycode 12 = plusminus
-    shift altgr keycode 12 = questiondown
-keycode 13 = backslash
-    shift keycode 13 = dead_grave
-    altgr keycode 13 = dead_acute
-    shift altgr keycode 13 = notsign
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    shift altgr keycode 18 = cent
-    altgr keycode 19 = registered
-    altgr keycode 20 = thorn
-    shift altgr keycode 20 = THORN
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oe
-    shift altgr keycode 24 = OE
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = aring
-    shift keycode 26 = Aring
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = dead_diaeresis
-    shift keycode 27 = asciicircum
-    altgr keycode 27 = asciitilde
-    shift altgr keycode 27 = dead_caron
-    altgr keycode 30 = ordfeminine
-    shift altgr keycode 30 = masculine
-    altgr keycode 31 = ssharp
-    shift altgr keycode 31 = section
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = oslash
-    shift keycode 39 = Ooblique
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = ae
-    shift keycode 40 = AE
-    shift altgr keycode 40 = dead_caron
-keycode 41 = bar
-    shift keycode 41 = section
-    altgr keycode 41 = brokenbar
-    shift altgr keycode 41 = paragraph
-keycode 43 = apostrophe
-    shift keycode 43 = asterisk
-    shift altgr keycode 43 = multiply
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = dead_cedilla
-    shift altgr keycode 51 = dead_ogonek
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = dead_abovedot
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = hyphen
-    shift altgr keycode 53 = macron
-    altgr keycode 57 = nobreakspace
-    altgr keycode 86 = onehalf
-    shift altgr keycode 86 = threequarters
diff --git a/data/keymaps/pl b/data/keymaps/pl
deleted file mode 100644 (file)
index 6de836e..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = at
-    altgr keycode 3 = twosuperior
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = numbersign
-    altgr keycode 4 = threesuperior
-    shift altgr keycode 4 = sterling
-    shift keycode 5 = dollar
-    altgr keycode 5 = onequarter
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = asciicircum
-    altgr keycode 7 = threequarters
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = ampersand
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = asterisk
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenleft
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = parenright
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = minus
-    shift keycode 12 = underscore
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = dead_ogonek
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = eogonek
-    shift altgr keycode 18 = Eogonek
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = EuroSign
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oacute
-    shift altgr keycode 24 = Oacute
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = bracketleft
-    shift keycode 26 = braceleft
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = bracketright
-    shift keycode 27 = braceright
-    altgr keycode 27 = dead_tilde
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = aogonek
-    shift altgr keycode 30 = Aogonek
-    altgr keycode 31 = sacute
-    shift altgr keycode 31 = Sacute
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = semicolon
-    shift keycode 39 = colon
-    altgr keycode 39 = dead_acute
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = apostrophe
-    shift keycode 40 = quotedbl
-    altgr keycode 40 = dead_circumflex
-    shift altgr keycode 40 = dead_caron
-keycode 41 = grave
-    shift keycode 41 = asciitilde
-    altgr keycode 41 = notsign
-keycode 43 = backslash
-    shift keycode 43 = bar
-    altgr keycode 43 = dead_grave
-    shift altgr keycode 43 = dead_breve
-    altgr keycode 44 = zabovedot
-    shift altgr keycode 44 = Zabovedot
-    altgr keycode 45 = zacute
-    shift altgr keycode 45 = Zacute
-    altgr keycode 46 = cacute
-    shift altgr keycode 46 = Cacute
-    altgr keycode 47 = leftdoublequotemark
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 49 = nacute
-    shift altgr keycode 49 = Nacute
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = less
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = greater
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = slash
-    shift keycode 53 = question
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
diff --git a/data/keymaps/pt b/data/keymaps/pt
deleted file mode 100644 (file)
index 4cb83a4..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = numbersign
-    altgr keycode 4 = sterling
-    shift keycode 5 = dollar
-    altgr keycode 5 = section
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = ampersand
-    altgr keycode 7 = threequarters
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = apostrophe
-    shift keycode 12 = question
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = guillemotleft
-    shift keycode 13 = guillemotright
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = dead_ogonek
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    shift altgr keycode 18 = cent
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = plus
-    shift keycode 26 = asterisk
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = dead_acute
-    shift keycode 27 = dead_grave
-    altgr keycode 27 = dead_tilde
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 31 = ssharp
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = ccedilla
-    shift keycode 39 = Ccedilla
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = masculine
-    shift keycode 40 = ordfeminine
-    altgr keycode 40 = dead_circumflex
-    shift altgr keycode 40 = dead_caron
-keycode 41 = backslash
-    shift keycode 41 = bar
-    altgr keycode 41 = notsign
-keycode 43 = dead_tilde
-    shift keycode 43 = dead_circumflex
-    shift altgr keycode 43 = dead_breve
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = rightdoublequotemark
-    altgr keycode 50 = mu
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = horizconnector
-    shift altgr keycode 51 = multiply
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-    shift altgr keycode 52 = division
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
-keycode 86 = less
-    shift keycode 86 = greater
diff --git a/data/keymaps/pt-br b/data/keymaps/pt-br
deleted file mode 100644 (file)
index e419e0f..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = at
-    altgr keycode 3 = twosuperior
-    shift altgr keycode 3 = onehalf
-    shift keycode 4 = numbersign
-    altgr keycode 4 = threesuperior
-    shift altgr keycode 4 = threequarters
-    shift keycode 5 = dollar
-    altgr keycode 5 = sterling
-    shift altgr keycode 5 = onequarter
-    shift keycode 6 = percent
-    altgr keycode 6 = cent
-    shift keycode 7 = dead_diaeresis
-    altgr keycode 7 = notsign
-    shift altgr keycode 7 = diaeresis
-    shift keycode 8 = ampersand
-    altgr keycode 8 = braceleft
-    shift keycode 9 = asterisk
-    altgr keycode 9 = bracketleft
-    shift keycode 10 = parenleft
-    altgr keycode 10 = bracketright
-    shift keycode 11 = parenright
-    altgr keycode 11 = braceright
-keycode 12 = minus
-    shift keycode 12 = underscore
-    altgr keycode 12 = backslash
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 13 = section
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = registered
-keycode 26 = dead_acute
-    shift keycode 26 = dead_grave
-    altgr keycode 26 = acute
-    shift altgr keycode 26 = grave
-keycode 27 = bracketleft
-    shift keycode 27 = braceleft
-    altgr keycode 27 = ordfeminine
-keycode 39 = ccedilla
-    shift keycode 39 = Ccedilla
-keycode 40 = dead_tilde
-    shift keycode 40 = dead_circumflex
-    altgr keycode 40 = asciitilde
-    shift altgr keycode 40 = asciicircum
-keycode 41 = apostrophe
-    shift keycode 41 = quotedbl
-keycode 43 = bracketright
-    shift keycode 43 = braceright
-    altgr keycode 43 = masculine
-    altgr keycode 46 = copyright
-    altgr keycode 50 = mu
-keycode 51 = comma
-    shift keycode 51 = less
-keycode 52 = KP_Decimal
-    shift keycode 52 = greater
-keycode 53 = semicolon
-    shift keycode 53 = colon
-    numlock keycode 83 = comma
-keycode 86 = backslash
-    shift keycode 86 = bar
-keycode 115 = slash
-    shift keycode 115 = question
-    altgr keycode 115 = degree
diff --git a/data/keymaps/ru b/data/keymaps/ru
deleted file mode 100644 (file)
index b221812..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    shift keycode 3 = at
-    shift altgr keycode 3 = quotedbl
-    shift keycode 4 = numbersign
-    shift keycode 5 = dollar
-    shift altgr keycode 5 = asterisk
-    shift keycode 6 = percent
-    shift altgr keycode 6 = colon
-    shift keycode 7 = asciicircum
-    shift altgr keycode 7 = comma
-    shift keycode 8 = ampersand
-    shift altgr keycode 8 = period
-    shift keycode 9 = asterisk
-    shift altgr keycode 9 = semicolon
-    shift keycode 10 = parenleft
-    shift keycode 11 = parenright
-keycode 12 = minus
-    shift keycode 12 = underscore
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 16 = Cyrillic_shorti
-    shift altgr keycode 16 = Cyrillic_SHORTI
-    altgr keycode 17 = Cyrillic_tse
-    shift altgr keycode 17 = Cyrillic_TSE
-    altgr keycode 18 = Cyrillic_u
-    shift altgr keycode 18 = Cyrillic_U
-    altgr keycode 19 = Cyrillic_ka
-    shift altgr keycode 19 = Cyrillic_KA
-    altgr keycode 20 = Cyrillic_ie
-    shift altgr keycode 20 = Cyrillic_IE
-    altgr keycode 21 = Cyrillic_en
-    shift altgr keycode 21 = Cyrillic_EN
-    altgr keycode 22 = Cyrillic_ghe
-    shift altgr keycode 22 = Cyrillic_GHE
-    altgr keycode 23 = Cyrillic_sha
-    shift altgr keycode 23 = Cyrillic_SHA
-    altgr keycode 24 = Cyrillic_shcha
-    shift altgr keycode 24 = Cyrillic_SHCHA
-    altgr keycode 25 = Cyrillic_ze
-    shift altgr keycode 25 = Cyrillic_ZE
-keycode 26 = bracketleft
-    shift keycode 26 = braceleft
-    altgr keycode 26 = Cyrillic_ha
-    shift altgr keycode 26 = Cyrillic_HA
-keycode 27 = bracketright
-    shift keycode 27 = braceright
-    altgr keycode 27 = Cyrillic_hardsign
-    shift altgr keycode 27 = Cyrillic_HARDSIGN
-    altgr keycode 30 = Cyrillic_ef
-    shift altgr keycode 30 = Cyrillic_EF
-    altgr keycode 31 = Cyrillic_yeru
-    shift altgr keycode 31 = Cyrillic_YERU
-    altgr keycode 32 = Cyrillic_ve
-    shift altgr keycode 32 = Cyrillic_VE
-    altgr keycode 33 = Cyrillic_a
-    shift altgr keycode 33 = Cyrillic_A
-    altgr keycode 34 = Cyrillic_pe
-    shift altgr keycode 34 = Cyrillic_PE
-    altgr keycode 35 = Cyrillic_er
-    shift altgr keycode 35 = Cyrillic_ER
-    altgr keycode 36 = Cyrillic_o
-    shift altgr keycode 36 = Cyrillic_O
-    altgr keycode 37 = Cyrillic_el
-    shift altgr keycode 37 = Cyrillic_EL
-    altgr keycode 38 = Cyrillic_de
-    shift altgr keycode 38 = Cyrillic_DE
-keycode 39 = semicolon
-    shift keycode 39 = colon
-    altgr keycode 39 = Cyrillic_zhe
-    shift altgr keycode 39 = Cyrillic_ZHE
-keycode 40 = apostrophe
-    shift keycode 40 = quotedbl
-    altgr keycode 40 = Cyrillic_e
-    shift altgr keycode 40 = Cyrillic_E
-keycode 41 = grave
-    shift keycode 41 = asciitilde
-    altgr keycode 41 = Cyrillic_io
-    shift altgr keycode 41 = Cyrillic_IO
-keycode 43 = backslash
-    shift keycode 43 = bar
-    altgr keycode 44 = Cyrillic_ya
-    shift altgr keycode 44 = Cyrillic_YA
-    altgr keycode 45 = Cyrillic_che
-    shift altgr keycode 45 = Cyrillic_CHE
-    altgr keycode 46 = Cyrillic_es
-    shift altgr keycode 46 = Cyrillic_ES
-    altgr keycode 47 = Cyrillic_em
-    shift altgr keycode 47 = Cyrillic_EM
-    altgr keycode 48 = Cyrillic_i
-    shift altgr keycode 48 = Cyrillic_I
-    altgr keycode 49 = Cyrillic_te
-    shift altgr keycode 49 = Cyrillic_TE
-    altgr keycode 50 = Cyrillic_softsign
-    shift altgr keycode 50 = Cyrillic_SOFTSIGN
-keycode 51 = comma
-    shift keycode 51 = less
-    altgr keycode 51 = Cyrillic_be
-    shift altgr keycode 51 = Cyrillic_BE
-keycode 52 = period
-    shift keycode 52 = greater
-    altgr keycode 52 = Cyrillic_yu
-    shift altgr keycode 52 = Cyrillic_YU
-keycode 53 = slash
-    shift keycode 53 = question
-    altgr keycode 86 = slash
-    shift altgr keycode 86 = bar
diff --git a/data/keymaps/sl b/data/keymaps/sl
deleted file mode 100644 (file)
index 21ded10..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = asciitilde
-    shift altgr keycode 2 = dead_tilde
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = dead_caron
-    shift altgr keycode 3 = caron
-    shift keycode 4 = numbersign
-    altgr keycode 4 = asciicircum
-    shift altgr keycode 4 = dead_circumflex
-    shift keycode 5 = dollar
-    altgr keycode 5 = dead_breve
-    shift altgr keycode 5 = breve
-    shift keycode 6 = percent
-    altgr keycode 6 = degree
-    shift altgr keycode 6 = dead_abovering
-    shift keycode 7 = ampersand
-    altgr keycode 7 = dead_ogonek
-    shift altgr keycode 7 = ogonek
-    shift keycode 8 = slash
-    altgr keycode 8 = grave
-    shift altgr keycode 8 = dead_grave
-    shift keycode 9 = parenleft
-    altgr keycode 9 = dead_abovedot
-    shift altgr keycode 9 = abovedot
-    shift keycode 10 = parenright
-    altgr keycode 10 = dead_acute
-    shift keycode 11 = equal
-    altgr keycode 11 = dead_doubleacute
-    shift altgr keycode 11 = doubleacute
-keycode 12 = apostrophe
-    shift keycode 12 = question
-    altgr keycode 12 = dead_diaeresis
-    shift altgr keycode 12 = diaeresis
-keycode 13 = plus
-    shift keycode 13 = asterisk
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = cedilla
-    altgr keycode 16 = backslash
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = bar
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-keycode 21 = z
-    shift keycode 21 = Z
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-    altgr keycode 23 = rightarrow
-    shift altgr keycode 23 = idotless
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = scaron
-    shift keycode 26 = Scaron
-    altgr keycode 26 = division
-keycode 27 = dstroke
-    shift keycode 27 = Dstroke
-    altgr keycode 27 = multiply
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 31 = ssharp
-    shift altgr keycode 31 = section
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = bracketleft
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = bracketright
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = lstroke
-    altgr keycode 38 = Lstroke
-keycode 39 = ccaron
-    shift keycode 39 = Ccaron
-keycode 40 = cacute
-    shift keycode 40 = Cacute
-    altgr keycode 40 = ssharp
-keycode 41 = dead_cedilla
-    altgr keycode 41 = notsign
-keycode 43 = zcaron
-    shift keycode 43 = Zcaron
-    altgr keycode 43 = currency
-keycode 44 = y
-    shift keycode 44 = Y
-    altgr keycode 44 = guillemotleft
-    altgr keycode 45 = guillemotright
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = at
-    altgr keycode 48 = braceleft
-    altgr keycode 49 = braceright
-    altgr keycode 50 = section
-    shift altgr keycode 50 = masculine
-keycode 51 = comma
-    shift keycode 51 = semicolon
-    altgr keycode 51 = horizconnector
-keycode 52 = period
-    shift keycode 52 = colon
-    altgr keycode 52 = periodcentered
-keycode 53 = minus
-    shift keycode 53 = underscore
-    altgr keycode 53 = dead_belowdot
diff --git a/data/keymaps/sv b/data/keymaps/sv
deleted file mode 100644 (file)
index 5d1f6a1..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    shift keycode 3 = quotedbl
-    altgr keycode 3 = at
-    shift keycode 4 = numbersign
-    altgr keycode 4 = sterling
-    shift keycode 5 = currency
-    altgr keycode 5 = dollar
-    shift keycode 6 = percent
-    shift keycode 7 = ampersand
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-keycode 12 = plus
-    shift keycode 12 = question
-    altgr keycode 12 = backslash
-keycode 13 = dead_acute
-    shift keycode 13 = dead_grave
-    altgr keycode 18 = EuroSign
-keycode 26 = aring
-    shift keycode 26 = Aring
-keycode 27 = dead_diaeresis
-    shift keycode 27 = dead_circumflex
-    altgr keycode 27 = dead_tilde
-keycode 39 = odiaeresis
-    shift keycode 39 = Odiaeresis
-keycode 40 = adiaeresis
-    shift keycode 40 = Adiaeresis
-keycode 41 = section
-    shift keycode 41 = onehalf
-keycode 43 = apostrophe
-    shift keycode 43 = asterisk
-    altgr keycode 50 = mu
-keycode 51 = comma
-    shift keycode 51 = semicolon
-keycode 52 = period
-    shift keycode 52 = colon
-keycode 53 = minus
-    shift keycode 53 = underscore
-keycode 86 = less
-    shift keycode 86 = greater
-    altgr keycode 86 = bar
diff --git a/data/keymaps/th b/data/keymaps/th
deleted file mode 100644 (file)
index 72a5900..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = Thai_lakkhangyao
-    shift altgr keycode 2 = plus
-    shift keycode 3 = at
-    altgr keycode 3 = slash
-    shift altgr keycode 3 = Thai_leknung
-    shift keycode 4 = numbersign
-    altgr keycode 4 = minus
-    shift altgr keycode 4 = Thai_leksong
-    shift keycode 5 = dollar
-    altgr keycode 5 = Thai_phosamphao
-    shift altgr keycode 5 = Thai_leksam
-    shift keycode 6 = percent
-    altgr keycode 6 = Thai_thothung
-    shift altgr keycode 6 = Thai_leksi
-    shift keycode 7 = asciicircum
-    altgr keycode 7 = Thai_sarau
-    shift altgr keycode 7 = Thai_sarauu
-    shift keycode 8 = ampersand
-    altgr keycode 8 = Thai_saraue
-    shift altgr keycode 8 = Thai_baht
-    shift keycode 9 = asterisk
-    altgr keycode 9 = Thai_khokhwai
-    shift altgr keycode 9 = Thai_lekha
-    shift keycode 10 = parenleft
-    altgr keycode 10 = Thai_totao
-    shift altgr keycode 10 = Thai_lekhok
-    shift keycode 11 = parenright
-    altgr keycode 11 = Thai_chochan
-    shift altgr keycode 11 = Thai_lekchet
-keycode 12 = minus
-    shift keycode 12 = underscore
-    altgr keycode 12 = Thai_khokhai
-    shift altgr keycode 12 = Thai_lekpaet
-keycode 13 = equal
-    shift keycode 13 = plus
-    altgr keycode 13 = Thai_chochang
-    shift altgr keycode 13 = Thai_lekkao
-    altgr keycode 16 = Thai_maiyamok
-    shift altgr keycode 16 = Thai_leksun
-    altgr keycode 17 = Thai_saraaimaimalai
-    shift altgr keycode 17 = quotedbl
-    altgr keycode 18 = Thai_saraam
-    shift altgr keycode 18 = Thai_dochada
-    altgr keycode 19 = Thai_phophan
-    shift altgr keycode 19 = Thai_thonangmontho
-    altgr keycode 20 = Thai_saraa
-    shift altgr keycode 20 = Thai_thothong
-    altgr keycode 21 = Thai_maihanakat
-    shift altgr keycode 21 = Thai_nikhahit
-    altgr keycode 22 = Thai_saraii
-    shift altgr keycode 22 = Thai_maitri
-    altgr keycode 23 = Thai_rorua
-    shift altgr keycode 23 = Thai_nonen
-    altgr keycode 24 = Thai_nonu
-    shift altgr keycode 24 = Thai_paiyannoi
-    altgr keycode 25 = Thai_yoyak
-    shift altgr keycode 25 = Thai_yoying
-keycode 26 = bracketleft
-    shift keycode 26 = braceleft
-    altgr keycode 26 = Thai_bobaimai
-    shift altgr keycode 26 = Thai_thothan
-keycode 27 = bracketright
-    shift keycode 27 = braceright
-    altgr keycode 27 = Thai_loling
-    shift altgr keycode 27 = comma
-    altgr keycode 30 = Thai_fofan
-    shift altgr keycode 30 = Thai_ru
-    altgr keycode 31 = Thai_hohip
-    shift altgr keycode 31 = Thai_khorakhang
-    altgr keycode 32 = Thai_kokai
-    shift altgr keycode 32 = Thai_topatak
-    altgr keycode 33 = Thai_dodek
-    shift altgr keycode 33 = Thai_sarao
-    altgr keycode 34 = Thai_sarae
-    shift altgr keycode 34 = Thai_chochoe
-    altgr keycode 35 = Thai_maitho
-    shift altgr keycode 35 = Thai_maitaikhu
-    altgr keycode 36 = Thai_maiek
-    shift altgr keycode 36 = Thai_maichattawa
-    altgr keycode 37 = Thai_saraaa
-    shift altgr keycode 37 = Thai_sorusi
-    altgr keycode 38 = Thai_sosua
-    shift altgr keycode 38 = Thai_sosala
-keycode 39 = semicolon
-    shift keycode 39 = colon
-    altgr keycode 39 = Thai_wowaen
-    shift altgr keycode 39 = Thai_soso
-keycode 40 = apostrophe
-    shift keycode 40 = quotedbl
-    altgr keycode 40 = Thai_ngongu
-    shift altgr keycode 40 = period
-keycode 41 = grave
-    shift keycode 41 = asciitilde
-    altgr keycode 41 = underscore
-    shift altgr keycode 41 = percent
-    shift keycode 42 = ISO_First_Group
-keycode 43 = backslash
-    shift keycode 43 = bar
-    altgr keycode 43 = Thai_khokhuat
-    shift altgr keycode 43 = Thai_khokhon
-    altgr keycode 44 = Thai_phophung
-    shift altgr keycode 44 = parenleft
-    altgr keycode 45 = Thai_popla
-    shift altgr keycode 45 = parenright
-    altgr keycode 46 = Thai_saraae
-    shift altgr keycode 46 = Thai_choching
-    altgr keycode 47 = Thai_oang
-    shift altgr keycode 47 = Thai_honokhuk
-    altgr keycode 48 = Thai_sarai
-    shift altgr keycode 48 = Thai_phinthu
-    altgr keycode 49 = Thai_sarauee
-    shift altgr keycode 49 = Thai_thanthakhat
-    altgr keycode 50 = Thai_thothahan
-    shift altgr keycode 50 = question
-keycode 51 = comma
-    shift keycode 51 = less
-    altgr keycode 51 = Thai_moma
-    shift altgr keycode 51 = Thai_thophuthao
-keycode 52 = period
-    shift keycode 52 = greater
-    altgr keycode 52 = Thai_saraaimaimuan
-    shift altgr keycode 52 = Thai_lochula
-keycode 53 = slash
-    shift keycode 53 = question
-    altgr keycode 53 = Thai_fofa
-    shift altgr keycode 53 = Thai_lu
-    shift keycode 54 = ISO_Last_Group
diff --git a/data/keymaps/tr b/data/keymaps/tr
deleted file mode 100644 (file)
index 4bd8432..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-include common
-    shift keycode 2 = exclam
-    altgr keycode 2 = onesuperior
-    shift altgr keycode 2 = exclamdown
-    shift keycode 3 = apostrophe
-    altgr keycode 3 = at
-    shift altgr keycode 3 = oneeighth
-    shift keycode 4 = dead_circumflex
-    altgr keycode 4 = numbersign
-    shift altgr keycode 4 = sterling
-    shift keycode 5 = plus
-    altgr keycode 5 = dollar
-    shift keycode 6 = percent
-    altgr keycode 6 = onehalf
-    shift altgr keycode 6 = threeeighths
-    shift keycode 7 = ampersand
-    altgr keycode 7 = asciicircum
-    shift altgr keycode 7 = fiveeighths
-    shift keycode 8 = slash
-    altgr keycode 8 = braceleft
-    shift altgr keycode 8 = seveneighths
-    shift keycode 9 = parenleft
-    altgr keycode 9 = bracketleft
-    shift altgr keycode 9 = trademark
-    shift keycode 10 = parenright
-    altgr keycode 10 = bracketright
-    shift altgr keycode 10 = plusminus
-    shift keycode 11 = equal
-    altgr keycode 11 = braceright
-    shift altgr keycode 11 = degree
-keycode 12 = asterisk
-    shift keycode 12 = question
-    altgr keycode 12 = backslash
-    shift altgr keycode 12 = questiondown
-keycode 13 = minus
-    shift keycode 13 = underscore
-    altgr keycode 13 = dead_cedilla
-    shift altgr keycode 13 = dead_ogonek
-    altgr keycode 16 = at
-    shift altgr keycode 16 = Greek_OMEGA
-    altgr keycode 17 = lstroke
-    shift altgr keycode 17 = Lstroke
-    altgr keycode 18 = EuroSign
-    altgr keycode 19 = paragraph
-    shift altgr keycode 19 = registered
-    altgr keycode 20 = tslash
-    shift altgr keycode 20 = Tslash
-    altgr keycode 21 = leftarrow
-    shift altgr keycode 21 = yen
-    altgr keycode 22 = downarrow
-    shift altgr keycode 22 = uparrow
-keycode 23 = idotless
-    shift keycode 23 = I
-    altgr keycode 23 = rightarrow
-    altgr keycode 24 = oslash
-    shift altgr keycode 24 = Ooblique
-    altgr keycode 25 = thorn
-    shift altgr keycode 25 = THORN
-keycode 26 = gbreve
-    shift keycode 26 = Gbreve
-    altgr keycode 26 = dead_diaeresis
-    shift altgr keycode 26 = dead_abovering
-keycode 27 = udiaeresis
-    shift keycode 27 = Udiaeresis
-    altgr keycode 27 = asciitilde
-    shift altgr keycode 27 = dead_macron
-    altgr keycode 30 = ae
-    shift altgr keycode 30 = AE
-    altgr keycode 31 = ssharp
-    shift altgr keycode 31 = section
-    altgr keycode 32 = eth
-    shift altgr keycode 32 = ETH
-    altgr keycode 33 = dstroke
-    shift altgr keycode 33 = ordfeminine
-    altgr keycode 34 = eng
-    shift altgr keycode 34 = ENG
-    altgr keycode 35 = hstroke
-    shift altgr keycode 35 = Hstroke
-    altgr keycode 37 = kra
-    shift altgr keycode 37 = ampersand
-    altgr keycode 38 = lstroke
-    shift altgr keycode 38 = Lstroke
-keycode 39 = scedilla
-    shift keycode 39 = Scedilla
-    altgr keycode 39 = dead_acute
-    shift altgr keycode 39 = dead_doubleacute
-keycode 40 = i
-    shift keycode 40 = Iabovedot
-    altgr keycode 40 = dead_circumflex
-    shift altgr keycode 40 = dead_caron
-keycode 41 = backslash
-    shift keycode 41 = quotedbl
-    altgr keycode 41 = asciitilde
-keycode 43 = comma
-    shift keycode 43 = semicolon
-    altgr keycode 43 = bar
-    shift altgr keycode 43 = dead_breve
-    altgr keycode 44 = guillemotleft
-    shift altgr keycode 44 = less
-    altgr keycode 45 = guillemotright
-    shift altgr keycode 45 = greater
-    altgr keycode 46 = cent
-    shift altgr keycode 46 = copyright
-    altgr keycode 47 = leftdoublequotemark
-    shift altgr keycode 47 = grave
-    altgr keycode 48 = rightdoublequotemark
-    shift altgr keycode 48 = apostrophe
-    altgr keycode 50 = mu
-    shift altgr keycode 50 = masculine
-keycode 51 = odiaeresis
-    shift keycode 51 = Odiaeresis
-    altgr keycode 51 = less
-    shift altgr keycode 51 = multiply
-keycode 52 = ccedilla
-    shift keycode 52 = Ccedilla
-    altgr keycode 52 = greater
-    shift altgr keycode 52 = division
-keycode 53 = period
-    shift keycode 53 = colon
-    altgr keycode 53 = dead_belowdot
-    shift altgr keycode 53 = dead_abovedot
diff --git a/data/keymaps/us-dvorak b/data/keymaps/us-dvorak
deleted file mode 100644 (file)
index 104aec9..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-include dvorak-common
-keycode 2 = 1
-    shift keycode 2 = exclam
-keycode 3 = 2
-    shift keycode 3 = at
-keycode 4 = 3
-    shift keycode 4 = numbersign
-keycode 5 = 4
-    shift keycode 5 = dollar
-keycode 6 = 5
-    shift keycode 6 = percent
-keycode 7 = 6
-    shift keycode 7 = asciicircum
-keycode 8 = 7
-    shift keycode 8 = ampersand
-keycode 9 = 8
-    shift keycode 9 = asterisk
-keycode 10 = 9
-    shift keycode 10 = parenleft
-keycode 11 = 0
-    shift keycode 11 = parenright
-keycode 12 = bracketleft
-    shift keycode 12 = braceleft
-keycode 13 = bracketright
-    shift keycode 13 = braceright
-keycode 16 = apostrophe
-    shift keycode 16 = quotedbl
-keycode 26 = slash
-    shift keycode 26 = question
-keycode 27 = equal
-    shift keycode 27 = plus
-keycode 41 = grave
-    shift keycode 41 = asciitilde
-keycode 44 = semicolon
-    shift keycode 44 = colon
-
diff --git a/data/keymaps/us-dvorak-classic b/data/keymaps/us-dvorak-classic
deleted file mode 100644 (file)
index aea5a71..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-include dvorak-common
-keycode 2 = bracketleft
-    shift keycode 2 = braceleft
-keycode 3 = 7
-    shift keycode 3 = ampersand
-keycode 4 = 5
-    shift keycode 4 = percent
-keycode 5 = 3
-    shift keycode 5 = numbersign
-keycode 6 = 1
-    shift keycode 6 = exclam
-keycode 7 = 9
-    shift keycode 7 = parenleft
-keycode 8 = 0
-    shift keycode 8 = parenright
-keycode 9 = 2
-    shift keycode 9 = at
-keycode 10 = 4
-    shift keycode 10 = dollar
-keycode 11 = 6
-    shift keycode 11 = asciicircum
-keycode 12 = 8
-    shift keycode 12 = asterisk
-keycode 13 = bracketright
-    shift keycode 13 = braceright
-keycode 16 = slash
-    shift keycode 16 = question
-keycode 26 = apostrophe
-    shift keycode 26 = quotedbl
-keycode 27 = equal
-    shift keycode 27 = plus
-keycode 41 = dollar
-    shift keycode 41 = asciitilde
-keycode 44 = semicolon
-    shift keycode 44 = colon
-
diff --git a/data/keymaps/us-dvorak-programmer b/data/keymaps/us-dvorak-programmer
deleted file mode 100644 (file)
index 11bfc97..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-include dvorak-common
-keycode 2 = ampersand
-    shift keycode 2 = percent
-keycode 3 = bracketleft
-    shift keycode 3 = 7
-keycode 4 = braceleft
-    shift keycode 4 = 5
-keycode 5 = braceright
-    shift keycode 5 = 3
-keycode 6 = parenleft
-    shift keycode 6 = 1
-keycode 7 = equal
-    shift keycode 7 = 9
-keycode 8 = asterisk
-    shift keycode 8 = 0
-keycode 9 = parenright
-    shift keycode 9 = 2
-keycode 10 = plus
-    shift keycode 10 = 4
-keycode 11 = bracketright
-    shift keycode 11 = 6
-keycode 12 = exclam
-    shift keycode 12 = 8
-keycode 13 = numbersign
-    shift keycode 13 = grave
-keycode 16 = semicolon
-    shift keycode 16 = colon
-keycode 26 = slash
-    shift keycode 26 = question
-keycode 27 = at
-    shift keycode 27 = asciicircum
-keycode 41 = grave
-    shift keycode 41 = asciitilde
-keycode 44 = apostrophe
-    shift keycode 44 = quotedbl
-
diff --git a/debian/README.source b/debian/README.source
deleted file mode 100644 (file)
index b59f078..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-This package uses dpatch to manage all modifications to the upstream
-source. Changes are stored in the source package as diffs in
-debian/patches and applied during the build.
-
-To get the fully patched source after unpacking the source package, cd
-to the root level of the source package and run:
-
-    debian/rules patch
-
-Removing a patch is as simple as removing its entry from the
-debian/patches/00list file, and please also remove the patch file
-itself.
-
-Creating a new patch is done with "dpatch-edit-patch patch XX_patchname"
-where you should replace XX with a new number and patchname with a
-descriptive shortname of the patch. You can then simply edit all the
-files your patch wants to edit, and then simply "exit 0" from the shell
-to actually create the patch file.
-
-To tweak an already existing patch, call "dpatch-edit-patch XX_patchname"
-and replace XX_patchname with the actual filename from debian/patches
-you want to use.
-
-To clean up afterwards again, "debian/rules unpatch" will do the
-work for you - or you can of course choose to call
-"fakeroot debian/rules clean" all together.
diff --git a/debian/changelog.in b/debian/changelog.in
deleted file mode 100644 (file)
index f40cd06..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-ibus (${version}-1phuang${release}~${serie}1) ${serie}; urgency=low
-
-  * Upstream release.
-
- -- Peng Huang <shawn.p.huang@gmail.com>  ${date}
diff --git a/debian/clean b/debian/clean
deleted file mode 100644 (file)
index 7d90c68..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-config.guess
-config.sub
-po/ibus10.pot
-install-stamp
diff --git a/debian/compat b/debian/compat
deleted file mode 100644 (file)
index 7f8f011..0000000
+++ /dev/null
@@ -1 +0,0 @@
-7
diff --git a/debian/control b/debian/control
deleted file mode 100644 (file)
index da39a2a..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-Source: ibus
-Section: utils
-Priority: optional
-Maintainer: LI Daobing <lidaobing@debian.org>
-Uploaders: Zhengpeng Hou <zhengpeng-hou@ubuntu.com>
-Build-Depends: debhelper (>= 7),
- autotools-dev,
- autoconf,
- automake,
- dpatch,
- gtk-doc-tools,
- gobject-introspection (>= 0.6.8),
- libgirepository1.0-dev (>= 0.6.8),
- intltool (>= 0.40.0),
- iso-codes,
- libgconf2-dev,
- libgtk2.0-dev,
- libgtk-3-dev,
- libtool,
- python-support (>= 0.6),
- python-dev,
- python-gobject-dev,
- python-dbus (>= 0.83.0)
-Standards-Version: 3.8.4
-Homepage: http://code.google.com/p/ibus/
-Vcs-Bzr: lp:~lidaobing/ibus/ibus
-Vcs-Browser: https://code.launchpad.net/~lidaobing/ibus/ibus
-
-Package: ibus
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, python-glade2,
- python-ibus (= ${source:Version}), librsvg2-common
-Recommends: im-switch, ibus-gtk2, ibus-gtk3, ibus-qt4
-Conflicts: ibus-anthy (<< 1.2),
- ibus-table (<< 1.2),
- ibus-pinyin (<< 1.2.99),
- ibus-m17n (<< 1.2.99),
- ibus-hangul (<< 1.2.99),
- ibus-chewing (<< 1.2.99)
-Description: New input method framework using dbus
- IBus is an Intelligent Input Bus. It is a new input framework for Linux
- OS. It provides full featured and user friendly input method user interface.
- It also may help developers to develop input method easily.
-
-Package: libibus-1.0-0
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: New input method framework using dbus
- IBus is an Intelligent Input Bus. It is a new input framework for Linux
- OS. It provides full featured and user friendly input method user interface.
- It also may help developers to develop input method easily.
- .
- libibus-1.0-0 is the library of ibus.
-
-Package: libibus-dev
-Section: libdevel
-Architecture: any
-Depends: ${misc:Depends},
-         ${shlibs:Depends},
-         libibus-1.0-0 (= ${binary:Version}),
-         libglib2.0-dev
-Description: New input method framework using dbus
- IBus is an Intelligent Input Bus. It is a new input framework for Linux
- OS. It provides full featured and user friendly input method user interface.
- It also may help developers to develop input method easily.
- .
- This package contains the header files and static libraries which is
- needed for developing the IBus applications.
-
-Package: ibus-gtk2
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: New input method framework using dbus
- IBus is an Intelligent Input Bus. It is a new input framework for Linux
- OS. It provides full featured and user friendly input method user interface.
- It also may help developers to develop input method easily.
- .
- ibus-gtk2 is the GTK+-2.0 client of ibus, it provide a gtk-immodule for ibus.
-
-Package: ibus-gtk3
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: New input method framework using dbus
- IBus is an Intelligent Input Bus. It is a new input framework for Linux
- OS. It provides full featured and user friendly input method user interface.
- It also may help developers to develop input method easily.
- .
- ibus-gtk3 is the GTK+-3.0 client of ibus, it provide a gtk-immodule for ibus.
-Package: python-ibus
-Section: python
-Architecture: all
-Depends: ${python:Depends}, ${misc:Depends}, python-gtk2, python-dbus (>= 0.83.0), iso-codes
-Description: New input method framework using dbus
- IBus is an Intelligent Input Bus. It is a new input framework for Linux
- OS. It provides full featured and user friendly input method user interface.
- It also may help developers to develop input method easily.
- .
- python-ibus is the Python binding of ibus.
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644 (file)
index 39bdda9..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-This package was debianized by LI Daobing <lidaobing@gmail.com> on
-Sat, 04 Oct 2008 15:30:08 +0800.
-
-It was downloaded from http://code.google.com/p/ibus/
-
-Upstream Author:
-
-    Huang Peng <shawn.p.huang@gmail.com>
-
-Copyright:
-
-    Copyright (C) 2007,2008 Huang Peng <shawn.p.huang@gmail.com>
-
-License:
-
-    This package 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 of the License, or (at your option) any later version.
-
-    This package 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 package; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
-
-On Debian systems, the complete text of the GNU Lesser General
-Public License can be found in `/usr/share/common-licenses/LGPL'.
-
-The Debian packaging is (C) 2008, LI Daobing <lidaobing@gmail.com> and
-is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
-
-some files belong to different copyright holder or in a different
-license, following is the list of the files and licenses.
-
--------------------------------------------------------------------------------
-
-ibus/keysyms.py: LGPL (v2.1 or later)
-  Copyright: 1998-2003 James Henstridge
-
--------------------------------------------------------------------------------
-
-util/gconf/gconf-fixes.c: LGPL (v2 or later)
-  Copyright: 2002 Johan Dahlin
-
--------------------------------------------------------------------------------
-
-util/gconf/gconf-types.c, util/gconf/gconf-types.h: LGPL (v2.1 or later)
-  [Copyright: 2005 Red Hat, Inc]
-
--------------------------------------------------------------------------------
-
-util/IMdkit/FrameMgr.c, util/IMdkit/FrameMgr.h:
-
-/******************************************************************
-Copyright 1993, 1994 by Digital Equipment Corporation, Maynard, Massachusetts,
-                        All Rights Reserved
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Digital or MIT not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-  Author: Hiroyuki Miyamoto  Digital Equipment Corporation
-                             miyamoto@jrd.dec.com
-
-    This version tidied and debugged by Steve Underwood May 1999
-
-******************************************************************/
-
-----------------------------------------------------------------------------
-
-util/IMdkit/i18nAttr.c,
-util/IMdkit/i18nClbk.c,
-util/IMdkit/i18nIc.c,
-util/IMdkit/i18nMethod.c,
-util/IMdkit/i18nPtHdr.c,
-util/IMdkit/i18nUtil.c,
-util/IMdkit/i18nX.c,
-util/IMdkit/IMConn.c,
-util/IMdkit/IMdkit.h,
-util/IMdkit/IMMethod.c,
-util/IMdkit/IMValues.c,
-util/IMdkit/Xi18n.h,
-util/IMdkit/Xi18nX.h,
-util/IMdkit/XimFunc.h:
-
-/******************************************************************
-         Copyright 1994, 1995 by Sun Microsystems, Inc.
-         Copyright 1993, 1994 by Hewlett-Packard Company
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of Sun Microsystems, Inc.
-and Hewlett-Packard not be used in advertising or publicity pertaining to
-distribution of the software without specific, written prior permission.
-Sun Microsystems, Inc. and Hewlett-Packard make no representations about
-the suitability of this software for any purpose.  It is provided "as is"
-without express or implied warranty.
-SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL
-WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-  Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc.
-
-    This version tidied and debugged by Steve Underwood May 1999
-******************************************************************/
-
---------------------------------------------------------------------------
-
-util/IMdkit/i18nIMProro.c:
-
-/******************************************************************
-Copyright 1993, 1994 by Digital Equipment Corporation, Maynard, Massachusetts,
-Copyright 1993, 1994 by Hewlett-Packard Company
-Copyright 1994, 1995 by Sun Microsystems, Inc.
-                        All Rights Reserved
-Permission to use, copy, modify, and distribute this software and its 
-documentation for any purpose and without fee is hereby granted, 
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in 
-supporting documentation, and that the names of Digital or MIT not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.  
-DIGITAL AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD
-TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS, IN NO EVENT SHALL DIGITAL AND HEWLETT-PACKARD COMPANY BE LIABLE
-FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-  Author: Hiroyuki Miyamoto  Digital Equipment Corporation
-                             miyamoto@jrd.dec.com
-         Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc.
-
-    This version tidied and debugged by Steve Underwood May 1999
-******************************************************************/
-
---------------------------------------------------------------------
-
-util/IMdkit/XimProto.h:
-
-/******************************************************************
-
-           Copyright 1992, 1993, 1994 by FUJITSU LIMITED
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear
-in supporting documentation, and that the name of FUJITSU LIMITED
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-FUJITSU LIMITED makes no representations about the suitability of
-this software for any purpose. 
-It is provided "as is" without express or implied warranty.
-
-FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-  Author: Takashi Fujiwara     FUJITSU LIMITED 
-                               fujiwara@a80.tech.yk.fujitsu.co.jp
-
-    This version tidied and debugged by Steve Underwood May 1999
-
-******************************************************************/
-
-------------------------------------------------------------------------
-
-util/IMdkit/Xtrans.h
-
-/*
-
-Copyright (c) 1993, 1994  X Consortium
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the X Consortium shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from the X Consortium.
-
-*/
-
-/* Copyright (c) 1993, 1994 NCR Corporation - Dayton, Ohio, USA
- *
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name NCR not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.  NCR makes no representations about the
- * suitability of this software for any purpose.  It is provided "as is"
- * without express or implied warranty.
- *
- * NCR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
- * NO EVENT SHALL NCR BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
- * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
diff --git a/debian/docs b/debian/docs
deleted file mode 100644 (file)
index 6f12db5..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-AUTHORS
-README
diff --git a/debian/ibus-daemon.1 b/debian/ibus-daemon.1
deleted file mode 100644 (file)
index 9ddd9f9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.so man1/ibus.1
diff --git a/debian/ibus-gconf.1 b/debian/ibus-gconf.1
deleted file mode 100644 (file)
index 9ddd9f9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.so man1/ibus.1
diff --git a/debian/ibus-gtk2.install b/debian/ibus-gtk2.install
deleted file mode 100644 (file)
index 3cdfe6a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.so
diff --git a/debian/ibus-gtk3.install b/debian/ibus-gtk3.install
deleted file mode 100644 (file)
index 6906adc..0000000
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/gtk-3.0/3.0.0/immodules/im-ibus.so
diff --git a/debian/ibus-setup.1 b/debian/ibus-setup.1
deleted file mode 100644 (file)
index 1c01b39..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-.\" This file is distributed under the same license as the ibus
-.\" package.
-.\" Copyright (C) LI Daobing <lidaobing@gmail.com>, 2008.
-.\"
-.TH "IBUS-SETUP" 1 "2008-11-08" "" ""
-.SH NAME
-ibus-setup \- configuration program for ibus
-
-.SH "SYNOPSIS"
-.B ibus-setup
-
-.SH "DESCRIPTION"
-
-.PP
-IBus is an Intelligent Input Bus. It is a new input framework for Linux
-OS. It provides full featured and user friendly input method user
-interface.  It also may help developers to develop input method easily.  
-
-.PP
-ibus-setup is the configuration program for IBus.
-
-.PP
-Homepage: http://code.google.com/p/ibus/
-
-.SH "SEE ALSO"
-.BR ibus (1)
diff --git a/debian/ibus-ui-gtk.1 b/debian/ibus-ui-gtk.1
deleted file mode 100644 (file)
index 9ddd9f9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.so man1/ibus.1
diff --git a/debian/ibus-x11.1 b/debian/ibus-x11.1
deleted file mode 100644 (file)
index 9ddd9f9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.so man1/ibus.1
diff --git a/debian/ibus.1 b/debian/ibus.1
deleted file mode 100644 (file)
index c0c05b5..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-.\" This file is distributed under the same license as the ibus
-.\" package.
-.\" Copyright (C) LI Daobing <lidaobing@gmail.com>, 2008.
-.\"
-.TH "IBUS" 1 "2008-11-08" "" ""
-.SH NAME
-ibus \- Intelligent Input Bus for Linux / Unix OS
-
-.SH "SYNOPSIS"
-.B ibus
-
-.SH "DESCRIPTION"
-
-.PP
-IBus is an Intelligent Input Bus. It is a new input framework for Linux
-OS. It provides full featured and user friendly input method user
-interface.  It also may help developers to develop input method easily.  
-
-.PP
-ibus will launch ibus-daemon, ibus-gconf, ibus-ui-gtk and ibus-x11.
-
-.PP
-Homepage: http://code.google.com/p/ibus/
-
-.SH "SEE ALSO"
-.BR scim (1),
-.BR fcitx (1)
diff --git a/debian/ibus.install b/debian/ibus.install
deleted file mode 100644 (file)
index a1c5117..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-debian/tmp/etc/gconf/schemas/*
-debian/tmp/usr/bin/*
-debian/tmp/usr/share/locale/*
-debian/tmp/usr/share/applications/*
-debian/tmp/usr/share/ibus/*
-debian/tmp/usr/share/icons/*
-debian/tmp/usr/share/gtk-doc/*
-debian/tmp/usr/lib/ibus/*
-debian/xinput/* etc/X11/xinit/xinput.d
diff --git a/debian/ibus.manpages b/debian/ibus.manpages
deleted file mode 100644 (file)
index b255c41..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-debian/ibus-x11.1
-debian/ibus-setup.1
-debian/ibus-gconf.1
-debian/ibus-daemon.1
-debian/ibus.1
-debian/ibus-ui-gtk.1
diff --git a/debian/ibus.postinst b/debian/ibus.postinst
deleted file mode 100644 (file)
index 853fd82..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-set -e
-
-ua_inst () {
-       update-alternatives \
-        --install /etc/X11/xinit/xinput.d/$1 xinput-$1 \
-        /etc/X11/xinit/xinput.d/$2 $3 ;
-}
-
-case "$1" in
-    configure)
-        #ua_inst all_ALL ibus  0
-        ua_inst ja_JP   ibus 60
-        ua_inst ko_KR   ibus 60
-        ua_inst zh_CN   ibus 60
-        ua_inst zh_TW   ibus 60
-        ua_inst zh_HK   ibus 60
-        ua_inst zh_SG   ibus 60
-       rm -f /etc/xdg/autostart/ibus.desktop
-    ;;
-
-    abort-upgrade|abort-remove|abort-deconfigure)
-
-    ;;
-
-    *)
-        echo "postinst called with unknown argument \`$1'" >&2
-        exit 1
-    ;;
-esac
-
-#DEBHELPER#
-
-
diff --git a/debian/ibus.prerm b/debian/ibus.prerm
deleted file mode 100644 (file)
index f32ef33..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-set -e
-
-ua_remove () {
-       update-alternatives \
-        --remove xinput-$1 \
-        /etc/X11/xinit/xinput.d/$2 ;
-}
-
-case "$1" in
-    remove|upgrade|deconfigure)
-        ua_remove all_ALL ibus
-        ua_remove ja_JP   ibus
-        ua_remove ko_KR   ibus
-        ua_remove zh_CN   ibus
-        ua_remove zh_TW   ibus
-        ua_remove zh_HK   ibus
-        ua_remove zh_SG   ibus
-       ;;
-    failed-upgrade)
-       ;;
-    *)
-       echo "prerm called with unknown argument \`$1'" >&2
-       exit 1
-   ;;
-esac
-
-#DEBHELPER#
-
-exit 0
diff --git a/debian/libibus-1.0-0.install b/debian/libibus-1.0-0.install
deleted file mode 100644 (file)
index b6fcee9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-debian/tmp/usr/lib/libibus-*.so.*
-debian/tmp/usr/lib/girepository-1.0/*
diff --git a/debian/libibus-1.0-0.symbols b/debian/libibus-1.0-0.symbols
deleted file mode 100644 (file)
index 778b4ea..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-libibus-1.0.so.0 libibus-1.0-0 #MINVER#
- ibus_attr_background_new@Base 1.3.99.20101019
- ibus_attr_foreground_new@Base 1.3.99.20101019
- ibus_attr_list_append@Base 1.3.99.20101019
- ibus_attr_list_get@Base 1.3.99.20101019
- ibus_attr_list_get_type@Base 1.3.99.20101019
- ibus_attr_list_new@Base 1.3.99.20101019
- ibus_attr_type_get_type@Base 1.3.99.20101019
- ibus_attr_underline_get_type@Base 1.3.99.20101019
- ibus_attr_underline_new@Base 1.3.99.20101019
- ibus_attribute_get_type@Base 1.3.99.20101019
- ibus_attribute_new@Base 1.3.99.20101019
- ibus_bus_add_match@Base 1.3.99.20101019
- ibus_bus_add_match_async@Base 1.3.99.20110309
- ibus_bus_add_match_async_finish@Base 1.3.99.20110309
- ibus_bus_create_input_context@Base 1.3.99.20101019
- ibus_bus_create_input_context_async@Base 1.3.99.20110309
- ibus_bus_create_input_context_async_finish@Base 1.3.99.20110309
- ibus_bus_current_input_context@Base 1.3.99.20101019
- ibus_bus_current_input_context_async@Base 1.3.99.20110309
- ibus_bus_current_input_context_async_finish@Base 1.3.99.20110309
- ibus_bus_exit@Base 1.3.99.20101019
- ibus_bus_exit_async@Base 1.3.99.20110309
- ibus_bus_exit_async_finish@Base 1.3.99.20110309
- ibus_bus_get_config@Base 1.3.99.20101019
- ibus_bus_get_connection@Base 1.3.99.20101019
- ibus_bus_get_global_engine@Base 1.3.99.20101019
- ibus_bus_get_global_engine_async@Base 1.3.99.20110309
- ibus_bus_get_global_engine_async_finish@Base 1.3.99.20110309
- ibus_bus_get_name_owner@Base 1.3.99.20101019
- ibus_bus_get_name_owner_async@Base 1.3.99.20110309
- ibus_bus_get_name_owner_async_finish@Base 1.3.99.20110309
- ibus_bus_get_type@Base 1.3.99.20101019
- ibus_bus_get_use_global_engine@Base 1.3.99.20101019
- ibus_bus_get_use_global_engine_async@Base 1.3.99.20110309
- ibus_bus_get_use_global_engine_async_finish@Base 1.3.99.20110309
- ibus_bus_get_use_sys_layout@Base 1.3.99.20101019
- ibus_bus_get_use_sys_layout_async@Base 1.3.99.20110309
- ibus_bus_get_use_sys_layout_async_finish@Base 1.3.99.20110309
- ibus_bus_hello@Base 1.3.99.20101019
- ibus_bus_is_connected@Base 1.3.99.20101019
- ibus_bus_is_global_engine_enabled@Base 1.3.99.20101019
- ibus_bus_is_global_engine_enabled_async@Base 1.3.99.20110309
- ibus_bus_is_global_engine_enabled_async_finish@Base 1.3.99.20110309
- ibus_bus_list_active_engines@Base 1.3.99.20101019
- ibus_bus_list_active_engines_async@Base 1.3.99.20110309
- ibus_bus_list_active_engines_async_finish@Base 1.3.99.20110309
- ibus_bus_list_engines@Base 1.3.99.20101019
- ibus_bus_list_engines_async@Base 1.3.99.20110309
- ibus_bus_list_engines_async_finish@Base 1.3.99.20110309
- ibus_bus_list_names@Base 1.3.99.20101019
- ibus_bus_list_queued_owners@Base 1.3.99.20110405
- ibus_bus_name_flag_get_type@Base 1.3.99.20110405
- ibus_bus_name_has_owner@Base 1.3.99.20101019
- ibus_bus_name_has_owner_async@Base 1.3.99.20110309
- ibus_bus_name_has_owner_async_finish@Base 1.3.99.20110309
- ibus_bus_new@Base 1.3.99.20101019
- ibus_bus_register_component@Base 1.3.99.20101019
- ibus_bus_register_component_async@Base 1.3.99.20110309
- ibus_bus_register_component_async_finish@Base 1.3.99.20110309
- ibus_bus_release_name@Base 1.3.99.20101019
- ibus_bus_release_name_async@Base 1.3.99.20110309
- ibus_bus_release_name_async_finish@Base 1.3.99.20110309
- ibus_bus_remove_match@Base 1.3.99.20101019
- ibus_bus_remove_match_async@Base 1.3.99.20110309
- ibus_bus_remove_match_async_finish@Base 1.3.99.20110309
- ibus_bus_request_name@Base 1.3.99.20101019
- ibus_bus_request_name_async@Base 1.3.99.20110309
- ibus_bus_request_name_async_finish@Base 1.3.99.20110309
- ibus_bus_request_name_reply_get_type@Base 1.3.99.20110405
- ibus_bus_set_global_engine@Base 1.3.99.20101019
- ibus_bus_set_global_engine_async@Base 1.3.99.20110217
- ibus_bus_set_global_engine_async_finish@Base 1.3.99.20110217
- ibus_bus_set_watch_dbus_signal@Base 1.3.99.20101019
- ibus_bus_set_watch_ibus_signal@Base 1.3.99.20110117
- ibus_capabilite_get_type@Base 1.3.99.20101019
- ibus_component_add_engine@Base 1.3.99.20101019
- ibus_component_add_observed_path@Base 1.3.99.20101019
- ibus_component_check_modification@Base 1.3.99.20101019
- ibus_component_get_author@Base 1.3.99.20101019
- ibus_component_get_description@Base 1.3.99.20101019
- ibus_component_get_engines@Base 1.3.99.20101019
- ibus_component_get_exec@Base 1.3.99.20101019
- ibus_component_get_homepage@Base 1.3.99.20101019
- ibus_component_get_license@Base 1.3.99.20101019
- ibus_component_get_name@Base 1.3.99.20101019
- ibus_component_get_textdomain@Base 1.3.99.20101019
- ibus_component_get_type@Base 1.3.99.20101019
- ibus_component_get_version@Base 1.3.99.20101019
- ibus_component_new@Base 1.3.99.20101019
- ibus_component_new_from_file@Base 1.3.99.20101019
- ibus_component_new_from_xml_node@Base 1.3.99.20101019
- ibus_component_new_varargs@Base 1.3.99.20101101
- ibus_component_output@Base 1.3.99.20101019
- ibus_component_output_engines@Base 1.3.99.20101019
- ibus_config_get_type@Base 1.3.99.20101019
- ibus_config_get_value@Base 1.3.99.20101019
- ibus_config_get_value_async@Base 1.3.99.20101115
- ibus_config_get_value_async_finish@Base 1.3.99.20101115
- ibus_config_get_values@Base 1.3.99.20110616
- ibus_config_get_values_async@Base 1.3.99.20110616
- ibus_config_get_values_async_finish@Base 1.3.99.20110616
- ibus_config_new@Base 1.3.99.20101019
- ibus_config_new_async@Base 1.3.99.20110606
- ibus_config_new_async_finish@Base 1.3.99.20110606
- ibus_config_service_get_type@Base 1.3.99.20101019
- ibus_config_service_new@Base 1.3.99.20101019
- ibus_config_service_value_changed@Base 1.3.99.20101019
- ibus_config_set_value@Base 1.3.99.20101019
- ibus_config_set_value_async@Base 1.3.99.20110217
- ibus_config_set_value_async_finish@Base 1.3.99.20110217
- ibus_config_unset@Base 1.3.99.20101019
- ibus_engine_commit_text@Base 1.3.99.20101019
- ibus_engine_delete_surrounding_text@Base 1.3.99.20101019
- ibus_engine_desc_get_author@Base 1.3.99.20101019
- ibus_engine_desc_get_description@Base 1.3.99.20101019
- ibus_engine_desc_get_hotkeys@Base 1.3.99.20101019
- ibus_engine_desc_get_icon@Base 1.3.99.20101019
- ibus_engine_desc_get_language@Base 1.3.99.20101019
- ibus_engine_desc_get_layout@Base 1.3.99.20101019
- ibus_engine_desc_get_license@Base 1.3.99.20101019
- ibus_engine_desc_get_longname@Base 1.3.99.20101019
- ibus_engine_desc_get_name@Base 1.3.99.20101019
- ibus_engine_desc_get_rank@Base 1.3.99.20101019
- ibus_engine_desc_get_symbol@Base 1.3.99.20110616
- ibus_engine_desc_get_type@Base 1.3.99.20101019
- ibus_engine_desc_new@Base 1.3.99.20101019
- ibus_engine_desc_new_from_xml_node@Base 1.3.99.20101019
- ibus_engine_desc_new_varargs@Base 1.3.99.20101101
- ibus_engine_desc_output@Base 1.3.99.20101019
- ibus_engine_forward_key_event@Base 1.3.99.20101019
- ibus_engine_get_name@Base 1.3.99.20101019
- ibus_engine_get_surrounding_text@Base 1.3.99.20110405
- ibus_engine_get_type@Base 1.3.99.20101019
- ibus_engine_hide_auxiliary_text@Base 1.3.99.20101019
- ibus_engine_hide_lookup_table@Base 1.3.99.20101019
- ibus_engine_hide_preedit_text@Base 1.3.99.20101019
- ibus_engine_new@Base 1.3.99.20101019
- ibus_engine_new_type@Base 1.3.99.20101019
- ibus_engine_register_properties@Base 1.3.99.20101019
- ibus_engine_show_auxiliary_text@Base 1.3.99.20101019
- ibus_engine_show_lookup_table@Base 1.3.99.20101019
- ibus_engine_show_preedit_text@Base 1.3.99.20101019
- ibus_engine_update_auxiliary_text@Base 1.3.99.20101019
- ibus_engine_update_lookup_table@Base 1.3.99.20101019
- ibus_engine_update_lookup_table_fast@Base 1.3.99.20101019
- ibus_engine_update_preedit_text@Base 1.3.99.20101019
- ibus_engine_update_preedit_text_with_mode@Base 1.3.99.20101019
- ibus_engine_update_property@Base 1.3.99.20101019
- ibus_error_get_type@Base 1.3.99.20110606
- ibus_error_quark@Base 1.3.99.20110606
- ibus_factory_add_engine@Base 1.3.99.20101019
- ibus_factory_get_type@Base 1.3.99.20101019
- ibus_factory_new@Base 1.3.99.20101019
- ibus_free_strv@Base 1.3.99.20101019
- ibus_get_address@Base 1.3.99.20101019
- ibus_get_daemon_uid@Base 1.3.99.20101019
- ibus_get_language_name@Base 1.3.99.20110405
- ibus_get_local_machine_id@Base 1.3.99.20101019
- ibus_get_session_id@Base 1.3.99.20101019
- ibus_get_socket_path@Base 1.3.99.20101019
- ibus_get_timeout@Base 1.3.99.20110117
- ibus_get_user_name@Base 1.3.99.20101019
- ibus_hotkey_get_type@Base 1.3.99.20101019
- ibus_hotkey_profile_add_hotkey@Base 1.3.99.20101019
- ibus_hotkey_profile_add_hotkey_from_string@Base 1.3.99.20101019
- ibus_hotkey_profile_filter_key_event@Base 1.3.99.20101019
- ibus_hotkey_profile_get_type@Base 1.3.99.20101019
- ibus_hotkey_profile_lookup_hotkey@Base 1.3.99.20101019
- ibus_hotkey_profile_new@Base 1.3.99.20101019
- ibus_hotkey_profile_remove_hotkey@Base 1.3.99.20101019
- ibus_hotkey_profile_remove_hotkey_by_event@Base 1.3.99.20101019
- ibus_init@Base 1.3.99.20101019
- ibus_input_context_cancel_hand_writing@Base 1.3.99.20110430
- ibus_input_context_cursor_down@Base 1.3.99.20101019
- ibus_input_context_cursor_up@Base 1.3.99.20101019
- ibus_input_context_disable@Base 1.3.99.20101019
- ibus_input_context_enable@Base 1.3.99.20101019
- ibus_input_context_focus_in@Base 1.3.99.20101019
- ibus_input_context_focus_out@Base 1.3.99.20101019
- ibus_input_context_get_engine@Base 1.3.99.20101019
- ibus_input_context_get_engine_async@Base 1.3.99.20110322
- ibus_input_context_get_engine_async_finish@Base 1.3.99.20110322
- ibus_input_context_get_input_context@Base 1.3.99.20101019
- ibus_input_context_get_input_context_async@Base 1.3.99.20110316
- ibus_input_context_get_input_context_async_finish@Base 1.3.99.20110316
- ibus_input_context_get_type@Base 1.3.99.20101019
- ibus_input_context_is_enabled@Base 1.3.99.20101019
- ibus_input_context_is_enabled_async@Base 1.3.99.20110322
- ibus_input_context_is_enabled_async_finish@Base 1.3.99.20110322
- ibus_input_context_needs_surrounding_text@Base 1.3.99.20110405
- ibus_input_context_new@Base 1.3.99.20101019
- ibus_input_context_new_async@Base 1.3.99.20110316
- ibus_input_context_new_async_finish@Base 1.3.99.20110316
- ibus_input_context_page_down@Base 1.3.99.20101019
- ibus_input_context_page_up@Base 1.3.99.20101019
- ibus_input_context_process_hand_writing_event@Base 1.3.99.20110430
- ibus_input_context_process_key_event@Base 1.3.99.20101019
- ibus_input_context_process_key_event_async@Base 1.3.99.20110124
- ibus_input_context_process_key_event_async_finish@Base 1.3.99.20110124
- ibus_input_context_property_activate@Base 1.3.99.20101019
- ibus_input_context_property_hide@Base 1.3.99.20101019
- ibus_input_context_property_show@Base 1.3.99.20101019
- ibus_input_context_reset@Base 1.3.99.20101019
- ibus_input_context_set_capabilities@Base 1.3.99.20101019
- ibus_input_context_set_cursor_location@Base 1.3.99.20101019
- ibus_input_context_set_engine@Base 1.3.99.20101019
- ibus_input_context_set_surrounding_text@Base 1.3.99.20110405
- ibus_key_event_from_string@Base 1.3.99.20101019
- ibus_key_event_to_string@Base 1.3.99.20101019
- ibus_keymap_fill@Base 1.3.99.20101019
- ibus_keymap_get@Base 1.3.99.20101019
- ibus_keymap_get_type@Base 1.3.99.20101019
- ibus_keymap_lookup_keysym@Base 1.3.99.20101019
- ibus_keymap_new@Base 1.3.99.20101019
- ibus_keyval_from_name@Base 1.3.99.20101019
- ibus_keyval_name@Base 1.3.99.20101019
- ibus_lookup_table_append_candidate@Base 1.3.99.20101019
- ibus_lookup_table_append_label@Base 1.3.99.20101019
- ibus_lookup_table_clear@Base 1.3.99.20101019
- ibus_lookup_table_cursor_down@Base 1.3.99.20101019
- ibus_lookup_table_cursor_up@Base 1.3.99.20101019
- ibus_lookup_table_get_candidate@Base 1.3.99.20101019
- ibus_lookup_table_get_cursor_in_page@Base 1.3.99.20101019
- ibus_lookup_table_get_cursor_pos@Base 1.3.99.20101019
- ibus_lookup_table_get_label@Base 1.3.99.20101019
- ibus_lookup_table_get_number_of_candidates@Base 1.3.99.20101019
- ibus_lookup_table_get_orientation@Base 1.3.99.20101019
- ibus_lookup_table_get_page_size@Base 1.3.99.20101019
- ibus_lookup_table_get_type@Base 1.3.99.20101019
- ibus_lookup_table_is_cursor_visible@Base 1.3.99.20101019
- ibus_lookup_table_is_round@Base 1.3.99.20101019
- ibus_lookup_table_new@Base 1.3.99.20101019
- ibus_lookup_table_page_down@Base 1.3.99.20101019
- ibus_lookup_table_page_up@Base 1.3.99.20101019
- ibus_lookup_table_set_cursor_pos@Base 1.3.99.20101019
- ibus_lookup_table_set_cursor_visible@Base 1.3.99.20101019
- ibus_lookup_table_set_label@Base 1.3.99.20101019
- ibus_lookup_table_set_orientation@Base 1.3.99.20101019
- ibus_lookup_table_set_page_size@Base 1.3.99.20101019
- ibus_lookup_table_set_round@Base 1.3.99.20101019
- ibus_main@Base 1.3.99.20101019
- ibus_modifier_type_get_type@Base 1.3.99.20101019
- ibus_object_destroy@Base 1.3.99.20101019
- ibus_object_flags_get_type@Base 1.3.99.20101019
- ibus_object_get_type@Base 1.3.99.20101019
- ibus_object_new@Base 1.3.99.20101019
- ibus_observed_path_check_modification@Base 1.3.99.20101019
- ibus_observed_path_get_type@Base 1.3.99.20101019
- ibus_observed_path_new@Base 1.3.99.20101019
- ibus_observed_path_new_from_xml_node@Base 1.3.99.20101019
- ibus_observed_path_output@Base 1.3.99.20101019
- ibus_observed_path_traverse@Base 1.3.99.20101019
- ibus_orientation_get_type@Base 1.3.99.20101019
- ibus_panel_service_candidate_clicked@Base 1.3.99.20101019
- ibus_panel_service_cursor_down@Base 1.3.99.20101019
- ibus_panel_service_cursor_up@Base 1.3.99.20101019
- ibus_panel_service_get_type@Base 1.3.99.20101019
- ibus_panel_service_new@Base 1.3.99.20101019
- ibus_panel_service_page_down@Base 1.3.99.20101019
- ibus_panel_service_page_up@Base 1.3.99.20101019
- ibus_panel_service_property_activate@Base 1.3.99.20101019
- ibus_panel_service_property_hide@Base 1.3.99.20101019
- ibus_panel_service_property_show@Base 1.3.99.20101019
- ibus_preedit_focus_mode_get_type@Base 1.3.99.20101019
- ibus_prop_list_append@Base 1.3.99.20101019
- ibus_prop_list_get@Base 1.3.99.20101019
- ibus_prop_list_get_type@Base 1.3.99.20101019
- ibus_prop_list_new@Base 1.3.99.20101019
- ibus_prop_list_update_property@Base 1.3.99.20101019
- ibus_prop_state_get_type@Base 1.3.99.20101019
- ibus_prop_type_get_type@Base 1.3.99.20101019
- ibus_property_get_icon@Base 1.3.99.20110405
- ibus_property_get_key@Base 1.3.99.20110405
- ibus_property_get_label@Base 1.3.99.20110405
- ibus_property_get_prop_type@Base 1.3.99.20110405
- ibus_property_get_sensitive@Base 1.3.99.20110405
- ibus_property_get_state@Base 1.3.99.20110405
- ibus_property_get_sub_props@Base 1.3.99.20110405
- ibus_property_get_tooltip@Base 1.3.99.20110405
- ibus_property_get_type@Base 1.3.99.20101019
- ibus_property_get_visible@Base 1.3.99.20110405
- ibus_property_new@Base 1.3.99.20101019
- ibus_property_set_icon@Base 1.3.99.20101019
- ibus_property_set_label@Base 1.3.99.20101019
- ibus_property_set_sensitive@Base 1.3.99.20101019
- ibus_property_set_state@Base 1.3.99.20101019
- ibus_property_set_sub_props@Base 1.3.99.20101019
- ibus_property_set_tooltip@Base 1.3.99.20101019
- ibus_property_set_visible@Base 1.3.99.20101019
- ibus_property_update@Base 1.3.99.20101019
- ibus_proxy_destroy@Base 1.3.99.20101019
- ibus_proxy_get_type@Base 1.3.99.20101019
- ibus_quit@Base 1.3.99.20101019
- ibus_serializable_copy@Base 1.3.99.20101019
- ibus_serializable_deserialize@Base 1.3.99.20101019
- ibus_serializable_get_qattachment@Base 1.3.99.20101019
- ibus_serializable_get_type@Base 1.3.99.20101019
- ibus_serializable_new@Base 1.3.99.20101019
- ibus_serializable_remove_qattachment@Base 1.3.99.20101019
- ibus_serializable_serialize@Base 1.3.99.20101019
- ibus_serializable_set_qattachment@Base 1.3.99.20101019
- ibus_service_class_add_interfaces@Base 1.3.99.20101019
- ibus_service_emit_signal@Base 1.3.99.20101019
- ibus_service_get_connection@Base 1.3.99.20101019
- ibus_service_get_object_path@Base 1.3.99.20101019
- ibus_service_get_type@Base 1.3.99.20101019
- ibus_service_new@Base 1.3.99.20101019
- ibus_service_register@Base 1.3.99.20101019
- ibus_service_unregister@Base 1.3.99.20101019
- ibus_set_display@Base 1.3.99.20101019
- ibus_set_log_handler@Base 1.3.99.20101019
- ibus_text_append_attribute@Base 1.3.99.20101019
- ibus_text_get_attributes@Base 1.3.99.20110405
- ibus_text_get_is_static@Base 1.3.99.20110405
- ibus_text_get_length@Base 1.3.99.20101019
- ibus_text_get_text@Base 1.3.99.20110405
- ibus_text_get_type@Base 1.3.99.20101019
- ibus_text_new_from_printf@Base 1.3.99.20101019
- ibus_text_new_from_static_string@Base 1.3.99.20101019
- ibus_text_new_from_string@Base 1.3.99.20101019
- ibus_text_new_from_ucs4@Base 1.3.99.20101019
- ibus_text_new_from_unichar@Base 1.3.99.20101019
- ibus_write_address@Base 1.3.99.20101019
- ibus_xml_free@Base 1.3.99.20101019
- ibus_xml_output@Base 1.3.99.20101019
- ibus_xml_parse_buffer@Base 1.3.99.20101019
- ibus_xml_parse_file@Base 1.3.99.20101019
diff --git a/debian/libibus-dev.install b/debian/libibus-dev.install
deleted file mode 100644 (file)
index 34eb19e..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-debian/tmp/usr/include/*
-debian/tmp/usr/lib/libibus-*.so
-debian/tmp/usr/lib/libibus-*.a
-debian/tmp/usr/lib/pkgconfig/*
-debian/tmp/usr/share/gir-1.0/*
-debian/tmp/usr/share/vala/vapi/*
diff --git a/debian/python-ibus.install b/debian/python-ibus.install
deleted file mode 100644 (file)
index 5996c8a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-debian/tmp/usr/lib/python*/*
diff --git a/debian/pyversions b/debian/pyversions
deleted file mode 100644 (file)
index b3dc41e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-2.5-
diff --git a/debian/rules b/debian/rules
deleted file mode 100755 (executable)
index a3bc5f1..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/make -f
-
-include /usr/share/dpatch/dpatch.make
-
-build: patch
-       ln -sf /usr/share/misc/config.sub config.sub
-       ln -sf /usr/share/misc/config.guess config.guess
-       dh $@ --before auto_configure
-       dh_auto_configure -- \
-               --enable-gtk3 \
-               --enable-static \
-               --enable-surrounding-text \
-               --enable-gtk-doc \
-               --with-panel-icon-keyboard=ibus-keyboard \
-               LDFLAGS="-Wl,--as-needed"
-       dh $@ --before auto_test
-       cd po; make ibus10.pot # https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/188690
-       dh $@ --after auto_test
-
-install:
-       dh $@ --until auto_install
-       rm -rf $(CURDIR)/debian/tmp/usr/lib/libibus*.la \
-               $(CURDIR)/debian/tmp/usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.a \
-               $(CURDIR)/debian/tmp/usr/lib/gtk-2.0/2.10.0/immodules/im-ibus.la \
-               $(CURDIR)/debian/tmp/usr/lib/gtk-3.0/3.0.0/immodules/im-ibus.a \
-               $(CURDIR)/debian/tmp/usr/lib/gtk-3.0/3.0.0/immodules/im-ibus.la \
-               $(CURDIR)/debian/tmp/etc/xdg \
-               $(CURDIR)/debian/tmp/usr/share/applications/ibus.desktop
-       dh_install --list-missing --fail-missing
-       dh_installdocs # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=552293
-       dh $@ --after installdocs
-       LD_LIBRARY_PATH=debian/libibus-1.0-0/usr/lib:$(LD_LIBRARY_PATH) \
-               dh_gtkmodules -p ibus-gtk2 -s
-       LD_LIBRARY_PATH=debian/libibus-1.0-0/usr/lib:$(LD_LIBRARY_PATH) \
-               dh_gtkmodules -p ibus-gtk3 -s
-
-install-stamp: install
-       touch $@
-
-binary: binary-indep binary-arch
-
-binary-indep: install-stamp
-       dh_installdeb -i
-       dh_gencontrol -i
-       dh_md5sums -i
-       dh_builddeb -i
-
-binary-arch: install-stamp
-       dh_strip -s
-       dh_makeshlibs -Nibus-gtk2 -s
-       dh_makeshlibs -Nibus-gtk3 -s
-       dh_shlibdeps -s
-       dh_installdeb -s
-       dh_gencontrol -s
-       dh_md5sums -s
-       dh_builddeb -s
-
-clean: clean0 unpatch
-
-clean0:
-       dh clean
diff --git a/debian/source/format b/debian/source/format
deleted file mode 100644 (file)
index d3827e7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-1.0
diff --git a/debian/watch b/debian/watch
deleted file mode 100644 (file)
index 9b8c365..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-version=3
-http://code.google.com/p/ibus/downloads/list \
-http://ibus.googlecode.com/files/ibus-([0-9].*)\.tar\.gz
diff --git a/debian/xinput/ibus b/debian/xinput/ibus
deleted file mode 100644 (file)
index 1206946..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-XIM=ibus
-XIM_PROGRAM=/usr/bin/ibus-daemon
-XIM_ARGS="--xim"
-if [ -e /usr/lib/gtk-2.0/*/immodules/im-ibus.so ]; then
-    GTK_IM_MODULE=ibus
-else
-    GTK_IM_MODULE=xim
-fi
-
-if [ -e /usr/lib/qt4/plugins/inputmethods/libqtim-ibus.so ]; then
-       QT_IM_MODULE=ibus
-else
-       QT_IM_MODULE=xim
-fi
-DEPENDS="ibus, ibus-gtk2, ibus-gtk3|ibus-qt4"
-# vim:ft=sh:
diff --git a/depcomp b/depcomp
new file mode 100755 (executable)
index 0000000..4ebd5b3
--- /dev/null
+++ b/depcomp
@@ -0,0 +1,791 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2013-05-30.07; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+  '')
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputting dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
+# A tabulation character.
+tab='  '
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+## Some versions of gcc put a space before the ':'.  On the theory
+## that the space means something, we add a space to the output as
+## well.  hp depmode also adds that space, but also prefixes the VPATH
+## to the object.  Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like '#:fec' to the end of the
+    # dependency line.
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
+    echo >> "$depfile"
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
+  else
+    make_dummy_depfile
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  set_dir_from "$object"
+  set_base_from "$object"
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
+    "$@" -Wc,-M
+  else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
+    "$@" -M
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using '\' :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
+
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  set_dir_from  "$object"
+  set_base_from "$object"
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add 'dependent.h:' lines.
+    sed -ne '2,${
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
+  else
+    make_dummy_depfile
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
+tru64)
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
+
+msvc7)
+  if test "$libtool" = yes; then
+    showIncludes=-Wc,-showIncludes
+  else
+    showIncludes=-showIncludes
+  fi
+  "$@" $showIncludes > "$tmpdepfile"
+  stat=$?
+  grep -v '^Note: including file: ' "$tmpdepfile"
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The first sed program below extracts the file names and escapes
+  # backslashes for cygpath.  The second sed program outputs the file
+  # name when reading, but also accumulates all include files in the
+  # hold buffer in order to output them again at the end.  This only
+  # works with sed implementations that can handle large buffers.
+  sed < "$tmpdepfile" -n '
+/^Note: including file:  *\(.*\)/ {
+  s//\1/
+  s/\\/\\\\/g
+  p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+  s/.*/'"$tab"'/
+  G
+  p
+}' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+  rm -f "$tmpdepfile"
+  ;;
+
+msvc7msys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for ':'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+  "$@" $dashmflag |
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no eat=no
+  for arg
+  do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  # makedepend may prepend the VPATH from the source file name to the object.
+  # No need to regex-escape $object, excess matching of '.' is harmless.
+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E \
+    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    | sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+        set fnord "$@"
+        shift
+        shift
+        ;;
+    *)
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
+    esac
+  done
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/docs/Makefile.in b/docs/Makefile.in
new file mode 100644 (file)
index 0000000..8e738b7
--- /dev/null
@@ -0,0 +1,761 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = docs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = \
+       reference       \
+       $(NULL)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu docs/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/reference/Makefile.in b/docs/reference/Makefile.in
new file mode 100644 (file)
index 0000000..f5561ee
--- /dev/null
@@ -0,0 +1,761 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = docs/reference
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = \
+       ibus    \
+       $(NULL)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/reference/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu docs/reference/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/reference/ibus/Makefile.in b/docs/reference/ibus/Makefile.in
new file mode 100644 (file)
index 0000000..927b748
--- /dev/null
@@ -0,0 +1,965 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# -*- mode: makefile -*-
+
+####################################
+# Everything below here is generic #
+####################################
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(srcdir)/ibus-docs.sgml.in
+subdir = docs/reference/ibus
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = ibus-docs.sgml
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# We require automake 1.6 at least.
+AUTOMAKE_OPTIONS = 1.6
+
+# This is a blank Makefile.am for using gtk-doc.
+# Copy this to your project's API docs directory and modify the variables to
+# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
+# of using the various options.
+
+# The name of the module, e.g. 'glib'.
+DOC_MODULE = ibus
+
+# The top-level SGML file. You can change this if you want to.
+DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml
+
+# The directory containing the source code. Relative to $(srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting the functions and macros.
+# e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk
+DOC_SOURCE_DIR = $(top_srcdir)/src $(top_builddir)/src
+
+# Extra options to pass to gtkdoc-scangobj. Not normally needed.
+SCANGOBJ_OPTIONS = 
+
+# Extra options to supply to gtkdoc-scan.
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
+SCAN_OPTIONS = --rebuild-sections
+
+# Extra options to supply to gtkdoc-mkdb.
+# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
+MKDB_OPTIONS = --xml-mode --output-format=xml
+
+# Extra options to supply to gtkdoc-mktmpl
+# e.g. MKTMPL_OPTIONS=--only-section-tmpl
+MKTMPL_OPTIONS = 
+
+# Extra options to supply to gtkdoc-fixref. Not normally needed.
+# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
+FIXXREF_OPTIONS = 
+
+# Used for dependencies. The docs will be rebuilt if any of these change.
+# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
+# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
+HFILE_GLOB = $(top_srcdir)/src/*.h
+CFILE_GLOB = $(top_srcdir)/src/*.c
+
+# Header files to ignore when scanning. Use base file/dir names
+# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
+IGNORE_HFILES = \
+       ibusconfigprivate.h \
+       ibusinternal.h \
+       keyname-table.h \
+       keysymdef.h \
+       ibusenumtypes.h \
+       stamp-ibusenumtypes.h \
+       ibusmarshalers.h \
+       stamp-ibusmarshalers.h \
+       $(NULL)
+
+
+# Images to copy into HTML directory.
+# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
+HTML_IMAGES = 
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
+# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
+content_files = 
+
+# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
+# These files must be listed here *and* in content_files
+# e.g. expand_content_files=running.sgml
+expand_content_files = 
+
+# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
+# Only needed if you are using gtkdoc-scangobj to dynamically query widget
+# signals and properties.
+# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
+# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
+GTKDOC_CFLAGS = \
+       @GLIB2_CFLAGS@ \
+       @GOBJECT2_CFLAGS@ \
+       @GIO2_CFLAGS@ \
+       @DBUS_CFLAGS@ \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+GTKDOC_LIBS = \
+       @GLIB2_LIBS@ \
+       @GOBJECT2_LIBS@ \
+       @GIO2_LIBS@ \
+       @DBUS_LIBS@ \
+       $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la \
+       $(NULL)
+
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = 
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute
+
+# We set GPATH here; this gives us semantics for GNU make
+# which are more like other make's VPATH, when it comes to
+# whether a source that is a target of one rule is then
+# searched for in VPATH/GPATH.
+#
+GPATH = $(srcdir)
+TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
+SETUP_FILES = \
+       $(content_files)                \
+       $(DOC_MAIN_SGML_FILE)           \
+       $(DOC_MODULE)-sections.txt      \
+       $(DOC_MODULE)-overrides.txt
+
+
+# This includes the standard gtk-doc make rules, copied by gtkdocize.
+
+# Other files to distribute
+# e.g. EXTRA_DIST += version.xml.in
+EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) trim.sed
+DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
+       html-build.stamp pdf-build.stamp \
+       tmpl.stamp sgml.stamp html.stamp pdf.stamp
+
+SCANOBJ_FILES = \
+       $(DOC_MODULE).args       \
+       $(DOC_MODULE).hierarchy  \
+       $(DOC_MODULE).interfaces \
+       $(DOC_MODULE).prerequisites \
+       $(DOC_MODULE).signals
+
+REPORT_FILES = \
+       $(DOC_MODULE)-undocumented.txt \
+       $(DOC_MODULE)-undeclared.txt \
+       $(DOC_MODULE)-unused.txt
+
+
+# clean-local:
+#      rm -rf tmpl ${DOC_MODULE)
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) *.stamp
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = 
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = 
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+
+#### setup ####
+GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V))
+GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP_0 = @echo "  DOC   Preparing build";
+
+#### scan ####
+GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V))
+GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN_0 = @echo "  DOC   Scanning header files";
+GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V))
+GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT_0 = @echo "  DOC   Introspecting gobjects";
+
+#### templates ####
+GTK_DOC_V_TMPL = $(GTK_DOC_V_TMPL_$(V))
+GTK_DOC_V_TMPL_ = $(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_TMPL_0 = @echo "  DOC   Rebuilding template files";
+
+#### xml ####
+GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V))
+GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML_0 = @echo "  DOC   Building XML";
+
+#### html ####
+GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V))
+GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML_0 = @echo "  DOC   Building HTML";
+GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V))
+GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF_0 = @echo "  DOC   Fixing cross-references";
+
+#### pdf ####
+GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V))
+GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF_0 = @echo "  DOC   Building PDF";
+
+# Files not to distribute
+# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
+# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
+DISTCLEANFILES = $(DOC_MODULE)-sections.txt
+
+# Comment this out if you want 'make check' to test you doc status
+# and run some sanity checks
+@ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = cd $(srcdir) && \
+@ENABLE_GTK_DOC_TRUE@  DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
+@ENABLE_GTK_DOC_TRUE@  SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/reference/ibus/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu docs/reference/ibus/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+$(top_srcdir)/gtk-doc.make:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+ibus-docs.sgml: $(top_builddir)/config.status $(srcdir)/ibus-docs.sgml.in
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       $(MAKE) $(AM_MAKEFLAGS) \
+         top_distdir="$(top_distdir)" distdir="$(distdir)" \
+         dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-local
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+       maintainer-clean-local
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-local
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+       clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+       distclean distclean-generic distclean-libtool distclean-local \
+       distdir dvi dvi-am html html-am info info-am install \
+       install-am install-data install-data-am install-data-local \
+       install-dvi install-dvi-am install-exec install-exec-am \
+       install-html install-html-am install-info install-info-am \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       maintainer-clean-local mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+       uninstall-am uninstall-local
+
+
+@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+@ENABLE_GTK_DOC_FALSE@all-local:
+
+docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+
+$(REPORT_FILES): sgml-build.stamp
+
+setup-build.stamp:
+       -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+           files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
+           if test "x$$files" != "x" ; then \
+               for file in $$files ; do \
+                   test -f $(abs_srcdir)/$$file && \
+                       cp -pu $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
+               done; \
+           fi; \
+           test -d $(abs_srcdir)/tmpl && \
+               { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
+               chmod -R u+w $(abs_builddir)/tmpl; } \
+       fi
+       $(AM_V_at)touch setup-build.stamp
+
+scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
+       $(GTK_DOC_V_SCAN)_source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
+       $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
+           scanobj_options=""; \
+           gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+           if test "$(?)" = "0"; then \
+               if test "x$(V)" = "x1"; then \
+                   scanobj_options="--verbose"; \
+               fi; \
+           fi; \
+           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
+           gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
+       else \
+           for i in $(SCANOBJ_FILES) ; do \
+               test -f $$i || touch $$i ; \
+           done \
+       fi
+       $(AM_V_at)touch scan-build.stamp
+
+$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
+       @true
+
+tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+       $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+       $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+         if test -w $(abs_srcdir) ; then \
+           cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
+         fi \
+       fi
+       $(AM_V_at)touch tmpl-build.stamp
+
+tmpl.stamp: tmpl-build.stamp
+       @true
+
+$(srcdir)/tmpl/*.sgml:
+       @true
+
+sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
+       $(GTK_DOC_V_XML)-chmod -R u+w $(srcdir) && _source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
+       $(AM_V_at)touch sgml-build.stamp
+
+sgml.stamp: sgml-build.stamp
+       @true
+
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+       $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+       mkhtml_options=""; \
+       gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+       if test "$(?)" = "0"; then \
+         if test "x$(V)" = "x1"; then \
+           mkhtml_options="$$mkhtml_options --verbose"; \
+         fi; \
+       fi; \
+       gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
+       if test "$(?)" = "0"; then \
+         mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
+       fi; \
+       cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       -@test "x$(HTML_IMAGES)" = "x" || \
+       for file in $(HTML_IMAGES) ; do \
+         if test -f $(abs_srcdir)/$$file ; then \
+           cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
+         fi; \
+         if test -f $(abs_builddir)/$$file ; then \
+           cp $(abs_builddir)/$$file $(abs_builddir)/html; \
+         fi; \
+       done;
+       $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       $(AM_V_at)touch html-build.stamp
+
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+       $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+       mkpdf_options=""; \
+       gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+       if test "$(?)" = "0"; then \
+         if test "x$(V)" = "x1"; then \
+           mkpdf_options="$$mkpdf_options --verbose"; \
+         fi; \
+       fi; \
+       if test "x$(HTML_IMAGES)" != "x"; then \
+         for img in $(HTML_IMAGES); do \
+           part=`dirname $$img`; \
+           echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
+           if test $$? != 0; then \
+             mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
+           fi; \
+         done; \
+       fi; \
+       gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
+       $(AM_V_at)touch pdf-build.stamp
+
+##############
+
+clean-local:
+       @rm -f *~ *.bak
+       @rm -rf .libs
+
+distclean-local:
+       @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
+           $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+       @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+           rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
+           rm -rf tmpl; \
+       fi
+
+maintainer-clean-local:
+       @rm -rf xml html
+
+install-data-local:
+       @installfiles=`echo $(builddir)/html/*`; \
+       if test "$$installfiles" = '$(builddir)/html/*'; \
+       then echo 1>&2 'Nothing to install' ; \
+       else \
+         if test -n "$(DOC_MODULE_VERSION)"; then \
+           installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
+         else \
+           installdir="$(DESTDIR)$(TARGET_DIR)"; \
+         fi; \
+         $(mkinstalldirs) $${installdir} ; \
+         for i in $$installfiles; do \
+           echo ' $(INSTALL_DATA) '$$i ; \
+           $(INSTALL_DATA) $$i $${installdir}; \
+         done; \
+         if test -n "$(DOC_MODULE_VERSION)"; then \
+           mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
+             $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
+         fi; \
+         $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
+       fi
+
+uninstall-local:
+       @if test -n "$(DOC_MODULE_VERSION)"; then \
+         installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
+       else \
+         installdir="$(DESTDIR)$(TARGET_DIR)"; \
+       fi; \
+       rm -rf $${installdir}
+
+#
+# Require gtk-doc when making dist
+#
+@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: docs
+@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc:
+@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist"
+@ENABLE_GTK_DOC_FALSE@ @false
+
+dist-hook: dist-check-gtkdoc dist-hook-local
+       @mkdir $(distdir)/tmpl
+       @mkdir $(distdir)/html
+       @-cp ./tmpl/*.sgml $(distdir)/tmpl
+       @cp ./html/* $(distdir)/html
+       @-cp ./$(DOC_MODULE).pdf $(distdir)/
+       @-cp ./$(DOC_MODULE).types $(distdir)/
+       @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
+       @cd $(distdir) && rm -f $(DISTCLEANFILES)
+       @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
+
+.PHONY : dist-hook-local docs
+#TESTS = $(GTKDOC_CHECK)
+
+trim-build.stamp: scan-build.stamp
+       $(AM_V_GEN) \
+           $(SED) -f $(srcdir)/trim.sed -i.bak \
+                       $(builddir)/$(DOC_MODULE)-sections.txt && \
+           $(RM) $(builddir)/$(DOC_MODULE)-sections.txt.bak && \
+           touch trim-build.stamp
+
+tmpl-build.stamp: trim-build.stamp  $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-overrides.txt
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/reference/ibus/html/IBusAttrList.html b/docs/reference/ibus/html/IBusAttrList.html
new file mode 100644 (file)
index 0000000..29d60a1
--- /dev/null
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusAttrList</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch02.html" title="Panel (User Interfaces)">
+<link rel="prev" href="IBusAttribute.html" title="IBusAttribute">
+<link rel="next" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusAttribute.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusHotkeyProfile.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusAttrList.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusAttrList.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusAttrList.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusAttrList"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusAttrList.top_of_page"></a>IBusAttrList</span></h2>
+<p>IBusAttrList — AttrList of IBusText.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusAttrList.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusAttrList.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusAttrList.html#IBusAttrList-struct" title="struct IBusAttrList">IBusAttrList</a>;
+struct              <a class="link" href="IBusAttrList.html#IBusAttrListClass" title="struct IBusAttrListClass">IBusAttrListClass</a>;
+<a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="returnvalue">IBusAttrList</span></a> *      <a class="link" href="IBusAttrList.html#ibus-attr-list-new" title="ibus_attr_list_new ()">ibus_attr_list_new</a>                  ();
+<span class="returnvalue">void</span>                <a class="link" href="IBusAttrList.html#ibus-attr-list-append" title="ibus_attr_list_append ()">ibus_attr_list_append</a>               (<em class="parameter"><code><a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="type">IBusAttrList</span></a> *attr_list</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);
+<a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     <a class="link" href="IBusAttrList.html#ibus-attr-list-get" title="ibus_attr_list_get ()">ibus_attr_list_get</a>                  (<em class="parameter"><code><a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="type">IBusAttrList</span></a> *attr_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusAttrList.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusAttrList
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusAttrList.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="IBusAttrList.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusAttrList-struct"></a><h3>struct IBusAttrList</h3>
+<pre class="programlisting">struct IBusAttrList {
+    GArray *attributes;
+};
+</pre>
+<p>
+Array of IBusAttribute.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="type">GArray</span> *<em class="structfield"><code><a name="IBusAttrList-struct.attributes"></a>attributes</code></em>;</span></p></td>
+<td>GArray that holds <a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusAttrListClass"></a><h3>struct IBusAttrListClass</h3>
+<pre class="programlisting">struct IBusAttrListClass {
+    IBusSerializableClass parent;
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attr-list-new"></a><h3>ibus_attr_list_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="returnvalue">IBusAttrList</span></a> *      ibus_attr_list_new                  ();</pre>
+<p>
+New an IBusAttrList.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusAttrList.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attr-list-append"></a><h3>ibus_attr_list_append ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_attr_list_append               (<em class="parameter"><code><a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="type">IBusAttrList</span></a> *attr_list</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Append an IBusAttribute to IBusAttrList, and increase reference.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attr_list</code></em> :</span></p></td>
+<td>An IBusAttrList instance.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attr</code></em> :</span></p></td>
+<td>The IBusAttribute instance to be appended.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attr-list-get"></a><h3>ibus_attr_list_get ()</h3>
+<pre class="programlisting"><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     ibus_attr_list_get                  (<em class="parameter"><code><a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="type">IBusAttrList</span></a> *attr_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>);</pre>
+<p>
+Returns IBusAttribute at given index. Borrowed reference.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attr_list</code></em> :</span></p></td>
+<td>An IBusAttrList instance.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>Index of the <em class="parameter"><code>attr_list</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>IBusAttribute at given index, NULL if no such IBusAttribute. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusAttrList.see-also"></a><h2>See Also</h2>
+<a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusAttribute.html b/docs/reference/ibus/html/IBusAttribute.html
new file mode 100644 (file)
index 0000000..d323976
--- /dev/null
@@ -0,0 +1,458 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusAttribute</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch02.html" title="Panel (User Interfaces)">
+<link rel="prev" href="ch02.html" title="Panel (User Interfaces)">
+<link rel="next" href="IBusAttrList.html" title="IBusAttrList">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch02.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusAttrList.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusAttribute.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusAttribute.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusAttribute.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusAttribute"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusAttribute.top_of_page"></a>IBusAttribute</span></h2>
+<p>IBusAttribute — Attributes of IBusText.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusAttribute.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusAttribute.synopsis"></a><h2>Synopsis</h2>
+<a name="IBusAttrType"></a><a name="IBusAttrUnderline"></a><pre class="synopsis">enum                <a class="link" href="IBusAttribute.html#IBusAttrType-enum" title="enum IBusAttrType">IBusAttrType</a>;
+enum                <a class="link" href="IBusAttribute.html#IBusAttrUnderline-enum" title="enum IBusAttrUnderline">IBusAttrUnderline</a>;
+struct              <a class="link" href="IBusAttribute.html#IBusAttribute-struct" title="struct IBusAttribute">IBusAttribute</a>;
+struct              <a class="link" href="IBusAttribute.html#IBusAttributeClass" title="struct IBusAttributeClass">IBusAttributeClass</a>;
+<a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     <a class="link" href="IBusAttribute.html#ibus-attribute-new" title="ibus_attribute_new ()">ibus_attribute_new</a>                  (<em class="parameter"><code><span class="type">guint</span> type</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> end_index</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusAttribute.html#ibus-attribute-get-attr-type" title="ibus_attribute_get_attr_type ()">ibus_attribute_get_attr_type</a>        (<em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusAttribute.html#ibus-attribute-get-value" title="ibus_attribute_get_value ()">ibus_attribute_get_value</a>            (<em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusAttribute.html#ibus-attribute-get-start-index" title="ibus_attribute_get_start_index ()">ibus_attribute_get_start_index</a>      (<em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusAttribute.html#ibus-attribute-get-end-index" title="ibus_attribute_get_end_index ()">ibus_attribute_get_end_index</a>        (<em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);
+<a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     <a class="link" href="IBusAttribute.html#ibus-attr-underline-new" title="ibus_attr_underline_new ()">ibus_attr_underline_new</a>             (<em class="parameter"><code><span class="type">guint</span> underline_type</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> end_index</code></em>);
+<a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     <a class="link" href="IBusAttribute.html#ibus-attr-foreground-new" title="ibus_attr_foreground_new ()">ibus_attr_foreground_new</a>            (<em class="parameter"><code><span class="type">guint</span> color</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> end_index</code></em>);
+<a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     <a class="link" href="IBusAttribute.html#ibus-attr-background-new" title="ibus_attr_background_new ()">ibus_attr_background_new</a>            (<em class="parameter"><code><span class="type">guint</span> color</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> end_index</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusAttribute.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GEnum
+   +----IBusAttrType
+</pre>
+<pre class="synopsis">
+  GEnum
+   +----IBusAttrUnderline
+</pre>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusAttribute
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusAttribute.description"></a><h2>Description</h2>
+<p>
+An IBusAttribute represents an attribute that associate to IBusText.
+It decorates preedit buffer and auxiliary text with underline, foreground and background colors.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusAttribute.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusAttrType-enum"></a><h3>enum IBusAttrType</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_ATTR_TYPE_UNDERLINE    = 1,
+    IBUS_ATTR_TYPE_FOREGROUND   = 2,
+    IBUS_ATTR_TYPE_BACKGROUND   = 3,
+} IBusAttrType;
+</pre>
+<p>
+Type enumeration of IBusText attribute.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-ATTR-TYPE-UNDERLINE:CAPS"></a><span class="term"><code class="literal">IBUS_ATTR_TYPE_UNDERLINE</code></span></p></td>
+<td>Decorate with underline.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ATTR-TYPE-FOREGROUND:CAPS"></a><span class="term"><code class="literal">IBUS_ATTR_TYPE_FOREGROUND</code></span></p></td>
+<td>Foreground color.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ATTR-TYPE-BACKGROUND:CAPS"></a><span class="term"><code class="literal">IBUS_ATTR_TYPE_BACKGROUND</code></span></p></td>
+<td>Background color.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusAttrUnderline-enum"></a><h3>enum IBusAttrUnderline</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_ATTR_UNDERLINE_NONE    = 0,
+    IBUS_ATTR_UNDERLINE_SINGLE  = 1,
+    IBUS_ATTR_UNDERLINE_DOUBLE  = 2,
+    IBUS_ATTR_UNDERLINE_LOW     = 3,
+    IBUS_ATTR_UNDERLINE_ERROR   = 4,
+} IBusAttrUnderline;
+</pre>
+<p>
+Type of IBusText attribute.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-ATTR-UNDERLINE-NONE:CAPS"></a><span class="term"><code class="literal">IBUS_ATTR_UNDERLINE_NONE</code></span></p></td>
+<td>No underline.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ATTR-UNDERLINE-SINGLE:CAPS"></a><span class="term"><code class="literal">IBUS_ATTR_UNDERLINE_SINGLE</code></span></p></td>
+<td>Single underline.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ATTR-UNDERLINE-DOUBLE:CAPS"></a><span class="term"><code class="literal">IBUS_ATTR_UNDERLINE_DOUBLE</code></span></p></td>
+<td>Double underline.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ATTR-UNDERLINE-LOW:CAPS"></a><span class="term"><code class="literal">IBUS_ATTR_UNDERLINE_LOW</code></span></p></td>
+<td>Low underline ? <code class="literal">FIXME</code>
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ATTR-UNDERLINE-ERROR:CAPS"></a><span class="term"><code class="literal">IBUS_ATTR_UNDERLINE_ERROR</code></span></p></td>
+<td>Error underline
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusAttribute-struct"></a><h3>struct IBusAttribute</h3>
+<pre class="programlisting">struct IBusAttribute {
+    guint type;
+    guint value;
+    guint start_index;
+    guint end_index;
+};
+</pre>
+<p>
+Signify the type, value and scope of the attribute.
+The scope starts from <em class="parameter"><code>start_index</code></em> till the <em class="parameter"><code>end_index</code></em>-1.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">guint</span> <em class="structfield"><code><a name="IBusAttribute-struct.type"></a>type</code></em>;</span></p></td>
+<td>IBusAttributeType</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint</span> <em class="structfield"><code><a name="IBusAttribute-struct.value"></a>value</code></em>;</span></p></td>
+<td>Value for the type.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint</span> <em class="structfield"><code><a name="IBusAttribute-struct.start-index"></a>start_index</code></em>;</span></p></td>
+<td>The starting index, inclusive.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint</span> <em class="structfield"><code><a name="IBusAttribute-struct.end-index"></a>end_index</code></em>;</span></p></td>
+<td>The ending index, exclusive.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusAttributeClass"></a><h3>struct IBusAttributeClass</h3>
+<pre class="programlisting">struct IBusAttributeClass {
+    IBusSerializableClass parent;
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attribute-new"></a><h3>ibus_attribute_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     ibus_attribute_new                  (<em class="parameter"><code><span class="type">guint</span> type</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> end_index</code></em>);</pre>
+<p>
+New an IBusAttribute.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>Type of the attribute.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>Value of the attribute.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start_index</code></em> :</span></p></td>
+<td>Where attribute starts.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>end_index</code></em> :</span></p></td>
+<td>Where attribute ends.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusAttribute. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attribute-get-attr-type"></a><h3>ibus_attribute_get_attr_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_attribute_get_attr_type        (<em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Returns an enum of <a class="link" href="IBusAttribute.html#IBusAttrType"><span class="type">IBusAttrType</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An enum of <a class="link" href="IBusAttribute.html#IBusAttrType"><span class="type">IBusAttrType</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attribute-get-value"></a><h3>ibus_attribute_get_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_attribute_get_value            (<em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Returns an unsigned int value relative with <a class="link" href="IBusAttribute.html#IBusAttrType"><span class="type">IBusAttrType</span></a>.
+If the type is <a class="link" href="IBusAttribute.html#IBUS-ATTR-TYPE-UNDERLINE:CAPS"><code class="literal">IBUS_ATTR_TYPE_UNDERLINE</code></a>, the return value is
+<a class="link" href="IBusAttribute.html#IBusAttrUnderline"><span class="type">IBusAttrUnderline</span></a>. If the type is <a class="link" href="IBusAttribute.html#IBUS-ATTR-TYPE-FOREGROUND:CAPS"><code class="literal">IBUS_ATTR_TYPE_FOREGROUND</code></a>,
+the return value is the color RGB.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An unsigned int value relative with <a class="link" href="IBusAttribute.html#IBusAttrType"><span class="type">IBusAttrType</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attribute-get-start-index"></a><h3>ibus_attribute_get_start_index ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_attribute_get_start_index      (<em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Returns a start unsigned index
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A start unsigned index</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attribute-get-end-index"></a><h3>ibus_attribute_get_end_index ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_attribute_get_end_index        (<em class="parameter"><code><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a> *attr</code></em>);</pre>
+<p>
+Returns a end unsigned index
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A end unsigned index</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attr-underline-new"></a><h3>ibus_attr_underline_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     ibus_attr_underline_new             (<em class="parameter"><code><span class="type">guint</span> underline_type</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> end_index</code></em>);</pre>
+<p>
+New an underline <a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>underline_type</code></em> :</span></p></td>
+<td>Type of underline.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start_index</code></em> :</span></p></td>
+<td>Where attribute starts.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>end_index</code></em> :</span></p></td>
+<td>Where attribute ends.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attr-foreground-new"></a><h3>ibus_attr_foreground_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     ibus_attr_foreground_new            (<em class="parameter"><code><span class="type">guint</span> color</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> end_index</code></em>);</pre>
+<p>
+New an foreground <a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
+<td>Color in RGB.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start_index</code></em> :</span></p></td>
+<td>Where attribute starts.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>end_index</code></em> :</span></p></td>
+<td>Where attribute ends.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-attr-background-new"></a><h3>ibus_attr_background_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="returnvalue">IBusAttribute</span></a> *     ibus_attr_background_new            (<em class="parameter"><code><span class="type">guint</span> color</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> end_index</code></em>);</pre>
+<p>
+New an background <a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
+<td>Color in RGB.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start_index</code></em> :</span></p></td>
+<td>Where attribute starts.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>end_index</code></em> :</span></p></td>
+<td>Where attribute ends.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusAttribute.see-also"></a><h2>See Also</h2>
+<a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusBus.html b/docs/reference/ibus/html/IBusBus.html
new file mode 100644 (file)
index 0000000..5044cac
--- /dev/null
@@ -0,0 +1,3047 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusBus</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch05.html" title="Communication">
+<link rel="prev" href="ch05.html" title="Communication">
+<link rel="next" href="IBusProxy.html" title="IBusProxy">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch05.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch05.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusProxy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusBus.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusBus.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusBus.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusBus.properties" class="shortcut">Properties</a>
+                   | 
+                  <a href="#IBusBus.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusBus"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusBus.top_of_page"></a>IBusBus</span></h2>
+<p>IBusBus — Connect with IBus daemon.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusBus.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusBus.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusBus.html#IBusBus-struct" title="struct IBusBus">IBusBus</a>;
+struct              <a class="link" href="IBusBus.html#IBusBusClass" title="struct IBusBusClass">IBusBusClass</a>;
+<a class="link" href="IBusBus.html" title="IBusBus"><span class="returnvalue">IBusBus</span></a> *           <a class="link" href="IBusBus.html#ibus-bus-new" title="ibus_bus_new ()">ibus_bus_new</a>                        (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="IBusBus.html" title="IBusBus"><span class="returnvalue">IBusBus</span></a> *           <a class="link" href="IBusBus.html#ibus-bus-new-async" title="ibus_bus_new_async ()">ibus_bus_new_async</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-is-connected" title="ibus_bus_is_connected ()">ibus_bus_is_connected</a>               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">GDBusConnection</span> *   <a class="link" href="IBusBus.html#ibus-bus-get-connection" title="ibus_bus_get_connection ()">ibus_bus_get_connection</a>             (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusBus.html#ibus-bus-hello" title="ibus_bus_hello ()">ibus_bus_hello</a>                      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">guint32</span>             <a class="link" href="IBusBus.html#ibus-bus-request-name" title="ibus_bus_request_name ()">ibus_bus_request_name</a>               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> flags</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-request-name-async" title="ibus_bus_request_name_async ()">ibus_bus_request_name_async</a>         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusBus.html#ibus-bus-request-name-async-finish" title="ibus_bus_request_name_async_finish ()">ibus_bus_request_name_async_finish</a>  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusBus.html#ibus-bus-release-name" title="ibus_bus_release_name ()">ibus_bus_release_name</a>               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-release-name-async" title="ibus_bus_release_name_async ()">ibus_bus_release_name_async</a>         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusBus.html#ibus-bus-release-name-async-finish" title="ibus_bus_release_name_async_finish ()">ibus_bus_release_name_async_finish</a>  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusBus.html#ibus-bus-list-queued-owners" title="ibus_bus_list_queued_owners ()">ibus_bus_list_queued_owners</a>         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-name-has-owner" title="ibus_bus_name_has_owner ()">ibus_bus_name_has_owner</a>             (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-name-has-owner-async" title="ibus_bus_name_has_owner_async ()">ibus_bus_name_has_owner_async</a>       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-name-has-owner-async-finish" title="ibus_bus_name_has_owner_async_finish ()">ibus_bus_name_has_owner_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusBus.html#ibus-bus-list-names" title="ibus_bus_list_names ()">ibus_bus_list_names</a>                 (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-add-match" title="ibus_bus_add_match ()">ibus_bus_add_match</a>                  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *rule</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-add-match-async" title="ibus_bus_add_match_async ()">ibus_bus_add_match_async</a>            (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *rule</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-add-match-async-finish" title="ibus_bus_add_match_async_finish ()">ibus_bus_add_match_async_finish</a>     (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-remove-match" title="ibus_bus_remove_match ()">ibus_bus_remove_match</a>               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *rule</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-remove-match-async" title="ibus_bus_remove_match_async ()">ibus_bus_remove_match_async</a>         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *rule</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-remove-match-async-finish" title="ibus_bus_remove_match_async_finish ()">ibus_bus_remove_match_async_finish</a>  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gchar</span> *             <a class="link" href="IBusBus.html#ibus-bus-get-name-owner" title="ibus_bus_get_name_owner ()">ibus_bus_get_name_owner</a>             (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-get-name-owner-async" title="ibus_bus_get_name_owner_async ()">ibus_bus_get_name_owner_async</a>       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gchar</span> *             <a class="link" href="IBusBus.html#ibus-bus-get-name-owner-async-finish" title="ibus_bus_get_name_owner_async_finish ()">ibus_bus_get_name_owner_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-exit" title="ibus_bus_exit ()">ibus_bus_exit</a>                       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> restart</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-exit-async" title="ibus_bus_exit_async ()">ibus_bus_exit_async</a>                 (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> restart</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-exit-async-finish" title="ibus_bus_exit_async_finish ()">ibus_bus_exit_async_finish</a>          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  <a class="link" href="IBusBus.html#ibus-bus-create-input-context" title="ibus_bus_create_input_context ()">ibus_bus_create_input_context</a>       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *client_name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-create-input-context-async" title="ibus_bus_create_input_context_async ()">ibus_bus_create_input_context_async</a> (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *client_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  <a class="link" href="IBusBus.html#ibus-bus-create-input-context-async-finish" title="ibus_bus_create_input_context_async_finish ()">ibus_bus_create_input_context_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gchar</span> *             <a class="link" href="IBusBus.html#ibus-bus-current-input-context" title="ibus_bus_current_input_context ()">ibus_bus_current_input_context</a>      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-current-input-context-async" title="ibus_bus_current_input_context_async ()">ibus_bus_current_input_context_async</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gchar</span> *             <a class="link" href="IBusBus.html#ibus-bus-current-input-context-async-finish" title="ibus_bus_current_input_context_async_finish ()">ibus_bus_current_input_context_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-register-component" title="ibus_bus_register_component ()">ibus_bus_register_component</a>         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-register-component-async" title="ibus_bus_register_component_async ()">ibus_bus_register_component_async</a>   (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-register-component-async-finish" title="ibus_bus_register_component_async_finish ()">ibus_bus_register_component_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusBus.html#ibus-bus-list-engines" title="ibus_bus_list_engines ()">ibus_bus_list_engines</a>               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-list-engines-async" title="ibus_bus_list_engines_async ()">ibus_bus_list_engines_async</a>         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusBus.html#ibus-bus-list-engines-async-finish" title="ibus_bus_list_engines_async_finish ()">ibus_bus_list_engines_async_finish</a>  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusBus.html#ibus-bus-list-active-engines" title="ibus_bus_list_active_engines ()">ibus_bus_list_active_engines</a>        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-list-active-engines-async" title="ibus_bus_list_active_engines_async ()">ibus_bus_list_active_engines_async</a>  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusBus.html#ibus-bus-list-active-engines-async-finish" title="ibus_bus_list_active_engines_async_finish ()">ibus_bus_list_active_engines_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> **   <a class="link" href="IBusBus.html#ibus-bus-get-engines-by-names" title="ibus_bus_get_engines_by_names ()">ibus_bus_get_engines_by_names</a>       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> * const *names</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout" title="ibus_bus_get_use_sys_layout ()">ibus_bus_get_use_sys_layout</a>         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout-async" title="ibus_bus_get_use_sys_layout_async ()">ibus_bus_get_use_sys_layout_async</a>   (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout-async-finish" title="ibus_bus_get_use_sys_layout_async_finish ()">ibus_bus_get_use_sys_layout_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine" title="ibus_bus_get_use_global_engine ()">ibus_bus_get_use_global_engine</a>      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine-async" title="ibus_bus_get_use_global_engine_async ()">ibus_bus_get_use_global_engine_async</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine-async-finish" title="ibus_bus_get_use_global_engine_async_finish ()">ibus_bus_get_use_global_engine_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled" title="ibus_bus_is_global_engine_enabled ()">ibus_bus_is_global_engine_enabled</a>   (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled-async" title="ibus_bus_is_global_engine_enabled_async ()">ibus_bus_is_global_engine_enabled_async</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled-async-finish" title="ibus_bus_is_global_engine_enabled_async_finish ()">ibus_bus_is_global_engine_enabled_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    <a class="link" href="IBusBus.html#ibus-bus-get-global-engine" title="ibus_bus_get_global_engine ()">ibus_bus_get_global_engine</a>          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-get-global-engine-async" title="ibus_bus_get_global_engine_async ()">ibus_bus_get_global_engine_async</a>    (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    <a class="link" href="IBusBus.html#ibus-bus-get-global-engine-async-finish" title="ibus_bus_get_global_engine_async_finish ()">ibus_bus_get_global_engine_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-set-global-engine" title="ibus_bus_set_global_engine ()">ibus_bus_set_global_engine</a>          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *global_engine</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-set-global-engine-async" title="ibus_bus_set_global_engine_async ()">ibus_bus_set_global_engine_async</a>    (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *global_engine</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-set-global-engine-async-finish" title="ibus_bus_set_global_engine_async_finish ()">ibus_bus_set_global_engine_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-set-watch-dbus-signal" title="ibus_bus_set_watch_dbus_signal ()">ibus_bus_set_watch_dbus_signal</a>      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> watch</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-set-watch-ibus-signal" title="ibus_bus_set_watch_ibus_signal ()">ibus_bus_set_watch_ibus_signal</a>      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> watch</code></em>);
+<a class="link" href="IBusConfig.html" title="IBusConfig"><span class="returnvalue">IBusConfig</span></a> *        <a class="link" href="IBusBus.html#ibus-bus-get-config" title="ibus_bus_get_config ()">ibus_bus_get_config</a>                 (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-preload-engines" title="ibus_bus_preload_engines ()">ibus_bus_preload_engines</a>            (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> * const *names</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-preload-engines-async" title="ibus_bus_preload_engines_async ()">ibus_bus_preload_engines_async</a>      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> * const *names</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-preload-engines-async-finish" title="ibus_bus_preload_engines_async_finish ()">ibus_bus_preload_engines_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">GVariant</span> *          <a class="link" href="IBusBus.html#ibus-bus-get-ibus-property" title="ibus_bus_get_ibus_property ()">ibus_bus_get_ibus_property</a>          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-get-ibus-property-async" title="ibus_bus_get_ibus_property_async ()">ibus_bus_get_ibus_property_async</a>    (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">GVariant</span> *          <a class="link" href="IBusBus.html#ibus-bus-get-ibus-property-async-finish" title="ibus_bus_get_ibus_property_async_finish ()">ibus_bus_get_ibus_property_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-set-ibus-property" title="ibus_bus_set_ibus_property ()">ibus_bus_set_ibus_property</a>          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusBus.html#ibus-bus-set-ibus-property-async" title="ibus_bus_set_ibus_property_async ()">ibus_bus_set_ibus_property_async</a>    (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusBus.html#ibus-bus-set-ibus-property-async-finish" title="ibus_bus_set_ibus_property_async_finish ()">ibus_bus_set_ibus_property_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusBus.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----IBusBus
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusBus.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusBus.html#IBusBus--connect-async" title='The "connect-async" property'>connect-async</a>"            <span class="type">gboolean</span>              : Read / Write / Construct Only
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusBus.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusBus.html#IBusBus-connected" title='The "connected" signal'>connected</a>"                                      : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusBus.html#IBusBus-disconnected" title='The "disconnected" signal'>disconnected</a>"                                   : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusBus.html#IBusBus-global-engine-changed" title='The "global-engine-changed" signal'>global-engine-changed</a>"                          : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusBus.html#IBusBus-name-owner-changed" title='The "name-owner-changed" signal'>name-owner-changed</a>"                             : <code class="literal">Run Last</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusBus.description"></a><h2>Description</h2>
+<p>
+An IBusBus connects with IBus daemon.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusBus.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusBus-struct"></a><h3>struct IBusBus</h3>
+<pre class="programlisting">struct IBusBus;</pre>
+<p>
+An opaque data type representing IBus bus (daemon communication) status.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusBusClass"></a><h3>struct IBusBusClass</h3>
+<pre class="programlisting">struct IBusBusClass {
+    IBusObjectClass parent;
+    /* class members */
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-new"></a><h3>ibus_bus_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusBus.html" title="IBusBus"><span class="returnvalue">IBusBus</span></a> *           ibus_bus_new                        (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+New an <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> instance.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> instance, and the instance is not floating.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-new-async"></a><h3>ibus_bus_new_async ()</h3>
+<pre class="programlisting"><a class="link" href="IBusBus.html" title="IBusBus"><span class="returnvalue">IBusBus</span></a> *           ibus_bus_new_async                  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+New an <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> instance. The instance will asynchronously connect to the IBus
+daemon.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> instance, and the instance is not floating.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-is-connected"></a><h3>ibus_bus_is_connected ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_is_connected               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<p>
+Return <code class="literal">TRUE</code> if <em class="parameter"><code>bus</code></em> is connected to IBus daemon.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if <em class="parameter"><code>bus</code></em> is connected, <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-connection"></a><h3>ibus_bus_get_connection ()</h3>
+<pre class="programlisting"><span class="returnvalue">GDBusConnection</span> *   ibus_bus_get_connection             (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<p>
+Return <span class="type">GDBusConnection</span> of an <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> instance.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <span class="type">GDBusConnection</span> of an <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> instance. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-hello"></a><h3>ibus_bus_hello ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_bus_hello                      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<p>
+This function sends a "HELLO" message to DBus daemon,
+which replies the unique name of current IBus process.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The unique name of IBus process in DBus.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-request-name"></a><h3>ibus_bus_request_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint32</span>             ibus_bus_request_name               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> flags</code></em>);</pre>
+<p>
+Request a name from IBus daemon synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>the IBusBus instance to be processed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name to be requested.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>IBusBusNameFlag.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 if failed; IBusBusRequestNameReply otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-request-name-async"></a><h3>ibus_bus_request_name_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_request_name_async         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> flags</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Request a name from IBus daemon asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name to be requested.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>Flags (FixMe).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied or <code class="literal">NULL</code>
+if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-request-name-async-finish"></a><h3>ibus_bus_request_name_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_bus_request_name_async_finish  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-request-name-async" title="ibus_bus_request_name_async ()"><code class="function">ibus_bus_request_name_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-request-name-async" title="ibus_bus_request_name_async ()"><code class="function">ibus_bus_request_name_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 if failed; positive number otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-release-name"></a><h3>ibus_bus_release_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_bus_release_name               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Release a name to IBus daemon synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name to be released.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 if failed; positive number otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-release-name-async"></a><h3>ibus_bus_release_name_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_release_name_async         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Release a name to IBus daemon asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name to be released.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-release-name-async-finish"></a><h3>ibus_bus_release_name_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_bus_release_name_async_finish  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-release-name-async" title="ibus_bus_release_name_async ()"><code class="function">ibus_bus_release_name_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-release-name-async" title="ibus_bus_release_name_async ()"><code class="function">ibus_bus_release_name_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 if failed; positive number otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-list-queued-owners"></a><h3>ibus_bus_list_queued_owners ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_bus_list_queued_owners         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Lists the unique bus names of connections currently queued for a bus name.
+</p>
+<p>
+FIXME add an asynchronous version.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An IBusBus.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name to be queried.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The unique bus names of connections currently queued for <em class="parameter"><code>name</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-name-has-owner"></a><h3>ibus_bus_name_has_owner ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_name_has_owner             (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Checks whether the name has owner synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name to be checked.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the name has owner, <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-name-has-owner-async"></a><h3>ibus_bus_name_has_owner_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_name_has_owner_async       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Checks whether the name has owner asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name to be checked.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-name-has-owner-async-finish"></a><h3>ibus_bus_name_has_owner_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_name_has_owner_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-name-has-owner-async" title="ibus_bus_name_has_owner_async ()"><code class="function">ibus_bus_name_has_owner_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-name-has-owner-async" title="ibus_bus_name_has_owner_async ()"><code class="function">ibus_bus_name_has_owner_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the name has owner, <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-list-names"></a><h3>ibus_bus_list_names ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_bus_list_names                 (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<p>
+Return lists that attached to <em class="parameter"><code>bus</code></em>.
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>[FixMe] Not implemented yet, only return NULL.</p>
+</div>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>[FixMe] Add async version.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Lists that attached to <em class="parameter"><code>bus</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-add-match"></a><h3>ibus_bus_add_match ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_add_match                  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *rule</code></em>);</pre>
+<p>
+Add a match rule to an <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rule</code></em> :</span></p></td>
+<td>Match rule.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the rule is added. <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-add-match-async"></a><h3>ibus_bus_add_match_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_add_match_async            (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *rule</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Add a match rule to an <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rule</code></em> :</span></p></td>
+<td>Match rule.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-add-match-async-finish"></a><h3>ibus_bus_add_match_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_add_match_async_finish     (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-add-match-async" title="ibus_bus_add_match_async ()"><code class="function">ibus_bus_add_match_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-add-match-async" title="ibus_bus_add_match_async ()"><code class="function">ibus_bus_add_match_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the rule is added. <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-remove-match"></a><h3>ibus_bus_remove_match ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_remove_match               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *rule</code></em>);</pre>
+<p>
+Remove a match rule to an <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rule</code></em> :</span></p></td>
+<td>Match rule.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the rule is removed. <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-remove-match-async"></a><h3>ibus_bus_remove_match_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_remove_match_async         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *rule</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Remove a match rule to an IBusBus asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rule</code></em> :</span></p></td>
+<td>Match rule.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-remove-match-async-finish"></a><h3>ibus_bus_remove_match_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_remove_match_async_finish  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-remove-match-async" title="ibus_bus_remove_match_async ()"><code class="function">ibus_bus_remove_match_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-remove-match-async" title="ibus_bus_remove_match_async ()"><code class="function">ibus_bus_remove_match_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the rule is removed. <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-name-owner"></a><h3>ibus_bus_get_name_owner ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> *             ibus_bus_get_name_owner             (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Return the name owner synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Owner of the name. The returned value must be freed with <code class="function">g_free()</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-name-owner-async"></a><h3>ibus_bus_get_name_owner_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_get_name_owner_async       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Return the name owner asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-name-owner-async-finish"></a><h3>ibus_bus_get_name_owner_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> *             ibus_bus_get_name_owner_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-get-name-owner-async" title="ibus_bus_get_name_owner_async ()"><code class="function">ibus_bus_get_name_owner_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-get-name-owner-async" title="ibus_bus_get_name_owner_async ()"><code class="function">ibus_bus_get_name_owner_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Owner of the name. The returned value must be freed with <code class="function">g_free()</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-exit"></a><h3>ibus_bus_exit ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_exit                       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> restart</code></em>);</pre>
+<p>
+Exit or restart ibus-daemon synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>restart</code></em> :</span></p></td>
+<td>Whether restarting the ibus.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the "Exit" call is suceeded, <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-exit-async"></a><h3>ibus_bus_exit_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_exit_async                 (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> restart</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Exit or restart ibus-daemon asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>restart</code></em> :</span></p></td>
+<td>Whether restarting the ibus.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-exit-async-finish"></a><h3>ibus_bus_exit_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_exit_async_finish          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-exit-async" title="ibus_bus_exit_async ()"><code class="function">ibus_bus_exit_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-exit-async" title="ibus_bus_exit_async ()"><code class="function">ibus_bus_exit_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the "Exit" call is suceeded, <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-create-input-context"></a><h3>ibus_bus_create_input_context ()</h3>
+<pre class="programlisting"><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  ibus_bus_create_input_context       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *client_name</code></em>);</pre>
+<p>
+Create an input context for client synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client_name</code></em> :</span></p></td>
+<td>Name of client.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An newly allocated <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> if the
+"CreateInputContext" call is suceeded, <code class="literal">NULL</code> otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-create-input-context-async"></a><h3>ibus_bus_create_input_context_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_create_input_context_async (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *client_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Create an input context for client asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>client_name</code></em> :</span></p></td>
+<td>Name of client.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied.
+It should not be <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-create-input-context-async-finish"></a><h3>ibus_bus_create_input_context_async_finish ()</h3>
+<pre class="programlisting"><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  ibus_bus_create_input_context_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-create-input-context-async" title="ibus_bus_create_input_context_async ()"><code class="function">ibus_bus_create_input_context_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-create-input-context-async" title="ibus_bus_create_input_context_async ()"><code class="function">ibus_bus_create_input_context_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An newly allocated <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> if the
+"CreateInputContext" call is suceeded, <code class="literal">NULL</code> otherwise. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-current-input-context"></a><h3>ibus_bus_current_input_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> *             ibus_bus_current_input_context      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<p>
+Get the current focused input context synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The named of currently focued <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> if the
+"CurrentInputContext" call suceeded, <code class="literal">NULL</code> otherwise. The return
+value must be freed with <code class="function">g_free()</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-current-input-context-async"></a><h3>ibus_bus_current_input_context_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_current_input_context_async
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Get the current focused input context asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-current-input-context-async-finish"></a><h3>ibus_bus_current_input_context_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gchar</span> *             ibus_bus_current_input_context_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-current-input-context-async" title="ibus_bus_current_input_context_async ()"><code class="function">ibus_bus_current_input_context_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-current-input-context-async" title="ibus_bus_current_input_context_async ()"><code class="function">ibus_bus_current_input_context_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The named of currently focued IBusInputContext if the
+"CurrentInputContext" call suceeded, <code class="literal">NULL</code> otherwise. The return
+value must be freed with <code class="function">g_free()</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-register-component"></a><h3>ibus_bus_register_component ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_register_component         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Register a componet to an <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>A input engine component.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the "RegisterComponent" call is suceeded, <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-register-component-async"></a><h3>ibus_bus_register_component_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_register_component_async   (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Register a componet to an <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>A input engine component.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-register-component-async-finish"></a><h3>ibus_bus_register_component_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_register_component_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-register-component-async" title="ibus_bus_register_component_async ()"><code class="function">ibus_bus_register_component_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-register-component-async" title="ibus_bus_register_component_async ()"><code class="function">ibus_bus_register_component_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the "RegisterComponent" call is suceeded, <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-list-engines"></a><h3>ibus_bus_list_engines ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_bus_list_engines               (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<p>
+List engines synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A List of engines. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> IBusEngineDesc]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-list-engines-async"></a><h3>ibus_bus_list_engines_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_list_engines_async         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+List engines asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied or <code class="literal">NULL</code>
+if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-list-engines-async-finish"></a><h3>ibus_bus_list_engines_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_bus_list_engines_async_finish  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-list-engines-async" title="ibus_bus_list_engines_async ()"><code class="function">ibus_bus_list_engines_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-list-engines-async" title="ibus_bus_list_engines_async ()"><code class="function">ibus_bus_list_engines_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A List of engines. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> IBusEngineDesc]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-list-active-engines"></a><h3>ibus_bus_list_active_engines ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_bus_list_active_engines        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_list_active_engines</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Read dconf value
+/desktop/ibus/general/preload-engines instead.</p>
+</div>
+<p>
+List active engines synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A List of active engines. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> IBusEngineDesc]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-list-active-engines-async"></a><h3>ibus_bus_list_active_engines_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_list_active_engines_async  (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_list_active_engines_async</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Read dconf value
+/desktop/ibus/general/preload-engines instead.</p>
+</div>
+<p>
+List active engines asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied or <code class="literal">NULL</code>
+if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-list-active-engines-async-finish"></a><h3>ibus_bus_list_active_engines_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_bus_list_active_engines_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_list_active_engines_async_finish</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Read dconf value
+/desktop/ibus/general/preload-engines instead.</p>
+</div>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-list-active-engines-async" title="ibus_bus_list_active_engines_async ()"><code class="function">ibus_bus_list_active_engines_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-list-active-engines-async" title="ibus_bus_list_active_engines_async ()"><code class="function">ibus_bus_list_active_engines_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A List of active engines. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> IBusEngineDesc]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-engines-by-names"></a><h3>ibus_bus_get_engines_by_names ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> **   ibus_bus_get_engines_by_names       (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> * const *names</code></em>);</pre>
+<p>
+Get engines by given names synchronously. If some engine names do not exist, this function
+will simplly ignore them, and return rest of engines.
+TODO(penghuang): add asynchronous version
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
+<td>A <code class="literal">NULL</code>-terminated array of names. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <code class="literal">NULL</code>-terminated array of engines. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-use-sys-layout"></a><h3>ibus_bus_get_use_sys_layout ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_get_use_sys_layout         (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_get_use_sys_layout</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Read dconf value
+/desktop/ibus/general/use_system_keyboard_layout instead.</p>
+</div>
+<p>
+Check if the bus's "use_sys_layout" option is enabled or not synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if "use_sys_layout" option is enabled.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-use-sys-layout-async"></a><h3>ibus_bus_get_use_sys_layout_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_get_use_sys_layout_async   (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_get_use_sys_layout_async</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Read dconf value
+/desktop/ibus/general/use_system_keyboard_layout instead.</p>
+</div>
+<p>
+Check if the bus's "use_sys_layout" option is enabled or not asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-use-sys-layout-async-finish"></a><h3>ibus_bus_get_use_sys_layout_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_get_use_sys_layout_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_get_use_sys_layout_async_finish</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Read dconf value
+/desktop/ibus/general/use_system_keyboard_layout instead.</p>
+</div>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout-async" title="ibus_bus_get_use_sys_layout_async ()"><code class="function">ibus_bus_get_use_sys_layout_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout-async" title="ibus_bus_get_use_sys_layout_async ()"><code class="function">ibus_bus_get_use_sys_layout_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if "use_sys_layout" option is enabled.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-use-global-engine"></a><h3>ibus_bus_get_use_global_engine ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_get_use_global_engine      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_get_use_global_engine</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Currently global engine is always used.</p>
+</div>
+<p>
+Check if the bus's "use_global_engine" option is enabled or not synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if "use_global_engine" option is enabled.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-use-global-engine-async"></a><h3>ibus_bus_get_use_global_engine_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_get_use_global_engine_async
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_get_use_global_engine_async</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Currently global engine is always used.</p>
+</div>
+<p>
+Check if the bus's "use_global_engine" option is enabled or not asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-use-global-engine-async-finish"></a><h3>ibus_bus_get_use_global_engine_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_get_use_global_engine_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_get_use_global_engine_async_finish</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Currently global engine is always used.</p>
+</div>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine-async" title="ibus_bus_get_use_global_engine_async ()"><code class="function">ibus_bus_get_use_global_engine_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine-async" title="ibus_bus_get_use_global_engine_async ()"><code class="function">ibus_bus_get_use_global_engine_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if "use_global_engine" option is enabled.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-is-global-engine-enabled"></a><h3>ibus_bus_is_global_engine_enabled ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_is_global_engine_enabled   (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_is_global_engine_enabled</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Probably this would be used for Chrome OS only.
+Currently global engine is always used and <a class="link" href="IBusBus.html#ibus-bus-get-global-engine" title="ibus_bus_get_global_engine ()"><code class="function">ibus_bus_get_global_engine()</code></a>
+returns NULL until the first global engine is assigned.
+You can use <a class="link" href="ibus-ibusshare.html#ibus-set-log-handler" title="ibus_set_log_handler ()"><code class="function">ibus_set_log_handler()</code></a> to disable a warning when
+<a class="link" href="IBusBus.html#ibus-bus-get-global-engine" title="ibus_bus_get_global_engine ()"><code class="function">ibus_bus_get_global_engine()</code></a> returns NULL.</p>
+</div>
+<p>
+Check if the current global engine is enabled or not synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the current global engine is enabled.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-is-global-engine-enabled-async"></a><h3>ibus_bus_is_global_engine_enabled_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_is_global_engine_enabled_async
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_is_global_engine_enabled_async</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Probably this would be used for Chrome OS only.
+Currently global engine is always used and <a class="link" href="IBusBus.html#ibus-bus-get-global-engine" title="ibus_bus_get_global_engine ()"><code class="function">ibus_bus_get_global_engine()</code></a></p>
+</div>
+<p>
+Check if the current global engine is enabled or not asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-is-global-engine-enabled-async-finish"></a><h3>ibus_bus_is_global_engine_enabled_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_is_global_engine_enabled_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_bus_is_global_engine_enabled_async_finish</code> has been deprecated since version 1.5.3 and should not be used in newly-written code. Probably this would be used for Chrome OS only.
+Currently global engine is always used and <a class="link" href="IBusBus.html#ibus-bus-get-global-engine" title="ibus_bus_get_global_engine ()"><code class="function">ibus_bus_get_global_engine()</code></a>
+returns NULL until the first global engine is assigned.
+You can use <a class="link" href="ibus-ibusshare.html#ibus-set-log-handler" title="ibus_set_log_handler ()"><code class="function">ibus_set_log_handler()</code></a> to disable a warning when
+<a class="link" href="IBusBus.html#ibus-bus-get-global-engine" title="ibus_bus_get_global_engine ()"><code class="function">ibus_bus_get_global_engine()</code></a> returns NULL.</p>
+</div>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled-async" title="ibus_bus_is_global_engine_enabled_async ()"><code class="function">ibus_bus_is_global_engine_enabled_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled-async" title="ibus_bus_is_global_engine_enabled_async ()"><code class="function">ibus_bus_is_global_engine_enabled_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the current global engine is enabled.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-global-engine"></a><h3>ibus_bus_get_global_engine ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    ibus_bus_get_global_engine          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<p>
+Get the description of current global engine synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The description of current global engine,
+or <code class="literal">NULL</code> if there is no global engine. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-global-engine-async"></a><h3>ibus_bus_get_global_engine_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_get_global_engine_async    (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Get the description of current global engine asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied or <code class="literal">NULL</code>
+if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-global-engine-async-finish"></a><h3>ibus_bus_get_global_engine_async_finish ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    ibus_bus_get_global_engine_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-get-global-engine-async-finish" title="ibus_bus_get_global_engine_async_finish ()"><code class="function">ibus_bus_get_global_engine_async_finish()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-get-global-engine-async-finish" title="ibus_bus_get_global_engine_async_finish ()"><code class="function">ibus_bus_get_global_engine_async_finish()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The description of current global engine,
+or <code class="literal">NULL</code> if there is no global engine. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-set-global-engine"></a><h3>ibus_bus_set_global_engine ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_set_global_engine          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *global_engine</code></em>);</pre>
+<p>
+Set current global engine synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>global_engine</code></em> :</span></p></td>
+<td>A new engine name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the global engine was set successfully.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-set-global-engine-async"></a><h3>ibus_bus_set_global_engine_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_set_global_engine_async    (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *global_engine</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Set current global engine asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>global_engine</code></em> :</span></p></td>
+<td>A new engine name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-set-global-engine-async-finish"></a><h3>ibus_bus_set_global_engine_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_set_global_engine_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-set-global-engine-async" title="ibus_bus_set_global_engine_async ()"><code class="function">ibus_bus_set_global_engine_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-set-global-engine-async" title="ibus_bus_set_global_engine_async ()"><code class="function">ibus_bus_set_global_engine_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if no IPC errros. <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-set-watch-dbus-signal"></a><h3>ibus_bus_set_watch_dbus_signal ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_set_watch_dbus_signal      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> watch</code></em>);</pre>
+<p>
+Start or stop watching the NameOwnerChanged DBus signal.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>watch</code></em> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if you want ibusbus to emit "name-owner-changed" signal when
+ibus-daemon emits the NameOwnerChanged DBus signal.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-set-watch-ibus-signal"></a><h3>ibus_bus_set_watch_ibus_signal ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_set_watch_ibus_signal      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> watch</code></em>);</pre>
+<p>
+Start or stop watching the GlobalEngineChanged IBus signal.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>watch</code></em> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if you want ibusbus to emit "global-engine-changed" signal when
+ibus-daemon emits the GlobalEngineChanged IBus signal.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-config"></a><h3>ibus_bus_get_config ()</h3>
+<pre class="programlisting"><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="returnvalue">IBusConfig</span></a> *        ibus_bus_get_config                 (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>);</pre>
+<p>
+Get the config instance from <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> object which is configurable with
+<em class="parameter"><code>bus</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-preload-engines"></a><h3>ibus_bus_preload_engines ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_preload_engines            (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> * const *names</code></em>);</pre>
+<p>
+Start bus components by engine names synchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
+<td>A <code class="literal">NULL</code>-terminated array of engine names. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if components start. <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-preload-engines-async"></a><h3>ibus_bus_preload_engines_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_preload_engines_async      (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> * const *names</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Start bus components by engine names asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>names</code></em> :</span></p></td>
+<td>A <code class="literal">NULL</code>-terminated array of engine names. <span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-preload-engines-async-finish"></a><h3>ibus_bus_preload_engines_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_preload_engines_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-preload-engines-async" title="ibus_bus_preload_engines_async ()"><code class="function">ibus_bus_preload_engines_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusBus.html#ibus-bus-preload-engines-async" title="ibus_bus_preload_engines_async ()"><code class="function">ibus_bus_preload_engines_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if component starts. <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-ibus-property"></a><h3>ibus_bus_get_ibus_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *          ibus_bus_get_ibus_property          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>);</pre>
+<p>
+Get org.freedesktop.DBus.Properties.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
+<td>property name in org.freedesktop.DBus.Properties.Get</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The value in org.freedesktop.DBus.Properties.Get
+The returned value must be freed with <code class="function">g_variant_unref()</code>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-ibus-property-async"></a><h3>ibus_bus_get_ibus_property_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_get_ibus_property_async    (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Get org.freedesktop.DBus.Properties asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
+<td>property name in org.freedesktop.DBus.Properties.Get</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-get-ibus-property-async-finish"></a><h3>ibus_bus_get_ibus_property_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *          ibus_bus_get_ibus_property_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-get-ibus-property-async" title="ibus_bus_get_ibus_property_async ()"><code class="function">ibus_bus_get_ibus_property_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<code class="function">ibus_bus_get_property_async()</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The value in org.freedesktop.DBus.Properties.Get
+The returned value must be freed with <code class="function">g_variant_unref()</code>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-set-ibus-property"></a><h3>ibus_bus_set_ibus_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_set_ibus_property          (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);</pre>
+<p>
+Set org.freedesktop.DBus.Properties.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
+<td>property name in org.freedesktop.DBus.Properties.Set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>value in org.freedesktop.DBus.Properties.Set</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-set-ibus-property-async"></a><h3>ibus_bus_set_ibus_property_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_bus_set_ibus_property_async    (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Set org.freedesktop.DBus.Properties asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property_name</code></em> :</span></p></td>
+<td>property name in org.freedesktop.DBus.Properties.Set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>value in org.freedesktop.DBus.Properties.Set</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied
+or <code class="literal">NULL</code> if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-bus-set-ibus-property-async-finish"></a><h3>ibus_bus_set_ibus_property_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_bus_set_ibus_property_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusBus.html#ibus-bus-set-ibus-property-async" title="ibus_bus_set_ibus_property_async ()"><code class="function">ibus_bus_set_ibus_property_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<code class="function">ibus_bus_set_property_async()</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if property is set with async. <code class="literal">FALSE</code> failed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusBus.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="IBusBus--connect-async"></a><h3>The <code class="literal">"connect-async"</code> property</h3>
+<pre class="programlisting">  "connect-async"            <span class="type">gboolean</span>              : Read / Write / Construct Only</pre>
+<p>
+Whether the <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> object should connect asynchronously to the bus.
+</p>
+<p>Default value: FALSE</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusBus.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusBus-connected"></a><h3>The <code class="literal">"connected"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus,
+                                                        <span class="type">gpointer</span> user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> is connected to ibus-daemon.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>The <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> object which recevied the signal</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusBus-disconnected"></a><h3>The <code class="literal">"disconnected"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus,
+                                                        <span class="type">gpointer</span> user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> is disconnected from ibus-daemon.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>The <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> object which recevied the signal</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusBus-global-engine-changed"></a><h3>The <code class="literal">"global-engine-changed"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus,
+                                                        <span class="type">gchar</span>   *name,
+                                                        <span class="type">gpointer</span> user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when global engine is changed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>The <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> object which recevied the signal</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>The name of the new global engine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusBus-name-owner-changed"></a><h3>The <code class="literal">"name-owner-changed"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> *bus,
+                                                        <span class="type">gchar</span>   *name,
+                                                        <span class="type">gchar</span>   *old_owner,
+                                                        <span class="type">gchar</span>   *new_owner,
+                                                        <span class="type">gpointer</span> user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when D-Bus name owner is changed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>bus</code></em> :</span></p></td>
+<td>The <a class="link" href="IBusBus.html" title="IBusBus"><span class="type">IBusBus</span></a> object which recevied the signal</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>The name which ower is changed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>old_owner</code></em> :</span></p></td>
+<td>The unique bus name of the old owner.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>new_owner</code></em> :</span></p></td>
+<td>The unique bus name of the new owner.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusComponent.html b/docs/reference/ibus/html/IBusComponent.html
new file mode 100644 (file)
index 0000000..e10c72a
--- /dev/null
@@ -0,0 +1,759 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusComponent</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="ch03.html" title="Input method engine">
+<link rel="next" href="IBusEngine.html" title="IBusEngine">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch03.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusEngine.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusComponent.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusComponent.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusComponent.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusComponent.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusComponent"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusComponent.top_of_page"></a>IBusComponent</span></h2>
+<p>IBusComponent — Component (executable) specification.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusComponent.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusComponent.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusComponent.html#IBusComponent-struct" title="struct IBusComponent">IBusComponent</a>;
+struct              <a class="link" href="IBusComponent.html#IBusComponentClass" title="struct IBusComponentClass">IBusComponentClass</a>;
+<a class="link" href="IBusComponent.html" title="IBusComponent"><span class="returnvalue">IBusComponent</span></a> *     <a class="link" href="IBusComponent.html#ibus-component-new" title="ibus_component_new ()">ibus_component_new</a>                  (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *description</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *version</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *license</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *author</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *homepage</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *command_line</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *textdomain</code></em>);
+<a class="link" href="IBusComponent.html" title="IBusComponent"><span class="returnvalue">IBusComponent</span></a> *     <a class="link" href="IBusComponent.html#ibus-component-new-varargs" title="ibus_component_new_varargs ()">ibus_component_new_varargs</a>          (<em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);
+<a class="link" href="IBusComponent.html" title="IBusComponent"><span class="returnvalue">IBusComponent</span></a> *     <a class="link" href="IBusComponent.html#ibus-component-new-from-xml-node" title="ibus_component_new_from_xml_node ()">ibus_component_new_from_xml_node</a>    (<em class="parameter"><code><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>);
+<a class="link" href="IBusComponent.html" title="IBusComponent"><span class="returnvalue">IBusComponent</span></a> *     <a class="link" href="IBusComponent.html#ibus-component-new-from-file" title="ibus_component_new_from_file ()">ibus_component_new_from_file</a>        (<em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusComponent.html#ibus-component-get-name" title="ibus_component_get_name ()">ibus_component_get_name</a>             (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusComponent.html#ibus-component-get-description" title="ibus_component_get_description ()">ibus_component_get_description</a>      (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusComponent.html#ibus-component-get-version" title="ibus_component_get_version ()">ibus_component_get_version</a>          (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusComponent.html#ibus-component-get-license" title="ibus_component_get_license ()">ibus_component_get_license</a>          (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusComponent.html#ibus-component-get-author" title="ibus_component_get_author ()">ibus_component_get_author</a>           (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusComponent.html#ibus-component-get-homepage" title="ibus_component_get_homepage ()">ibus_component_get_homepage</a>         (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusComponent.html#ibus-component-get-exec" title="ibus_component_get_exec ()">ibus_component_get_exec</a>             (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusComponent.html#ibus-component-get-textdomain" title="ibus_component_get_textdomain ()">ibus_component_get_textdomain</a>       (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusComponent.html#ibus-component-add-observed-path" title="ibus_component_add_observed_path ()">ibus_component_add_observed_path</a>    (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> access_fs</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusComponent.html#ibus-component-add-engine" title="ibus_component_add_engine ()">ibus_component_add_engine</a>           (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *engine</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusComponent.html#ibus-component-get-engines" title="ibus_component_get_engines ()">ibus_component_get_engines</a>          (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusComponent.html#ibus-component-output" title="ibus_component_output ()">ibus_component_output</a>               (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> indent</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusComponent.html#ibus-component-output-engines" title="ibus_component_output_engines ()">ibus_component_output_engines</a>       (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> indent</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusComponent.html#ibus-component-check-modification" title="ibus_component_check_modification ()">ibus_component_check_modification</a>   (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusComponent.html#ibus-component-get-observed-paths" title="ibus_component_get_observed_paths ()">ibus_component_get_observed_paths</a>   (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusComponent.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusComponent
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusComponent.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusComponent.html#IBusComponent--author" title='The "author" property'>author</a>"                   <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusComponent.html#IBusComponent--command-line" title='The "command-line" property'>command-line</a>"             <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusComponent.html#IBusComponent--description" title='The "description" property'>description</a>"              <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusComponent.html#IBusComponent--homepage" title='The "homepage" property'>homepage</a>"                 <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusComponent.html#IBusComponent--license" title='The "license" property'>license</a>"                  <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusComponent.html#IBusComponent--name" title='The "name" property'>name</a>"                     <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusComponent.html#IBusComponent--textdomain" title='The "textdomain" property'>textdomain</a>"               <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusComponent.html#IBusComponent--version" title='The "version" property'>version</a>"                  <span class="type">gchar</span>*                : Read / Write / Construct Only
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusComponent.description"></a><h2>Description</h2>
+<p>
+An IBusComponent is an executable program.
+It provides services such as user interface, configuration,
+and input method engine (IME).
+</p>
+<p>
+It is recommended that IME developers provide
+a component XML file and
+load the XML file by <a class="link" href="IBusComponent.html#ibus-component-new-from-file" title="ibus_component_new_from_file ()"><code class="function">ibus_component_new_from_file()</code></a>.
+</p>
+<p>
+The format of a component XML file is described  at
+<a class="ulink" href="http://code.google.com/p/ibus/wiki/DevXML" target="_top">http://code.google.com/p/ibus/wiki/DevXML</a>
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusComponent.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusComponent-struct"></a><h3>struct IBusComponent</h3>
+<pre class="programlisting">struct IBusComponent {
+    /* padding */
+    gpointer pdummy[7];  // We can add 7 pointers without breaking the ABI.
+};
+</pre>
+<p>
+An IBusComponent stores component information.
+You can get extended values with g_object_get_properties.
+name: Name of the component.
+description: Detailed description of component.
+version: Component version.
+license: Distribution license of this component.
+author: Author(s) of the component.
+homepage: Homepage of the component.
+command_line: path to component executable.
+textdomain: Domain name for <code class="function">dgettext()</code>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusComponentClass"></a><h3>struct IBusComponentClass</h3>
+<pre class="programlisting">struct IBusComponentClass {
+  IBusSerializableClass parent;
+
+  /* class members */
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-new"></a><h3>ibus_component_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="returnvalue">IBusComponent</span></a> *     ibus_component_new                  (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *description</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *version</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *license</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *author</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *homepage</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *command_line</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *textdomain</code></em>);</pre>
+<p>
+New an IBusComponent.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the component.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>description</code></em> :</span></p></td>
+<td>Detailed description of component.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>version</code></em> :</span></p></td>
+<td>Component version.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license</code></em> :</span></p></td>
+<td>Distribution license of this component.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>author</code></em> :</span></p></td>
+<td>Author(s) of the component.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>homepage</code></em> :</span></p></td>
+<td>Homepage of the component.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>command_line</code></em> :</span></p></td>
+<td>path to component executable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>textdomain</code></em> :</span></p></td>
+<td>Domain name for <code class="function">dgettext()</code>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusComponent.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-new-varargs"></a><h3>ibus_component_new_varargs ()</h3>
+<pre class="programlisting"><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="returnvalue">IBusComponent</span></a> *     ibus_component_new_varargs          (<em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);</pre>
+<p>
+New an IBusComponent.
+<a class="link" href="IBusComponent.html#ibus-component-new-varargs" title="ibus_component_new_varargs ()"><code class="function">ibus_component_new_varargs()</code></a> supports the va_list format.
+name property is required. e.g.
+IBusComponent *component = ibus_component_new_varargs ("name", "ibus-foo",
+                                                       "command_line", "/usr/libexec/ibus-engine-foo --ibus",
+                                                    NULL)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>first_property_name</code></em> :</span></p></td>
+<td>Name of the first property.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-new-from-xml-node"></a><h3>ibus_component_new_from_xml_node ()</h3>
+<pre class="programlisting"><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="returnvalue">IBusComponent</span></a> *     ibus_component_new_from_xml_node    (<em class="parameter"><code><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>);</pre>
+<p>
+New an IBusComponent from an XML tree.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>Root node of component XML tree.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusComponent.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-new-from-file"></a><h3>ibus_component_new_from_file ()</h3>
+<pre class="programlisting"><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="returnvalue">IBusComponent</span></a> *     ibus_component_new_from_file        (<em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>);</pre>
+<p>
+New an IBusComponent from an XML file.
+Note that a component file usually contains engine descriptions,
+if it does, <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new-from-xml-node" title="ibus_engine_desc_new_from_xml_node ()"><code class="function">ibus_engine_desc_new_from_xml_node()</code></a> will be called
+to load the engine descriptions.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
+<td>An XML file that contains component information.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusComponent.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-name"></a><h3>ibus_component_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_component_get_name             (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Return the name property in IBusComponent. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>name property in IBusComponent</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-description"></a><h3>ibus_component_get_description ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_component_get_description      (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Return the description property in IBusComponent. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>description property in IBusComponent</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-version"></a><h3>ibus_component_get_version ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_component_get_version          (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Return the version property in IBusComponent. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>version property in IBusComponent</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-license"></a><h3>ibus_component_get_license ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_component_get_license          (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Return the license property in IBusComponent. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>license property in IBusComponent</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-author"></a><h3>ibus_component_get_author ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_component_get_author           (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Return the author property in IBusComponent. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>author property in IBusComponent</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-homepage"></a><h3>ibus_component_get_homepage ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_component_get_homepage         (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Return the homepage property in IBusComponent. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>homepage property in IBusComponent</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-exec"></a><h3>ibus_component_get_exec ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_component_get_exec             (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Return the exec property in IBusComponent. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>exec property in IBusComponent</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-textdomain"></a><h3>ibus_component_get_textdomain ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_component_get_textdomain       (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Return the textdomain property in IBusComponent. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>textdomain property in IBusComponent</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-add-observed-path"></a><h3>ibus_component_add_observed_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_component_add_observed_path    (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> access_fs</code></em>);</pre>
+<p>
+Add an observed path to IBusComponent.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>Observed path to be added.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>access_fs</code></em> :</span></p></td>
+<td>TRUE for filling the file status; FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-add-engine"></a><h3>ibus_component_add_engine ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_component_add_engine           (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *engine</code></em>);</pre>
+<p>
+Add an engine to IBusComponent according to the description in <em class="parameter"><code>engine</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>A description of an engine.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-engines"></a><h3>ibus_component_get_engines ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_component_get_engines          (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Get the engines of this component.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated GList that contains engines. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> IBusEngineDesc]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-output"></a><h3>ibus_component_output ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_component_output               (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> indent</code></em>);</pre>
+<p>
+Output IBusComponent as an XML-formatted string.
+The output string can be then shown on the screen or written to file.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
+<td>GString that holds the result.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indent</code></em> :</span></p></td>
+<td>level of indent.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-output-engines"></a><h3>ibus_component_output_engines ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_component_output_engines       (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> indent</code></em>);</pre>
+<p>
+Output engine description  as an XML-formatted string.
+The output string can be then shown on the screen or written to file.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
+<td>GString that holds the result.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indent</code></em> :</span></p></td>
+<td>level of indent.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-check-modification"></a><h3>ibus_component_check_modification ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_component_check_modification   (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Check whether the observed paths of component is modified.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if at least one of the observed paths is modified; FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-component-get-observed-paths"></a><h3>ibus_component_get_observed_paths ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_component_get_observed_paths   (<em class="parameter"><code><a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> *component</code></em>);</pre>
+<p>
+Get the observed paths of this component.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>An IBusComponent.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A
+newly allocated GList that contains observed paths. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> IBusObservedPath]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusComponent.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="IBusComponent--author"></a><h3>The <code class="literal">"author"</code> property</h3>
+<pre class="programlisting">  "author"                   <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The author of component
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusComponent--command-line"></a><h3>The <code class="literal">"command-line"</code> property</h3>
+<pre class="programlisting">  "command-line"             <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The exec path of component
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusComponent--description"></a><h3>The <code class="literal">"description"</code> property</h3>
+<pre class="programlisting">  "description"              <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The description of component
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusComponent--homepage"></a><h3>The <code class="literal">"homepage"</code> property</h3>
+<pre class="programlisting">  "homepage"                 <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The homepage of component
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusComponent--license"></a><h3>The <code class="literal">"license"</code> property</h3>
+<pre class="programlisting">  "license"                  <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The license of component
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusComponent--name"></a><h3>The <code class="literal">"name"</code> property</h3>
+<pre class="programlisting">  "name"                     <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The name of component
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusComponent--textdomain"></a><h3>The <code class="literal">"textdomain"</code> property</h3>
+<pre class="programlisting">  "textdomain"               <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The textdomain of component
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusComponent--version"></a><h3>The <code class="literal">"version"</code> property</h3>
+<pre class="programlisting">  "version"                  <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The version of component
+</p>
+<p>Default value: NULL</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusConfig.html b/docs/reference/ibus/html/IBusConfig.html
new file mode 100644 (file)
index 0000000..aeb8aff
--- /dev/null
@@ -0,0 +1,823 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusConfig</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch04.html" title="Configuration">
+<link rel="prev" href="ch04.html" title="Configuration">
+<link rel="next" href="IBusConfigService.html" title="IBusConfigService">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch04.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusConfigService.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusConfig.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusConfig.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusConfig.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusConfig.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+                   | 
+                  <a href="#IBusConfig.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusConfig"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusConfig.top_of_page"></a>IBusConfig</span></h2>
+<p>IBusConfig — IBus engine configuration module.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="IBusConfig.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusConfig.html#IBusConfig-struct" title="struct IBusConfig">IBusConfig</a>;
+struct              <a class="link" href="IBusConfig.html#IBusConfigClass" title="struct IBusConfigClass">IBusConfigClass</a>;
+<a class="link" href="IBusConfig.html" title="IBusConfig"><span class="returnvalue">IBusConfig</span></a> *        <a class="link" href="IBusConfig.html#ibus-config-new" title="ibus_config_new ()">ibus_config_new</a>                     (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusConfig.html#ibus-config-new-async" title="ibus_config_new_async ()">ibus_config_new_async</a>               (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<a class="link" href="IBusConfig.html" title="IBusConfig"><span class="returnvalue">IBusConfig</span></a> *        <a class="link" href="IBusConfig.html#ibus-config-new-async-finish" title="ibus_config_new_async_finish ()">ibus_config_new_async_finish</a>        (<em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">GVariant</span> *          <a class="link" href="IBusConfig.html#ibus-config-get-value" title="ibus_config_get_value ()">ibus_config_get_value</a>               (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusConfig.html#ibus-config-get-value-async" title="ibus_config_get_value_async ()">ibus_config_get_value_async</a>         (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_ms</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">GVariant</span> *          <a class="link" href="IBusConfig.html#ibus-config-get-value-async-finish" title="ibus_config_get_value_async_finish ()">ibus_config_get_value_async_finish</a>  (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">GVariant</span> *          <a class="link" href="IBusConfig.html#ibus-config-get-values" title="ibus_config_get_values ()">ibus_config_get_values</a>              (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusConfig.html#ibus-config-get-values-async" title="ibus_config_get_values_async ()">ibus_config_get_values_async</a>        (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_ms</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">GVariant</span> *          <a class="link" href="IBusConfig.html#ibus-config-get-values-async-finish" title="ibus_config_get_values_async_finish ()">ibus_config_get_values_async_finish</a> (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusConfig.html#ibus-config-set-value" title="ibus_config_set_value ()">ibus_config_set_value</a>               (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusConfig.html#ibus-config-set-value-async" title="ibus_config_set_value_async ()">ibus_config_set_value_async</a>         (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_ms</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusConfig.html#ibus-config-set-value-async-finish" title="ibus_config_set_value_async_finish ()">ibus_config_set_value_async_finish</a>  (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusConfig.html#ibus-config-unset" title="ibus_config_unset ()">ibus_config_unset</a>                   (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusConfig.html#ibus-config-watch" title="ibus_config_watch ()">ibus_config_watch</a>                   (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusConfig.html#ibus-config-unwatch" title="ibus_config_unwatch ()">ibus_config_unwatch</a>                 (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusConfig.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GDBusProxy
+         +----<a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+               +----IBusConfig
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusConfig.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+IBusConfig implements
+ GDBusInterface,  GInitable and  GAsyncInitable.</p>
+</div>
+<div class="refsect1">
+<a name="IBusConfig.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusConfig.html#IBusConfig-value-changed" title='The "value-changed" signal'>value-changed</a>"                                  : <code class="literal">Run Last</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusConfig.description"></a><h2>Description</h2>
+<p>
+An IBusConfig provides engine configuration methods
+such as get and set the configure settings to configuration file.
+</p>
+<p>
+Currently, IBusConfig supports gconf.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusConfig.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusConfig-struct"></a><h3>struct IBusConfig</h3>
+<pre class="programlisting">struct IBusConfig;</pre>
+<p>
+An opaque data type representing an IBusConfig.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusConfigClass"></a><h3>struct IBusConfigClass</h3>
+<pre class="programlisting">struct IBusConfigClass {
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-new"></a><h3>ibus_config_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="returnvalue">IBusConfig</span></a> *        ibus_config_new                     (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+New an <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> from existing <span class="type">GDBusConnection</span>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>A <span class="type">GDBusConnection</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An newly allocated <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> corresponding to <em class="parameter"><code>connection</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-new-async"></a><h3>ibus_config_new_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_config_new_async               (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+New an <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An <span class="type">GDBusConnection</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied.
+The callback should not be <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-new-async-finish"></a><h3>ibus_config_new_async_finish ()</h3>
+<pre class="programlisting"><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="returnvalue">IBusConfig</span></a> *        ibus_config_new_async_finish        (<em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+<em class="parameter"><code>returns</code></em>: A newly allocated <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>.
+</p>
+<p>
+Finishes an operation started with <a class="link" href="IBusConfig.html#ibus-config-new-async" title="ibus_config_new_async ()"><code class="function">ibus_config_new_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> pass to
+<a class="link" href="IBusConfig.html#ibus-config-new-async" title="ibus_config_new_async ()"><code class="function">ibus_config_new_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-get-value"></a><h3>ibus_config_get_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *          ibus_config_get_value               (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Get the value of a configuration option synchronously.
+</p>
+<p>
+GConf stores configure options in a tree-like structure,
+and the IBus related setting is at /desktop/ibus,
+thus, <em class="parameter"><code>section</code></em> here is a path from there,
+while <em class="parameter"><code>name</code></em> is the key of that configuration option.
+</p>
+<p>
+ibus-chewing, for example, stores its setting in /desktop/ibus/engine/Chewing,
+so the section name for it is "engine/Chewing".
+See also: <a class="link" href="IBusConfig.html#ibus-config-set-value" title="ibus_config_set_value ()"><code class="function">ibus_config_set_value()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the configure option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <span class="type">GVariant</span> or <code class="literal">NULL</code>. Free with <code class="function">g_variant_unref()</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-get-value-async"></a><h3>ibus_config_get_value_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_config_get_value_async         (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_ms</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Get the value of a configuration option asynchronously.
+</p>
+<p>
+See also: <a class="link" href="IBusConfig.html#ibus-config-get-value" title="ibus_config_get_value ()"><code class="function">ibus_config_get_value()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the configure option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_ms</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>Callback function to invoke when the return value is ready.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-get-value-async-finish"></a><h3>ibus_config_get_value_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *          ibus_config_get_value_async_finish  (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finish get value of a configuration option.
+</p>
+<p>
+See also: <a class="link" href="IBusConfig.html#ibus-config-get-value-async" title="ibus_config_get_value_async ()"><code class="function">ibus_config_get_value_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>A <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <span class="type">GVariant</span> or <code class="literal">NULL</code> if error is set. Free with <code class="function">g_variant_unref()</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-get-values"></a><h3>ibus_config_get_values ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *          ibus_config_get_values              (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>);</pre>
+<p>
+Get all values in a section synchronously.
+</p>
+<p>
+See also: <a class="link" href="IBusConfig.html#ibus-config-set-value" title="ibus_config_set_value ()"><code class="function">ibus_config_set_value()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <span class="type">GVariant</span> or <code class="literal">NULL</code>. Free with <code class="function">g_variant_unref()</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-get-values-async"></a><h3>ibus_config_get_values_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_config_get_values_async        (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_ms</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Get all values in a section asynchronously.
+</p>
+<p>
+See also: <a class="link" href="IBusConfig.html#ibus-config-get-values" title="ibus_config_get_values ()"><code class="function">ibus_config_get_values()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_ms</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>Callback function to invoke when the return value is ready.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-get-values-async-finish"></a><h3>ibus_config_get_values_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *          ibus_config_get_values_async_finish (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finish get values in a section.
+</p>
+<p>
+See also: <a class="link" href="IBusConfig.html#ibus-config-get-values-async" title="ibus_config_get_values_async ()"><code class="function">ibus_config_get_values_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>A <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <span class="type">GVariant</span> or <code class="literal">NULL</code> if error is set. Free with <code class="function">g_variant_unref()</code>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-set-value"></a><h3>ibus_config_set_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_config_set_value               (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);</pre>
+<p>
+Set the value of a configuration option synchronously.
+See also: <a class="link" href="IBusConfig.html#ibus-config-get-value" title="ibus_config_get_value ()"><code class="function">ibus_config_get_value()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the configure option its self.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>A <span class="type">GVariant</span> that holds the value. If the value is floating, the
+function takes ownership of it.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if succeed; <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-set-value-async"></a><h3>ibus_config_set_value_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_config_set_value_async         (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_ms</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Set the value of a configuration option asynchronously.
+</p>
+<p>
+See also: <a class="link" href="IBusConfig.html#ibus-config-set-value" title="ibus_config_set_value ()"><code class="function">ibus_config_set_value()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the configure option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>A <span class="type">GVariant</span> that holds the value. If the value is floating, the
+function takes ownership of it.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_ms</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>Callback function to invoke when the return value is ready.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-set-value-async-finish"></a><h3>ibus_config_set_value_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_config_set_value_async_finish  (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finish set value of a configuration option.
+</p>
+<p>
+See also: <a class="link" href="IBusConfig.html#ibus-config-set-value-async" title="ibus_config_set_value_async ()"><code class="function">ibus_config_set_value_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>A <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> or <code class="literal">FALSE</code> if error is set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-unset"></a><h3>ibus_config_unset ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_config_unset                   (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Remove an entry of a configuration option.
+See also: <a class="link" href="IBusConfig.html#ibus-config-get-value" title="ibus_config_get_value ()"><code class="function">ibus_config_get_value()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the configure option its self.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if succeed; <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-watch"></a><h3>ibus_config_watch ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_config_watch                   (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Subscribe to the configuration option change notification.
+</p>
+<p>
+Until this function is called, every change will be notified to the
+client through <a class="link" href="IBusConfig.html#IBusConfig-value-changed" title='The "value-changed" signal'><span class="type">"value-changed"</span></a> signal.  Clients should
+call <a class="link" href="IBusConfig.html#ibus-config-watch" title="ibus_config_watch ()"><code class="function">ibus_config_watch()</code></a> with the sections they are interested in,
+to reduce the number of D-Bus messages.
+</p>
+<p>
+See also: <a class="link" href="IBusConfig.html#ibus-config-unwatch" title="ibus_config_unwatch ()"><code class="function">ibus_config_unwatch()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the configure option its self. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if succeed; <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-unwatch"></a><h3>ibus_config_unwatch ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_config_unwatch                 (<em class="parameter"><code><a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Unsubscribe from the configuration option change notification.
+</p>
+<p>
+See also: ibus_config_watch.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the configure option its self. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if succeed; <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusConfig.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusConfig-value-changed"></a><h3>The <code class="literal">"value-changed"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusConfig.html" title="IBusConfig"><span class="type">IBusConfig</span></a> *config,
+                                                        <span class="type">gchar</span>      *section,
+                                                        <span class="type">gchar</span>      *name,
+                                                        <span class="type">GVariant</span>   *value,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when configuration value is changed.
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An IBusConfig.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the property.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>Value.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusConfigService.html b/docs/reference/ibus/html/IBusConfigService.html
new file mode 100644 (file)
index 0000000..c70f5cd
--- /dev/null
@@ -0,0 +1,302 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusConfigService</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch04.html" title="Configuration">
+<link rel="prev" href="IBusConfig.html" title="IBusConfig">
+<link rel="next" href="IBusObservedPath.html" title="IBusObservedPath">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusConfig.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusObservedPath.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusConfigService.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusConfigService.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusConfigService.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusConfigService"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusConfigService.top_of_page"></a>IBusConfigService</span></h2>
+<p>IBusConfigService — Configuration service back-end.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusConfigService.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusConfigService.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusConfigService.html#IBusConfigService-struct" title="struct IBusConfigService">IBusConfigService</a>;
+struct              <a class="link" href="IBusConfigService.html#IBusConfigServiceClass" title="struct IBusConfigServiceClass">IBusConfigServiceClass</a>;
+<a class="link" href="IBusConfigService.html" title="IBusConfigService"><span class="returnvalue">IBusConfigService</span></a> * <a class="link" href="IBusConfigService.html#ibus-config-service-new" title="ibus_config_service_new ()">ibus_config_service_new</a>             (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusConfigService.html#ibus-config-service-value-changed" title="ibus_config_service_value_changed ()">ibus_config_service_value_changed</a>   (<em class="parameter"><code><a class="link" href="IBusConfigService.html" title="IBusConfigService"><span class="type">IBusConfigService</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusConfigService.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+                     +----IBusConfigService
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusConfigService.description"></a><h2>Description</h2>
+<p>
+An IBusConfigService is a base class for other configuration services such as GConf.
+Currently, directly known sub class is IBusConfigGConf.
+</p>
+<p>
+IBusConfigServiceClass has following member functions:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+<p>gboolean set_value(IBusConfigService *config, const gchar *section, const gchar *name,
+            const GValue *value, IBusError **error)
+        </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">config:</span></p></td>
+<td>A configure service</td>
+</tr>
+<tr>
+<td><p><span class="term">section:</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term">name:</span></p></td>
+<td>Name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term">value:</span></p></td>
+<td>GValue that holds the value.</td>
+</tr>
+<tr>
+<td><p><span class="term">error:</span></p></td>
+<td>Error outputs here.</td>
+</tr>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>TRUE if succeed; FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+<p>Set a value to a configuration option.
+        </p>
+</li>
+<li class="listitem">
+<p>gboolean get_value(IBusConfigService *config, const gchar *section, const gchar *name,
+            GValue *value, IBusError **error)
+        </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">config:</span></p></td>
+<td>A configure service</td>
+</tr>
+<tr>
+<td><p><span class="term">section:</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term">name:</span></p></td>
+<td>Name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term">value:</span></p></td>
+<td>GValue that holds the value.</td>
+</tr>
+<tr>
+<td><p><span class="term">error:</span></p></td>
+<td>Error outputs here.</td>
+</tr>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>TRUE if succeed; FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+<p>Get value of a configuration option.
+       </p>
+</li>
+<li class="listitem">
+<p>gboolean unset(IBusConfigService *config, const gchar *section, const gchar *name,
+            IBusError **error)
+        </p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">config:</span></p></td>
+<td>A configure service</td>
+</tr>
+<tr>
+<td><p><span class="term">section:</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term">name:</span></p></td>
+<td>Name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term">error:</span></p></td>
+<td>Error outputs here.</td>
+</tr>
+<tr>
+<td><p><span class="term">Returns:</span></p></td>
+<td>TRUE if succeed; FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+<p>Remove an entry to a configuration option.
+        </p>
+</li>
+</ul></div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusConfigService.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusConfigService-struct"></a><h3>struct IBusConfigService</h3>
+<pre class="programlisting">struct IBusConfigService;</pre>
+<p>
+An opaque data type representing a configure service.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusConfigServiceClass"></a><h3>struct IBusConfigServiceClass</h3>
+<pre class="programlisting">struct IBusConfigServiceClass {
+    /* class members */
+    gboolean    (* set_value)   (IBusConfigService    *config,
+                                 const gchar          *section,
+                                 const gchar          *name,
+                                 GVariant             *value,
+                                 GError              **error);
+    /**
+     * get_value:
+     * @config: An IBusConfig.
+     * @section: section name
+     * @name: value name
+     *
+     * @returns: (transfer full): The value in config associated with section and name.
+     *
+     */
+    GVariant *  (* get_value)   (IBusConfigService    *config,
+                                 const gchar          *section,
+                                 const gchar          *name,
+                                 GError              **error);
+    gboolean    (* unset_value) (IBusConfigService    *config,
+                                 const gchar          *section,
+                                 const gchar          *name,
+                                 GError              **error);
+    GVariant *  (* get_values)  (IBusConfigService    *config,
+                                 const gchar          *section,
+                                 GError              **error);
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-service-new"></a><h3>ibus_config_service_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusConfigService.html" title="IBusConfigService"><span class="returnvalue">IBusConfigService</span></a> * ibus_config_service_new             (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);</pre>
+<p>
+New an IBusConfigService from an GDBusConnection.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An GDBusConnection.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusConfigServices.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-config-service-value-changed"></a><h3>ibus_config_service_value_changed ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_config_service_value_changed   (<em class="parameter"><code><a class="link" href="IBusConfigService.html" title="IBusConfigService"><span class="type">IBusConfigService</span></a> *config</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *section</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);</pre>
+<p>
+Change a value of a configuration option
+by sending a "ValueChanged" message to IBus service.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>An IBusConfigService.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
+<td>Section name of the configuration option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the configure option.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>GVariant that holds the value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusEngine.html b/docs/reference/ibus/html/IBusEngine.html
new file mode 100644 (file)
index 0000000..7ed8e37
--- /dev/null
@@ -0,0 +1,1748 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusEngine</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="IBusComponent.html" title="IBusComponent">
+<link rel="next" href="IBusEngineDesc.html" title="IBusEngineDesc">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusComponent.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusEngineDesc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusEngine.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusEngine.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusEngine.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusEngine.properties" class="shortcut">Properties</a>
+                   | 
+                  <a href="#IBusEngine.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusEngine"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusEngine.top_of_page"></a>IBusEngine</span></h2>
+<p>IBusEngine — Input method engine abstract.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusEngine.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusEngine.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusEngine.html#IBusEngine-struct" title="struct IBusEngine">IBusEngine</a>;
+struct              <a class="link" href="IBusEngine.html#IBusEngineClass" title="struct IBusEngineClass">IBusEngineClass</a>;
+<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="returnvalue">IBusEngine</span></a> *        <a class="link" href="IBusEngine.html#ibus-engine-new" title="ibus_engine_new ()">ibus_engine_new</a>                     (<em class="parameter"><code>const <span class="type">gchar</span> *engine_name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *object_path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);
+<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="returnvalue">IBusEngine</span></a> *        <a class="link" href="IBusEngine.html#ibus-engine-new-with-type" title="ibus_engine_new_with_type ()">ibus_engine_new_with_type</a>           (<em class="parameter"><code><span class="type">GType</span> engine_type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *engine_name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *object_path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-commit-text" title="ibus_engine_commit_text ()">ibus_engine_commit_text</a>             (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-update-preedit-text" title="ibus_engine_update_preedit_text ()">ibus_engine_update_preedit_text</a>     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-update-preedit-text-with-mode" title="ibus_engine_update_preedit_text_with_mode ()">ibus_engine_update_preedit_text_with_mode</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="ibus-ibustypes.html#IBusPreeditFocusMode" title="enum IBusPreeditFocusMode"><span class="type">IBusPreeditFocusMode</span></a> mode</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-show-preedit-text" title="ibus_engine_show_preedit_text ()">ibus_engine_show_preedit_text</a>       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-hide-preedit-text" title="ibus_engine_hide_preedit_text ()">ibus_engine_hide_preedit_text</a>       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-update-auxiliary-text" title="ibus_engine_update_auxiliary_text ()">ibus_engine_update_auxiliary_text</a>   (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-show-auxiliary-text" title="ibus_engine_show_auxiliary_text ()">ibus_engine_show_auxiliary_text</a>     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-hide-auxiliary-text" title="ibus_engine_hide_auxiliary_text ()">ibus_engine_hide_auxiliary_text</a>     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-update-lookup-table" title="ibus_engine_update_lookup_table ()">ibus_engine_update_lookup_table</a>     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *lookup_table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-update-lookup-table-fast" title="ibus_engine_update_lookup_table_fast ()">ibus_engine_update_lookup_table_fast</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *lookup_table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-show-lookup-table" title="ibus_engine_show_lookup_table ()">ibus_engine_show_lookup_table</a>       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-hide-lookup-table" title="ibus_engine_hide_lookup_table ()">ibus_engine_hide_lookup_table</a>       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-forward-key-event" title="ibus_engine_forward_key_event ()">ibus_engine_forward_key_event</a>       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keycode</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> state</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-register-properties" title="ibus_engine_register_properties ()">ibus_engine_register_properties</a>     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-update-property" title="ibus_engine_update_property ()">ibus_engine_update_property</a>         (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-delete-surrounding-text" title="ibus_engine_delete_surrounding_text ()">ibus_engine_delete_surrounding_text</a> (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> nchars</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-get-surrounding-text" title="ibus_engine_get_surrounding_text ()">ibus_engine_get_surrounding_text</a>    (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> **text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *anchor_pos</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngine.html#ibus-engine-get-content-type" title="ibus_engine_get_content_type ()">ibus_engine_get_content_type</a>        (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *purpose</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *hints</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngine.html#ibus-engine-get-name" title="ibus_engine_get_name ()">ibus_engine_get_name</a>                (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusEngine.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+                     +----IBusEngine
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusEngine.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusEngine.html#IBusEngine--engine-name" title='The "engine-name" property'>engine-name</a>"              <span class="type">gchar</span>*                : Read / Write / Construct Only
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusEngine.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusEngine.html#IBusEngine-cancel-hand-writing" title='The "cancel-hand-writing" signal'>cancel-hand-writing</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-candidate-clicked" title='The "candidate-clicked" signal'>candidate-clicked</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-cursor-down" title='The "cursor-down" signal'>cursor-down</a>"                                    : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-cursor-up" title='The "cursor-up" signal'>cursor-up</a>"                                      : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-disable" title='The "disable" signal'>disable</a>"                                        : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-enable" title='The "enable" signal'>enable</a>"                                         : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-focus-in" title='The "focus-in" signal'>focus-in</a>"                                       : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-focus-out" title='The "focus-out" signal'>focus-out</a>"                                      : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-page-down" title='The "page-down" signal'>page-down</a>"                                      : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-page-up" title='The "page-up" signal'>page-up</a>"                                        : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-process-hand-writing-event" title='The "process-hand-writing-event" signal'>process-hand-writing-event</a>"                     : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-process-key-event" title='The "process-key-event" signal'>process-key-event</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-property-activate" title='The "property-activate" signal'>property-activate</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-property-hide" title='The "property-hide" signal'>property-hide</a>"                                  : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-property-show" title='The "property-show" signal'>property-show</a>"                                  : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-reset" title='The "reset" signal'>reset</a>"                                          : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-set-capabilities" title='The "set-capabilities" signal'>set-capabilities</a>"                               : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-set-content-type" title='The "set-content-type" signal'>set-content-type</a>"                               : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-set-cursor-location" title='The "set-cursor-location" signal'>set-cursor-location</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusEngine.html#IBusEngine-set-surrounding-text" title='The "set-surrounding-text" signal'>set-surrounding-text</a>"                           : <code class="literal">Run Last</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusEngine.description"></a><h2>Description</h2>
+<p>
+An IBusEngine provides infrastructure for input method engine.
+Developers can "extend" this class for input method engine development.
+</p>
+<p>
+see_also: <a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a>, <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a>
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusEngine.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusEngine-struct"></a><h3>struct IBusEngine</h3>
+<pre class="programlisting">struct IBusEngine {
+    gboolean enabled;
+    gboolean has_focus;
+
+    /* cursor location */
+    IBusRectangle cursor_area;
+    guint client_capabilities;
+};
+</pre>
+<p>
+IBusEngine properties.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">gboolean</span> <em class="structfield"><code><a name="IBusEngine-struct.enabled"></a>enabled</code></em>;</span></p></td>
+<td>Whether the engine is enabled.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gboolean</span> <em class="structfield"><code><a name="IBusEngine-struct.has-focus"></a>has_focus</code></em>;</span></p></td>
+<td>Whether the engine has focus.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="ibus-ibustypes.html#IBusRectangle" title="struct IBusRectangle"><span class="type">IBusRectangle</span></a> <em class="structfield"><code><a name="IBusEngine-struct.cursor-area"></a>cursor_area</code></em>;</span></p></td>
+<td>Area of cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint</span> <em class="structfield"><code><a name="IBusEngine-struct.client-capabilities"></a>client_capabilities</code></em>;</span></p></td>
+<td>IBusCapabilite (client capabilities) flags.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineClass"></a><h3>struct IBusEngineClass</h3>
+<pre class="programlisting">struct IBusEngineClass {
+    /* signals */
+    gboolean    (* process_key_event)
+                                    (IBusEngine     *engine,
+                                     guint           keyval,
+                                     guint           keycode,
+                                     guint           state);
+    void        (* focus_in)        (IBusEngine     *engine);
+    void        (* focus_out)       (IBusEngine     *engine);
+    void        (* reset)           (IBusEngine     *engine);
+    void        (* enable)          (IBusEngine     *engine);
+    void        (* disable)         (IBusEngine     *engine);
+    void        (* set_cursor_location)
+                                    (IBusEngine     *engine,
+                                    gint             x,
+                                    gint             y,
+                                    gint             w,
+                                    gint             h);
+    void        (* set_capabilities)
+                                    (IBusEngine     *engine,
+                                     guint           caps);
+
+    void        (* page_up)         (IBusEngine     *engine);
+    void        (* page_down)       (IBusEngine     *engine);
+    void        (* cursor_up)       (IBusEngine     *engine);
+    void        (* cursor_down)     (IBusEngine     *engine);
+
+    void        (* property_activate)
+                                    (IBusEngine     *engine,
+                                     const gchar    *prop_name,
+                                     guint           prop_state);
+    void        (* property_show)   (IBusEngine     *engine,
+                                     const gchar    *prop_name);
+    void        (* property_hide)   (IBusEngine     *engine,
+                                     const gchar    *prop_name);
+    void        (* candidate_clicked)
+                                    (IBusEngine     *engine,
+                                     guint           index,
+                                     guint           button,
+                                     guint           state);
+    void        (* set_surrounding_text)
+                                    (IBusEngine     *engine,
+                                     IBusText       *text,
+                                     guint           cursor_index,
+                                     guint           anchor_pos);
+    void        (* process_hand_writing_event)
+                                    (IBusEngine     *engine,
+                                     const gdouble  *coordinates,
+                                     guint           coordinates_len);
+    void        (* cancel_hand_writing)
+                                    (IBusEngine     *engine,
+                                     guint           n_strokes);
+    void        (* set_content_type)
+                                    (IBusEngine     *engine,
+                                     guint           purpose,
+                                     guint           hints);
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-new"></a><h3>ibus_engine_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="returnvalue">IBusEngine</span></a> *        ibus_engine_new                     (<em class="parameter"><code>const <span class="type">gchar</span> *engine_name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *object_path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);</pre>
+<p>
+New an IBusEngine.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine_name</code></em> :</span></p></td>
+<td>Name of the IBusObject.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>Path for IBusService.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An opened GDBusConnection.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusEngine.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-new-with-type"></a><h3>ibus_engine_new_with_type ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="returnvalue">IBusEngine</span></a> *        ibus_engine_new_with_type           (<em class="parameter"><code><span class="type">GType</span> engine_type</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *engine_name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *object_path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);</pre>
+<p>
+New an IBusEngine.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine_type</code></em> :</span></p></td>
+<td>GType of <a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine_name</code></em> :</span></p></td>
+<td>Name of the IBusObject.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
+<td>Path for IBusService.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An opened GDBusConnection.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusEngine.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-commit-text"></a><h3>ibus_engine_commit_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_commit_text             (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);</pre>
+<p>
+Commit output of input method to IBus client.
+</p>
+<p>
+(Note: The text object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>String commit to IBusEngine.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-update-preedit-text"></a><h3>ibus_engine_update_preedit_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_update_preedit_text     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);</pre>
+<p>
+Update the pre-edit buffer.
+</p>
+<p>
+(Note: The text object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>Update content.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_pos</code></em> :</span></p></td>
+<td>Current position of cursor</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the pre-edit buffer is visible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-update-preedit-text-with-mode"></a><h3>ibus_engine_update_preedit_text_with_mode ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_update_preedit_text_with_mode
+                                                        (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="ibus-ibustypes.html#IBusPreeditFocusMode" title="enum IBusPreeditFocusMode"><span class="type">IBusPreeditFocusMode</span></a> mode</code></em>);</pre>
+<p>
+Update the pre-edit buffer with commit mode. Similar to
+<a class="link" href="IBusEngine.html#ibus-engine-update-preedit-text" title="ibus_engine_update_preedit_text ()"><code class="function">ibus_engine_update_preedit_text()</code></a>, this function allows users to specify
+the behavior on focus out when the pre-edit buffer is visible.
+</p>
+<p>
+If <em class="parameter"><code>mode</code></em> is IBUS_ENGINE_PREEDIT_COMMIT, contents of the pre-edit buffer
+will be comitted and cleared.
+If <em class="parameter"><code>mode</code></em> is IBUS_ENGINE_PREEDIT_CLEAR, contents of the pre-edit buffer
+will be cleared only.
+</p>
+<p>
+(Note: The text object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>Update content.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_pos</code></em> :</span></p></td>
+<td>Current position of cursor</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the pre-edit buffer is visible.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
+<td>Pre-edit commit mode when the focus is lost.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-show-preedit-text"></a><h3>ibus_engine_show_preedit_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_show_preedit_text       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);</pre>
+<p>
+Show the pre-edit buffer.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-hide-preedit-text"></a><h3>ibus_engine_hide_preedit_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_hide_preedit_text       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);</pre>
+<p>
+Hide the pre-edit buffer.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-update-auxiliary-text"></a><h3>ibus_engine_update_auxiliary_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_update_auxiliary_text   (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);</pre>
+<p>
+Update the auxiliary bar.
+</p>
+<p>
+(Note: The text object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>Update content.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the auxiliary text bar is visible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-show-auxiliary-text"></a><h3>ibus_engine_show_auxiliary_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_show_auxiliary_text     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);</pre>
+<p>
+Show the auxiliary bar.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-hide-auxiliary-text"></a><h3>ibus_engine_hide_auxiliary_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_hide_auxiliary_text     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);</pre>
+<p>
+Hide the auxiliary bar.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-update-lookup-table"></a><h3>ibus_engine_update_lookup_table ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_update_lookup_table     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *lookup_table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);</pre>
+<p>
+Update the lookup table.
+</p>
+<p>
+(Note: The table object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>lookup_table</code></em> :</span></p></td>
+<td>An lookup_table.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the lookup_table is visible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-update-lookup-table-fast"></a><h3>ibus_engine_update_lookup_table_fast ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_update_lookup_table_fast
+                                                        (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *lookup_table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);</pre>
+<p>
+Fast update for big lookup table.
+</p>
+<p>
+If size of lookup table is not over table page size *4,
+then it calls <a class="link" href="IBusEngine.html#ibus-engine-update-lookup-table" title="ibus_engine_update_lookup_table ()"><code class="function">ibus_engine_update_lookup_table()</code></a>.
+</p>
+<p>
+(Note: The table object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>lookup_table</code></em> :</span></p></td>
+<td>An lookup_table.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the lookup_table is visible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-show-lookup-table"></a><h3>ibus_engine_show_lookup_table ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_show_lookup_table       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);</pre>
+<p>
+Show the lookup table.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-hide-lookup-table"></a><h3>ibus_engine_hide_lookup_table ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_hide_lookup_table       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);</pre>
+<p>
+Hide the lookup table.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-forward-key-event"></a><h3>ibus_engine_forward_key_event ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_forward_key_event       (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keycode</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> state</code></em>);</pre>
+<p>
+Forward the key event.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>KeySym.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keycode</code></em> :</span></p></td>
+<td>keyboard scancode.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>Key modifier flags.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-register-properties"></a><h3>ibus_engine_register_properties ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_register_properties     (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>);</pre>
+<p>
+Register and show properties in language bar.
+</p>
+<p>
+(Note: The prop_list object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_list</code></em> :</span></p></td>
+<td>Property List.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-update-property"></a><h3>ibus_engine_update_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_update_property         (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Update the state displayed in language bar.
+</p>
+<p>
+(Note: The prop object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>IBusProperty to be updated.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-delete-surrounding-text"></a><h3>ibus_engine_delete_surrounding_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_delete_surrounding_text (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> offset</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> nchars</code></em>);</pre>
+<p>
+Delete surrounding text.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
+<td>The offset of the first char.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nchars</code></em> :</span></p></td>
+<td>Number of chars to be deleted.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-get-surrounding-text"></a><h3>ibus_engine_get_surrounding_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_get_surrounding_text    (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> **text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *anchor_pos</code></em>);</pre>
+<p>
+Get surrounding text.
+</p>
+<p>
+It is also used to tell the input-context that the engine will
+utilize surrounding-text.  In that case, it must be called in
+<a class="link" href="IBusEngine.html#IBusEngine-enable" title='The "enable" signal'><span class="type">"enable"</span></a> handler, with both <em class="parameter"><code>text</code></em> and <em class="parameter"><code>cursor</code></em> set to
+<code class="literal">NULL</code>.
+</p>
+<p>
+See also: <a class="link" href="IBusEngine.html#IBusEngine-set-surrounding-text" title='The "set-surrounding-text" signal'><span class="type">"set-surrounding-text"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>Location to store surrounding text. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_pos</code></em> :</span></p></td>
+<td>Cursor position in characters in <em class="parameter"><code>text</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>anchor_pos</code></em> :</span></p></td>
+<td>Anchor position of selection in <em class="parameter"><code>text</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-get-content-type"></a><h3>ibus_engine_get_content_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_get_content_type        (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *purpose</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *hints</code></em>);</pre>
+<p>
+Get content-type (primary purpose and hints) of the current input
+context.
+</p>
+<p>
+See also: <a class="link" href="IBusEngine.html#IBusEngine-set-content-type" title='The "set-content-type" signal'><span class="type">"set-content-type"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>purpose</code></em> :</span></p></td>
+<td>Primary purpose of the input context. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>hints</code></em> :</span></p></td>
+<td>Hints that augument <em class="parameter"><code>purpose</code></em>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-get-name"></a><h3>ibus_engine_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_get_name                (<em class="parameter"><code><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine</code></em>);</pre>
+<p>
+Return the name of IBusEngine.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Name of IBusEngine.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusEngine.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="IBusEngine--engine-name"></a><h3>The <code class="literal">"engine-name"</code> property</h3>
+<pre class="programlisting">  "engine-name"              <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>engine name.</p>
+<p>Default value: "noname"</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusEngine.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusEngine-cancel-hand-writing"></a><h3>The <code class="literal">"cancel-hand-writing"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">guint</span>       n_strokes,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when a hand writing operation is cancelled.
+Implement the member function <code class="function">cancel_hand_writing()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_strokes</code></em> :</span></p></td>
+<td>The number of strokes to be removed. 0 means "remove all".</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-candidate-clicked"></a><h3>The <code class="literal">"candidate-clicked"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">guint</span>       index,
+                                                        <span class="type">guint</span>       button,
+                                                        <span class="type">guint</span>       state,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when candidate on lookup table is clicked.
+Implement the member function <code class="function">candidate_clicked()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>Index of candidate be clicked.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>button</code></em> :</span></p></td>
+<td>Mouse button.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>Keyboard state.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-cursor-down"></a><h3>The <code class="literal">"cursor-down"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the down cursor button is pressed.
+Implement the member function <code class="function">cursor_down()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-cursor-up"></a><h3>The <code class="literal">"cursor-up"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the up cursor button is pressed.
+Implement the member function <code class="function">cursor_up()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-disable"></a><h3>The <code class="literal">"disable"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the IME is disabled.
+Implement the member function <code class="function">set_disable()</code> in extended class to receive this signal.
+</p>
+<p>
+See also:  <code class="function">ibus_input_context_disable()</code>.
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-enable"></a><h3>The <code class="literal">"enable"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the IME is enabled.
+Implement the member function <code class="function">set_enable()</code> in extended class to receive this signal.
+</p>
+<p>
+See also:  <code class="function">ibus_input_context_enable()</code>.
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-focus-in"></a><h3>The <code class="literal">"focus-in"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the focus.
+Implement the member function <code class="function">focus_in()</code> in extended class to receive this signal.
+</p>
+<p>
+See also: <a class="link" href="IBusInputContext.html#ibus-input-context-focus-in" title="ibus_input_context_focus_in ()"><code class="function">ibus_input_context_focus_in()</code></a>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-focus-out"></a><h3>The <code class="literal">"focus-out"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application  lost the focus.
+Implement the member function <code class="function">focus_out()</code> in extended class to receive this signal.
+</p>
+<p>
+See also: <a class="link" href="IBusInputContext.html#ibus-input-context-focus-out" title="ibus_input_context_focus_out ()"><code class="function">ibus_input_context_focus_out()</code></a>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-page-down"></a><h3>The <code class="literal">"page-down"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the page-down button is pressed.
+Implement the member function <code class="function">page_down()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-page-up"></a><h3>The <code class="literal">"page-up"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the page-up button is pressed.
+Implement the member function <code class="function">page_up()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-process-hand-writing-event"></a><h3>The <code class="literal">"process-hand-writing-event"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    coordinates,
+                                                        <span class="type">guint</span>       coordinates_len,
+                                                        <span class="type">gpointer</span>    user_data)            : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when a hand writing operation is cancelled.
+Implement the member function <code class="function">cancel_hand_writing()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>coordinates</code></em> :</span></p></td>
+<td>An array of double (0.0 to 1.0) which represents a stroke (i.e. [x1, y1, x2, y2, x3, y3, ...]).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>coordinates_len</code></em> :</span></p></td>
+<td>The number of elements in the array.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-process-key-event"></a><h3>The <code class="literal">"process-key-event"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">guint</span>       keyval,
+                                                        <span class="type">guint</span>       keycode,
+                                                        <span class="type">guint</span>       state,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when a key event is received.
+Implement the member function <code class="function">process_key_event()</code> in extended class to receive this signal.
+Both the key symbol and keycode are passed to the member function.
+See <a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event" title="ibus_input_context_process_key_event ()"><code class="function">ibus_input_context_process_key_event()</code></a> for further explanation of
+key symbol, keycode and which to use.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Key symbol of the key press.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keycode</code></em> :</span></p></td>
+<td>KeyCode of the key press.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>Key modifier flags.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE for successfully process the key; FALSE otherwise.
+See also:  <a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event" title="ibus_input_context_process_key_event ()"><code class="function">ibus_input_context_process_key_event()</code></a>.
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-property-activate"></a><h3>The <code class="literal">"property-activate"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gchar</span>      *name,
+                                                        <span class="type">guint</span>       state,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when a property is activated or change changed.
+Implement the member function <code class="function">property_activate()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Property name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>Property state.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-property-hide"></a><h3>The <code class="literal">"property-hide"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gchar</span>      *name,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when a property is hidden.
+Implement the member function <code class="function">property_hide()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Property name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-property-show"></a><h3>The <code class="literal">"property-show"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gchar</span>      *name,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when a property is shown.
+Implement the member function <code class="function">property_side()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Property name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-reset"></a><h3>The <code class="literal">"reset"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the IME is reset.
+Implement the member function <code class="function">reset()</code> in extended class to receive this signal.
+</p>
+<p>
+See also:  <a class="link" href="IBusInputContext.html#ibus-input-context-reset" title="ibus_input_context_reset ()"><code class="function">ibus_input_context_reset()</code></a>.
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-set-capabilities"></a><h3>The <code class="literal">"set-capabilities"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">guint</span>       caps,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application capabilities is set.
+Implement the member function <code class="function">set_capabilities()</code> in extended class to receive this signal.
+</p>
+<p>
+See also:  <a class="link" href="IBusInputContext.html#ibus-input-context-set-capabilities" title="ibus_input_context_set_capabilities ()"><code class="function">ibus_input_context_set_capabilities()</code></a>.
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>Capabilities flags of IBusEngine, see <a class="link" href="ibus-ibustypes.html#IBusCapabilite"><span class="type">IBusCapabilite</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-set-content-type"></a><h3>The <code class="literal">"set-content-type"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">guint</span>       purpose,
+                                                        <span class="type">guint</span>       hints,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application content-type (primary
+purpose and hints) is set.  The engine could change the
+behavior according to the content-type.  Implement the member
+function <code class="function">set_content_type()</code> in extended class to receive this
+signal.
+</p>
+<p>
+For example, if the client application wants to restrict input
+to numbers, this signal will be emitted with <em class="parameter"><code>purpose</code></em> set to
+<a class="link" href="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-NUMBER:CAPS"><span class="type">IBUS_INPUT_PURPOSE_NUMBER</span></a>, so the engine can switch the input
+mode to latin.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this
+function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>purpose</code></em> :</span></p></td>
+<td>Primary purpose of the input context, as an <a class="link" href="ibus-ibustypes.html#IBusInputPurpose" title="enum IBusInputPurpose"><span class="type">IBusInputPurpose</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>hints</code></em> :</span></p></td>
+<td>Hints that augment <em class="parameter"><code>purpose</code></em>, as an <a class="link" href="ibus-ibustypes.html#IBusInputHints" title="enum IBusInputHints"><span class="type">IBusInputHints</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-set-cursor-location"></a><h3>The <code class="literal">"set-cursor-location"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">gint</span>        x,
+                                                        <span class="type">gint</span>        y,
+                                                        <span class="type">gint</span>        w,
+                                                        <span class="type">gint</span>        h,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the location of IME is set.
+Implement the member function <code class="function">set_cursor_location()</code> in extended class to receive this signal.
+</p>
+<p>
+See also:  <a class="link" href="IBusInputContext.html#ibus-input-context-set-cursor-location" title="ibus_input_context_set_cursor_location ()"><code class="function">ibus_input_context_set_cursor_location()</code></a>.
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>X coordinate of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>Y coordinate of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>Width of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>Height of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngine-set-surrounding-text"></a><h3>The <code class="literal">"set-surrounding-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> *engine,
+                                                        <span class="type">GObject</span>    *text,
+                                                        <span class="type">guint</span>       cursor_pos,
+                                                        <span class="type">guint</span>       anchor_pos,
+                                                        <span class="type">gpointer</span>    user_data)       : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when a surrounding text is set.
+Implement the member function <code class="function">set_surrounding_text()</code> in extended class to receive this signal.
+If anchor_pos equals to cursor_pos, it means "there are no selection" or "does not support
+selection retrival".
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine</code></em> :</span></p></td>
+<td>An IBusEngine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>The surrounding text.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_pos</code></em> :</span></p></td>
+<td>The cursor position on surrounding text.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>anchor_pos</code></em> :</span></p></td>
+<td>The anchor position on selection area.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusEngineDesc.html b/docs/reference/ibus/html/IBusEngineDesc.html
new file mode 100644 (file)
index 0000000..a9b76dd
--- /dev/null
@@ -0,0 +1,849 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusEngineDesc</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="IBusEngine.html" title="IBusEngine">
+<link rel="next" href="ibus-IBusEngineSimple.html" title="IBusEngineSimple">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusEngine.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-IBusEngineSimple.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusEngineDesc.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusEngineDesc.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusEngineDesc.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusEngineDesc.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusEngineDesc"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusEngineDesc.top_of_page"></a>IBusEngineDesc</span></h2>
+<p>IBusEngineDesc — Input method engine description data.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusEngineDesc.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusEngineDesc.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusEngineDesc.html#IBusEngineDesc-struct" title="struct IBusEngineDesc">IBusEngineDesc</a>;
+struct              <a class="link" href="IBusEngineDesc.html#IBusEngineDescClass" title="struct IBusEngineDescClass">IBusEngineDescClass</a>;
+<a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new" title="ibus_engine_desc_new ()">ibus_engine_desc_new</a>                (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *longname</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *description</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *language</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *license</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *author</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *icon</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *layout</code></em>);
+<a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new-varargs" title="ibus_engine_desc_new_varargs ()">ibus_engine_desc_new_varargs</a>        (<em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);
+<a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new-from-xml-node" title="ibus_engine_desc_new_from_xml_node ()">ibus_engine_desc_new_from_xml_node</a>  (<em class="parameter"><code><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-name" title="ibus_engine_desc_get_name ()">ibus_engine_desc_get_name</a>           (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-longname" title="ibus_engine_desc_get_longname ()">ibus_engine_desc_get_longname</a>       (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-description" title="ibus_engine_desc_get_description ()">ibus_engine_desc_get_description</a>    (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-language" title="ibus_engine_desc_get_language ()">ibus_engine_desc_get_language</a>       (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-license" title="ibus_engine_desc_get_license ()">ibus_engine_desc_get_license</a>        (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-author" title="ibus_engine_desc_get_author ()">ibus_engine_desc_get_author</a>         (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-icon" title="ibus_engine_desc_get_icon ()">ibus_engine_desc_get_icon</a>           (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-layout" title="ibus_engine_desc_get_layout ()">ibus_engine_desc_get_layout</a>         (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-layout-variant" title="ibus_engine_desc_get_layout_variant ()">ibus_engine_desc_get_layout_variant</a> (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-layout-option" title="ibus_engine_desc_get_layout_option ()">ibus_engine_desc_get_layout_option</a>  (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-rank" title="ibus_engine_desc_get_rank ()">ibus_engine_desc_get_rank</a>           (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-hotkeys" title="ibus_engine_desc_get_hotkeys ()">ibus_engine_desc_get_hotkeys</a>        (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-symbol" title="ibus_engine_desc_get_symbol ()">ibus_engine_desc_get_symbol</a>         (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-setup" title="ibus_engine_desc_get_setup ()">ibus_engine_desc_get_setup</a>          (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-version" title="ibus_engine_desc_get_version ()">ibus_engine_desc_get_version</a>        (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-textdomain" title="ibus_engine_desc_get_textdomain ()">ibus_engine_desc_get_textdomain</a>     (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-output" title="ibus_engine_desc_output ()">ibus_engine_desc_output</a>             (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> indent</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusEngineDesc.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusEngineDesc
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusEngineDesc.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--author" title='The "author" property'>author</a>"                   <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--description" title='The "description" property'>description</a>"              <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--hotkeys" title='The "hotkeys" property'>hotkeys</a>"                  <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--icon" title='The "icon" property'>icon</a>"                     <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--language" title='The "language" property'>language</a>"                 <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--layout" title='The "layout" property'>layout</a>"                   <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--layout-option" title='The "layout-option" property'>layout-option</a>"            <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--layout-variant" title='The "layout-variant" property'>layout-variant</a>"           <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--license" title='The "license" property'>license</a>"                  <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--longname" title='The "longname" property'>longname</a>"                 <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--name" title='The "name" property'>name</a>"                     <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--rank" title='The "rank" property'>rank</a>"                     <span class="type">guint</span>                 : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--setup" title='The "setup" property'>setup</a>"                    <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--symbol" title='The "symbol" property'>symbol</a>"                   <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--textdomain" title='The "textdomain" property'>textdomain</a>"               <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--version" title='The "version" property'>version</a>"                  <span class="type">gchar</span>*                : Read / Write / Construct Only
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusEngineDesc.description"></a><h2>Description</h2>
+<p>
+An IBusEngineDesc stores description data of IBusEngine.
+The description data can either be passed to <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new" title="ibus_engine_desc_new ()"><code class="function">ibus_engine_desc_new()</code></a>,
+or loaded from an XML node through <a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new-from-xml-node" title="ibus_engine_desc_new_from_xml_node ()"><code class="function">ibus_engine_desc_new_from_xml_node()</code></a>
+to construct IBusEngineDesc.
+</p>
+<p>
+However, the recommended way to load engine description data is
+using <a class="link" href="IBusComponent.html#ibus-component-new-from-file" title="ibus_component_new_from_file ()"><code class="function">ibus_component_new_from_file()</code></a> to load a component file,
+which also includes engine description data.
+</p>
+<p>
+<em class="parameter"><code>see_also</code></em>: <a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a>, <a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a>
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusEngineDesc.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusEngineDesc-struct"></a><h3>struct IBusEngineDesc</h3>
+<pre class="programlisting">struct IBusEngineDesc;</pre>
+<p>
+Input method engine description data.
+You can get extended values with g_object_get_properties.
+name: Name of the engine.
+longname: Long name of the input method engine.
+description: Input method engine description.
+language: Language (e.g. zh, jp) supported by this input method engine.
+license: License of the input method engine.
+author: Author of the input method engine.
+icon: Icon file of this engine.
+layout: Keyboard layout
+layout_variant: Keyboard variant
+layout_option: Keyboard option
+rank: Preference rank among engines, the highest ranked IME will put in
+the front.
+hotkeys: One or more hotkeys for switching to this engine, separated by
+ semi-colon.
+setup: Exec lists of the engine setup command.
+version: Version number of the input method engine.
+textdomain: Domain name for <code class="function">dgettext()</code>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDescClass"></a><h3>struct IBusEngineDescClass</h3>
+<pre class="programlisting">struct IBusEngineDescClass {
+    IBusSerializableClass parent;
+    /* class members */
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-new"></a><h3>ibus_engine_desc_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    ibus_engine_desc_new                (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *longname</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *description</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *language</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *license</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *author</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *icon</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *layout</code></em>);</pre>
+<p>
+New a IBusEngineDesc.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>Name of the engine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>longname</code></em> :</span></p></td>
+<td>Long name of the input method engine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>description</code></em> :</span></p></td>
+<td>Input method engine description.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>language</code></em> :</span></p></td>
+<td>Language (e.g. zh, jp) supported by this input method engine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license</code></em> :</span></p></td>
+<td>License of the input method engine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>author</code></em> :</span></p></td>
+<td>Author of the input method engine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>icon</code></em> :</span></p></td>
+<td>Icon file of this engine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>layout</code></em> :</span></p></td>
+<td>Keyboard layout</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusEngineDesc.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-new-varargs"></a><h3>ibus_engine_desc_new_varargs ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    ibus_engine_desc_new_varargs        (<em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);</pre>
+<p>
+New a IBusEngineDesc.
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new-varargs" title="ibus_engine_desc_new_varargs ()"><code class="function">ibus_engine_desc_new_varargs()</code></a> supports the va_list format.
+name property is required. e.g.
+ibus_engine_desc_new_varargs("name", "ibus-foo", "language", "us", NULL)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>first_property_name</code></em> :</span></p></td>
+<td>Name of the first property.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-new-from-xml-node"></a><h3>ibus_engine_desc_new_from_xml_node ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    ibus_engine_desc_new_from_xml_node  (<em class="parameter"><code><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>);</pre>
+<p>
+New a IBusEngineDesc from an XML node.
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>This function is called by <a class="link" href="IBusComponent.html#ibus-component-new-from-file" title="ibus_component_new_from_file ()"><code class="function">ibus_component_new_from_file()</code></a>,
+ so developers normally do not need to call it directly.
+</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>An XML node</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusEngineDesc that contains description from
+<em class="parameter"><code>node</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-name"></a><h3>ibus_engine_desc_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_name           (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the name property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>name property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-longname"></a><h3>ibus_engine_desc_get_longname ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_longname       (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the longname property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>longname property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-description"></a><h3>ibus_engine_desc_get_description ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_description    (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the description property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>description property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-language"></a><h3>ibus_engine_desc_get_language ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_language       (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the language property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>language property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-license"></a><h3>ibus_engine_desc_get_license ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_license        (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the license property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>license property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-author"></a><h3>ibus_engine_desc_get_author ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_author         (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the author property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>author property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-icon"></a><h3>ibus_engine_desc_get_icon ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_icon           (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the icon property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>icon property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-layout"></a><h3>ibus_engine_desc_get_layout ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_layout         (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the layout property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>layout property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-layout-variant"></a><h3>ibus_engine_desc_get_layout_variant ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_layout_variant (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the keyboard variant property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>keyboard variant property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-layout-option"></a><h3>ibus_engine_desc_get_layout_option ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_layout_option  (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the keyboard option property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>keyboard option property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-rank"></a><h3>ibus_engine_desc_get_rank ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_engine_desc_get_rank           (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the rank property in IBusEngineDesc.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>rank property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-hotkeys"></a><h3>ibus_engine_desc_get_hotkeys ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_hotkeys        (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the hotkeys property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>hotkeys property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-symbol"></a><h3>ibus_engine_desc_get_symbol ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_symbol         (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the symbol property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>symbol property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-setup"></a><h3>ibus_engine_desc_get_setup ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_setup          (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the setup property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>setup property in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-version"></a><h3>ibus_engine_desc_get_version ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_version        (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the version property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>version in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-get-textdomain"></a><h3>ibus_engine_desc_get_textdomain ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_engine_desc_get_textdomain     (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>);</pre>
+<p>
+Return the textdomain property in IBusEngineDesc. It should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>textdomain in IBusEngineDesc</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-desc-output"></a><h3>ibus_engine_desc_output ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_desc_output             (<em class="parameter"><code><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a> *info</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> indent</code></em>);</pre>
+<p>
+Output XML-formatted input method engine description.
+The result will be append to GString specified in <em class="parameter"><code>output</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>An IBusEngineDesc</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
+<td>XML-formatted Input method engine description.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indent</code></em> :</span></p></td>
+<td>Number of indent (showed as 4 spaces).</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusEngineDesc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="IBusEngineDesc--author"></a><h3>The <code class="literal">"author"</code> property</h3>
+<pre class="programlisting">  "author"                   <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The author of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--description"></a><h3>The <code class="literal">"description"</code> property</h3>
+<pre class="programlisting">  "description"              <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The description of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--hotkeys"></a><h3>The <code class="literal">"hotkeys"</code> property</h3>
+<pre class="programlisting">  "hotkeys"                  <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The hotkeys of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--icon"></a><h3>The <code class="literal">"icon"</code> property</h3>
+<pre class="programlisting">  "icon"                     <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The icon of engine description
+</p>
+<p>Default value: "ibus-engine"</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--language"></a><h3>The <code class="literal">"language"</code> property</h3>
+<pre class="programlisting">  "language"                 <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The language of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--layout"></a><h3>The <code class="literal">"layout"</code> property</h3>
+<pre class="programlisting">  "layout"                   <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The layout of engine description
+</p>
+<p>Default value: "us"</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--layout-option"></a><h3>The <code class="literal">"layout-option"</code> property</h3>
+<pre class="programlisting">  "layout-option"            <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The keyboard option of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--layout-variant"></a><h3>The <code class="literal">"layout-variant"</code> property</h3>
+<pre class="programlisting">  "layout-variant"           <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The keyboard variant of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--license"></a><h3>The <code class="literal">"license"</code> property</h3>
+<pre class="programlisting">  "license"                  <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The license of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--longname"></a><h3>The <code class="literal">"longname"</code> property</h3>
+<pre class="programlisting">  "longname"                 <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The longname of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--name"></a><h3>The <code class="literal">"name"</code> property</h3>
+<pre class="programlisting">  "name"                     <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The name of engine description
+</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--rank"></a><h3>The <code class="literal">"rank"</code> property</h3>
+<pre class="programlisting">  "rank"                     <span class="type">guint</span>                 : Read / Write / Construct Only</pre>
+<p>
+The rank of engine description
+</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--setup"></a><h3>The <code class="literal">"setup"</code> property</h3>
+<pre class="programlisting">  "setup"                    <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The exec lists of the engine setup command
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--symbol"></a><h3>The <code class="literal">"symbol"</code> property</h3>
+<pre class="programlisting">  "symbol"                   <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The symbol chars of engine description instead of icon image
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--textdomain"></a><h3>The <code class="literal">"textdomain"</code> property</h3>
+<pre class="programlisting">  "textdomain"               <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The textdomain of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineDesc--version"></a><h3>The <code class="literal">"version"</code> property</h3>
+<pre class="programlisting">  "version"                  <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>
+The version number of engine description
+</p>
+<p>Default value: ""</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusFactory.html b/docs/reference/ibus/html/IBusFactory.html
new file mode 100644 (file)
index 0000000..96e0ad1
--- /dev/null
@@ -0,0 +1,240 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusFactory</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="ibus-IBusEngineSimple.html" title="IBusEngineSimple">
+<link rel="next" href="IBusInputContext.html" title="IBusInputContext">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ibus-IBusEngineSimple.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusInputContext.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusFactory.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusFactory.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusFactory.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusFactory.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusFactory"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusFactory.top_of_page"></a>IBusFactory</span></h2>
+<p>IBusFactory — Factory for creating engine instances.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusFactory.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusFactory.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusFactory.html#IBusFactory-struct" title="struct IBusFactory">IBusFactory</a>;
+struct              <a class="link" href="IBusFactory.html#IBusFactoryClass" title="struct IBusFactoryClass">IBusFactoryClass</a>;
+<a class="link" href="IBusFactory.html" title="IBusFactory"><span class="returnvalue">IBusFactory</span></a> *       <a class="link" href="IBusFactory.html#ibus-factory-new" title="ibus_factory_new ()">ibus_factory_new</a>                    (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusFactory.html#ibus-factory-add-engine" title="ibus_factory_add_engine ()">ibus_factory_add_engine</a>             (<em class="parameter"><code><a class="link" href="IBusFactory.html" title="IBusFactory"><span class="type">IBusFactory</span></a> *factory</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *engine_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GType</span> engine_type</code></em>);
+<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="returnvalue">IBusEngine</span></a> *        <a class="link" href="IBusFactory.html#ibus-factory-create-engine" title="ibus_factory_create_engine ()">ibus_factory_create_engine</a>          (<em class="parameter"><code><a class="link" href="IBusFactory.html" title="IBusFactory"><span class="type">IBusFactory</span></a> *factory</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *engine_name</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusFactory.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+                     +----IBusFactory
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusFactory.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusFactory.html#IBusFactory-create-engine" title='The "create-engine" signal'>create-engine</a>"                                  : <code class="literal">Run Last</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusFactory.description"></a><h2>Description</h2>
+<p>
+An IBusFactory is an <a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> that creates input method engine (IME) instance.
+It provides CreateEngine remote method, which creates an IME instance by name,
+and returns the D-Bus object path to IBus daemon.
+</p>
+<p>
+<em class="parameter"><code>see_also</code></em>: <a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a>
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusFactory.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusFactory-struct"></a><h3>struct IBusFactory</h3>
+<pre class="programlisting">struct IBusFactory;</pre>
+<p>
+An opaque data type representing an IBusFactory.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusFactoryClass"></a><h3>struct IBusFactoryClass</h3>
+<pre class="programlisting">struct IBusFactoryClass {
+    /* signals */
+    IBusEngine *
+                (* create_engine)
+                                    (IBusFactory    *factory,
+                                     const gchar    *engine_name);
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-factory-new"></a><h3>ibus_factory_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusFactory.html" title="IBusFactory"><span class="returnvalue">IBusFactory</span></a> *       ibus_factory_new                    (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);</pre>
+<p>
+New an IBusFactory.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An GDBusConnection.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusFactory.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-factory-add-engine"></a><h3>ibus_factory_add_engine ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_factory_add_engine             (<em class="parameter"><code><a class="link" href="IBusFactory.html" title="IBusFactory"><span class="type">IBusFactory</span></a> *factory</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *engine_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GType</span> engine_type</code></em>);</pre>
+<p>
+Add an engine to the factory.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
+<td>An IBusFactory.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine_name</code></em> :</span></p></td>
+<td>Name of an engine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine_type</code></em> :</span></p></td>
+<td>GType of an engine.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-factory-create-engine"></a><h3>ibus_factory_create_engine ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="returnvalue">IBusEngine</span></a> *        ibus_factory_create_engine          (<em class="parameter"><code><a class="link" href="IBusFactory.html" title="IBusFactory"><span class="type">IBusFactory</span></a> *factory</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *engine_name</code></em>);</pre>
+<p>
+Create an <a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> with <em class="parameter"><code>engine_name</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusFactory.html" title="IBusFactory"><span class="type">IBusFactory</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine_name</code></em> :</span></p></td>
+<td>Name of an engine.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a> with <em class="parameter"><code>engine_name</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusFactory.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusFactory-create-engine"></a><h3>The <code class="literal">"create-engine"</code> signal</h3>
+<pre class="programlisting"><a class="link" href="IBusEngine.html" title="IBusEngine"><span class="returnvalue">IBusEngine</span></a>*         user_function                      (<a class="link" href="IBusFactory.html" title="IBusFactory"><span class="type">IBusFactory</span></a> *factory,
+                                                        <span class="type">gchar</span>       *engine_name,
+                                                        <span class="type">gpointer</span>     user_data)        : <code class="literal">Run Last</code></pre>
+<p>
+The ::create-engine signal is a signal to create IBusEngine
+with <em class="parameter"><code>engine_name</code></em>, which gets emitted when IBusFactory
+received CreateEngine dbus method. The callback functions
+will be called until a callback returns a non-null object
+of IBusEngine.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
+<td>the factory which received the signal</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>engine_name</code></em> :</span></p></td>
+<td>the engine_name which received the signal</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
+<td>An IBusEngine. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusHotkeyProfile.html b/docs/reference/ibus/html/IBusHotkeyProfile.html
new file mode 100644 (file)
index 0000000..060b48e
--- /dev/null
@@ -0,0 +1,397 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusHotkeyProfile</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch02.html" title="Panel (User Interfaces)">
+<link rel="prev" href="IBusAttrList.html" title="IBusAttrList">
+<link rel="next" href="IBusLookupTable.html" title="IBusLookupTable">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusAttrList.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusLookupTable.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusHotkeyProfile.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusHotkeyProfile.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusHotkeyProfile.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusHotkeyProfile.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusHotkeyProfile"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusHotkeyProfile.top_of_page"></a>IBusHotkeyProfile</span></h2>
+<p>IBusHotkeyProfile — Hotkeys and associated events.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusHotkeyProfile.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusHotkeyProfile.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusHotkeyProfile.html#IBusHotkeyProfile-struct" title="struct IBusHotkeyProfile">IBusHotkeyProfile</a>;
+struct              <a class="link" href="IBusHotkeyProfile.html#IBusHotkeyProfileClass" title="struct IBusHotkeyProfileClass">IBusHotkeyProfileClass</a>;
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-add-hotkey" title="ibus_hotkey_profile_add_hotkey ()">ibus_hotkey_profile_add_hotkey</a>      (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> event</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-add-hotkey-from-string" title="ibus_hotkey_profile_add_hotkey_from_string ()">ibus_hotkey_profile_add_hotkey_from_string</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *str</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> event</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-remove-hotkey" title="ibus_hotkey_profile_remove_hotkey ()">ibus_hotkey_profile_remove_hotkey</a>   (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-remove-hotkey-by-event" title="ibus_hotkey_profile_remove_hotkey_by_event ()">ibus_hotkey_profile_remove_hotkey_by_event</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> event</code></em>);
+<span class="returnvalue">GQuark</span>              <a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-filter-key-event" title="ibus_hotkey_profile_filter_key_event ()">ibus_hotkey_profile_filter_key_event</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> prev_keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> prev_modifiers</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">GQuark</span>              <a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-lookup-hotkey" title="ibus_hotkey_profile_lookup_hotkey ()">ibus_hotkey_profile_lookup_hotkey</a>   (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusHotkeyProfile.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusHotkeyProfile
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusHotkeyProfile.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusHotkeyProfile.html#IBusHotkeyProfile-trigger" title='The "trigger" signal'>trigger</a>"                                        : <code class="literal">Has Details</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusHotkeyProfile.description"></a><h2>Description</h2>
+<p>
+An IBusHotkeyProfile associates a hotkey and an event.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusHotkeyProfile.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusHotkeyProfile-struct"></a><h3>struct IBusHotkeyProfile</h3>
+<pre class="programlisting">struct IBusHotkeyProfile;</pre>
+<p>
+An opaque data type representing an IBusHotkeyProfile.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusHotkeyProfileClass"></a><h3>struct IBusHotkeyProfileClass</h3>
+<pre class="programlisting">struct IBusHotkeyProfileClass {
+    IBusSerializableClass parent;
+
+    void (* trigger) (IBusHotkeyProfile *profile,
+                      GQuark             event,
+                      gpointer           user_data);
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-hotkey-profile-add-hotkey"></a><h3>ibus_hotkey_profile_add_hotkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_hotkey_profile_add_hotkey      (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> event</code></em>);</pre>
+<p>
+Add a hotkey and its associated event to an IBusHotkeyProfile.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>An IBusHotkeyProfile.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Keycode of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modifiers</code></em> :</span></p></td>
+<td>Modifiers of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>The event to be associated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Always TRUE.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-hotkey-profile-add-hotkey-from-string"></a><h3>ibus_hotkey_profile_add_hotkey_from_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_hotkey_profile_add_hotkey_from_string
+                                                        (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *str</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> event</code></em>);</pre>
+<p>
+Add a hotkey and its associated event to an IBusHotkeyProfile.
+The hotkey is in string format, such like <code class="constant">Control+Shift+A</code>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>An IBusHotkeyProfile.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
+<td>Key in string representation.  '+' is the separator.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>The event to be associated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>FALSE if <em class="parameter"><code>str</code></em> contains invalid symbol; TRUE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-hotkey-profile-remove-hotkey"></a><h3>ibus_hotkey_profile_remove_hotkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_hotkey_profile_remove_hotkey   (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>);</pre>
+<p>
+Remove the hotkey for an IBusHotkeyProfile.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>An IBusHotkeyProfile.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Keycode of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modifiers</code></em> :</span></p></td>
+<td>Modifiers of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>FALSE if the key is not in <em class="parameter"><code>profile</code></em>, TRUE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-hotkey-profile-remove-hotkey-by-event"></a><h3>ibus_hotkey_profile_remove_hotkey_by_event ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_hotkey_profile_remove_hotkey_by_event
+                                                        (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> event</code></em>);</pre>
+<p>
+Remove the hotkey for an IBusHotkeyProfile by event.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>An IBusHotkeyProfile.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>The associated event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>FALSE if no such event in <em class="parameter"><code>profile</code></em>, TRUE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-hotkey-profile-filter-key-event"></a><h3>ibus_hotkey_profile_filter_key_event ()</h3>
+<pre class="programlisting"><span class="returnvalue">GQuark</span>              ibus_hotkey_profile_filter_key_event
+                                                        (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> prev_keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> prev_modifiers</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Emit a <code class="constant">::trigger</code> signal when a hotkey is in a profile.
+</p>
+<p>
+See also: ::trigger
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>An IBusHotkeyProfile.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Keycode of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modifiers</code></em> :</span></p></td>
+<td>Modifiers of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prev_keyval</code></em> :</span></p></td>
+<td>Keycode of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prev_modifiers</code></em> :</span></p></td>
+<td>Modifiers of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data for signal "trigger".</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 if releasing a hotkey and the hotkey is not in the profile ; an associated event otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-hotkey-profile-lookup-hotkey"></a><h3>ibus_hotkey_profile_lookup_hotkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">GQuark</span>              ibus_hotkey_profile_lookup_hotkey   (<em class="parameter"><code><a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>);</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>An IBusHotkeyProfile.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Keycode of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modifiers</code></em> :</span></p></td>
+<td>Modifiers of the hotkey.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The event associated to the hotkey or 0 if the hotkey is not in the
+profile.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusHotkeyProfile.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusHotkeyProfile-trigger"></a><h3>The <code class="literal">"trigger"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a> *profile,
+                                                        <span class="type">guint</span>              event,
+                                                        <span class="type">gpointer</span>           user_data,
+                                                        <span class="type">gpointer</span>           user_data)      : <code class="literal">Has Details</code></pre>
+<p>
+Emitted when a hotkey is pressed and the hotkey is in profile.
+Implement the member function <code class="function">trigger()</code> in extended class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>The last parameter, user_data is not actually a valid parameter. It is displayed because of GtkDoc bug.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>profile</code></em> :</span></p></td>
+<td>An IBusHotkeyProfile.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>An event in GQuark.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>User data for callback.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusInputContext.html b/docs/reference/ibus/html/IBusInputContext.html
new file mode 100644 (file)
index 0000000..1b9b5de
--- /dev/null
@@ -0,0 +1,1666 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusInputContext</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="IBusFactory.html" title="IBusFactory">
+<link rel="next" href="ibus-ibuskeys.html" title="ibuskeys">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusFactory.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-ibuskeys.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusInputContext.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusInputContext.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusInputContext.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusInputContext.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+                   | 
+                  <a href="#IBusInputContext.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusInputContext"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusInputContext.top_of_page"></a>IBusInputContext</span></h2>
+<p>IBusInputContext — IBus input context proxy object.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusInputContext.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusInputContext.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusInputContext.html#IBusInputContext-struct" title="struct IBusInputContext">IBusInputContext</a>;
+struct              <a class="link" href="IBusInputContext.html#IBusInputContextClass" title="struct IBusInputContextClass">IBusInputContextClass</a>;
+<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  <a class="link" href="IBusInputContext.html#ibus-input-context-new" title="ibus_input_context_new ()">ibus_input_context_new</a>              (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-new-async" title="ibus_input_context_new_async ()">ibus_input_context_new_async</a>        (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  <a class="link" href="IBusInputContext.html#ibus-input-context-new-async-finish" title="ibus_input_context_new_async_finish ()">ibus_input_context_new_async_finish</a> (<em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  <a class="link" href="IBusInputContext.html#ibus-input-context-get-input-context" title="ibus_input_context_get_input_context ()">ibus_input_context_get_input_context</a>
+                                                        (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-get-input-context-async" title="ibus_input_context_get_input_context_async ()">ibus_input_context_get_input_context_async</a>
+                                                        (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  <a class="link" href="IBusInputContext.html#ibus-input-context-get-input-context-async-finish" title="ibus_input_context_get_input_context_async_finish ()">ibus_input_context_get_input_context_async_finish</a>
+                                                        (<em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-process-hand-writing-event" title="ibus_input_context_process_hand_writing_event ()">ibus_input_context_process_hand_writing_event</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gdouble</span> *coordinates</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> coordinates_len</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-cancel-hand-writing" title="ibus_input_context_cancel_hand_writing ()">ibus_input_context_cancel_hand_writing</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> n_strokes</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event-async" title="ibus_input_context_process_key_event_async ()">ibus_input_context_process_key_event_async</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> keycode</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> state</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event-async-finish" title="ibus_input_context_process_key_event_async_finish ()">ibus_input_context_process_key_event_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event" title="ibus_input_context_process_key_event ()">ibus_input_context_process_key_event</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> keycode</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> state</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-set-cursor-location" title="ibus_input_context_set_cursor_location ()">ibus_input_context_set_cursor_location</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> x</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> y</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> w</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> h</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-set-capabilities" title="ibus_input_context_set_capabilities ()">ibus_input_context_set_capabilities</a> (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> capabilities</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-property-activate" title="ibus_input_context_property_activate ()">ibus_input_context_property_activate</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *prop_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> state</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-focus-in" title="ibus_input_context_focus_in ()">ibus_input_context_focus_in</a>         (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-focus-out" title="ibus_input_context_focus_out ()">ibus_input_context_focus_out</a>        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-reset" title="ibus_input_context_reset ()">ibus_input_context_reset</a>            (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-get-engine-async" title="ibus_input_context_get_engine_async ()">ibus_input_context_get_engine_async</a> (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);
+<a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    <a class="link" href="IBusInputContext.html#ibus-input-context-get-engine-async-finish" title="ibus_input_context_get_engine_async_finish ()">ibus_input_context_get_engine_async_finish</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    <a class="link" href="IBusInputContext.html#ibus-input-context-get-engine" title="ibus_input_context_get_engine ()">ibus_input_context_get_engine</a>       (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-set-engine" title="ibus_input_context_set_engine ()">ibus_input_context_set_engine</a>       (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-set-surrounding-text" title="ibus_input_context_set_surrounding_text ()">ibus_input_context_set_surrounding_text</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> anchor_pos</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusInputContext.html#ibus-input-context-needs-surrounding-text" title="ibus_input_context_needs_surrounding_text ()">ibus_input_context_needs_surrounding_text</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusInputContext.html#ibus-input-context-set-content-type" title="ibus_input_context_set_content_type ()">ibus_input_context_set_content_type</a> (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> purpose</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> hints</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusInputContext.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GDBusProxy
+         +----<a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+               +----IBusInputContext
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusInputContext.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+IBusInputContext implements
+ GDBusInterface,  GInitable and  GAsyncInitable.</p>
+</div>
+<div class="refsect1">
+<a name="IBusInputContext.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-commit-text" title='The "commit-text" signal'>commit-text</a>"                                    : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-cursor-down-lookup-table" title='The "cursor-down-lookup-table" signal'>cursor-down-lookup-table</a>"                       : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-cursor-up-lookup-table" title='The "cursor-up-lookup-table" signal'>cursor-up-lookup-table</a>"                         : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-delete-surrounding-text" title='The "delete-surrounding-text" signal'>delete-surrounding-text</a>"                        : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-disabled" title='The "disabled" signal'>disabled</a>"                                       : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-enabled" title='The "enabled" signal'>enabled</a>"                                        : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-forward-key-event" title='The "forward-key-event" signal'>forward-key-event</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-hide-auxiliary-text" title='The "hide-auxiliary-text" signal'>hide-auxiliary-text</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-hide-lookup-table" title='The "hide-lookup-table" signal'>hide-lookup-table</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-hide-preedit-text" title='The "hide-preedit-text" signal'>hide-preedit-text</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-page-down-lookup-table" title='The "page-down-lookup-table" signal'>page-down-lookup-table</a>"                         : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-page-up-lookup-table" title='The "page-up-lookup-table" signal'>page-up-lookup-table</a>"                           : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-register-properties" title='The "register-properties" signal'>register-properties</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-show-auxiliary-text" title='The "show-auxiliary-text" signal'>show-auxiliary-text</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-show-lookup-table" title='The "show-lookup-table" signal'>show-lookup-table</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-show-preedit-text" title='The "show-preedit-text" signal'>show-preedit-text</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-update-auxiliary-text" title='The "update-auxiliary-text" signal'>update-auxiliary-text</a>"                          : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-update-lookup-table" title='The "update-lookup-table" signal'>update-lookup-table</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-update-preedit-text" title='The "update-preedit-text" signal'>update-preedit-text</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusInputContext.html#IBusInputContext-update-property" title='The "update-property" signal'>update-property</a>"                                : <code class="literal">Run Last</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusInputContext.description"></a><h2>Description</h2>
+<p>
+An IBusInputContext is a proxy object of BusInputContext,
+which manages the context for input methods that supports
+text input in various natural languages.
+</p>
+<p>
+Clients call the IBusInputContext to invoke BusInputContext,
+through which invokes IBusEngine.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusInputContext.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusInputContext-struct"></a><h3>struct IBusInputContext</h3>
+<pre class="programlisting">struct IBusInputContext;</pre>
+<p>
+An opaque data type representing an IBusInputContext.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContextClass"></a><h3>struct IBusInputContextClass</h3>
+<pre class="programlisting">struct IBusInputContextClass {
+    IBusProxyClass parent;
+    /* signals */
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-new"></a><h3>ibus_input_context_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  ibus_input_context_new              (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+New an IBusInputContext.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>The path to the object that emitting the signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An <span class="type">GDBusConnection</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusInputContext.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-new-async"></a><h3>ibus_input_context_new_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_new_async        (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+New an <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>The path to the object that emitting the signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An <span class="type">GDBusConnection</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied.
+The callback should not be <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-new-async-finish"></a><h3>ibus_input_context_new_async_finish ()</h3>
+<pre class="programlisting"><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  ibus_input_context_new_async_finish (<em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusInputContext.html#ibus-input-context-new-async" title="ibus_input_context_new_async ()"><code class="function">ibus_input_context_new_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> pass to
+<a class="link" href="IBusInputContext.html#ibus-input-context-new-async" title="ibus_input_context_new_async ()"><code class="function">ibus_input_context_new_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-get-input-context"></a><h3>ibus_input_context_get_input_context ()</h3>
+<pre class="programlisting"><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  ibus_input_context_get_input_context
+                                                        (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);</pre>
+<p>
+Gets an existing IBusInputContext.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>The path to the object that emitting the signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An <span class="type">GDBusConnection</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An existing <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-get-input-context-async"></a><h3>ibus_input_context_get_input_context_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_get_input_context_async
+                                                        (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Get an existing <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> asynchronously.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>The path to the object that emitting the signal.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An <span class="type">GDBusConnection</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied.
+The callback should not be <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-get-input-context-async-finish"></a><h3>ibus_input_context_get_input_context_async_finish ()</h3>
+<pre class="programlisting"><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="returnvalue">IBusInputContext</span></a> *  ibus_input_context_get_input_context_async_finish
+                                                        (<em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <code class="function">ibus_input_contex_get_input_context_async()</code>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> pass to
+<a class="link" href="IBusInputContext.html#ibus-input-context-get-input-context-async" title="ibus_input_context_get_input_context_async ()"><code class="function">ibus_input_context_get_input_context_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An existing <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-process-hand-writing-event"></a><h3>ibus_input_context_process_hand_writing_event ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_process_hand_writing_event
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gdouble</span> *coordinates</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> coordinates_len</code></em>);</pre>
+<p>
+Pass a handwriting stroke to an input method engine.
+</p>
+<p>
+In this API, a coordinate (0.0, 0.0) represents the top-left corner of an area for
+handwriting, and (1.0, 1.0) does the bottom-right. Therefore, for example, if
+a user writes a character 'L', the array would be something like [0.0, 0.0, 0.0, 1.0, 1.0, 1.0]
+and coordinates_len would be 6.
+</p>
+<p>
+The function is usually called when a user releases the mouse button in a hand
+writing area.
+</p>
+<p>
+see_also: <a class="link" href="IBusEngine.html#IBusEngine-process-hand-writing-event" title='The "process-hand-writing-event" signal'><span class="type">"process-hand-writing-event"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>coordinates</code></em> :</span></p></td>
+<td>An array of gdouble (0.0 to 1.0) which represents a stroke (i.e. [x1, y1, x2, y2, x3, y3, ...]).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>coordinates_len</code></em> :</span></p></td>
+<td>The number of elements in the array. The number should be even and &gt;= 4.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-cancel-hand-writing"></a><h3>ibus_input_context_cancel_hand_writing ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_cancel_hand_writing
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> n_strokes</code></em>);</pre>
+<p>
+Clear handwriting stroke(s) in the current input method engine.
+</p>
+<p>
+see_also: <a class="link" href="IBusEngine.html#IBusEngine-cancel-hand-writing" title='The "cancel-hand-writing" signal'><span class="type">"cancel-hand-writing"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_strokes</code></em> :</span></p></td>
+<td>The number of strokes to be removed. Pass 0 to remove all.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-process-key-event-async"></a><h3>ibus_input_context_process_key_event_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_process_key_event_async
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> keycode</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> state</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+Pass the key event to input method engine.
+</p>
+<p>
+Key symbols are characters/symbols produced by key press, for example,
+pressing "s" generates key symbol "s"; pressing shift-"s" generates key symbol "S".
+Same key on keyboard may produce different key symbols on different keyboard layout.
+e.g., "s" key on QWERTY keyboard produces "o" in DVORAK layout.
+</p>
+<p>
+Unlike key symbol, keycode is only determined by the location of the key, and
+irrelevant of the keyboard layout.
+</p>
+<p>
+Briefly speaking, input methods that expect certain keyboard layout should use
+keycode; otherwise keyval is sufficient.
+For example, Chewing, Cangjie, Wubi expect an en-US QWERTY keyboard, these should
+use keycode; while pinyin can rely on keyval only, as it is less sensitive to
+the keyboard layout change, DVORAK users can still use DVORAK layout to input pinyin.
+</p>
+<p>
+Use <a class="link" href="IBusKeymap.html#ibus-keymap-lookup-keysym" title="ibus_keymap_lookup_keysym ()"><code class="function">ibus_keymap_lookup_keysym()</code></a> to convert keycode to keysym in given keyboard layout.
+</p>
+<p>
+see_also: <a class="link" href="IBusEngine.html#IBusEngine-process-key-event" title='The "process-key-event" signal'><span class="type">"process-key-event"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Key symbol of a key event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keycode</code></em> :</span></p></td>
+<td>Keycode of a key event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>Key modifier flags.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A GCancellable or NULL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A GAsyncReadyCallback to call when the request is satisfied or NULL
+if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-process-key-event-async-finish"></a><h3>ibus_input_context_process_key_event_async_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_input_context_process_key_event_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event-async" title="ibus_input_context_process_key_event_async ()"><code class="function">ibus_input_context_process_key_event_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A GAsyncResult obtained from the GAsyncReadyCallback passed to
+<a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event-async" title="ibus_input_context_process_key_event_async ()"><code class="function">ibus_input_context_process_key_event_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or NULL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the key event is processed;
+<code class="literal">FALSE</code> otherwise or some errors happen and the <em class="parameter"><code>error</code></em> will be set.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-process-key-event"></a><h3>ibus_input_context_process_key_event ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_input_context_process_key_event
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> keycode</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> state</code></em>);</pre>
+<p>
+Pass the key event to input method engine and wait for the reply from ibus (i.e. synchronous IPC).
+</p>
+<p>
+See also: <a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event-async" title="ibus_input_context_process_key_event_async ()"><code class="function">ibus_input_context_process_key_event_async()</code></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Key symbol of a key event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keycode</code></em> :</span></p></td>
+<td>Keycode of a key event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>Key modifier flags.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE for successfully process the key; FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-set-cursor-location"></a><h3>ibus_input_context_set_cursor_location ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_set_cursor_location
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> x</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> y</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> w</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint32</span> h</code></em>);</pre>
+<p>
+Set the cursor location of IBus input context asynchronously.
+</p>
+<p>
+see_also: <a class="link" href="IBusEngine.html#IBusEngine-set-cursor-location" title='The "set-cursor-location" signal'><span class="type">"set-cursor-location"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>X coordinate of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>Y coordinate of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>Width of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>Height of the cursor.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-set-capabilities"></a><h3>ibus_input_context_set_capabilities ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_set_capabilities (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> capabilities</code></em>);</pre>
+<p>
+Set the capabilities flags of client application asynchronously.
+When IBUS_CAP_FOCUS is not set, IBUS_CAP_PREEDIT_TEXT, IBUS_CAP_AUXILIARY_TEXT, IBUS_CAP_LOOKUP_TABLE, and IBUS_CAP_PROPERTY have to be all set.
+The panel component does nothing for an application that doesn't support focus.
+</p>
+<p>
+see_also: <a class="link" href="IBusEngine.html#IBusEngine-set-capabilities" title='The "set-capabilities" signal'><span class="type">"set-capabilities"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>capabilities</code></em> :</span></p></td>
+<td>Capabilities flags of IBusEngine, see <a class="link" href="ibus-ibustypes.html#IBusCapabilite"><span class="type">IBusCapabilite</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-property-activate"></a><h3>ibus_input_context_property_activate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_property_activate
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *prop_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> state</code></em>);</pre>
+<p>
+Activate the property asynchronously.
+</p>
+<p>
+See also: <a class="link" href="IBusEngine.html#IBusEngine-property-activate" title='The "property-activate" signal'><span class="type">"property_activate"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_name</code></em> :</span></p></td>
+<td>A property name (e.g. "InputMode.WideLatin")</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>A status of the property (e.g. PROP_STATE_CHECKED)</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-focus-in"></a><h3>ibus_input_context_focus_in ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_focus_in         (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);</pre>
+<p>
+Invoked when the client application get focus. An asynchronous IPC will be performed.
+</p>
+<p>
+see_also: <a class="link" href="IBusEngine.html#IBusEngine-focus-in" title='The "focus-in" signal'><span class="type">"focus_in"</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-focus-out"></a><h3>ibus_input_context_focus_out ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_focus_out        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);</pre>
+<p>
+Invoked when the client application get focus. An asynchronous IPC will be performed.
+</p>
+<p>
+see_also: <a class="link" href="IBusEngine.html#IBusEngine-focus-out" title='The "focus-out" signal'><span class="type">"focus_out"</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-reset"></a><h3>ibus_input_context_reset ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_reset            (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);</pre>
+<p>
+Invoked when the IME is reset. An asynchronous IPC will be performed.
+</p>
+<p>
+see_also: <a class="link" href="IBusEngine.html#IBusEngine-reset" title='The "reset" signal'><span class="type">"reset"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-get-engine-async"></a><h3>ibus_input_context_get_engine_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_get_engine_async (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> timeout_msec</code></em>,
+                                                         <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
+                                                         <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
+<p>
+An asynchronous IPC will be performed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timeout_msec</code></em> :</span></p></td>
+<td>The timeout in milliseconds or -1 to use the default timeout.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
+<td>A <span class="type">GCancellable</span> or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncReadyCallback</span> to call when the request is satisfied or <code class="literal">NULL</code>
+if you don't care about the result of the method invocation.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>The data to pass to callback.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-get-engine-async-finish"></a><h3>ibus_input_context_get_engine_async_finish ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    ibus_input_context_get_engine_async_finish
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">GAsyncResult</span> *res</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Finishes an operation started with <a class="link" href="IBusInputContext.html#ibus-input-context-get-engine-async" title="ibus_input_context_get_engine_async ()"><code class="function">ibus_input_context_get_engine_async()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
+<td>A <span class="type">GAsyncResult</span> obtained from the <span class="type">GAsyncReadyCallback</span> passed to
+<a class="link" href="IBusInputContext.html#ibus-input-context-get-engine-async" title="ibus_input_context_get_engine_async ()"><code class="function">ibus_input_context_get_engine_async()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or <code class="literal">NULL</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An IME engine description for the context, or <code class="literal">NULL</code>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-get-engine"></a><h3>ibus_input_context_get_engine ()</h3>
+<pre class="programlisting"><a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="returnvalue">IBusEngineDesc</span></a> *    ibus_input_context_get_engine       (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);</pre>
+<p>
+Returns an IME engine description for the context.
+A synchronous IPC will be performed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An IME engine description for the context, or NULL. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-set-engine"></a><h3>ibus_input_context_set_engine ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_set_engine       (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Invoked when the IME engine is changed.
+An asynchronous IPC will be performed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>A name of the engine.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-set-surrounding-text"></a><h3>ibus_input_context_set_surrounding_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_set_surrounding_text
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> anchor_pos</code></em>);</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> surrounding the current cursor on the application.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_pos</code></em> :</span></p></td>
+<td>Current cursor position in characters in <em class="parameter"><code>text</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>anchor_pos</code></em> :</span></p></td>
+<td>Anchor position of selection in <em class="parameter"><code>text</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-needs-surrounding-text"></a><h3>ibus_input_context_needs_surrounding_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_input_context_needs_surrounding_text
+                                                        (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>);</pre>
+<p>
+Check whether the current engine requires surrounding-text.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if surrounding-text is needed by the current engine;
+<code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-input-context-set-content-type"></a><h3>ibus_input_context_set_content_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_input_context_set_content_type (<em class="parameter"><code><a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> purpose</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> hints</code></em>);</pre>
+<p>
+Set content-type (primary purpose and hints) of the context.  This
+information is particularly useful to implement intelligent
+behavior in engines, such as automatic input-mode switch and text
+prediction.  For example, to restrict input to numbers, the client
+can call this function with <em class="parameter"><code>purpose</code></em> set to
+<a class="link" href="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-NUMBER:CAPS"><span class="type">IBUS_INPUT_PURPOSE_NUMBER</span></a>.
+</p>
+<p>
+See also: <a class="link" href="IBusEngine.html#IBusEngine-set-content-type" title='The "set-content-type" signal'><span class="type">"set-content-type"</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>purpose</code></em> :</span></p></td>
+<td>Primary purpose of the input context, as an <a class="link" href="ibus-ibustypes.html#IBusInputPurpose" title="enum IBusInputPurpose"><span class="type">IBusInputPurpose</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>hints</code></em> :</span></p></td>
+<td>Hints that augment <em class="parameter"><code>purpose</code></em>, as an <a class="link" href="ibus-ibustypes.html#IBusInputHints" title="enum IBusInputHints"><span class="type">IBusInputHints</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusInputContext.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusInputContext-commit-text"></a><h3>The <code class="literal">"commit-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>         *text,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the text is going to be committed.
+</p>
+<p>
+(Note: The text object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use <code class="function">g_object_ref_sink()</code>
+ to get the ownership of the object.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>Text to be committed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-cursor-down-lookup-table"></a><h3>The <code class="literal">"cursor-down-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to select next candidate of lookup table.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-cursor-up-lookup-table"></a><h3>The <code class="literal">"cursor-up-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to select previous candidate of lookup table.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-delete-surrounding-text"></a><h3>The <code class="literal">"delete-surrounding-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gint</span>              offset,
+                                                        <span class="type">guint</span>             n_chars,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to delete surrounding text event from IME to client of IME.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
+<td>the character offset from the cursor position of the text to be deleted.
+A negative value indicates a position before the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n_chars</code></em> :</span></p></td>
+<td>the number of characters to be deleted.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-disabled"></a><h3>The <code class="literal">"disabled"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when an IME is disabled.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-enabled"></a><h3>The <code class="literal">"enabled"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when an IME is enabled.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-forward-key-event"></a><h3>The <code class="literal">"forward-key-event"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">guint</span>             keyval,
+                                                        <span class="type">guint</span>             keycode,
+                                                        <span class="type">guint</span>             modifiers,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to forward key event from IME to client of IME.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Key symbol of the keyboard event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keycode</code></em> :</span></p></td>
+<td>Key symbol of the keyboard event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modifiers</code></em> :</span></p></td>
+<td>Key modifier flags.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-hide-auxiliary-text"></a><h3>The <code class="literal">"hide-auxiliary-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to hide auxiliary text.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-hide-lookup-table"></a><h3>The <code class="literal">"hide-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to hide lookup table.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-hide-preedit-text"></a><h3>The <code class="literal">"hide-preedit-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to hide preedit text.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-page-down-lookup-table"></a><h3>The <code class="literal">"page-down-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to view the next page of lookup table.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-page-up-lookup-table"></a><h3>The <code class="literal">"page-up-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to view the previous page of lookup table.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-register-properties"></a><h3>The <code class="literal">"register-properties"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a>     *props,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to register the properties in <em class="parameter"><code>props</code></em>.
+</p>
+<p>
+(Note: The props object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use <code class="function">g_object_ref_sink()</code>
+ to get the ownership of the object.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>props</code></em> :</span></p></td>
+<td>An IBusPropList that contains properties.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-show-auxiliary-text"></a><h3>The <code class="literal">"show-auxiliary-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to show auxiliary text.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-show-lookup-table"></a><h3>The <code class="literal">"show-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to show lookup table.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-show-preedit-text"></a><h3>The <code class="literal">"show-preedit-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to show preedit text.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-update-auxiliary-text"></a><h3>The <code class="literal">"update-auxiliary-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>         *arg1,
+                                                        <span class="type">gboolean</span>          arg2,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to hide auxilary text.
+</p>
+<p>
+(Note: The text object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use <code class="function">g_object_ref_sink()</code>
+ to get the ownership of the object.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-update-lookup-table"></a><h3>The <code class="literal">"update-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a>  *table,
+                                                        <span class="type">gboolean</span>          visible,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to update lookup table.
+</p>
+<p>
+(Note: The table object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use <code class="function">g_object_ref_sink()</code>
+ to get the ownership of the object.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable to be updated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the table should be visible.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-update-preedit-text"></a><h3>The <code class="literal">"update-preedit-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>         *text,
+                                                        <span class="type">guint</span>             cursor_pos,
+                                                        <span class="type">gboolean</span>          visible,
+                                                        <span class="type">gpointer</span>          user_data)       : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to update preedit text.
+</p>
+<p>
+(Note: The text object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use <code class="function">g_object_ref_sink()</code>
+ to get the ownership of the object.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>Text to be updated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_pos</code></em> :</span></p></td>
+<td>Cursor position.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the update is visible.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputContext-update-property"></a><h3>The <code class="literal">"update-property"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusInputContext.html" title="IBusInputContext"><span class="type">IBusInputContext</span></a> *context,
+                                                        <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>     *prop,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted to update the property <em class="parameter"><code>prop</code></em>.
+</p>
+<p>
+(Note: The prop object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use <code class="function">g_object_ref_sink()</code>
+ to get the ownership of the object.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
+<td>An IBusInputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>The IBusProperty to be updated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusKeymap.html b/docs/reference/ibus/html/IBusKeymap.html
new file mode 100644 (file)
index 0000000..66340f6
--- /dev/null
@@ -0,0 +1,223 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusKeymap</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="ibus-ibuskeys.html" title="ibuskeys">
+<link rel="next" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ibus-ibuskeys.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-ibuskeysyms-compat.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusKeymap.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusKeymap.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusKeymap.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusKeymap"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusKeymap.top_of_page"></a>IBusKeymap</span></h2>
+<p>IBusKeymap — Keyboard mapping handling.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusKeymap.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusKeymap.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusKeymap.html#IBusKeymap-struct" title="struct IBusKeymap">IBusKeymap</a>;
+struct              <a class="link" href="IBusKeymap.html#IBusKeymapClass" title="struct IBusKeymapClass">IBusKeymapClass</a>;
+<a class="link" href="IBusKeymap.html" title="IBusKeymap"><span class="returnvalue">IBusKeymap</span></a> *        <a class="link" href="IBusKeymap.html#ibus-keymap-new" title="ibus_keymap_new ()">ibus_keymap_new</a>                     (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<a class="link" href="IBusKeymap.html" title="IBusKeymap"><span class="returnvalue">IBusKeymap</span></a> *        <a class="link" href="IBusKeymap.html#ibus-keymap-get" title="ibus_keymap_get ()">ibus_keymap_get</a>                     (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusKeymap.html#ibus-keymap-lookup-keysym" title="ibus_keymap_lookup_keysym ()">ibus_keymap_lookup_keysym</a>           (<em class="parameter"><code><a class="link" href="IBusKeymap.html" title="IBusKeymap"><span class="type">IBusKeymap</span></a> *keymap</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> keycode</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> state</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusKeymap.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----IBusKeymap
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusKeymap.description"></a><h2>Description</h2>
+<p>
+An IBusKeymap defines the mapping between keyboard scancodes and
+keyboard symbols such as numbers, alphabets, and punctuation marks.
+</p>
+<p>
+Some input methods assume certain keyboard layout
+(such as Chewing and Wubi requires an US-QWERTY layout),
+and expect key symbols to be arranged in that order.
+These input methods should new an IBusKeymap
+instance and define the keyboard layout.
+Then <a class="link" href="IBusKeymap.html#ibus-keymap-lookup-keysym" title="ibus_keymap_lookup_keysym ()"><code class="function">ibus_keymap_lookup_keysym()</code></a> can
+convert scancodes back to the key symbols.
+</p>
+<p>
+<em class="parameter"><code>see_also</code></em>: <a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a>, <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc"><span class="type">IBusEngineDesc</span></a>
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusKeymap.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusKeymap-struct"></a><h3>struct IBusKeymap</h3>
+<pre class="programlisting">struct IBusKeymap {
+    gchar *name;
+    guint keymap[256][7];
+};
+</pre>
+<p>
+A keymap object in IBus.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">gchar</span> *<em class="structfield"><code><a name="IBusKeymap-struct.name"></a>name</code></em>;</span></p></td>
+<td>The name of the keymap, such as 'us', 'jp'.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint</span> <em class="structfield"><code><a name="IBusKeymap-struct.keymap"></a>keymap</code></em>[256][7];</span></p></td>
+<td>Keymap table. IME developers normally don have to touch this.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusKeymapClass"></a><h3>struct IBusKeymapClass</h3>
+<pre class="programlisting">struct IBusKeymapClass {
+    IBusObjectClass parent;
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-keymap-new"></a><h3>ibus_keymap_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusKeymap.html" title="IBusKeymap"><span class="returnvalue">IBusKeymap</span></a> *        ibus_keymap_new                     (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_keymap_new</code> is deprecated and should not be used in newly-written code. This function has been deprecated and should
+not be used in newly written code. Please use <a class="link" href="IBusKeymap.html#ibus-keymap-get" title="ibus_keymap_get ()"><code class="function">ibus_keymap_get()</code></a>.</p>
+</div>
+<p>
+Get an IBusKeymap associated with the giving name.
+</p>
+<p>
+This function loads the keymap file specified in <em class="parameter"><code>name</code></em>
+in the IBUS_DATA_DIR/keymaps directory.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>The keymap file to be loaded, such as 'us', 'jp'.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An IBusKeymap associated with the giving name; or NULL if failed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-keymap-get"></a><h3>ibus_keymap_get ()</h3>
+<pre class="programlisting"><a class="link" href="IBusKeymap.html" title="IBusKeymap"><span class="returnvalue">IBusKeymap</span></a> *        ibus_keymap_get                     (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Get an IBusKeymap associated with the giving name.
+</p>
+<p>
+This function loads the keymap file specified in <em class="parameter"><code>name</code></em>
+in the IBUS_DATA_DIR/keymaps directory.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>The keymap file to be loaded, such as 'us', 'jp'.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>An IBusKeymap associated with the giving name; or NULL if failed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-keymap-lookup-keysym"></a><h3>ibus_keymap_lookup_keysym ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_keymap_lookup_keysym           (<em class="parameter"><code><a class="link" href="IBusKeymap.html" title="IBusKeymap"><span class="type">IBusKeymap</span></a> *keymap</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint16</span> keycode</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint32</span> state</code></em>);</pre>
+<p>
+Convert the scancode to keysym, given the keymap.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keymap</code></em> :</span></p></td>
+<td>An IBusKeymap.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keycode</code></em> :</span></p></td>
+<td>A scancode to be converted.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>Modifier flags(such as Ctrl, Shift).</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Corresponding keysym.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusLookupTable.html b/docs/reference/ibus/html/IBusLookupTable.html
new file mode 100644 (file)
index 0000000..c938f91
--- /dev/null
@@ -0,0 +1,803 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusLookupTable</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch02.html" title="Panel (User Interfaces)">
+<link rel="prev" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">
+<link rel="next" href="IBusPanelService.html" title="IBusPanelService">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusHotkeyProfile.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusPanelService.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusLookupTable.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusLookupTable.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusLookupTable.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusLookupTable"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusLookupTable.top_of_page"></a>IBusLookupTable</span></h2>
+<p>IBusLookupTable — Candidate word/phrase lookup table.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusLookupTable.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusLookupTable.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusLookupTable.html#IBusLookupTable-struct" title="struct IBusLookupTable">IBusLookupTable</a>;
+struct              <a class="link" href="IBusLookupTable.html#IBusLookupTableClass" title="struct IBusLookupTableClass">IBusLookupTableClass</a>;
+<a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="returnvalue">IBusLookupTable</span></a> *   <a class="link" href="IBusLookupTable.html#ibus-lookup-table-new" title="ibus_lookup_table_new ()">ibus_lookup_table_new</a>               (<em class="parameter"><code><span class="type">guint</span> page_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> cursor_visible</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> round</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-append-candidate" title="ibus_lookup_table_append_candidate ()">ibus_lookup_table_append_candidate</a>  (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-number-of-candidates" title="ibus_lookup_table_get_number_of_candidates ()">ibus_lookup_table_get_number_of_candidates</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-candidate" title="ibus_lookup_table_get_candidate ()">ibus_lookup_table_get_candidate</a>     (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-append-label" title="ibus_lookup_table_append_label ()">ibus_lookup_table_append_label</a>      (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-label" title="ibus_lookup_table_set_label ()">ibus_lookup_table_set_label</a>         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-label" title="ibus_lookup_table_get_label ()">ibus_lookup_table_get_label</a>         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-cursor-pos" title="ibus_lookup_table_set_cursor_pos ()">ibus_lookup_table_set_cursor_pos</a>    (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> cursor_pos</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-cursor-pos" title="ibus_lookup_table_get_cursor_pos ()">ibus_lookup_table_get_cursor_pos</a>    (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-cursor-visible" title="ibus_lookup_table_set_cursor_visible ()">ibus_lookup_table_set_cursor_visible</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusLookupTable.html#ibus-lookup-table-is-cursor-visible" title="ibus_lookup_table_is_cursor_visible ()">ibus_lookup_table_is_cursor_visible</a> (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-cursor-in-page" title="ibus_lookup_table_get_cursor_in_page ()">ibus_lookup_table_get_cursor_in_page</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-page-size" title="ibus_lookup_table_set_page_size ()">ibus_lookup_table_set_page_size</a>     (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> page_size</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-page-size" title="ibus_lookup_table_get_page_size ()">ibus_lookup_table_get_page_size</a>     (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-round" title="ibus_lookup_table_set_round ()">ibus_lookup_table_set_round</a>         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> round</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusLookupTable.html#ibus-lookup-table-is-round" title="ibus_lookup_table_is_round ()">ibus_lookup_table_is_round</a>          (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-orientation" title="ibus_lookup_table_set_orientation ()">ibus_lookup_table_set_orientation</a>   (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> orientation</code></em>);
+<span class="returnvalue">gint</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-orientation" title="ibus_lookup_table_get_orientation ()">ibus_lookup_table_get_orientation</a>   (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusLookupTable.html#ibus-lookup-table-clear" title="ibus_lookup_table_clear ()">ibus_lookup_table_clear</a>             (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusLookupTable.html#ibus-lookup-table-page-up" title="ibus_lookup_table_page_up ()">ibus_lookup_table_page_up</a>           (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusLookupTable.html#ibus-lookup-table-page-down" title="ibus_lookup_table_page_down ()">ibus_lookup_table_page_down</a>         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusLookupTable.html#ibus-lookup-table-cursor-up" title="ibus_lookup_table_cursor_up ()">ibus_lookup_table_cursor_up</a>         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusLookupTable.html#ibus-lookup-table-cursor-down" title="ibus_lookup_table_cursor_down ()">ibus_lookup_table_cursor_down</a>       (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusLookupTable.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusLookupTable
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusLookupTable.description"></a><h2>Description</h2>
+<p>
+An IBusLookuptable stores the candidate words or phrases for users to choose from.
+</p>
+<p>
+Use <a class="link" href="IBusEngine.html#ibus-engine-update-lookup-table" title="ibus_engine_update_lookup_table ()"><code class="function">ibus_engine_update_lookup_table()</code></a>, <a class="link" href="IBusEngine.html#ibus-engine-show-lookup-table" title="ibus_engine_show_lookup_table ()"><code class="function">ibus_engine_show_lookup_table()</code></a>,
+and <a class="link" href="IBusEngine.html#ibus-engine-hide-lookup-table" title="ibus_engine_hide_lookup_table ()"><code class="function">ibus_engine_hide_lookup_table()</code></a> to update, show and hide the lookup
+table.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusLookupTable.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusLookupTable-struct"></a><h3>struct IBusLookupTable</h3>
+<pre class="programlisting">struct IBusLookupTable {
+    guint page_size;
+    guint cursor_pos;
+    gboolean cursor_visible;
+    gboolean round;
+    gint orientation;
+
+    GArray *candidates;
+    GArray *labels;
+};
+</pre>
+<p>
+An IBusLookuptable stores the candidate words or phrases for users to choose from.
+Note that some input methods allow you to select candidate by pressing non-numeric
+keys such as "asdfghjkl;".
+Developers of these input methods should change the labels with
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-append-label" title="ibus_lookup_table_append_label ()"><code class="function">ibus_lookup_table_append_label()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">guint</span> <em class="structfield"><code><a name="IBusLookupTable-struct.page-size"></a>page_size</code></em>;</span></p></td>
+<td>number of candidate shown per page.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint</span> <em class="structfield"><code><a name="IBusLookupTable-struct.cursor-pos"></a>cursor_pos</code></em>;</span></p></td>
+<td>position index of cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gboolean</span> <em class="structfield"><code><a name="IBusLookupTable-struct.cursor-visible"></a>cursor_visible</code></em>;</span></p></td>
+<td>whether the cursor is visible.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gboolean</span> <em class="structfield"><code><a name="IBusLookupTable-struct.round"></a>round</code></em>;</span></p></td>
+<td>TRUE for lookup table wrap around.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gint</span> <em class="structfield"><code><a name="IBusLookupTable-struct.orientation"></a>orientation</code></em>;</span></p></td>
+<td>orientation of the table.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">GArray</span> *<em class="structfield"><code><a name="IBusLookupTable-struct.candidates"></a>candidates</code></em>;</span></p></td>
+<td>Candidate words/phrases.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">GArray</span> *<em class="structfield"><code><a name="IBusLookupTable-struct.labels"></a>labels</code></em>;</span></p></td>
+<td>Candidate labels which identify individual candidates in the same page. Default is 1, 2, 3, 4 ...</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusLookupTableClass"></a><h3>struct IBusLookupTableClass</h3>
+<pre class="programlisting">struct IBusLookupTableClass {
+    IBusSerializableClass parent;
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-new"></a><h3>ibus_lookup_table_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="returnvalue">IBusLookupTable</span></a> *   ibus_lookup_table_new               (<em class="parameter"><code><span class="type">guint</span> page_size</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> cursor_pos</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> cursor_visible</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> round</code></em>);</pre>
+<p>
+New a IBusLookupTable.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>page_size</code></em> :</span></p></td>
+<td>number of candidate shown per page, the max value is 16.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_pos</code></em> :</span></p></td>
+<td>position index of cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_visible</code></em> :</span></p></td>
+<td>whether the cursor is visible.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>round</code></em> :</span></p></td>
+<td>TRUE for lookup table wrap around.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusLookupTable.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-append-candidate"></a><h3>ibus_lookup_table_append_candidate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_lookup_table_append_candidate  (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);</pre>
+<p>
+Append a candidate word/phrase to IBusLookupTable, and increase reference.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>candidate word/phrase to be appended (in IBusText format).</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-get-number-of-candidates"></a><h3>ibus_lookup_table_get_number_of_candidates ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_lookup_table_get_number_of_candidates
+                                                        (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Return the number of candidate in the table.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The number of candidates in the table</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-get-candidate"></a><h3>ibus_lookup_table_get_candidate ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_lookup_table_get_candidate     (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>);</pre>
+<p>
+Return IBusText at the given index. Borrowed reference.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>Index in the Lookup table.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>IBusText at the given index; NULL if no such IBusText. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-append-label"></a><h3>ibus_lookup_table_append_label ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_lookup_table_append_label      (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);</pre>
+<p>
+Append a candidate word/phrase to IBusLookupTable, and increase reference.
+This function is needed if the input method select candidate with
+non-numeric keys such as "asdfghjkl;".
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>A candidate label to be appended (in IBusText format).</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-set-label"></a><h3>ibus_lookup_table_set_label ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_lookup_table_set_label         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);</pre>
+<p>
+Append a candidate word/phrase to IBusLookupTable, and increase reference.
+This function is needed if the input method select candidate with
+non-numeric keys such as "asdfghjkl;".
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>Intex in the Lookup table.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>A candidate label to be appended (in IBusText format).</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-get-label"></a><h3>ibus_lookup_table_get_label ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_lookup_table_get_label         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>);</pre>
+<p>
+Return IBusText at the given index. Borrowed reference.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>Index in the Lookup table.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>IBusText at the given index; NULL if no such IBusText. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-set-cursor-pos"></a><h3>ibus_lookup_table_set_cursor_pos ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_lookup_table_set_cursor_pos    (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> cursor_pos</code></em>);</pre>
+<p>
+Set the cursor position of IBusLookupTable.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_pos</code></em> :</span></p></td>
+<td>The position of cursor.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-get-cursor-pos"></a><h3>ibus_lookup_table_get_cursor_pos ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_lookup_table_get_cursor_pos    (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Get the cursor position of IBusLookupTable.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The position of cursor.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-set-cursor-visible"></a><h3>ibus_lookup_table_set_cursor_visible ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_lookup_table_set_cursor_visible
+                                                        (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);</pre>
+<p>
+Set whether to make the cursor of an IBusLookupTable visible or not.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether to make the cursor of <em class="parameter"><code>table</code></em> visible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-is-cursor-visible"></a><h3>ibus_lookup_table_is_cursor_visible ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_lookup_table_is_cursor_visible (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Returns whether the cursor of an IBusLookupTable is visible.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether the cursor of <em class="parameter"><code>table</code></em> is visible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-get-cursor-in-page"></a><h3>ibus_lookup_table_get_cursor_in_page ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_lookup_table_get_cursor_in_page
+                                                        (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Get the cursor position in current page of IBusLookupTable.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The position of cursor in current page.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-set-page-size"></a><h3>ibus_lookup_table_set_page_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_lookup_table_set_page_size     (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> page_size</code></em>);</pre>
+<p>
+Set the number of candidate shown per page.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>page_size</code></em> :</span></p></td>
+<td>number of candidate shown per page.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-get-page-size"></a><h3>ibus_lookup_table_get_page_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_lookup_table_get_page_size     (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Get the number of candidate shown per page.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Page size, i.e., number of candidate shown per page.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-set-round"></a><h3>ibus_lookup_table_set_round ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_lookup_table_set_round         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> round</code></em>);</pre>
+<p>
+Set whether to make the IBusLookupTable round or not.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>round</code></em> :</span></p></td>
+<td>Whether to make <em class="parameter"><code>table</code></em> round.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-is-round"></a><h3>ibus_lookup_table_is_round ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_lookup_table_is_round          (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Returns whether the IBusLookupTable is round.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Whether the <em class="parameter"><code>table</code></em> is round.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-set-orientation"></a><h3>ibus_lookup_table_set_orientation ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_lookup_table_set_orientation   (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> orientation</code></em>);</pre>
+<p>
+Set the orientation.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>orientation</code></em> :</span></p></td>
+<td>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-get-orientation"></a><h3>ibus_lookup_table_get_orientation ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint</span>                ibus_lookup_table_get_orientation   (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Returns the orientation of the IBusLookupTable.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The orientation of the <em class="parameter"><code>table</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-clear"></a><h3>ibus_lookup_table_clear ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_lookup_table_clear             (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Clear and remove all candidate from an IBusLookupTable.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-page-up"></a><h3>ibus_lookup_table_page_up ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_lookup_table_page_up           (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Go to previous page of an IBusLookupTable.
+</p>
+<p>
+It returns FALSE if it is already at the first page,
+unless  <code class="code">table&gt;-round==TRUE</code>, where it will go
+to the last page.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if succeed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-page-down"></a><h3>ibus_lookup_table_page_down ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_lookup_table_page_down         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Go to next page of an IBusLookupTable.
+</p>
+<p>
+It returns FALSE if it is already at the last page,
+unless  <code class="code">table&gt;-round==TRUE</code>, where it will go
+to the first page.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if succeed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-cursor-up"></a><h3>ibus_lookup_table_cursor_up ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_lookup_table_cursor_up         (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Go to previous candidate of an IBusLookupTable.
+</p>
+<p>
+It returns FALSE if it is already at the first candidate,
+unless  <code class="code">table&gt;-round==TRUE</code>, where it will go
+to the last candidate.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if succeed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-lookup-table-cursor-down"></a><h3>ibus_lookup_table_cursor_down ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_lookup_table_cursor_down       (<em class="parameter"><code><a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a> *table</code></em>);</pre>
+<p>
+Go to next candidate of an IBusLookupTable.
+</p>
+<p>
+It returns FALSE if it is already at the last candidate,
+unless  <code class="code">table&gt;-round==TRUE</code>, where it will go
+to the first candidate.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>table</code></em> :</span></p></td>
+<td>An IBusLookupTable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if succeed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusLookupTable.see-also"></a><h2>See Also</h2>
+<a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusObject.html b/docs/reference/ibus/html/IBusObject.html
new file mode 100644 (file)
index 0000000..29ae741
--- /dev/null
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusObject</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch06.html" title="Internal">
+<link rel="prev" href="ibus-ibuserror.html" title="ibuserror">
+<link rel="next" href="ibus-ibusshare.html" title="ibusshare">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ibus-ibuserror.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-ibusshare.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusObject.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusObject.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusObject.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusObject.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusObject"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusObject.top_of_page"></a>IBusObject</span></h2>
+<p>IBusObject — Base object of IBus.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusObject.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusObject.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="IBusObject.html#IBUS-OBJECT-IN-DESTRUCTION:CAPS" title="IBUS_OBJECT_IN_DESTRUCTION()">IBUS_OBJECT_IN_DESTRUCTION</a>          (obj)
+#define             <a class="link" href="IBusObject.html#IBUS-OBJECT-DESTROYED:CAPS" title="IBUS_OBJECT_DESTROYED()">IBUS_OBJECT_DESTROYED</a>               (obj)
+struct              <a class="link" href="IBusObject.html#IBusObject-struct" title="struct IBusObject">IBusObject</a>;
+struct              <a class="link" href="IBusObject.html#IBusObjectClass" title="struct IBusObjectClass">IBusObjectClass</a>;
+<a class="link" href="IBusObject.html" title="IBusObject"><span class="returnvalue">IBusObject</span></a> *        <a class="link" href="IBusObject.html#ibus-object-new" title="ibus_object_new ()">ibus_object_new</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusObject.html#ibus-object-destroy" title="ibus_object_destroy ()">ibus_object_destroy</a>                 (<em class="parameter"><code><a class="link" href="IBusObject.html" title="IBusObject"><span class="type">IBusObject</span></a> *object</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusObject.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----IBusObject
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+               +----<a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+               +----<a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+               +----<a class="link" href="IBusKeymap.html" title="IBusKeymap">IBusKeymap</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusObject.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusObject.html#IBusObject-destroy" title='The "destroy" signal'>destroy</a>"                                        : <code class="literal">Run Last</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusObject.description"></a><h2>Description</h2>
+<p>
+IBusObject is the base object for all objects in IBus.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusObject.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBUS-OBJECT-IN-DESTRUCTION:CAPS"></a><h3>IBUS_OBJECT_IN_DESTRUCTION()</h3>
+<pre class="programlisting">#define IBUS_OBJECT_IN_DESTRUCTION(obj)    (IBUS_OBJECT_FLAGS (obj) &amp; IBUS_IN_DESTRUCTION)
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-OBJECT-DESTROYED:CAPS"></a><h3>IBUS_OBJECT_DESTROYED()</h3>
+<pre class="programlisting">#define IBUS_OBJECT_DESTROYED(obj)         (IBUS_OBJECT_FLAGS (obj) &amp; IBUS_DESTROYED)
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusObject-struct"></a><h3>struct IBusObject</h3>
+<pre class="programlisting">struct IBusObject;</pre>
+<p>
+All the fields in the <span class="structname">IBusObject</span> structure are
+private to the <a class="link" href="IBusObject.html" title="IBusObject"><span class="type">IBusObject</span></a> and should never be accessed directly.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusObjectClass"></a><h3>struct IBusObjectClass</h3>
+<pre class="programlisting">struct IBusObjectClass {
+    GInitiallyUnownedClass parent;
+
+    /* signals */
+    void (* destroy)        (IBusObject   *object);
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-object-new"></a><h3>ibus_object_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusObject.html" title="IBusObject"><span class="returnvalue">IBusObject</span></a> *        ibus_object_new                     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+New an IBusObject.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusObject</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-object-destroy"></a><h3>ibus_object_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_object_destroy                 (<em class="parameter"><code><a class="link" href="IBusObject.html" title="IBusObject"><span class="type">IBusObject</span></a> *object</code></em>);</pre>
+<p>
+Emit the "destory" signal notifying all reference holders that they should
+release the <a class="link" href="IBusObject.html" title="IBusObject"><span class="type">IBusObject</span></a>.
+</p>
+<p>
+The memory for the object itself won't be deleted until its reference count
+actually drops to 0; ibus_object_destroy merely asks reference holders to
+release their references. It does not free the object.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>an <a class="link" href="IBusObject.html" title="IBusObject"><span class="type">IBusObject</span></a> to destroy.</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusObject.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusObject-destroy"></a><h3>The <code class="literal">"destroy"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusObject.html" title="IBusObject"><span class="type">IBusObject</span></a> *object,
+                                                        <span class="type">gpointer</span>    user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Destroy and free an IBusObject
+</p>
+<p>
+See also:  <a class="link" href="IBusObject.html#ibus-object-destroy" title="ibus_object_destroy ()"><code class="function">ibus_object_destroy()</code></a>.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>An IBusObject.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusObservedPath.html b/docs/reference/ibus/html/IBusObservedPath.html
new file mode 100644 (file)
index 0000000..d2abb1b
--- /dev/null
@@ -0,0 +1,283 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusObservedPath</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch04.html" title="Configuration">
+<link rel="prev" href="IBusConfigService.html" title="IBusConfigService">
+<link rel="next" href="IBusRegistry.html" title="IBusRegistry">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusConfigService.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusRegistry.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusObservedPath.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusObservedPath.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusObservedPath.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusObservedPath"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusObservedPath.top_of_page"></a>IBusObservedPath</span></h2>
+<p>IBusObservedPath — Path object of IBus.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusObservedPath.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusObservedPath.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusObservedPath.html#IBusObservedPath-struct" title="struct IBusObservedPath">IBusObservedPath</a>;
+struct              <a class="link" href="IBusObservedPath.html#IBusObservedPathClass" title="struct IBusObservedPathClass">IBusObservedPathClass</a>;
+<a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="returnvalue">IBusObservedPath</span></a> *  <a class="link" href="IBusObservedPath.html#ibus-observed-path-new-from-xml-node" title="ibus_observed_path_new_from_xml_node ()">ibus_observed_path_new_from_xml_node</a>
+                                                        (<em class="parameter"><code><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> fill_stat</code></em>);
+<a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="returnvalue">IBusObservedPath</span></a> *  <a class="link" href="IBusObservedPath.html#ibus-observed-path-new" title="ibus_observed_path_new ()">ibus_observed_path_new</a>              (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> fill_stat</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusObservedPath.html#ibus-observed-path-traverse" title="ibus_observed_path_traverse ()">ibus_observed_path_traverse</a>         (<em class="parameter"><code><a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="type">IBusObservedPath</span></a> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> dir_only</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusObservedPath.html#ibus-observed-path-check-modification" title="ibus_observed_path_check_modification ()">ibus_observed_path_check_modification</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="type">IBusObservedPath</span></a> *path</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusObservedPath.html#ibus-observed-path-output" title="ibus_observed_path_output ()">ibus_observed_path_output</a>           (<em class="parameter"><code><a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="type">IBusObservedPath</span></a> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> indent</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusObservedPath.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusObservedPath
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusObservedPath.description"></a><h2>Description</h2>
+<p>
+IBusObservedPath provides methods for file path manipulation,
+such as monitor modification, directory tree traversal.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusObservedPath.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusObservedPath-struct"></a><h3>struct IBusObservedPath</h3>
+<pre class="programlisting">struct IBusObservedPath {
+    gchar *path;
+    glong mtime;
+    gboolean is_dir;
+    gboolean is_exist;
+};
+</pre>
+<p>
+Data structure of IBusObservedPath.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">gchar</span> *<em class="structfield"><code><a name="IBusObservedPath-struct.path"></a>path</code></em>;</span></p></td>
+<td>Path to be handled.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">glong</span> <em class="structfield"><code><a name="IBusObservedPath-struct.mtime"></a>mtime</code></em>;</span></p></td>
+<td>Modified time.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gboolean</span> <em class="structfield"><code><a name="IBusObservedPath-struct.is-dir"></a>is_dir</code></em>;</span></p></td>
+<td>Whether the file is the path directory.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gboolean</span> <em class="structfield"><code><a name="IBusObservedPath-struct.is-exist"></a>is_exist</code></em>;</span></p></td>
+<td>Whether the file exists.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusObservedPathClass"></a><h3>struct IBusObservedPathClass</h3>
+<pre class="programlisting">struct IBusObservedPathClass {
+    IBusSerializableClass parent;
+
+    /* class members */
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-observed-path-new-from-xml-node"></a><h3>ibus_observed_path_new_from_xml_node ()</h3>
+<pre class="programlisting"><a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="returnvalue">IBusObservedPath</span></a> *  ibus_observed_path_new_from_xml_node
+                                                        (<em class="parameter"><code><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> fill_stat</code></em>);</pre>
+<p>
+New an IBusObservedPath from an XML node.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>An XML node that contain path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fill_stat</code></em> :</span></p></td>
+<td>Auto-fill the path status.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusObservedPath.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-observed-path-new"></a><h3>ibus_observed_path_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="returnvalue">IBusObservedPath</span></a> *  ibus_observed_path_new              (<em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> fill_stat</code></em>);</pre>
+<p>
+New an IBusObservedPath from an XML node.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>The path string.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fill_stat</code></em> :</span></p></td>
+<td>Auto-fill the path status.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusObservedPath.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-observed-path-traverse"></a><h3>ibus_observed_path_traverse ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_observed_path_traverse         (<em class="parameter"><code><a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="type">IBusObservedPath</span></a> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> dir_only</code></em>);</pre>
+<p>
+Recursively traverse the path and put the files and subdirectory in to a newly allocated
+GLists, if the <em class="parameter"><code>path</code></em> is a directory. Otherwise returns NULL.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>An IBusObservedPath.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dir_only</code></em> :</span></p></td>
+<td>Only looks for subdirs, not files</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocate GList which holds content in path; NULL if <em class="parameter"><code>path</code></em> is not directory. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> IBusObservedPath]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-observed-path-check-modification"></a><h3>ibus_observed_path_check_modification ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_observed_path_check_modification
+                                                        (<em class="parameter"><code><a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="type">IBusObservedPath</span></a> *path</code></em>);</pre>
+<p>
+Checks whether the path is modified by comparing the mtime in object and mtime in file system.
+Returns TRUE if imtime is changed, otherwise FALSE.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>An IBusObservedPath.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if mtime is changed; FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-observed-path-output"></a><h3>ibus_observed_path_output ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_observed_path_output           (<em class="parameter"><code><a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="type">IBusObservedPath</span></a> *path</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> indent</code></em>);</pre>
+<p>
+Append the observed path to a string with following format:
+&lt;path mtime="&lt;i&gt;modified time&lt;/i&gt;" &gt;&lt;i&gt;path&lt;/i&gt;&lt;/path&gt;
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>An IBusObservedPath.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
+<td>Path is appended to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indent</code></em> :</span></p></td>
+<td>number of indent.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusPanelService.html b/docs/reference/ibus/html/IBusPanelService.html
new file mode 100644 (file)
index 0000000..0217bba
--- /dev/null
@@ -0,0 +1,1203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusPanelService</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch02.html" title="Panel (User Interfaces)">
+<link rel="prev" href="IBusLookupTable.html" title="IBusLookupTable">
+<link rel="next" href="IBusProperty.html" title="IBusProperty">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusLookupTable.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusProperty.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusPanelService.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusPanelService.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusPanelService.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusPanelService.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusPanelService"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusPanelService.top_of_page"></a>IBusPanelService</span></h2>
+<p>IBusPanelService — Panel service back-end.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusPanelService.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusPanelService.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusPanelService.html#IBusPanelService-struct" title="struct IBusPanelService">IBusPanelService</a>;
+struct              <a class="link" href="IBusPanelService.html#IBusPanelServiceClass" title="struct IBusPanelServiceClass">IBusPanelServiceClass</a>;
+<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="returnvalue">IBusPanelService</span></a> *  <a class="link" href="IBusPanelService.html#ibus-panel-service-new" title="ibus_panel_service_new ()">ibus_panel_service_new</a>              (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusPanelService.html#ibus-panel-service-candidate-clicked" title="ibus_panel_service_candidate_clicked ()">ibus_panel_service_candidate_clicked</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> button</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> state</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusPanelService.html#ibus-panel-service-cursor-down" title="ibus_panel_service_cursor_down ()">ibus_panel_service_cursor_down</a>      (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusPanelService.html#ibus-panel-service-cursor-up" title="ibus_panel_service_cursor_up ()">ibus_panel_service_cursor_up</a>        (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusPanelService.html#ibus-panel-service-page-down" title="ibus_panel_service_page_down ()">ibus_panel_service_page_down</a>        (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusPanelService.html#ibus-panel-service-page-up" title="ibus_panel_service_page_up ()">ibus_panel_service_page_up</a>          (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusPanelService.html#ibus-panel-service-property-activate" title="ibus_panel_service_property_activate ()">ibus_panel_service_property_activate</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *prop_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> prop_state</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusPanelService.html#ibus-panel-service-property-show" title="ibus_panel_service_property_show ()">ibus_panel_service_property_show</a>    (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *prop_name</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusPanelService.html#ibus-panel-service-property-hide" title="ibus_panel_service_property_hide ()">ibus_panel_service_property_hide</a>    (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *prop_name</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusPanelService.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+                     +----IBusPanelService
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusPanelService.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-cursor-down-lookup-table" title='The "cursor-down-lookup-table" signal'>cursor-down-lookup-table</a>"                       : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-cursor-up-lookup-table" title='The "cursor-up-lookup-table" signal'>cursor-up-lookup-table</a>"                         : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-destroy-context" title='The "destroy-context" signal'>destroy-context</a>"                                : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-focus-in" title='The "focus-in" signal'>focus-in</a>"                                       : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-focus-out" title='The "focus-out" signal'>focus-out</a>"                                      : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-hide-auxiliary-text" title='The "hide-auxiliary-text" signal'>hide-auxiliary-text</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-hide-language-bar" title='The "hide-language-bar" signal'>hide-language-bar</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-hide-lookup-table" title='The "hide-lookup-table" signal'>hide-lookup-table</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-hide-preedit-text" title='The "hide-preedit-text" signal'>hide-preedit-text</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-page-down-lookup-table" title='The "page-down-lookup-table" signal'>page-down-lookup-table</a>"                         : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-page-up-lookup-table" title='The "page-up-lookup-table" signal'>page-up-lookup-table</a>"                           : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-register-properties" title='The "register-properties" signal'>register-properties</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-reset" title='The "reset" signal'>reset</a>"                                          : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-set-cursor-location" title='The "set-cursor-location" signal'>set-cursor-location</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-show-auxiliary-text" title='The "show-auxiliary-text" signal'>show-auxiliary-text</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-show-language-bar" title='The "show-language-bar" signal'>show-language-bar</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-show-lookup-table" title='The "show-lookup-table" signal'>show-lookup-table</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-show-preedit-text" title='The "show-preedit-text" signal'>show-preedit-text</a>"                              : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-start-setup" title='The "start-setup" signal'>start-setup</a>"                                    : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-state-changed" title='The "state-changed" signal'>state-changed</a>"                                  : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-update-auxiliary-text" title='The "update-auxiliary-text" signal'>update-auxiliary-text</a>"                          : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-update-lookup-table" title='The "update-lookup-table" signal'>update-lookup-table</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-update-preedit-text" title='The "update-preedit-text" signal'>update-preedit-text</a>"                            : <code class="literal">Run Last</code>
+  "<a class="link" href="IBusPanelService.html#IBusPanelService-update-property" title='The "update-property" signal'>update-property</a>"                                : <code class="literal">Run Last</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusPanelService.description"></a><h2>Description</h2>
+<p>
+An IBusPanelService is a base class for UI services.
+Developers can "extend" this class for panel UI development.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusPanelService.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusPanelService-struct"></a><h3>struct IBusPanelService</h3>
+<pre class="programlisting">struct IBusPanelService;</pre>
+<p>
+An opaque data type representing an IBusPanelService.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelServiceClass"></a><h3>struct IBusPanelServiceClass</h3>
+<pre class="programlisting">struct IBusPanelServiceClass {
+    IBusServiceClass parent;
+
+    /* class members */
+    void     (* focus_in)                  (IBusPanelService       *panel,
+                                            const gchar
+                                                   *input_context_path);
+    void     (* focus_out)                 (IBusPanelService       *panel,
+                                            const gchar
+                                                   *input_context_path);
+    void     (* register_properties)       (IBusPanelService       *panel,
+                                            IBusPropList           *prop_list);
+    void     (* set_cursor_location)       (IBusPanelService       *panel,
+                                            gint                    x,
+                                            gint                    y,
+                                            gint                    w,
+                                            gint                    h);
+    void     (* update_auxiliary_text)     (IBusPanelService       *panel,
+                                            IBusText               *text,
+                                            gboolean                visible);
+    void     (* update_lookup_table)       (IBusPanelService       *panel,
+                                            IBusLookupTable        *lookup_table,
+                                            gboolean                visible);
+    void     (* update_preedit_text)       (IBusPanelService       *panel,
+                                            IBusText               *text,
+                                            guint                  cursor_pos,
+                                            gboolean               visible);
+    void     (* update_property)           (IBusPanelService       *panel,
+                                            IBusProperty           *prop);
+    void     (* cursor_down_lookup_table)  (IBusPanelService       *panel);
+    void     (* cursor_up_lookup_table)    (IBusPanelService       *panel);
+    void     (* hide_auxiliary_text)       (IBusPanelService       *panel);
+    void     (* hide_language_bar)         (IBusPanelService       *panel);
+    void     (* hide_lookup_table)         (IBusPanelService       *panel);
+    void     (* hide_preedit_text)         (IBusPanelService       *panel);
+    void     (* page_down_lookup_table)    (IBusPanelService       *panel);
+    void     (* page_up_lookup_table)      (IBusPanelService       *panel);
+    void     (* reset)                     (IBusPanelService       *panel);
+    void     (* show_auxiliary_text)       (IBusPanelService       *panel);
+    void     (* show_language_bar)         (IBusPanelService       *panel);
+    void     (* show_lookup_table)         (IBusPanelService       *panel);
+    void     (* show_preedit_text)         (IBusPanelService       *panel);
+    void     (* start_setup)               (IBusPanelService       *panel);
+    void     (* state_changed)             (IBusPanelService       *panel);
+    void     (* destroy_context)           (IBusPanelService       *panel,
+                                            const gchar
+                                                   *input_context_path);
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-panel-service-new"></a><h3>ibus_panel_service_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="returnvalue">IBusPanelService</span></a> *  ibus_panel_service_new              (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);</pre>
+<p>
+New an IBusPanelService from an GDBusConnection.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>An GDBusConnection.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusPanelService.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-panel-service-candidate-clicked"></a><h3>ibus_panel_service_candidate_clicked ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_panel_service_candidate_clicked
+                                                        (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> button</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> state</code></em>);</pre>
+<p>
+Notify that a candidate is clicked
+by sending a "CandidateClicked" to IBus service.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>panel</code></em> :</span></p></td>
+<td>An IBusPanelService</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>Index in the Lookup table</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>button</code></em> :</span></p></td>
+<td>GdkEventButton::button (1: left button, etc.)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>GdkEventButton::state (key modifier flags)</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-panel-service-cursor-down"></a><h3>ibus_panel_service_cursor_down ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_panel_service_cursor_down      (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>);</pre>
+<p>
+Notify that the cursor is down
+by sending a "CursorDown" to IBus service.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>panel</code></em> :</span></p></td>
+<td>An IBusPanelService</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-panel-service-cursor-up"></a><h3>ibus_panel_service_cursor_up ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_panel_service_cursor_up        (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>);</pre>
+<p>
+Notify that the cursor is up
+by sending a "CursorUp" to IBus service.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>panel</code></em> :</span></p></td>
+<td>An IBusPanelService</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-panel-service-page-down"></a><h3>ibus_panel_service_page_down ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_panel_service_page_down        (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>);</pre>
+<p>
+Notify that the page is down
+by sending a "PageDown" to IBus service.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>panel</code></em> :</span></p></td>
+<td>An IBusPanelService</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-panel-service-page-up"></a><h3>ibus_panel_service_page_up ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_panel_service_page_up          (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>);</pre>
+<p>
+Notify that the page is up
+by sending a "PageUp" to IBus service.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>panel</code></em> :</span></p></td>
+<td>An IBusPanelService</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-panel-service-property-activate"></a><h3>ibus_panel_service_property_activate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_panel_service_property_activate
+                                                        (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *prop_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> prop_state</code></em>);</pre>
+<p>
+Notify that a property is active
+by sending a "PropertyActivate" message to IBus service.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>panel</code></em> :</span></p></td>
+<td>An IBusPanelService</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_name</code></em> :</span></p></td>
+<td>A property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_state</code></em> :</span></p></td>
+<td>State of the property</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-panel-service-property-show"></a><h3>ibus_panel_service_property_show ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_panel_service_property_show    (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *prop_name</code></em>);</pre>
+<p>
+Notify that a property is shown
+by sending a "ValueChanged" message to IBus service.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>panel</code></em> :</span></p></td>
+<td>An IBusPanelService</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_name</code></em> :</span></p></td>
+<td>A property name</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-panel-service-property-hide"></a><h3>ibus_panel_service_property_hide ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_panel_service_property_hide    (<em class="parameter"><code><a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *panel</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *prop_name</code></em>);</pre>
+<p>
+Notify that a property is hidden
+by sending a "ValueChanged" message to IBus service.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>panel</code></em> :</span></p></td>
+<td>An IBusPanelService</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_name</code></em> :</span></p></td>
+<td>A property name</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusPanelService.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusPanelService-cursor-down-lookup-table"></a><h3>The <code class="literal">"cursor-down-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the cursor-down-lookup-table.
+Implement the member function <code class="function">cursor_down_lookup_table()</code> in extended
+class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-cursor-up-lookup-table"></a><h3>The <code class="literal">"cursor-up-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the cursor-up-lookup-table.
+Implement the member function <code class="function">cursor_up_lookup_table()</code> in extended
+class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-destroy-context"></a><h3>The <code class="literal">"destroy-context"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *input_context_path,
+                                                        <span class="type">gchar</span>            *arg1,
+                                                        <span class="type">gpointer</span>          user_data)               : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application destroys.
+Implement the member function <code class="function">destroy_context()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>input_context_path</code></em> :</span></p></td>
+<td>Object path of InputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-focus-in"></a><h3>The <code class="literal">"focus-in"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *input_context_path,
+                                                        <span class="type">gchar</span>            *arg1,
+                                                        <span class="type">gpointer</span>          user_data)               : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the focus-in.
+Implement the member function <code class="function">focus_in()</code> in extended class to receive
+this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>input_context_path</code></em> :</span></p></td>
+<td>Object path of InputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-focus-out"></a><h3>The <code class="literal">"focus-out"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *input_context_path,
+                                                        <span class="type">gchar</span>            *arg1,
+                                                        <span class="type">gpointer</span>          user_data)               : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the focus-out.
+Implement the member function <code class="function">focus_out()</code> in extended class to receive
+this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>input_context_path</code></em> :</span></p></td>
+<td>Object path of InputContext.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-hide-auxiliary-text"></a><h3>The <code class="literal">"hide-auxiliary-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the hide-auxiliary-text.
+Implement the member function <code class="function">hide_auxiliary_text()</code> in extended class
+to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-hide-language-bar"></a><h3>The <code class="literal">"hide-language-bar"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the hide-language-bar.
+Implement the member function <code class="function">hide_language_bar()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-hide-lookup-table"></a><h3>The <code class="literal">"hide-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the hide-lookup-table.
+Implement the member function <code class="function">hide_lookup_table()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-hide-preedit-text"></a><h3>The <code class="literal">"hide-preedit-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the hide-preedit-text.
+Implement the member function <code class="function">hide_preedit_text()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-page-down-lookup-table"></a><h3>The <code class="literal">"page-down-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the page-down-lookup-table.
+Implement the member function <code class="function">page_down_lookup_table()</code> in extended
+class to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-page-up-lookup-table"></a><h3>The <code class="literal">"page-up-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the page-up-lookup-table.
+Implement the member function <code class="function">page_up_lookup_table()</code> in extended class
+to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-register-properties"></a><h3>The <code class="literal">"register-properties"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *prop_list,
+                                                        <a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a>     *arg1,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the register-properties.
+Implement the member function <code class="function">register_properties()</code> in extended class
+to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_list</code></em> :</span></p></td>
+<td>An IBusPropList that contains properties.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-reset"></a><h3>The <code class="literal">"reset"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the reset.
+Implement the member function <code class="function">reset()</code> in extended class to receive this
+signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-set-cursor-location"></a><h3>The <code class="literal">"set-cursor-location"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *x,
+                                                        <span class="type">gint</span>              y,
+                                                        <span class="type">gint</span>              w,
+                                                        <span class="type">gint</span>              h,
+                                                        <span class="type">gint</span>              arg4,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the set-cursor-location.
+Implement the member function <code class="function">set_cursor_location()</code> in extended class
+to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>X coordinate of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>Y coordinate of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>w</code></em> :</span></p></td>
+<td>Width of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>h</code></em> :</span></p></td>
+<td>Height of the cursor.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-show-auxiliary-text"></a><h3>The <code class="literal">"show-auxiliary-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the show-auxiliary-text.
+Implement the member function <code class="function">show_auxiliary_text()</code> in extended class
+to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-show-language-bar"></a><h3>The <code class="literal">"show-language-bar"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the show-language-bar.
+Implement the member function <code class="function">show_language_bar()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-show-lookup-table"></a><h3>The <code class="literal">"show-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the show-lookup-table.
+Implement the member function <code class="function">show_lookup_table()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-show-preedit-text"></a><h3>The <code class="literal">"show-preedit-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the show-preedit-text.
+Implement the member function <code class="function">show_preedit_text()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-start-setup"></a><h3>The <code class="literal">"start-setup"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the start-setup.
+Implement the member function <code class="function">start_setup()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-state-changed"></a><h3>The <code class="literal">"state-changed"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *arg0,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the state-changed.
+Implement the member function <code class="function">state_changed()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-update-auxiliary-text"></a><h3>The <code class="literal">"update-auxiliary-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *text,
+                                                        <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>         *visible,
+                                                        <span class="type">gboolean</span>          arg2,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the update-auxiliary-text.
+Implement the member function <code class="function">update_auxiliary_text()</code> in extended class
+to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>A preedit text to be updated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the update is visible.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-update-lookup-table"></a><h3>The <code class="literal">"update-lookup-table"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *lookup_table,
+                                                        <a class="link" href="IBusLookupTable.html" title="IBusLookupTable"><span class="type">IBusLookupTable</span></a>  *visible,
+                                                        <span class="type">gboolean</span>          arg2,
+                                                        <span class="type">gpointer</span>          user_data)         : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the update-lookup-table.
+Implement the member function <code class="function">update_lookup_table()</code> in extended class
+to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>lookup_table</code></em> :</span></p></td>
+<td>A lookup table to be updated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the update is visible.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-update-preedit-text"></a><h3>The <code class="literal">"update-preedit-text"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *text,
+                                                        <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>         *cursor_pos,
+                                                        <span class="type">guint</span>             visible,
+                                                        <span class="type">gboolean</span>          arg3,
+                                                        <span class="type">gpointer</span>          user_data)       : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the update-preedit-text.
+Implement the member function <code class="function">update_preedit_text()</code> in extended class
+to receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>A preedit text to be updated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>cursor_pos</code></em> :</span></p></td>
+<td>The cursor position of the text.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the update is visible.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPanelService-update-property"></a><h3>The <code class="literal">"update-property"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusPanelService.html" title="IBusPanelService"><span class="type">IBusPanelService</span></a> *prop,
+                                                        <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>     *arg1,
+                                                        <span class="type">gpointer</span>          user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when the client application get the update-property.
+Implement the member function <code class="function">update_property()</code> in extended class to
+receive this signal.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>The IBusProperty to be updated.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusPropList.html b/docs/reference/ibus/html/IBusPropList.html
new file mode 100644 (file)
index 0000000..aeb4ad3
--- /dev/null
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusPropList</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch02.html" title="Panel (User Interfaces)">
+<link rel="prev" href="IBusProperty.html" title="IBusProperty">
+<link rel="next" href="IBusText.html" title="IBusText">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusProperty.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusText.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusPropList.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusPropList.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusPropList.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusPropList"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusPropList.top_of_page"></a>IBusPropList</span></h2>
+<p>IBusPropList — An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> container.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusPropList.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusPropList.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">                    <a class="link" href="IBusProperty.html#IBusPropList-struct" title="IBusPropList">IBusPropList</a>;
+                    <a class="link" href="IBusProperty.html#IBusPropListClass" title="IBusPropListClass">IBusPropListClass</a>;
+<a class="link" href="IBusProperty.html#IBusPropList"><span class="returnvalue">IBusPropList</span></a> *      <a class="link" href="IBusPropList.html#ibus-prop-list-new" title="ibus_prop_list_new ()">ibus_prop_list_new</a>                  ();
+<span class="returnvalue">void</span>                <a class="link" href="IBusPropList.html#ibus-prop-list-append" title="ibus_prop_list_append ()">ibus_prop_list_append</a>               (<em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<a class="link" href="IBusProperty.html" title="IBusProperty"><span class="returnvalue">IBusProperty</span></a> *      <a class="link" href="IBusPropList.html#ibus-prop-list-get" title="ibus_prop_list_get ()">ibus_prop_list_get</a>                  (<em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusPropList.html#ibus-prop-list-update-property" title="ibus_prop_list_update_property ()">ibus_prop_list_update_property</a>      (<em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusPropList.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusPropList
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusPropList.description"></a><h2>Description</h2>
+<p>
+<em class="parameter"><code>See_also</code></em>: <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>, <a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a>
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusPropList.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusPropList-struct"></a><h3>IBusPropList</h3>
+<pre class="programlisting">typedef struct {
+    GArray *properties;
+} IBusPropList;
+</pre>
+<p>
+An array of IBusProperties.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPropListClass"></a><h3>IBusPropListClass</h3>
+<pre class="programlisting">typedef struct {
+    IBusSerializableClass parent;
+} IBusPropListClass;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-prop-list-new"></a><h3>ibus_prop_list_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusProperty.html#IBusPropList"><span class="returnvalue">IBusPropList</span></a> *      ibus_prop_list_new                  ();</pre>
+<p>
+New a IBusPropList.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusPropList.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-prop-list-append"></a><h3>ibus_prop_list_append ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_prop_list_append               (<em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Append an IBusProperty to an IBusPropList, and increase reference.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_list</code></em> :</span></p></td>
+<td>An IBusPropList.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>IBusProperty to be append to <em class="parameter"><code>prop_list</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-prop-list-get"></a><h3>ibus_prop_list_get ()</h3>
+<pre class="programlisting"><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="returnvalue">IBusProperty</span></a> *      ibus_prop_list_get                  (<em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> index</code></em>);</pre>
+<p>
+Returns IBusProperty at given index. Borrowed reference.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_list</code></em> :</span></p></td>
+<td>An IBusPropList.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
+<td>Index of an IBusPropList.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>IBusProperty at given index, NULL if no such IBusProperty. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-prop-list-update-property"></a><h3>ibus_prop_list_update_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_prop_list_update_property      (<em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Update an IBusProperty in IBusPropList.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_list</code></em> :</span></p></td>
+<td>An IBusPropList.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>IBusProperty to be update.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if succeeded, FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusProperty.html b/docs/reference/ibus/html/IBusProperty.html
new file mode 100644 (file)
index 0000000..d2d8427
--- /dev/null
@@ -0,0 +1,932 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusProperty</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch02.html" title="Panel (User Interfaces)">
+<link rel="prev" href="IBusPanelService.html" title="IBusPanelService">
+<link rel="next" href="IBusPropList.html" title="IBusPropList">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusPanelService.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusPropList.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusProperty.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusProperty.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusProperty.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusProperty.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusProperty"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusProperty.top_of_page"></a>IBusProperty</span></h2>
+<p>IBusProperty — UI component for input method engine property.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusProperty.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusProperty.synopsis"></a><h2>Synopsis</h2>
+<a name="IBusPropType"></a><a name="IBusPropState"></a><a name="IBusPropList"></a><pre class="synopsis">enum                <a class="link" href="IBusProperty.html#IBusPropType-enum" title="enum IBusPropType">IBusPropType</a>;
+enum                <a class="link" href="IBusProperty.html#IBusPropState-enum" title="enum IBusPropState">IBusPropState</a>;
+struct              <a class="link" href="IBusProperty.html#IBusProperty-struct" title="struct IBusProperty">IBusProperty</a>;
+struct              <a class="link" href="IBusProperty.html#IBusPropertyClass" title="struct IBusPropertyClass">IBusPropertyClass</a>;
+<a class="link" href="IBusProperty.html" title="IBusProperty"><span class="returnvalue">IBusProperty</span></a> *      <a class="link" href="IBusProperty.html#ibus-property-new" title="ibus_property_new ()">ibus_property_new</a>                   (<em class="parameter"><code>const <span class="type">gchar</span> *key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropType"><span class="type">IBusPropType</span></a> type</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *label</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *icon</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *tooltip</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> sensitive</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropState"><span class="type">IBusPropState</span></a> state</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>);
+<a class="link" href="IBusProperty.html" title="IBusProperty"><span class="returnvalue">IBusProperty</span></a> *      <a class="link" href="IBusProperty.html#ibus-property-new-varargs" title="ibus_property_new_varargs ()">ibus_property_new_varargs</a>           (<em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusProperty.html#ibus-property-get-key" title="ibus_property_get_key ()">ibus_property_get_key</a>               (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusProperty.html#ibus-property-get-label" title="ibus_property_get_label ()">ibus_property_get_label</a>             (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusProperty.html#ibus-property-set-label" title="ibus_property_set_label ()">ibus_property_set_label</a>             (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *label</code></em>);
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusProperty.html#ibus-property-get-symbol" title="ibus_property_get_symbol ()">ibus_property_get_symbol</a>            (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusProperty.html#ibus-property-set-symbol" title="ibus_property_set_symbol ()">ibus_property_set_symbol</a>            (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *symbol</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusProperty.html#ibus-property-get-icon" title="ibus_property_get_icon ()">ibus_property_get_icon</a>              (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusProperty.html#ibus-property-set-icon" title="ibus_property_set_icon ()">ibus_property_set_icon</a>              (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *icon</code></em>);
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusProperty.html#ibus-property-get-tooltip" title="ibus_property_get_tooltip ()">ibus_property_get_tooltip</a>           (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusProperty.html#ibus-property-set-tooltip" title="ibus_property_set_tooltip ()">ibus_property_set_tooltip</a>           (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *tooltip</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusProperty.html#ibus-property-get-sensitive" title="ibus_property_get_sensitive ()">ibus_property_get_sensitive</a>         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusProperty.html#ibus-property-set-sensitive" title="ibus_property_set_sensitive ()">ibus_property_set_sensitive</a>         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> sensitive</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusProperty.html#ibus-property-get-visible" title="ibus_property_get_visible ()">ibus_property_get_visible</a>           (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusProperty.html#ibus-property-set-visible" title="ibus_property_set_visible ()">ibus_property_set_visible</a>           (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);
+<a class="link" href="IBusProperty.html#IBusPropType"><span class="returnvalue">IBusPropType</span></a>        <a class="link" href="IBusProperty.html#ibus-property-get-prop-type" title="ibus_property_get_prop_type ()">ibus_property_get_prop_type</a>         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<a class="link" href="IBusProperty.html#IBusPropState"><span class="returnvalue">IBusPropState</span></a>       <a class="link" href="IBusProperty.html#ibus-property-get-state" title="ibus_property_get_state ()">ibus_property_get_state</a>             (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusProperty.html#ibus-property-set-state" title="ibus_property_set_state ()">ibus_property_set_state</a>             (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropState"><span class="type">IBusPropState</span></a> state</code></em>);
+<a class="link" href="IBusProperty.html#IBusPropList"><span class="returnvalue">IBusPropList</span></a> *      <a class="link" href="IBusProperty.html#ibus-property-get-sub-props" title="ibus_property_get_sub_props ()">ibus_property_get_sub_props</a>         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusProperty.html#ibus-property-set-sub-props" title="ibus_property_set_sub_props ()">ibus_property_set_sub_props</a>         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusProperty.html#ibus-property-update" title="ibus_property_update ()">ibus_property_update</a>                (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop_update</code></em>);
+                    <a class="link" href="IBusProperty.html#IBusPropListClass" title="IBusPropListClass">IBusPropListClass</a>;
+                    <a class="link" href="IBusProperty.html#IBusPropList-struct" title="IBusPropList">IBusPropList</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusProperty.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GEnum
+   +----IBusPropType
+</pre>
+<pre class="synopsis">
+  GEnum
+   +----IBusPropState
+</pre>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusProperty
+</pre>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusPropList
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusProperty.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusProperty.html#IBusProperty--icon" title='The "icon" property'>icon</a>"                     <span class="type">gchar</span>*                : Read / Write
+  "<a class="link" href="IBusProperty.html#IBusProperty--key" title='The "key" property'>key</a>"                      <span class="type">gchar</span>*                : Read / Write / Construct Only
+  "<a class="link" href="IBusProperty.html#IBusProperty--label" title='The "label" property'>label</a>"                    <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>*             : Read / Write / Construct
+  "<a class="link" href="IBusProperty.html#IBusProperty--prop-type" title='The "prop-type" property'>prop-type</a>"                <a class="link" href="IBusProperty.html#IBusPropType"><span class="type">IBusPropType</span></a>          : Read / Write / Construct Only
+  "<a class="link" href="IBusProperty.html#IBusProperty--sensitive" title='The "sensitive" property'>sensitive</a>"                <span class="type">gboolean</span>              : Read / Write
+  "<a class="link" href="IBusProperty.html#IBusProperty--state" title='The "state" property'>state</a>"                    <a class="link" href="IBusProperty.html#IBusPropState"><span class="type">IBusPropState</span></a>         : Read / Write
+  "<a class="link" href="IBusProperty.html#IBusProperty--sub-props" title='The "sub-props" property'>sub-props</a>"                <a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a>*         : Read / Write
+  "<a class="link" href="IBusProperty.html#IBusProperty--symbol" title='The "symbol" property'>symbol</a>"                   <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>*             : Read / Write / Construct
+  "<a class="link" href="IBusProperty.html#IBusProperty--tooltip" title='The "tooltip" property'>tooltip</a>"                  <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>*             : Read / Write
+  "<a class="link" href="IBusProperty.html#IBusProperty--visible" title='The "visible" property'>visible</a>"                  <span class="type">gboolean</span>              : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusProperty.description"></a><h2>Description</h2>
+<p>
+An IBusProperty is an UI component like a button or a menu item
+which shows the status of corresponding input method engine property.
+End user can operate and see the current status of IME through these components.
+For example, ibus-chewing users change the English/Chinese input mode by
+pressing ctrl-space or click on the Eng/Chi switch button.
+And the IBusProperty shows the change correspondingly.
+</p>
+<p>
+see_also: <a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a>, <a class="link" href="IBusEngine.html" title="IBusEngine"><span class="type">IBusEngine</span></a>
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusProperty.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusPropType-enum"></a><h3>enum IBusPropType</h3>
+<pre class="programlisting">typedef enum {
+    PROP_TYPE_NORMAL = 0,
+    PROP_TYPE_TOGGLE = 1,
+    PROP_TYPE_RADIO = 2,
+    PROP_TYPE_MENU = 3,
+    PROP_TYPE_SEPARATOR = 4,
+} IBusPropType;
+</pre>
+<p>
+Type enumeration of IBusProperty.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="PROP-TYPE-NORMAL:CAPS"></a><span class="term"><code class="literal">PROP_TYPE_NORMAL</code></span></p></td>
+<td>Property is shown as normal text.
+</td>
+</tr>
+<tr>
+<td><p><a name="PROP-TYPE-TOGGLE:CAPS"></a><span class="term"><code class="literal">PROP_TYPE_TOGGLE</code></span></p></td>
+<td>Property is shown as a toggle button.
+</td>
+</tr>
+<tr>
+<td><p><a name="PROP-TYPE-RADIO:CAPS"></a><span class="term"><code class="literal">PROP_TYPE_RADIO</code></span></p></td>
+<td>Property is shown as a radio selection option.
+</td>
+</tr>
+<tr>
+<td><p><a name="PROP-TYPE-MENU:CAPS"></a><span class="term"><code class="literal">PROP_TYPE_MENU</code></span></p></td>
+<td>Property is shown as a menu, usually imply it has sub menu
+items.
+</td>
+</tr>
+<tr>
+<td><p><a name="PROP-TYPE-SEPARATOR:CAPS"></a><span class="term"><code class="literal">PROP_TYPE_SEPARATOR</code></span></p></td>
+<td>A separator for menu.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPropState-enum"></a><h3>enum IBusPropState</h3>
+<pre class="programlisting">typedef enum {
+    PROP_STATE_UNCHECKED = 0,
+    PROP_STATE_CHECKED = 1,
+    PROP_STATE_INCONSISTENT = 2,
+} IBusPropState;
+</pre>
+<p>
+State of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>. The actual effect depends on <a class="link" href="IBusProperty.html#IBusPropType"><span class="type">IBusPropType</span></a> of the
+IBusProperty.
+</p>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">PROP_TYPE_TOGGLE</span></p></td>
+<td><p>Emphasized if PROP_STATE_CHECKED, normal otherwise.</p></td>
+</tr>
+<tr>
+<td><p><span class="term">PROP_TYPE_RADIO</span></p></td>
+<td><p>Option checked if PROP_STATE_CHECKED, unchecked otherwise.</p></td>
+</tr>
+</tbody>
+</table></div>
+<p>
+No effect on other types.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="PROP-STATE-UNCHECKED:CAPS"></a><span class="term"><code class="literal">PROP_STATE_UNCHECKED</code></span></p></td>
+<td>Property option is unchecked.
+</td>
+</tr>
+<tr>
+<td><p><a name="PROP-STATE-CHECKED:CAPS"></a><span class="term"><code class="literal">PROP_STATE_CHECKED</code></span></p></td>
+<td>Property option is checked.
+</td>
+</tr>
+<tr>
+<td><p><a name="PROP-STATE-INCONSISTENT:CAPS"></a><span class="term"><code class="literal">PROP_STATE_INCONSISTENT</code></span></p></td>
+<td>The state is inconsistent with the associated IME
+property.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty-struct"></a><h3>struct IBusProperty</h3>
+<pre class="programlisting">struct IBusProperty;</pre>
+<p>
+UI component for input method engine property.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPropertyClass"></a><h3>struct IBusPropertyClass</h3>
+<pre class="programlisting">struct IBusPropertyClass {
+    IBusSerializableClass parent;
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-new"></a><h3>ibus_property_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="returnvalue">IBusProperty</span></a> *      ibus_property_new                   (<em class="parameter"><code>const <span class="type">gchar</span> *key</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropType"><span class="type">IBusPropType</span></a> type</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *label</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *icon</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *tooltip</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> sensitive</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropState"><span class="type">IBusPropState</span></a> state</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>);</pre>
+<p>
+New a <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>Unique Identity for the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>
+<a class="link" href="IBusProperty.html#IBusPropType"><span class="type">IBusPropType</span></a> of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
+<td>Text shown in UI.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>icon</code></em> :</span></p></td>
+<td>Icon file for the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tooltip</code></em> :</span></p></td>
+<td>Message shown if mouse hovered the  <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sensitive</code></em> :</span></p></td>
+<td>Whether the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> is sensitive to keyboard and mouse event.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> is visible.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>IBusPropState of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_list</code></em> :</span></p></td>
+<td>
+<a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> that contains sub IBusProperties. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-new-varargs"></a><h3>ibus_property_new_varargs ()</h3>
+<pre class="programlisting"><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="returnvalue">IBusProperty</span></a> *      ibus_property_new_varargs           (<em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);</pre>
+<p>
+New a <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+<a class="link" href="IBusProperty.html#ibus-property-new-varargs" title="ibus_property_new_varargs ()"><code class="function">ibus_property_new_varargs()</code></a> supports the va_list format.
+name property is required. e.g.
+ibus_property_new_varargs("key", "TypingMode", "type", PROP_TYPE_MENU, NULL)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>first_property_name</code></em> :</span></p></td>
+<td>Name of the first property.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-key"></a><h3>ibus_property_get_key ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_property_get_key               (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Get the key of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the key of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>. Should not be freed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-label"></a><h3>ibus_property_get_label ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_property_get_label             (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Get the label of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the label of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>. Should not be freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-set-label"></a><h3>ibus_property_set_label ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_property_set_label             (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *label</code></em>);</pre>
+<p>
+Set the label of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
+<td>Text shown in UI.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-symbol"></a><h3>ibus_property_get_symbol ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_property_get_symbol            (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Get the symbol of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the symbol of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>. Should not be freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-set-symbol"></a><h3>ibus_property_set_symbol ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_property_set_symbol            (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *symbol</code></em>);</pre>
+<p>
+Set the symbol of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>symbol</code></em> :</span></p></td>
+<td>Text shown in UI.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-icon"></a><h3>ibus_property_get_icon ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_property_get_icon              (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Get the icon of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the icon of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>. Should not be freed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-set-icon"></a><h3>ibus_property_set_icon ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_property_set_icon              (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *icon</code></em>);</pre>
+<p>
+Set the icon of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>icon</code></em> :</span></p></td>
+<td>Icon shown in UI. It could be a full path of an icon file or an icon name.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-tooltip"></a><h3>ibus_property_get_tooltip ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_property_get_tooltip           (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Get the tooltip of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the tooltip of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>. Should not be freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-set-tooltip"></a><h3>ibus_property_set_tooltip ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_property_set_tooltip           (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *tooltip</code></em>);</pre>
+<p>
+Set the tooltip of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tooltip</code></em> :</span></p></td>
+<td>Text of the tooltip.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-sensitive"></a><h3>ibus_property_get_sensitive ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_property_get_sensitive         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Get the sensitive of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the sensitive of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-set-sensitive"></a><h3>ibus_property_set_sensitive ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_property_set_sensitive         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> sensitive</code></em>);</pre>
+<p>
+Set whether the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> is sensitive.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sensitive</code></em> :</span></p></td>
+<td>Whether the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> is sensitive.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-visible"></a><h3>ibus_property_get_visible ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_property_get_visible           (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Get the visible of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the visible of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-set-visible"></a><h3>ibus_property_set_visible ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_property_set_visible           (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);</pre>
+<p>
+Set whether the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> is visible.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>visible</code></em> :</span></p></td>
+<td>Whether the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> is visible.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-prop-type"></a><h3>ibus_property_get_prop_type ()</h3>
+<pre class="programlisting"><a class="link" href="IBusProperty.html#IBusPropType"><span class="returnvalue">IBusPropType</span></a>        ibus_property_get_prop_type         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-state"></a><h3>ibus_property_get_state ()</h3>
+<pre class="programlisting"><a class="link" href="IBusProperty.html#IBusPropState"><span class="returnvalue">IBusPropState</span></a>       ibus_property_get_state             (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Get the state of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the state of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-set-state"></a><h3>ibus_property_set_state ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_property_set_state             (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropState"><span class="type">IBusPropState</span></a> state</code></em>);</pre>
+<p>
+Set the state of the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>state</code></em> :</span></p></td>
+<td>The state of the <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-get-sub-props"></a><h3>ibus_property_get_sub_props ()</h3>
+<pre class="programlisting"><a class="link" href="IBusProperty.html#IBusPropList"><span class="returnvalue">IBusPropList</span></a> *      ibus_property_get_sub_props         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>);</pre>
+<p>
+Get the IBusPropList of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the IBusPropList of <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+Should not be freed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-set-sub-props"></a><h3>ibus_property_set_sub_props ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_property_set_sub_props         (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> *prop_list</code></em>);</pre>
+<p>
+Set the sub IBusProperties.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_list</code></em> :</span></p></td>
+<td>
+<a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> that contains sub IBusProperties.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-property-update"></a><h3>ibus_property_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_property_update                (<em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> *prop_update</code></em>);</pre>
+<p>
+Update the content of an <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.
+<a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a> <em class="parameter"><code>prop_update</code></em> can either be sub-property of <em class="parameter"><code>prop</code></em>,
+or holds new values for <em class="parameter"><code>prop</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusProperty.html" title="IBusProperty"><span class="type">IBusProperty</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>prop_update</code></em> :</span></p></td>
+<td>
+<a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a> that contains sub IBusProperties.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE for update suceeded; FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPropListClass"></a><h3>IBusPropListClass</h3>
+<pre class="programlisting">typedef struct {
+    IBusSerializableClass parent;
+} IBusPropListClass;
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPropList-struct"></a><h3>IBusPropList</h3>
+<pre class="programlisting">typedef struct {
+    GArray *properties;
+} IBusPropList;
+</pre>
+<p>
+An array of IBusProperties.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="type">GArray</span> *<em class="structfield"><code><a name="IBusPropList-struct.properties"></a>properties</code></em>;</span></p></td>
+<td>GArray that holds IBusProperties.</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusProperty.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="IBusProperty--icon"></a><h3>The <code class="literal">"icon"</code> property</h3>
+<pre class="programlisting">  "icon"                     <span class="type">gchar</span>*                : Read / Write</pre>
+<p>The icon of property.</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty--key"></a><h3>The <code class="literal">"key"</code> property</h3>
+<pre class="programlisting">  "key"                      <span class="type">gchar</span>*                : Read / Write / Construct Only</pre>
+<p>The key of property.</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty--label"></a><h3>The <code class="literal">"label"</code> property</h3>
+<pre class="programlisting">  "label"                    <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>*             : Read / Write / Construct</pre>
+<p>The label of property.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty--prop-type"></a><h3>The <code class="literal">"prop-type"</code> property</h3>
+<pre class="programlisting">  "prop-type"                <a class="link" href="IBusProperty.html#IBusPropType"><span class="type">IBusPropType</span></a>          : Read / Write / Construct Only</pre>
+<p>The type of property.</p>
+<p>Default value: PROP_TYPE_NORMAL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty--sensitive"></a><h3>The <code class="literal">"sensitive"</code> property</h3>
+<pre class="programlisting">  "sensitive"                <span class="type">gboolean</span>              : Read / Write</pre>
+<p>The sensitive of property.</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty--state"></a><h3>The <code class="literal">"state"</code> property</h3>
+<pre class="programlisting">  "state"                    <a class="link" href="IBusProperty.html#IBusPropState"><span class="type">IBusPropState</span></a>         : Read / Write</pre>
+<p>The state of property.</p>
+<p>Default value: PROP_STATE_UNCHECKED</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty--sub-props"></a><h3>The <code class="literal">"sub-props"</code> property</h3>
+<pre class="programlisting">  "sub-props"                <a class="link" href="IBusProperty.html#IBusPropList"><span class="type">IBusPropList</span></a>*         : Read / Write</pre>
+<p>The sub properties of property.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty--symbol"></a><h3>The <code class="literal">"symbol"</code> property</h3>
+<pre class="programlisting">  "symbol"                   <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>*             : Read / Write / Construct</pre>
+<p>The symbol of property.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty--tooltip"></a><h3>The <code class="literal">"tooltip"</code> property</h3>
+<pre class="programlisting">  "tooltip"                  <a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a>*             : Read / Write</pre>
+<p>The tooltip of property.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProperty--visible"></a><h3>The <code class="literal">"visible"</code> property</h3>
+<pre class="programlisting">  "visible"                  <span class="type">gboolean</span>              : Read / Write</pre>
+<p>The visible of property.</p>
+<p>Default value: TRUE</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusProxy.html b/docs/reference/ibus/html/IBusProxy.html
new file mode 100644 (file)
index 0000000..f0b1ff4
--- /dev/null
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusProxy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch05.html" title="Communication">
+<link rel="prev" href="IBusBus.html" title="IBusBus">
+<link rel="next" href="IBusSerializable.html" title="IBusSerializable">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusBus.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch05.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusSerializable.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusProxy.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusProxy.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusProxy.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusProxy.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+                   | 
+                  <a href="#IBusProxy.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusProxy"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusProxy.top_of_page"></a>IBusProxy</span></h2>
+<p>IBusProxy — Base proxy object.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusProxy.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusProxy.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="IBusProxy.html#IBUS-PROXY-FLAGS:CAPS" title="IBUS_PROXY_FLAGS()">IBUS_PROXY_FLAGS</a>                    (obj)
+#define             <a class="link" href="IBusProxy.html#IBUS-PROXY-SET-FLAGS:CAPS" title="IBUS_PROXY_SET_FLAGS()">IBUS_PROXY_SET_FLAGS</a>                (obj,
+                                                         flag)
+#define             <a class="link" href="IBusProxy.html#IBUS-PROXY-UNSET-FLAGS:CAPS" title="IBUS_PROXY_UNSET_FLAGS()">IBUS_PROXY_UNSET_FLAGS</a>              (obj,
+                                                         flag)
+#define             <a class="link" href="IBusProxy.html#IBUS-PROXY-DESTROYED:CAPS" title="IBUS_PROXY_DESTROYED()">IBUS_PROXY_DESTROYED</a>                (obj)
+struct              <a class="link" href="IBusProxy.html#IBusProxy-struct" title="struct IBusProxy">IBusProxy</a>;
+struct              <a class="link" href="IBusProxy.html#IBusProxyClass" title="struct IBusProxyClass">IBusProxyClass</a>;
+<span class="returnvalue">void</span>                <a class="link" href="IBusProxy.html#ibus-proxy-destroy" title="ibus_proxy_destroy ()">ibus_proxy_destroy</a>                  (<em class="parameter"><code><a class="link" href="IBusProxy.html" title="IBusProxy"><span class="type">IBusProxy</span></a> *proxy</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusProxy.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GDBusProxy
+         +----IBusProxy
+               +----<a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+               +----<a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusProxy.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+IBusProxy implements
+ GDBusInterface,  GInitable and  GAsyncInitable.</p>
+</div>
+<div class="refsect1">
+<a name="IBusProxy.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusProxy.html#IBusProxy-destroy" title='The "destroy" signal'>destroy</a>"                                        : <code class="literal">Run Last</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusProxy.description"></a><h2>Description</h2>
+<p>
+An IBusProxy is the base of all proxy objects,
+which communicate the corresponding <a href="IBusService.html"><span class="type">IBusServices</span></a> on the other end of IBusConnection.
+For example, IBus clients (such as editors, web browsers) invoke the proxy object,
+IBusInputContext to communicate with the InputContext service of the ibus-daemon.
+</p>
+<p>
+Almost all services have corresponding proxies, except very simple services.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusProxy.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBUS-PROXY-FLAGS:CAPS"></a><h3>IBUS_PROXY_FLAGS()</h3>
+<pre class="programlisting">#define IBUS_PROXY_FLAGS(obj)             (IBUS_PROXY (obj)-&gt;flags)
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PROXY-SET-FLAGS:CAPS"></a><h3>IBUS_PROXY_SET_FLAGS()</h3>
+<pre class="programlisting">#define IBUS_PROXY_SET_FLAGS(obj,flag)    G_STMT_START{ (IBUS_PROXY_FLAGS (obj) |= (flag)); }G_STMT_END
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PROXY-UNSET-FLAGS:CAPS"></a><h3>IBUS_PROXY_UNSET_FLAGS()</h3>
+<pre class="programlisting">#define IBUS_PROXY_UNSET_FLAGS(obj,flag)  G_STMT_START{ (IBUS_PROXY_FLAGS (obj) &amp;= ~(flag)); }G_STMT_END
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PROXY-DESTROYED:CAPS"></a><h3>IBUS_PROXY_DESTROYED()</h3>
+<pre class="programlisting">#define IBUS_PROXY_DESTROYED(obj)         (IBUS_PROXY_FLAGS (obj) &amp; IBUS_DESTROYED)
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProxy-struct"></a><h3>struct IBusProxy</h3>
+<pre class="programlisting">struct IBusProxy;</pre>
+<p>
+An opaque data type representing an IBusProxy.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusProxyClass"></a><h3>struct IBusProxyClass</h3>
+<pre class="programlisting">struct IBusProxyClass {
+    GDBusProxyClass parent;
+
+    /* class members */
+    void    (* destroy)     (IBusProxy      *proxy);
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-proxy-destroy"></a><h3>ibus_proxy_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_proxy_destroy                  (<em class="parameter"><code><a class="link" href="IBusProxy.html" title="IBusProxy"><span class="type">IBusProxy</span></a> *proxy</code></em>);</pre>
+<p>
+Dispose the proxy object. If the dbus connection is alive and the own variable above
+is TRUE (which is the default), org.freedesktop.IBus.Service.Destroy method will be
+called. Note that "destroy" signal might be emitted when ibus_proxy_destroy is called
+or the underlying dbus connection for the proxy is terminated. In the callback of the
+destroy signal, you might have to call something like 'g_object_unref(the_proxy);'.
+</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusProxy.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusProxy-destroy"></a><h3>The <code class="literal">"destroy"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusProxy.html" title="IBusProxy"><span class="type">IBusProxy</span></a> *object,
+                                                        <span class="type">gpointer</span>   user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Destroy and free an IBusProxy
+</p>
+<p>
+See also:  <a class="link" href="IBusProxy.html#ibus-proxy-destroy" title="ibus_proxy_destroy ()"><code class="function">ibus_proxy_destroy()</code></a>.
+</p>
+<p>
+</p>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Note</h3>
+<p>Argument <em class="parameter"><code>user_data</code></em> is ignored in this function.</p>
+</div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>An IBusProxy.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusRegistry.html b/docs/reference/ibus/html/IBusRegistry.html
new file mode 100644 (file)
index 0000000..3ec1c49
--- /dev/null
@@ -0,0 +1,471 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusRegistry</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch04.html" title="Configuration">
+<link rel="prev" href="IBusObservedPath.html" title="IBusObservedPath">
+<link rel="next" href="ibus-ibusversion.html" title="ibusversion">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusObservedPath.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-ibusversion.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusRegistry.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusRegistry.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusRegistry.object-hierarchy" class="shortcut">Object Hierarchy</a>
+                   | 
+                  <a href="#IBusRegistry.signals" class="shortcut">Signals</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusRegistry"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusRegistry.top_of_page"></a>IBusRegistry</span></h2>
+<p>IBusRegistry — Registry cache handling.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusRegistry.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusRegistry.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusRegistry.html#IBusRegistry-struct" title="struct IBusRegistry">IBusRegistry</a>;
+struct              <a class="link" href="IBusRegistry.html#IBusRegistryClass" title="struct IBusRegistryClass">IBusRegistryClass</a>;
+<a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="returnvalue">IBusRegistry</span></a> *      <a class="link" href="IBusRegistry.html#ibus-registry-new" title="ibus_registry_new ()">ibus_registry_new</a>                   (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusRegistry.html#ibus-registry-load" title="ibus_registry_load ()">ibus_registry_load</a>                  (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusRegistry.html#ibus-registry-load-in-dir" title="ibus_registry_load_in_dir ()">ibus_registry_load_in_dir</a>           (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *dirname</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusRegistry.html#ibus-registry-load-cache" title="ibus_registry_load_cache ()">ibus_registry_load_cache</a>            (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> is_user</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusRegistry.html#ibus-registry-load-cache-file" title="ibus_registry_load_cache_file ()">ibus_registry_load_cache_file</a>       (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusRegistry.html#ibus-registry-save-cache" title="ibus_registry_save_cache ()">ibus_registry_save_cache</a>            (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> is_user</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusRegistry.html#ibus-registry-save-cache-file" title="ibus_registry_save_cache_file ()">ibus_registry_save_cache_file</a>       (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusRegistry.html#ibus-registry-output" title="ibus_registry_output ()">ibus_registry_output</a>                (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indent</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusRegistry.html#ibus-registry-check-modification" title="ibus_registry_check_modification ()">ibus_registry_check_modification</a>    (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusRegistry.html#ibus-registry-get-components" title="ibus_registry_get_components ()">ibus_registry_get_components</a>        (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);
+<span class="returnvalue">GList</span> *             <a class="link" href="IBusRegistry.html#ibus-registry-get-observed-paths" title="ibus_registry_get_observed_paths ()">ibus_registry_get_observed_paths</a>    (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusRegistry.html#ibus-registry-start-monitor-changes" title="ibus_registry_start_monitor_changes ()">ibus_registry_start_monitor_changes</a> (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusRegistry.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusRegistry
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusRegistry.signals"></a><h2>Signals</h2>
+<pre class="synopsis">
+  "<a class="link" href="IBusRegistry.html#IBusRegistry-changed" title='The "changed" signal'>changed</a>"                                        : <code class="literal">Run Last</code>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusRegistry.description"></a><h2>Description</h2>
+<p>
+An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> loads IBus component files and generates the cache files.
+</p>
+<p>
+see_also: <a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a>
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusRegistry.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusRegistry-struct"></a><h3>struct IBusRegistry</h3>
+<pre class="programlisting">struct IBusRegistry;</pre>
+<p>
+Registry cache handling.
+You can load the registry from compose files or a cache file.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusRegistryClass"></a><h3>struct IBusRegistryClass</h3>
+<pre class="programlisting">struct IBusRegistryClass {
+    /* class members */
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-new"></a><h3>ibus_registry_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="returnvalue">IBusRegistry</span></a> *      ibus_registry_new                   (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+New a <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-load"></a><h3>ibus_registry_load ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_registry_load                  (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);</pre>
+<p>
+Read all XML files in a IBus component directory (typically
+/usr/share/ibus/component/ *.xml) and update the registry object.
+IBUS_COMPONENT_PATH environment valuable is also available for
+the custom component directories, whose delimiter is ':'.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-load-in-dir"></a><h3>ibus_registry_load_in_dir ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_registry_load_in_dir           (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *dirname</code></em>);</pre>
+<p>
+Read all XML files in <em class="parameter"><code>dirname</code></em>, create a <a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> object for each file,
+and add the component objects to the registry.
+If <em class="parameter"><code>dirname</code></em> is "/usr/share/ibus/component", this API and
+<a class="link" href="IBusRegistry.html#ibus-registry-load" title="ibus_registry_load ()"><code class="function">ibus_registry_load()</code></a> are same.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dirname</code></em> :</span></p></td>
+<td>IBus component directory which includes XML files.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-load-cache"></a><h3>ibus_registry_load_cache ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_registry_load_cache            (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> is_user</code></em>);</pre>
+<p>
+Load the user or system registry cache.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>is_user</code></em> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the registry cache is loaded in the user directory.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the cache exists and is loaded successfully,
+<code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-load-cache-file"></a><h3>ibus_registry_load_cache_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_registry_load_cache_file       (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>);</pre>
+<p>
+Load the registry cache <em class="parameter"><code>filename</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
+<td>The file path of the registry cache</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the cache exists and is loaded successfully,
+<code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-save-cache"></a><h3>ibus_registry_save_cache ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_registry_save_cache            (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code><span class="type">gboolean</span> is_user</code></em>);</pre>
+<p>
+Save the registry in a user directory or system directory.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>is_user</code></em> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the registry cache is saved in the user directory.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the cache is saved successfully, <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-save-cache-file"></a><h3>ibus_registry_save_cache_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_registry_save_cache_file       (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *filename</code></em>);</pre>
+<p>
+Save the registry cache <em class="parameter"><code>filename</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
+<td>The file path of the registry cache</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if the cache is saved successfully, <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-output"></a><h3>ibus_registry_output ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_registry_output                (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>,
+                                                         <em class="parameter"><code><span class="type">int</span> indent</code></em>);</pre>
+<p>
+Output <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> as an XML-formatted string.
+The output string can be then shown on the screen or written to file.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
+<td>GString that holds the result.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>indent</code></em> :</span></p></td>
+<td>level of indent.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-check-modification"></a><h3>ibus_registry_check_modification ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_registry_check_modification    (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);</pre>
+<p>
+Check if the registry is updated.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if mtime is changed; <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-get-components"></a><h3>ibus_registry_get_components ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_registry_get_components        (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);</pre>
+<p>
+List components.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of <a class="link" href="IBusComponent.html" title="IBusComponent"><span class="type">IBusComponent</span></a> objects.
+The caller has to call <code class="function">g_list_free()</code> for the returned list. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> IBusComponent]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-get-observed-paths"></a><h3>ibus_registry_get_observed_paths ()</h3>
+<pre class="programlisting"><span class="returnvalue">GList</span> *             ibus_registry_get_observed_paths    (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);</pre>
+<p>
+List observed paths.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a list of <a class="link" href="IBusObservedPath.html" title="IBusObservedPath"><span class="type">IBusObservedPath</span></a> objects.
+The caller has to call <code class="function">g_list_free()</code> for the returned list. <span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> IBusObservedPath]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-registry-start-monitor-changes"></a><h3>ibus_registry_start_monitor_changes ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_registry_start_monitor_changes (<em class="parameter"><code><a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry</code></em>);</pre>
+<p>
+Start to monitor observed paths.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusRegistry.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="IBusRegistry-changed"></a><h3>The <code class="literal">"changed"</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a> *registry,
+                                                        <span class="type">gpointer</span>      user_data)      : <code class="literal">Run Last</code></pre>
+<p>
+Emitted when any observed paths are changed.
+A method is not associated in this class. the "changed"
+signal would be handled in other classes.
+</p>
+<p>
+See also: <a class="link" href="IBusRegistry.html#ibus-registry-start-monitor-changes" title="ibus_registry_start_monitor_changes ()"><code class="function">ibus_registry_start_monitor_changes()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>registry</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusRegistry.html" title="IBusRegistry"><span class="type">IBusRegistry</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>user data set when the signal handler was connected.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusSerializable.html b/docs/reference/ibus/html/IBusSerializable.html
new file mode 100644 (file)
index 0000000..52b1d70
--- /dev/null
@@ -0,0 +1,512 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusSerializable</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch05.html" title="Communication">
+<link rel="prev" href="IBusProxy.html" title="IBusProxy">
+<link rel="next" href="IBusService.html" title="IBusService">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusProxy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch05.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusService.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusSerializable.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusSerializable.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusSerializable.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusSerializable"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusSerializable.top_of_page"></a>IBusSerializable</span></h2>
+<p>IBusSerializable — A serializable object.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusSerializable.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusSerializable.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="IBusSerializable.html#ibus-serializable-set-attachment" title="ibus_serializable_set_attachment()">ibus_serializable_set_attachment</a>    (o,
+                                                         k,
+                                                         v)
+#define             <a class="link" href="IBusSerializable.html#ibus-serializable-get-attachment" title="ibus_serializable_get_attachment()">ibus_serializable_get_attachment</a>    (o,
+                                                         k)
+#define             <a class="link" href="IBusSerializable.html#ibus-serializable-remove-attachment" title="ibus_serializable_remove_attachment()">ibus_serializable_remove_attachment</a> (o,
+                                                         k)
+struct              <a class="link" href="IBusSerializable.html#IBusSerializable-struct" title="struct IBusSerializable">IBusSerializable</a>;
+<span class="returnvalue">gboolean</span>            (<a class="link" href="IBusSerializable.html#IBusSerializableSerializeFunc" title="IBusSerializableSerializeFunc ()">*IBusSerializableSerializeFunc</a>)    (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariantBuilder</span> *builder</code></em>);
+<span class="returnvalue">gint</span>                (<a class="link" href="IBusSerializable.html#IBusSerializableDeserializeFunc" title="IBusSerializableDeserializeFunc ()">*IBusSerializableDeserializeFunc</a>)  (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>);
+<span class="returnvalue">gboolean</span>            (<a class="link" href="IBusSerializable.html#IBusSerializableCopyFunc" title="IBusSerializableCopyFunc ()">*IBusSerializableCopyFunc</a>)         (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *dest</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *src</code></em>);
+struct              <a class="link" href="IBusSerializable.html#IBusSerializableClass" title="struct IBusSerializableClass">IBusSerializableClass</a>;
+<a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="returnvalue">IBusSerializable</span></a> *  <a class="link" href="IBusSerializable.html#ibus-serializable-new" title="ibus_serializable_new ()">ibus_serializable_new</a>               (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusSerializable.html#ibus-serializable-set-qattachment" title="ibus_serializable_set_qattachment ()">ibus_serializable_set_qattachment</a>   (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);
+<span class="returnvalue">GVariant</span> *          <a class="link" href="IBusSerializable.html#ibus-serializable-get-qattachment" title="ibus_serializable_get_qattachment ()">ibus_serializable_get_qattachment</a>   (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> key</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusSerializable.html#ibus-serializable-remove-qattachment" title="ibus_serializable_remove_qattachment ()">ibus_serializable_remove_qattachment</a>
+                                                        (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> key</code></em>);
+<a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="returnvalue">IBusSerializable</span></a> *  <a class="link" href="IBusSerializable.html#ibus-serializable-copy" title="ibus_serializable_copy ()">ibus_serializable_copy</a>              (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>);
+<span class="returnvalue">GVariant</span> *          <a class="link" href="IBusSerializable.html#ibus-serializable-serialize" title="ibus_serializable_serialize ()">ibus_serializable_serialize</a>         (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>);
+<a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="returnvalue">IBusSerializable</span></a> *  <a class="link" href="IBusSerializable.html#ibus-serializable-deserialize" title="ibus_serializable_deserialize ()">ibus_serializable_deserialize</a>       (<em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusSerializable.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----IBusSerializable
+                     +----<a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+                     +----<a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+                     +----<a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+                     +----<a class="link" href="IBusAttrList.html" title="IBusAttrList">IBusAttrList</a>
+                     +----<a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+                     +----<a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+                     +----<a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+                     +----<a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+                     +----<a class="link" href="IBusProperty.html#IBusPropList">IBusPropList</a>
+                     +----<a class="link" href="IBusObservedPath.html" title="IBusObservedPath">IBusObservedPath</a>
+                     +----<a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusSerializable.description"></a><h2>Description</h2>
+<p>
+An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> is an IBus object which can be serialized, that is,
+to be to and from a <span class="type">GVariant</span>.
+</p>
+<p>
+This class is to be extended by other class that requires serialization.
+An extended class should overrides following methods:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p><code class="function">serialize(object,iter)</code>: for serialize.</p></li>
+<li class="listitem"><p><code class="function">deserialize(object,iter)</code>: for deserialize.</p></li>
+<li class="listitem"><p><code class="function">copy(desc,src)</code>: for copy between IBusSerializable.</p></li>
+</ul></div>
+<p>
+See <a class="link" href="IBusSerializable.html#IBusSerializableSerializeFunc" title="IBusSerializableSerializeFunc ()"><code class="function">IBusSerializableSerializeFunc()</code></a>, <a class="link" href="IBusSerializable.html#IBusSerializableDeserializeFunc" title="IBusSerializableDeserializeFunc ()"><code class="function">IBusSerializableDeserializeFunc()</code></a>, <a class="link" href="IBusSerializable.html#IBusSerializableCopyFunc" title="IBusSerializableCopyFunc ()"><code class="function">IBusSerializableCopyFunc()</code></a>
+for function prototype.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusSerializable.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="ibus-serializable-set-attachment"></a><h3>ibus_serializable_set_attachment()</h3>
+<pre class="programlisting">#define             ibus_serializable_set_attachment(o, k, v)</pre>
+<p>
+Attach a value to an IBusSerializable.
+This macro is an convenient wrapper of <a class="link" href="IBusSerializable.html#ibus-serializable-set-qattachment" title="ibus_serializable_set_qattachment ()"><code class="function">ibus_serializable_set_qattachment()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>o</code></em> :</span></p></td>
+<td>An IBusSerializable.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>k</code></em> :</span></p></td>
+<td>String formatted key for indexing value.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
+<td>Value to be attached. Should be also serializable.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-serializable-get-attachment"></a><h3>ibus_serializable_get_attachment()</h3>
+<pre class="programlisting">#define             ibus_serializable_get_attachment(o, k)</pre>
+<p>
+Get a value from attachment of an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.
+This macro is an convenient wrapper of <a class="link" href="IBusSerializable.html#ibus-serializable-get-qattachment" title="ibus_serializable_get_qattachment ()"><code class="function">ibus_serializable_get_qattachment()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>o</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>k</code></em> :</span></p></td>
+<td>String formatted key for indexing value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-serializable-remove-attachment"></a><h3>ibus_serializable_remove_attachment()</h3>
+<pre class="programlisting">#define             ibus_serializable_remove_attachment(o, k)</pre>
+<p>
+Remove a value from attachment of an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.
+This macro is an convenient wrapper of <a class="link" href="IBusSerializable.html#ibus-serializable-remove-qattachment" title="ibus_serializable_remove_qattachment ()"><code class="function">ibus_serializable_remove_qattachment()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>o</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>k</code></em> :</span></p></td>
+<td>String formatted key for indexing value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusSerializable-struct"></a><h3>struct IBusSerializable</h3>
+<pre class="programlisting">struct IBusSerializable;</pre>
+<p>
+All the fields in the <span class="structname">IBusSerializable</span> structure are
+private to the <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> and should never be accessed directly.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusSerializableSerializeFunc"></a><h3>IBusSerializableSerializeFunc ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            (*IBusSerializableSerializeFunc)    (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariantBuilder</span> *builder</code></em>);</pre>
+<p>
+Prototype of serialize function.
+Serialize function convert an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> to <span class="type">GVariantBuilder</span>.
+Returns a gboolean value which indicates whether the conversion is success.
+Return <code class="literal">TRUE</code> if succeed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
+<td>A <span class="type">GVariantBuilder</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if succeed; <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusSerializableDeserializeFunc"></a><h3>IBusSerializableDeserializeFunc ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint</span>                (*IBusSerializableDeserializeFunc)  (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>);</pre>
+<p>
+Prototype of deserialize function.
+Deserialize function convert a <span class="type">GVariant</span> to <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.
+Returns an integer value which indicates how many values in
+the variant(tuple) are consumed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>variant</code></em> :</span></p></td>
+<td>A <span class="type">GVariant</span> contains a tuple.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The number of values in the variant(tuple) are consumed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusSerializableCopyFunc"></a><h3>IBusSerializableCopyFunc ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            (*IBusSerializableCopyFunc)         (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *dest</code></em>,
+                                                         <em class="parameter"><code>const <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *src</code></em>);</pre>
+<p>
+Prototype of copy function.
+Copy function copy from source <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> to the destination one.
+Returns a gboolean value which indicates whether the copying is success.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
+<td>The destination <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>A source <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<code class="literal">TRUE</code> if succeed; <code class="literal">FALSE</code> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusSerializableClass"></a><h3>struct IBusSerializableClass</h3>
+<pre class="programlisting">struct IBusSerializableClass {
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-serializable-new"></a><h3>ibus_serializable_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="returnvalue">IBusSerializable</span></a> *  ibus_serializable_new               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Creates a new instance of an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new instance of <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-serializable-set-qattachment"></a><h3>ibus_serializable_set_qattachment ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_serializable_set_qattachment   (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> key</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);</pre>
+<p>
+Attach a value to an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>. If the value is floating,
+the serializable will take the ownership.
+</p>
+<p>
+See also: <a class="link" href="IBusSerializable.html#ibus-serializable-set-attachment" title="ibus_serializable_set_attachment()"><code class="function">ibus_serializable_set_attachment()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>String formatted key for indexing value.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>Value to be attached or <code class="literal">NULL</code> to remove any prevoius value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-serializable-get-qattachment"></a><h3>ibus_serializable_get_qattachment ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *          ibus_serializable_get_qattachment   (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> key</code></em>);</pre>
+<p>
+Get a value from attachment of an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.
+See also: <a class="link" href="IBusSerializable.html#ibus-serializable-set-attachment" title="ibus_serializable_set_attachment()"><code class="function">ibus_serializable_set_attachment()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>String formatted key for indexing value.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The attached value; or <code class="literal">NULL</code> if fail to retrieve the value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-serializable-remove-qattachment"></a><h3>ibus_serializable_remove_qattachment ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_serializable_remove_qattachment
+                                                        (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>,
+                                                         <em class="parameter"><code><span class="type">GQuark</span> key</code></em>);</pre>
+<p>
+Remove a value from attachment of an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.
+See also: <a class="link" href="IBusSerializable.html#ibus-serializable-remove-attachment" title="ibus_serializable_remove_attachment()"><code class="function">ibus_serializable_remove_attachment()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>String formatted key for indexing value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-serializable-copy"></a><h3>ibus_serializable_copy ()</h3>
+<pre class="programlisting"><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="returnvalue">IBusSerializable</span></a> *  ibus_serializable_copy              (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>);</pre>
+<p>
+Clone an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.
+The copy method should be implemented in extended class.
+</p>
+<p>
+See also: <a class="link" href="IBusSerializable.html#IBusSerializableCopyFunc" title="IBusSerializableCopyFunc ()"><code class="function">IBusSerializableCopyFunc()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated clone object; or <code class="literal">NULL</code>
+if <em class="parameter"><code>object</code></em> is not serializable. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-serializable-serialize"></a><h3>ibus_serializable_serialize ()</h3>
+<pre class="programlisting"><span class="returnvalue">GVariant</span> *          ibus_serializable_serialize         (<em class="parameter"><code><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> *serializable</code></em>);</pre>
+<p>
+Serialize an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a> to a <span class="type">GVariant</span>.
+The serialize method should be implemented in extended class.
+</p>
+<p>
+See also: <a class="link" href="IBusSerializable.html#IBusSerializableCopyFunc" title="IBusSerializableCopyFunc ()"><code class="function">IBusSerializableCopyFunc()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>serializable</code></em> :</span></p></td>
+<td>An <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <span class="type">GVariant</span>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-serializable-deserialize"></a><h3>ibus_serializable_deserialize ()</h3>
+<pre class="programlisting"><a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="returnvalue">IBusSerializable</span></a> *  ibus_serializable_deserialize       (<em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>);</pre>
+<p>
+Deserialize a <span class="type">GVariant</span> to an <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>/
+The deserialize method should be implemented in extended class.
+</p>
+<p>
+See also: <a class="link" href="IBusSerializable.html#IBusSerializableCopyFunc" title="IBusSerializableCopyFunc ()"><code class="function">IBusSerializableCopyFunc()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>variant</code></em> :</span></p></td>
+<td>A <span class="type">GVariant</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The deserialized <a class="link" href="IBusSerializable.html" title="IBusSerializable"><span class="type">IBusSerializable</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusService.html b/docs/reference/ibus/html/IBusService.html
new file mode 100644 (file)
index 0000000..2030a9d
--- /dev/null
@@ -0,0 +1,309 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusService</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch05.html" title="Communication">
+<link rel="prev" href="IBusSerializable.html" title="IBusSerializable">
+<link rel="next" href="ch06.html" title="Internal">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusSerializable.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch05.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ch06.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusService.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusService.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusService.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusService"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusService.top_of_page"></a>IBusService</span></h2>
+<p>IBusService — IBus service back-end.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="IBusService.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="IBusService.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusService.html#IBusService-struct" title="struct IBusService">IBusService</a>;
+struct              <a class="link" href="IBusService.html#IBusServiceClass" title="struct IBusServiceClass">IBusServiceClass</a>;
+<a class="link" href="IBusService.html" title="IBusService"><span class="returnvalue">IBusService</span></a> *       <a class="link" href="IBusService.html#ibus-service-new" title="ibus_service_new ()">ibus_service_new</a>                    (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusService.html#ibus-service-get-object-path" title="ibus_service_get_object_path ()">ibus_service_get_object_path</a>        (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>);
+<span class="returnvalue">GDBusConnection</span> *   <a class="link" href="IBusService.html#ibus-service-get-connection" title="ibus_service_get_connection ()">ibus_service_get_connection</a>         (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusService.html#ibus-service-register" title="ibus_service_register ()">ibus_service_register</a>               (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusService.html#ibus-service-unregister" title="ibus_service_unregister ()">ibus_service_unregister</a>             (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusService.html#ibus-service-emit-signal" title="ibus_service_emit_signal ()">ibus_service_emit_signal</a>            (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *dest_bus_name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *interface_name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *signal_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *parameters</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusService.html#ibus-service-class-add-interfaces" title="ibus_service_class_add_interfaces ()">ibus_service_class_add_interfaces</a>   (<em class="parameter"><code><a class="link" href="IBusService.html#IBusServiceClass" title="struct IBusServiceClass"><span class="type">IBusServiceClass</span></a> *klass</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *xml_data</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusService.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----IBusService
+                     +----<a class="link" href="IBusFactory.html" title="IBusFactory">IBusFactory</a>
+                     +----<a class="link" href="IBusConfigService.html" title="IBusConfigService">IBusConfigService</a>
+                     +----<a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+                     +----<a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusService.description"></a><h2>Description</h2>
+<p>
+An IBusService is a base class for services.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusService.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusService-struct"></a><h3>struct IBusService</h3>
+<pre class="programlisting">struct IBusService;</pre>
+<p>
+An opaque data type representing an IBusService.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusServiceClass"></a><h3>struct IBusServiceClass</h3>
+<pre class="programlisting">struct IBusServiceClass {
+    /* virtual functions */
+    void        (* service_method_call)
+                                    (IBusService        *service,
+                                     GDBusConnection    *connection,
+                                     const gchar        *sender,
+                                     const gchar        *object_path,
+                                     const gchar        *interface_name,
+                                     const gchar        *method_name,
+                                     GVariant           *parameters,
+                                     GDBusMethodInvocation
+                                                        *invocation);
+    GVariant *  (* service_get_property)
+                                    (IBusService        *service,
+                                     GDBusConnection    *connection,
+                                     const gchar        *sender,
+                                     const gchar        *object_path,
+                                     const gchar        *interface_name,
+                                     const gchar        *property_name,
+                                     GError            **error);
+    gboolean    (* service_set_property)
+                                    (IBusService        *service,
+                                     GDBusConnection    *connection,
+                                     const gchar        *sender,
+                                     const gchar        *object_path,
+                                     const gchar        *interface_name,
+                                     const gchar        *property_name,
+                                     GVariant           *value,
+                                     GError            **error);
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-service-new"></a><h3>ibus_service_new ()</h3>
+<pre class="programlisting"><a class="link" href="IBusService.html" title="IBusService"><span class="returnvalue">IBusService</span></a> *       ibus_service_new                    (<em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *path</code></em>);</pre>
+<p>
+New an IBusService.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
+<td>Object path.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusService</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-service-get-object-path"></a><h3>ibus_service_get_object_path ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_service_get_object_path        (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>);</pre>
+<p>
+Returns the object path of an IBusService.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
+<td>An IBusService.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The object path of <em class="parameter"><code>service</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-service-get-connection"></a><h3>ibus_service_get_connection ()</h3>
+<pre class="programlisting"><span class="returnvalue">GDBusConnection</span> *   ibus_service_get_connection         (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>);</pre>
+<p>
+Returns a connections.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
+<td>An IBusService.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <span class="type">GDBusConnection</span> of an <a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> instance. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-service-register"></a><h3>ibus_service_register ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_service_register               (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+Registers service to a connection.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
+<td>An IBusService.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>A GDBusConnection the service will be registered to.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
+<td>Return location for error or NULL.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if the service was registered, FALSE otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-service-unregister"></a><h3>ibus_service_unregister ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_service_unregister             (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>,
+                                                         <em class="parameter"><code><span class="type">GDBusConnection</span> *connection</code></em>);</pre>
+<p>
+Unregisters service from a connection.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
+<td>An IBusService.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>connection</code></em> :</span></p></td>
+<td>A GDBusConnection the service was registered with.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-service-emit-signal"></a><h3>ibus_service_emit_signal ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_service_emit_signal            (<em class="parameter"><code><a class="link" href="IBusService.html" title="IBusService"><span class="type">IBusService</span></a> *service</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *dest_bus_name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *interface_name</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *signal_name</code></em>,
+                                                         <em class="parameter"><code><span class="type">GVariant</span> *parameters</code></em>,
+                                                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-service-class-add-interfaces"></a><h3>ibus_service_class_add_interfaces ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_service_class_add_interfaces   (<em class="parameter"><code><a class="link" href="IBusService.html#IBusServiceClass" title="struct IBusServiceClass"><span class="type">IBusServiceClass</span></a> *klass</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">gchar</span> *xml_data</code></em>);</pre>
+<p>
+Set the interface introspection information with the service class.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>klass</code></em> :</span></p></td>
+<td>An IBusServiceClass.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>xml_data</code></em> :</span></p></td>
+<td>The introspection xml data.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/IBusText.html b/docs/reference/ibus/html/IBusText.html
new file mode 100644 (file)
index 0000000..46afb33
--- /dev/null
@@ -0,0 +1,435 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusText</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch02.html" title="Panel (User Interfaces)">
+<link rel="prev" href="IBusPropList.html" title="IBusPropList">
+<link rel="next" href="ch03.html" title="Input method engine">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusPropList.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ch03.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#IBusText.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#IBusText.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#IBusText.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="IBusText"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="IBusText.top_of_page"></a>IBusText</span></h2>
+<p>IBusText — Text with decorating information.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="IBusText.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct              <a class="link" href="IBusText.html#IBusText-struct" title="struct IBusText">IBusText</a>;
+struct              <a class="link" href="IBusText.html#IBusTextClass" title="struct IBusTextClass">IBusTextClass</a>;
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusText.html#ibus-text-new-from-string" title="ibus_text_new_from_string ()">ibus_text_new_from_string</a>           (<em class="parameter"><code>const <span class="type">gchar</span> *str</code></em>);
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusText.html#ibus-text-new-from-ucs4" title="ibus_text_new_from_ucs4 ()">ibus_text_new_from_ucs4</a>             (<em class="parameter"><code>const <span class="type">gunichar</span> *str</code></em>);
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusText.html#ibus-text-new-from-static-string" title="ibus_text_new_from_static_string ()">ibus_text_new_from_static_string</a>    (<em class="parameter"><code>const <span class="type">gchar</span> *str</code></em>);
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusText.html#ibus-text-new-from-printf" title="ibus_text_new_from_printf ()">ibus_text_new_from_printf</a>           (<em class="parameter"><code>const <span class="type">gchar</span> *fmt</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);
+<a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          <a class="link" href="IBusText.html#ibus-text-new-from-unichar" title="ibus_text_new_from_unichar ()">ibus_text_new_from_unichar</a>          (<em class="parameter"><code><span class="type">gunichar</span> c</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusText.html#ibus-text-append-attribute" title="ibus_text_append_attribute ()">ibus_text_append_attribute</a>          (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> type</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> end_index</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="IBusText.html#ibus-text-get-length" title="ibus_text_get_length ()">ibus_text_get_length</a>                (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="IBusText.html#ibus-text-get-is-static" title="ibus_text_get_is_static ()">ibus_text_get_is_static</a>             (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="IBusText.html#ibus-text-get-text" title="ibus_text_get_text ()">ibus_text_get_text</a>                  (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);
+<a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="returnvalue">IBusAttrList</span></a> *      <a class="link" href="IBusText.html#ibus-text-get-attributes" title="ibus_text_get_attributes ()">ibus_text_get_attributes</a>            (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="IBusText.html#ibus-text-set-attributes" title="ibus_text_set_attributes ()">ibus_text_set_attributes</a>            (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="type">IBusAttrList</span></a> *attrs</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusText.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GObject
+   +----GInitiallyUnowned
+         +----<a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+               +----<a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+                     +----IBusText
+</pre>
+</div>
+<div class="refsect1">
+<a name="IBusText.description"></a><h2>Description</h2>
+<p>
+An IBusText is the main text object in IBus.
+The text is decorated according to associated IBusAttribute,
+e.g. the foreground/background color, underline, and
+applied scope.
+</p>
+</div>
+<div class="refsect1">
+<a name="IBusText.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusText-struct"></a><h3>struct IBusText</h3>
+<pre class="programlisting">struct IBusText {
+    gboolean is_static;
+    gchar  *text;
+    IBusAttrList *attrs;
+};
+</pre>
+<p>
+A text object in IBus.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">gboolean</span> <em class="structfield"><code><a name="IBusText-struct.is-static"></a>is_static</code></em>;</span></p></td>
+<td>Whether <em class="parameter"><code>text</code></em> is static, i.e., no need and will not be freed. Only TRUE if IBusText is newed from <a class="link" href="IBusText.html#ibus-text-new-from-static-string" title="ibus_text_new_from_static_string ()"><code class="function">ibus_text_new_from_static_string()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gchar</span> *<em class="structfield"><code><a name="IBusText-struct.text"></a>text</code></em>;</span></p></td>
+<td>The string content of IBusText in UTF-8.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="type">IBusAttrList</span></a> *<em class="structfield"><code><a name="IBusText-struct.attrs"></a>attrs</code></em>;</span></p></td>
+<td>Associated IBusAttributes.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusTextClass"></a><h3>struct IBusTextClass</h3>
+<pre class="programlisting">struct IBusTextClass {
+    IBusSerializableClass parent;
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-new-from-string"></a><h3>ibus_text_new_from_string ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_text_new_from_string           (<em class="parameter"><code>const <span class="type">gchar</span> *str</code></em>);</pre>
+<p>
+New an IBusText from a string.
+</p>
+<p>
+<em class="parameter"><code>str</code></em> will be duplicated in IBusText, so feel free to free <em class="parameter"><code>str</code></em> after this function.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
+<td>An text string to be set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusText.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-new-from-ucs4"></a><h3>ibus_text_new_from_ucs4 ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_text_new_from_ucs4             (<em class="parameter"><code>const <span class="type">gunichar</span> *str</code></em>);</pre>
+<p>
+New an IBusText from an UCS-4 encoded string.
+</p>
+<p>
+<em class="parameter"><code>str</code></em> will be duplicated in IBusText, so feel free to free <em class="parameter"><code>str</code></em> after this function.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
+<td>An text string to be set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusText.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-new-from-static-string"></a><h3>ibus_text_new_from_static_string ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_text_new_from_static_string    (<em class="parameter"><code>const <span class="type">gchar</span> *str</code></em>);</pre>
+<p>
+New an IBusText from a static string.
+</p>
+<p>
+Since <em class="parameter"><code>str</code></em> is a static string which won't be freed.
+This function will NOT duplicate <em class="parameter"><code>str</code></em>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
+<td>An text string to be set.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusText.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-new-from-printf"></a><h3>ibus_text_new_from_printf ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_text_new_from_printf           (<em class="parameter"><code>const <span class="type">gchar</span> *fmt</code></em>,
+                                                         <em class="parameter"><code>...</code></em>);</pre>
+<p>
+New an IBusText from a printf expression.
+</p>
+<p>
+The result of printf expression is stored in the new IBusText instance.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>fmt</code></em> :</span></p></td>
+<td>printf format string.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
+<td>arguments for <em class="parameter"><code>fmt</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusText.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-new-from-unichar"></a><h3>ibus_text_new_from_unichar ()</h3>
+<pre class="programlisting"><a class="link" href="IBusText.html" title="IBusText"><span class="returnvalue">IBusText</span></a> *          ibus_text_new_from_unichar          (<em class="parameter"><code><span class="type">gunichar</span> c</code></em>);</pre>
+<p>
+New an IBusText from a single UCS4-encoded character.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
+<td>A single UCS4-encoded character.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated IBusText.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-append-attribute"></a><h3>ibus_text_append_attribute ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_text_append_attribute          (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> type</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> value</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> start_index</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> end_index</code></em>);</pre>
+<p>
+Append an IBusAttribute for IBusText.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>an IBusText</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>IBusAttributeType for <em class="parameter"><code>text</code></em>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>Value for the type.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start_index</code></em> :</span></p></td>
+<td>The starting index, inclusive.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>end_index</code></em> :</span></p></td>
+<td>The ending index, exclusive.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-get-length"></a><h3>ibus_text_get_length ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_text_get_length                (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);</pre>
+<p>
+Return number of characters in an IBusText.
+This function is based on <code class="function">g_utf8_strlen()</code>, so unlike <code class="function">strlen()</code>,
+it does not count by bytes but characters instead.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>An IBusText.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Number of character in <em class="parameter"><code>text</code></em>, not counted by bytes.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-get-is-static"></a><h3>ibus_text_get_is_static ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_text_get_is_static             (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);</pre>
+<p>
+Return the is_static in an IBusText.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>An IBusText.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the is_static in <em class="parameter"><code>text</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-get-text"></a><h3>ibus_text_get_text ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_text_get_text                  (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);</pre>
+<p>
+Return the text in an IBusText. Should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>An IBusText.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the text in <em class="parameter"><code>text</code></em>.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-get-attributes"></a><h3>ibus_text_get_attributes ()</h3>
+<pre class="programlisting"><a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="returnvalue">IBusAttrList</span></a> *      ibus_text_get_attributes            (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>);</pre>
+<p>
+Return the attributes in an IBusText. Should not be freed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>An IBusText.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the attrs in <em class="parameter"><code>text</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-text-set-attributes"></a><h3>ibus_text_set_attributes ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_text_set_attributes            (<em class="parameter"><code><a class="link" href="IBusText.html" title="IBusText"><span class="type">IBusText</span></a> *text</code></em>,
+                                                         <em class="parameter"><code><a class="link" href="IBusAttrList.html" title="IBusAttrList"><span class="type">IBusAttrList</span></a> *attrs</code></em>);</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>An IBusText.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>attrs</code></em> :</span></p></td>
+<td>An IBusAttrList</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="IBusText.see-also"></a><h2>See Also</h2>
+<a class="link" href="IBusAttribute.html" title="IBusAttribute"><span class="type">IBusAttribute</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/annotation-glossary.html b/docs/reference/ibus/html/annotation-glossary.html
new file mode 100644 (file)
index 0000000..ba9d66c
--- /dev/null
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Annotation Glossary</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="index.html" title="IBus Reference Manual">
+<link rel="prev" href="api-index-deprecated.html" title="Index of deprecated symbols">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="api-index-deprecated.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td> </td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a class="shortcut" href="#glsO">O</a>
+                      | 
+                   <a class="shortcut" href="#glsA">A</a>
+                      | 
+                   <a class="shortcut" href="#glsE">E</a>
+                      | 
+                   <a class="shortcut" href="#glsT">T</a>
+</td></tr>
+</table>
+<div class="glossary">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
+<a name="glsO"></a><h3 class="title">O</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
+<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<a name="glsA"></a><h3 class="title">A</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
+<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
+<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
+<a name="glsE"></a><h3 class="title">E</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
+<dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
+<a name="glsT"></a><h3 class="title">T</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20container"></a>transfer container</span></dt>
+<dd class="glossdef"><p>Free data container after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
+<dd class="glossdef"><p>Free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
+<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/api-index-deprecated.html b/docs/reference/ibus/html/api-index-deprecated.html
new file mode 100644 (file)
index 0000000..6c3e0d8
--- /dev/null
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of deprecated symbols</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="index.html" title="IBus Reference Manual">
+<link rel="prev" href="api-index-full.html" title="Index">
+<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a class="shortcut" href="#idxB">B</a>
+                      | 
+                   <a class="shortcut" href="#idxF">F</a>
+                      | 
+                   <a class="shortcut" href="#idxG">G</a>
+                      | 
+                   <a class="shortcut" href="#idxK">K</a>
+</td></tr>
+</table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-deprecated"></a>Index of deprecated symbols</h1></div></div></div>
+<a name="idx"></a><a name="idxB"></a><h3 class="title">B</h3>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine" title="ibus_bus_get_use_global_engine ()">ibus_bus_get_use_global_engine</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine-async" title="ibus_bus_get_use_global_engine_async ()">ibus_bus_get_use_global_engine_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine-async-finish" title="ibus_bus_get_use_global_engine_async_finish ()">ibus_bus_get_use_global_engine_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout" title="ibus_bus_get_use_sys_layout ()">ibus_bus_get_use_sys_layout</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout-async" title="ibus_bus_get_use_sys_layout_async ()">ibus_bus_get_use_sys_layout_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout-async-finish" title="ibus_bus_get_use_sys_layout_async_finish ()">ibus_bus_get_use_sys_layout_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled" title="ibus_bus_is_global_engine_enabled ()">ibus_bus_is_global_engine_enabled</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled-async" title="ibus_bus_is_global_engine_enabled_async ()">ibus_bus_is_global_engine_enabled_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled-async-finish" title="ibus_bus_is_global_engine_enabled_async_finish ()">ibus_bus_is_global_engine_enabled_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-active-engines" title="ibus_bus_list_active_engines ()">ibus_bus_list_active_engines</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-active-engines-async" title="ibus_bus_list_active_engines_async ()">ibus_bus_list_active_engines_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-active-engines-async-finish" title="ibus_bus_list_active_engines_async_finish ()">ibus_bus_list_active_engines_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<a name="idxF"></a><h3 class="title">F</h3>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-free-strv" title="ibus_free_strv ()">ibus_free_strv</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<a name="idxG"></a><h3 class="title">G</h3>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-get-daemon-uid" title="ibus_get_daemon_uid ()">ibus_get_daemon_uid</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<a name="idxK"></a><h3 class="title">K</h3>
+<dt>
+<a class="link" href="IBusKeymap.html#ibus-keymap-new" title="ibus_keymap_new ()">ibus_keymap_new</a>, function in <a class="link" href="IBusKeymap.html" title="IBusKeymap">IBusKeymap</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/api-index-full.html b/docs/reference/ibus/html/api-index-full.html
new file mode 100644 (file)
index 0000000..c855317
--- /dev/null
@@ -0,0 +1,18605 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="index.html" title="IBus Reference Manual">
+<link rel="prev" href="ibus-ibustypes.html" title="ibustypes">
+<link rel="next" href="api-index-deprecated.html" title="Index of deprecated symbols">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ibus-ibustypes.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="api-index-deprecated.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a class="shortcut" href="#idx0">0</a>
+                      | 
+                   <a class="shortcut" href="#idx1">1</a>
+                      | 
+                   <a class="shortcut" href="#idx2">2</a>
+                      | 
+                   <a class="shortcut" href="#idx3">3</a>
+                      | 
+                   <a class="shortcut" href="#idx4">4</a>
+                      | 
+                   <a class="shortcut" href="#idx5">5</a>
+                      | 
+                   <a class="shortcut" href="#idx6">6</a>
+                      | 
+                   <a class="shortcut" href="#idx7">7</a>
+                      | 
+                   <a class="shortcut" href="#idx8">8</a>
+                      | 
+                   <a class="shortcut" href="#idx9">9</a>
+                      | 
+                   <a class="shortcut" href="#idxA">A</a>
+                      | 
+                   <a class="shortcut" href="#idxB">B</a>
+                      | 
+                   <a class="shortcut" href="#idxC">C</a>
+                      | 
+                   <a class="shortcut" href="#idxD">D</a>
+                      | 
+                   <a class="shortcut" href="#idxE">E</a>
+                      | 
+                   <a class="shortcut" href="#idxF">F</a>
+                      | 
+                   <a class="shortcut" href="#idxG">G</a>
+                      | 
+                   <a class="shortcut" href="#idxH">H</a>
+                      | 
+                   <a class="shortcut" href="#idxI">I</a>
+                      | 
+                   <a class="shortcut" href="#idxJ">J</a>
+                      | 
+                   <a class="shortcut" href="#idxK">K</a>
+                      | 
+                   <a class="shortcut" href="#idxL">L</a>
+                      | 
+                   <a class="shortcut" href="#idxM">M</a>
+                      | 
+                   <a class="shortcut" href="#idxN">N</a>
+                      | 
+                   <a class="shortcut" href="#idxO">O</a>
+                      | 
+                   <a class="shortcut" href="#idxP">P</a>
+                      | 
+                   <a class="shortcut" href="#idxQ">Q</a>
+                      | 
+                   <a class="shortcut" href="#idxR">R</a>
+                      | 
+                   <a class="shortcut" href="#idxS">S</a>
+                      | 
+                   <a class="shortcut" href="#idxT">T</a>
+                      | 
+                   <a class="shortcut" href="#idxU">U</a>
+                      | 
+                   <a class="shortcut" href="#idxV">V</a>
+                      | 
+                   <a class="shortcut" href="#idxW">W</a>
+                      | 
+                   <a class="shortcut" href="#idxX">X</a>
+                      | 
+                   <a class="shortcut" href="#idxY">Y</a>
+                      | 
+                   <a class="shortcut" href="#idxZ">Z</a>
+</td></tr>
+</table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-full"></a>Index</h1></div></div></div>
+<a name="idx"></a><a name="idx0"></a><h3 class="title">0</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-0:CAPS" title="IBUS_0">IBUS_0</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idx1"></a><h3 class="title">1</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-1:CAPS" title="IBUS_1">IBUS_1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idx2"></a><h3 class="title">2</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-2:CAPS" title="IBUS_2">IBUS_2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idx3"></a><h3 class="title">3</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3:CAPS" title="IBUS_3">IBUS_3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-AltCursor" title="IBUS_3270_AltCursor">IBUS_3270_AltCursor</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Attn" title="IBUS_3270_Attn">IBUS_3270_Attn</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-BackTab" title="IBUS_3270_BackTab">IBUS_3270_BackTab</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-ChangeScreen" title="IBUS_3270_ChangeScreen">IBUS_3270_ChangeScreen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Copy" title="IBUS_3270_Copy">IBUS_3270_Copy</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-CursorBlink" title="IBUS_3270_CursorBlink">IBUS_3270_CursorBlink</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-CursorSelect" title="IBUS_3270_CursorSelect">IBUS_3270_CursorSelect</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-DeleteWord" title="IBUS_3270_DeleteWord">IBUS_3270_DeleteWord</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Duplicate" title="IBUS_3270_Duplicate">IBUS_3270_Duplicate</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Enter" title="IBUS_3270_Enter">IBUS_3270_Enter</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-EraseEOF" title="IBUS_3270_EraseEOF">IBUS_3270_EraseEOF</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-EraseInput" title="IBUS_3270_EraseInput">IBUS_3270_EraseInput</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-ExSelect" title="IBUS_3270_ExSelect">IBUS_3270_ExSelect</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-FieldMark" title="IBUS_3270_FieldMark">IBUS_3270_FieldMark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Ident" title="IBUS_3270_Ident">IBUS_3270_Ident</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Jump" title="IBUS_3270_Jump">IBUS_3270_Jump</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-KeyClick" title="IBUS_3270_KeyClick">IBUS_3270_KeyClick</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Left2" title="IBUS_3270_Left2">IBUS_3270_Left2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-PA1:CAPS" title="IBUS_3270_PA1">IBUS_3270_PA1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-PA2:CAPS" title="IBUS_3270_PA2">IBUS_3270_PA2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-PA3:CAPS" title="IBUS_3270_PA3">IBUS_3270_PA3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Play" title="IBUS_3270_Play">IBUS_3270_Play</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-PrintScreen" title="IBUS_3270_PrintScreen">IBUS_3270_PrintScreen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Quit" title="IBUS_3270_Quit">IBUS_3270_Quit</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Record" title="IBUS_3270_Record">IBUS_3270_Record</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Reset" title="IBUS_3270_Reset">IBUS_3270_Reset</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Right2" title="IBUS_3270_Right2">IBUS_3270_Right2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Rule" title="IBUS_3270_Rule">IBUS_3270_Rule</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Setup" title="IBUS_3270_Setup">IBUS_3270_Setup</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Test" title="IBUS_3270_Test">IBUS_3270_Test</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idx4"></a><h3 class="title">4</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-4:CAPS" title="IBUS_4">IBUS_4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idx5"></a><h3 class="title">5</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-5:CAPS" title="IBUS_5">IBUS_5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idx6"></a><h3 class="title">6</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-6:CAPS" title="IBUS_6">IBUS_6</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idx7"></a><h3 class="title">7</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-7:CAPS" title="IBUS_7">IBUS_7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idx8"></a><h3 class="title">8</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-8:CAPS" title="IBUS_8">IBUS_8</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idx9"></a><h3 class="title">9</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-9:CAPS" title="IBUS_9">IBUS_9</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxA"></a><h3 class="title">A</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-a" title="IBUS_a">IBUS_a</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-A:CAPS" title="IBUS_A">IBUS_A</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-aacute" title="IBUS_aacute">IBUS_aacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Aacute" title="IBUS_Aacute">IBUS_Aacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abelowdot" title="IBUS_abelowdot">IBUS_abelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abelowdot" title="IBUS_Abelowdot">IBUS_Abelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abovedot" title="IBUS_abovedot">IBUS_abovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abreve" title="IBUS_abreve">IBUS_abreve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abreve" title="IBUS_Abreve">IBUS_Abreve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abreveacute" title="IBUS_Abreveacute">IBUS_Abreveacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abreveacute" title="IBUS_abreveacute">IBUS_abreveacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abrevebelowdot" title="IBUS_Abrevebelowdot">IBUS_Abrevebelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abrevebelowdot" title="IBUS_abrevebelowdot">IBUS_abrevebelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abrevegrave" title="IBUS_abrevegrave">IBUS_abrevegrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abrevegrave" title="IBUS_Abrevegrave">IBUS_Abrevegrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abrevehook" title="IBUS_Abrevehook">IBUS_Abrevehook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abrevehook" title="IBUS_abrevehook">IBUS_abrevehook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abrevetilde" title="IBUS_Abrevetilde">IBUS_Abrevetilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abrevetilde" title="IBUS_abrevetilde">IBUS_abrevetilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-AccessX-Enable" title="IBUS_AccessX_Enable">IBUS_AccessX_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-AccessX-Feedback-Enable" title="IBUS_AccessX_Feedback_Enable">IBUS_AccessX_Feedback_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflex" title="IBUS_acircumflex">IBUS_acircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflex" title="IBUS_Acircumflex">IBUS_Acircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflexacute" title="IBUS_acircumflexacute">IBUS_acircumflexacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexacute" title="IBUS_Acircumflexacute">IBUS_Acircumflexacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexbelowdot" title="IBUS_Acircumflexbelowdot">IBUS_Acircumflexbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflexbelowdot" title="IBUS_acircumflexbelowdot">IBUS_acircumflexbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexgrave" title="IBUS_Acircumflexgrave">IBUS_Acircumflexgrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflexgrave" title="IBUS_acircumflexgrave">IBUS_acircumflexgrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexhook" title="IBUS_Acircumflexhook">IBUS_Acircumflexhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflexhook" title="IBUS_acircumflexhook">IBUS_acircumflexhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflextilde" title="IBUS_Acircumflextilde">IBUS_Acircumflextilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflextilde" title="IBUS_acircumflextilde">IBUS_acircumflextilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acute" title="IBUS_acute">IBUS_acute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-adiaeresis" title="IBUS_adiaeresis">IBUS_adiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Adiaeresis" title="IBUS_Adiaeresis">IBUS_Adiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ae" title="IBUS_ae">IBUS_ae</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-AE:CAPS" title="IBUS_AE">IBUS_AE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Agrave" title="IBUS_Agrave">IBUS_Agrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-agrave" title="IBUS_agrave">IBUS_agrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ahook" title="IBUS_ahook">IBUS_ahook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ahook" title="IBUS_Ahook">IBUS_Ahook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Alt-L" title="IBUS_Alt_L">IBUS_Alt_L</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Alt-R" title="IBUS_Alt_R">IBUS_Alt_R</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-amacron" title="IBUS_amacron">IBUS_amacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Amacron" title="IBUS_Amacron">IBUS_Amacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ampersand" title="IBUS_ampersand">IBUS_ampersand</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Aogonek" title="IBUS_Aogonek">IBUS_Aogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-aogonek" title="IBUS_aogonek">IBUS_aogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-apostrophe" title="IBUS_apostrophe">IBUS_apostrophe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-approxeq" title="IBUS_approxeq">IBUS_approxeq</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-approximate" title="IBUS_approximate">IBUS_approximate</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-0" title="IBUS_Arabic_0">IBUS_Arabic_0</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-1" title="IBUS_Arabic_1">IBUS_Arabic_1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-2" title="IBUS_Arabic_2">IBUS_Arabic_2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-3" title="IBUS_Arabic_3">IBUS_Arabic_3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-4" title="IBUS_Arabic_4">IBUS_Arabic_4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-5" title="IBUS_Arabic_5">IBUS_Arabic_5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-6" title="IBUS_Arabic_6">IBUS_Arabic_6</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-7" title="IBUS_Arabic_7">IBUS_Arabic_7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-8" title="IBUS_Arabic_8">IBUS_Arabic_8</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-9" title="IBUS_Arabic_9">IBUS_Arabic_9</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ain" title="IBUS_Arabic_ain">IBUS_Arabic_ain</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-alef" title="IBUS_Arabic_alef">IBUS_Arabic_alef</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-alefmaksura" title="IBUS_Arabic_alefmaksura">IBUS_Arabic_alefmaksura</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-beh" title="IBUS_Arabic_beh">IBUS_Arabic_beh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-comma" title="IBUS_Arabic_comma">IBUS_Arabic_comma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-dad" title="IBUS_Arabic_dad">IBUS_Arabic_dad</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-dal" title="IBUS_Arabic_dal">IBUS_Arabic_dal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-damma" title="IBUS_Arabic_damma">IBUS_Arabic_damma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-dammatan" title="IBUS_Arabic_dammatan">IBUS_Arabic_dammatan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ddal" title="IBUS_Arabic_ddal">IBUS_Arabic_ddal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-farsi-yeh" title="IBUS_Arabic_farsi_yeh">IBUS_Arabic_farsi_yeh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-fatha" title="IBUS_Arabic_fatha">IBUS_Arabic_fatha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-fathatan" title="IBUS_Arabic_fathatan">IBUS_Arabic_fathatan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-feh" title="IBUS_Arabic_feh">IBUS_Arabic_feh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-fullstop" title="IBUS_Arabic_fullstop">IBUS_Arabic_fullstop</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-gaf" title="IBUS_Arabic_gaf">IBUS_Arabic_gaf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ghain" title="IBUS_Arabic_ghain">IBUS_Arabic_ghain</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ha" title="IBUS_Arabic_ha">IBUS_Arabic_ha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hah" title="IBUS_Arabic_hah">IBUS_Arabic_hah</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza" title="IBUS_Arabic_hamza">IBUS_Arabic_hamza</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonalef" title="IBUS_Arabic_hamzaonalef">IBUS_Arabic_hamzaonalef</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonwaw" title="IBUS_Arabic_hamzaonwaw">IBUS_Arabic_hamzaonwaw</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonyeh" title="IBUS_Arabic_hamzaonyeh">IBUS_Arabic_hamzaonyeh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaunderalef" title="IBUS_Arabic_hamzaunderalef">IBUS_Arabic_hamzaunderalef</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza-above" title="IBUS_Arabic_hamza_above">IBUS_Arabic_hamza_above</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza-below" title="IBUS_Arabic_hamza_below">IBUS_Arabic_hamza_below</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh" title="IBUS_Arabic_heh">IBUS_Arabic_heh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh-doachashmee" title="IBUS_Arabic_heh_doachashmee">IBUS_Arabic_heh_doachashmee</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh-goal" title="IBUS_Arabic_heh_goal">IBUS_Arabic_heh_goal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-jeem" title="IBUS_Arabic_jeem">IBUS_Arabic_jeem</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-jeh" title="IBUS_Arabic_jeh">IBUS_Arabic_jeh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-kaf" title="IBUS_Arabic_kaf">IBUS_Arabic_kaf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-kasra" title="IBUS_Arabic_kasra">IBUS_Arabic_kasra</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-kasratan" title="IBUS_Arabic_kasratan">IBUS_Arabic_kasratan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-keheh" title="IBUS_Arabic_keheh">IBUS_Arabic_keheh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-khah" title="IBUS_Arabic_khah">IBUS_Arabic_khah</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-lam" title="IBUS_Arabic_lam">IBUS_Arabic_lam</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-maddaonalef" title="IBUS_Arabic_maddaonalef">IBUS_Arabic_maddaonalef</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-madda-above" title="IBUS_Arabic_madda_above">IBUS_Arabic_madda_above</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-meem" title="IBUS_Arabic_meem">IBUS_Arabic_meem</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-noon" title="IBUS_Arabic_noon">IBUS_Arabic_noon</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-noon-ghunna" title="IBUS_Arabic_noon_ghunna">IBUS_Arabic_noon_ghunna</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-peh" title="IBUS_Arabic_peh">IBUS_Arabic_peh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-percent" title="IBUS_Arabic_percent">IBUS_Arabic_percent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-qaf" title="IBUS_Arabic_qaf">IBUS_Arabic_qaf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-question-mark" title="IBUS_Arabic_question_mark">IBUS_Arabic_question_mark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ra" title="IBUS_Arabic_ra">IBUS_Arabic_ra</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-rreh" title="IBUS_Arabic_rreh">IBUS_Arabic_rreh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-sad" title="IBUS_Arabic_sad">IBUS_Arabic_sad</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-seen" title="IBUS_Arabic_seen">IBUS_Arabic_seen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-semicolon" title="IBUS_Arabic_semicolon">IBUS_Arabic_semicolon</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-shadda" title="IBUS_Arabic_shadda">IBUS_Arabic_shadda</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-sheen" title="IBUS_Arabic_sheen">IBUS_Arabic_sheen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-sukun" title="IBUS_Arabic_sukun">IBUS_Arabic_sukun</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-superscript-alef" title="IBUS_Arabic_superscript_alef">IBUS_Arabic_superscript_alef</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-switch" title="IBUS_Arabic_switch">IBUS_Arabic_switch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tah" title="IBUS_Arabic_tah">IBUS_Arabic_tah</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tatweel" title="IBUS_Arabic_tatweel">IBUS_Arabic_tatweel</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tcheh" title="IBUS_Arabic_tcheh">IBUS_Arabic_tcheh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-teh" title="IBUS_Arabic_teh">IBUS_Arabic_teh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tehmarbuta" title="IBUS_Arabic_tehmarbuta">IBUS_Arabic_tehmarbuta</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-thal" title="IBUS_Arabic_thal">IBUS_Arabic_thal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-theh" title="IBUS_Arabic_theh">IBUS_Arabic_theh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tteh" title="IBUS_Arabic_tteh">IBUS_Arabic_tteh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-veh" title="IBUS_Arabic_veh">IBUS_Arabic_veh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-waw" title="IBUS_Arabic_waw">IBUS_Arabic_waw</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-yeh" title="IBUS_Arabic_yeh">IBUS_Arabic_yeh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-yeh-baree" title="IBUS_Arabic_yeh_baree">IBUS_Arabic_yeh_baree</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-zah" title="IBUS_Arabic_zah">IBUS_Arabic_zah</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-zain" title="IBUS_Arabic_zain">IBUS_Arabic_zain</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-aring" title="IBUS_aring">IBUS_aring</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Aring" title="IBUS_Aring">IBUS_Aring</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-accent" title="IBUS_Armenian_accent">IBUS_Armenian_accent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-amanak" title="IBUS_Armenian_amanak">IBUS_Armenian_amanak</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-apostrophe" title="IBUS_Armenian_apostrophe">IBUS_Armenian_apostrophe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-AT" title="IBUS_Armenian_AT">IBUS_Armenian_AT</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-at" title="IBUS_Armenian_at">IBUS_Armenian_at</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-AYB" title="IBUS_Armenian_AYB">IBUS_Armenian_AYB</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ayb" title="IBUS_Armenian_ayb">IBUS_Armenian_ayb</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-BEN" title="IBUS_Armenian_BEN">IBUS_Armenian_BEN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ben" title="IBUS_Armenian_ben">IBUS_Armenian_ben</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-but" title="IBUS_Armenian_but">IBUS_Armenian_but</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-cha" title="IBUS_Armenian_cha">IBUS_Armenian_cha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-CHA" title="IBUS_Armenian_CHA">IBUS_Armenian_CHA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-da" title="IBUS_Armenian_da">IBUS_Armenian_da</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-DA" title="IBUS_Armenian_DA">IBUS_Armenian_DA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-DZA" title="IBUS_Armenian_DZA">IBUS_Armenian_DZA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-dza" title="IBUS_Armenian_dza">IBUS_Armenian_dza</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-E" title="IBUS_Armenian_E">IBUS_Armenian_E</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-e" title="IBUS_Armenian_e">IBUS_Armenian_e</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-exclam" title="IBUS_Armenian_exclam">IBUS_Armenian_exclam</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-fe" title="IBUS_Armenian_fe">IBUS_Armenian_fe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-FE" title="IBUS_Armenian_FE">IBUS_Armenian_FE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-full-stop" title="IBUS_Armenian_full_stop">IBUS_Armenian_full_stop</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-GHAT" title="IBUS_Armenian_GHAT">IBUS_Armenian_GHAT</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ghat" title="IBUS_Armenian_ghat">IBUS_Armenian_ghat</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-gim" title="IBUS_Armenian_gim">IBUS_Armenian_gim</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-GIM" title="IBUS_Armenian_GIM">IBUS_Armenian_GIM</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-HI" title="IBUS_Armenian_HI">IBUS_Armenian_HI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-hi" title="IBUS_Armenian_hi">IBUS_Armenian_hi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-HO" title="IBUS_Armenian_HO">IBUS_Armenian_HO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ho" title="IBUS_Armenian_ho">IBUS_Armenian_ho</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-hyphen" title="IBUS_Armenian_hyphen">IBUS_Armenian_hyphen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-INI" title="IBUS_Armenian_INI">IBUS_Armenian_INI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ini" title="IBUS_Armenian_ini">IBUS_Armenian_ini</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-je" title="IBUS_Armenian_je">IBUS_Armenian_je</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-JE" title="IBUS_Armenian_JE">IBUS_Armenian_JE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ke" title="IBUS_Armenian_ke">IBUS_Armenian_ke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-KE" title="IBUS_Armenian_KE">IBUS_Armenian_KE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-KEN" title="IBUS_Armenian_KEN">IBUS_Armenian_KEN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ken" title="IBUS_Armenian_ken">IBUS_Armenian_ken</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-KHE" title="IBUS_Armenian_KHE">IBUS_Armenian_KHE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-khe" title="IBUS_Armenian_khe">IBUS_Armenian_khe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ligature-ew" title="IBUS_Armenian_ligature_ew">IBUS_Armenian_ligature_ew</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-lyun" title="IBUS_Armenian_lyun">IBUS_Armenian_lyun</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-LYUN" title="IBUS_Armenian_LYUN">IBUS_Armenian_LYUN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-men" title="IBUS_Armenian_men">IBUS_Armenian_men</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-MEN" title="IBUS_Armenian_MEN">IBUS_Armenian_MEN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-nu" title="IBUS_Armenian_nu">IBUS_Armenian_nu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-NU" title="IBUS_Armenian_NU">IBUS_Armenian_NU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-O" title="IBUS_Armenian_O">IBUS_Armenian_O</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-o" title="IBUS_Armenian_o">IBUS_Armenian_o</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-paruyk" title="IBUS_Armenian_paruyk">IBUS_Armenian_paruyk</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-PE" title="IBUS_Armenian_PE">IBUS_Armenian_PE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-pe" title="IBUS_Armenian_pe">IBUS_Armenian_pe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-pyur" title="IBUS_Armenian_pyur">IBUS_Armenian_pyur</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-PYUR" title="IBUS_Armenian_PYUR">IBUS_Armenian_PYUR</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-question" title="IBUS_Armenian_question">IBUS_Armenian_question</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-RA" title="IBUS_Armenian_RA">IBUS_Armenian_RA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ra" title="IBUS_Armenian_ra">IBUS_Armenian_ra</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-RE" title="IBUS_Armenian_RE">IBUS_Armenian_RE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-re" title="IBUS_Armenian_re">IBUS_Armenian_re</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-se" title="IBUS_Armenian_se">IBUS_Armenian_se</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-SE" title="IBUS_Armenian_SE">IBUS_Armenian_SE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-separation-mark" title="IBUS_Armenian_separation_mark">IBUS_Armenian_separation_mark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-sha" title="IBUS_Armenian_sha">IBUS_Armenian_sha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-SHA" title="IBUS_Armenian_SHA">IBUS_Armenian_SHA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-shesht" title="IBUS_Armenian_shesht">IBUS_Armenian_shesht</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tche" title="IBUS_Armenian_tche">IBUS_Armenian_tche</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TCHE" title="IBUS_Armenian_TCHE">IBUS_Armenian_TCHE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-to" title="IBUS_Armenian_to">IBUS_Armenian_to</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TO" title="IBUS_Armenian_TO">IBUS_Armenian_TO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TSA" title="IBUS_Armenian_TSA">IBUS_Armenian_TSA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tsa" title="IBUS_Armenian_tsa">IBUS_Armenian_tsa</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tso" title="IBUS_Armenian_tso">IBUS_Armenian_tso</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TSO" title="IBUS_Armenian_TSO">IBUS_Armenian_TSO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TYUN" title="IBUS_Armenian_TYUN">IBUS_Armenian_TYUN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tyun" title="IBUS_Armenian_tyun">IBUS_Armenian_tyun</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-verjaket" title="IBUS_Armenian_verjaket">IBUS_Armenian_verjaket</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-VEV" title="IBUS_Armenian_VEV">IBUS_Armenian_VEV</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-vev" title="IBUS_Armenian_vev">IBUS_Armenian_vev</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-VO" title="IBUS_Armenian_VO">IBUS_Armenian_VO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-vo" title="IBUS_Armenian_vo">IBUS_Armenian_vo</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-VYUN" title="IBUS_Armenian_VYUN">IBUS_Armenian_VYUN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-vyun" title="IBUS_Armenian_vyun">IBUS_Armenian_vyun</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-YECH" title="IBUS_Armenian_YECH">IBUS_Armenian_YECH</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-yech" title="IBUS_Armenian_yech">IBUS_Armenian_yech</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-yentamna" title="IBUS_Armenian_yentamna">IBUS_Armenian_yentamna</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ZA" title="IBUS_Armenian_ZA">IBUS_Armenian_ZA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-za" title="IBUS_Armenian_za">IBUS_Armenian_za</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ZHE" title="IBUS_Armenian_ZHE">IBUS_Armenian_ZHE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-zhe" title="IBUS_Armenian_zhe">IBUS_Armenian_zhe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-asciicircum" title="IBUS_asciicircum">IBUS_asciicircum</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-asciitilde" title="IBUS_asciitilde">IBUS_asciitilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-asterisk" title="IBUS_asterisk">IBUS_asterisk</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-at" title="IBUS_at">IBUS_at</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Atilde" title="IBUS_Atilde">IBUS_Atilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-atilde" title="IBUS_atilde">IBUS_atilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#IBusAttribute-struct" title="struct IBusAttribute">IBusAttribute</a>, struct in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#IBusAttributeClass" title="struct IBusAttributeClass">IBusAttributeClass</a>, struct in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#ibus-attribute-get-attr-type" title="ibus_attribute_get_attr_type ()">ibus_attribute_get_attr_type</a>, function in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#ibus-attribute-get-end-index" title="ibus_attribute_get_end_index ()">ibus_attribute_get_end_index</a>, function in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#ibus-attribute-get-start-index" title="ibus_attribute_get_start_index ()">ibus_attribute_get_start_index</a>, function in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#ibus-attribute-get-value" title="ibus_attribute_get_value ()">ibus_attribute_get_value</a>, function in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#ibus-attribute-new" title="ibus_attribute_new ()">ibus_attribute_new</a>, function in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttrList.html#IBusAttrList-struct" title="struct IBusAttrList">IBusAttrList</a>, struct in <a class="link" href="IBusAttrList.html" title="IBusAttrList">IBusAttrList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttrList.html#IBusAttrListClass" title="struct IBusAttrListClass">IBusAttrListClass</a>, struct in <a class="link" href="IBusAttrList.html" title="IBusAttrList">IBusAttrList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#IBusAttrType-enum" title="enum IBusAttrType">IBusAttrType</a>, enum in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#IBusAttrUnderline-enum" title="enum IBusAttrUnderline">IBusAttrUnderline</a>, enum in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#ibus-attr-background-new" title="ibus_attr_background_new ()">ibus_attr_background_new</a>, function in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#ibus-attr-foreground-new" title="ibus_attr_foreground_new ()">ibus_attr_foreground_new</a>, function in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttrList.html#ibus-attr-list-append" title="ibus_attr_list_append ()">ibus_attr_list_append</a>, function in <a class="link" href="IBusAttrList.html" title="IBusAttrList">IBusAttrList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttrList.html#ibus-attr-list-get" title="ibus_attr_list_get ()">ibus_attr_list_get</a>, function in <a class="link" href="IBusAttrList.html" title="IBusAttrList">IBusAttrList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttrList.html#ibus-attr-list-new" title="ibus_attr_list_new ()">ibus_attr_list_new</a>, function in <a class="link" href="IBusAttrList.html" title="IBusAttrList">IBusAttrList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusAttribute.html#ibus-attr-underline-new" title="ibus_attr_underline_new ()">ibus_attr_underline_new</a>, function in <a class="link" href="IBusAttribute.html" title="IBusAttribute">IBusAttribute</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-AudibleBell-Enable" title="IBUS_AudibleBell_Enable">IBUS_AudibleBell_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxB"></a><h3 class="title">B</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-B:CAPS" title="IBUS_B">IBUS_B</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-b" title="IBUS_b">IBUS_b</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-babovedot" title="IBUS_babovedot">IBUS_babovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Babovedot" title="IBUS_Babovedot">IBUS_Babovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-backslash" title="IBUS_backslash">IBUS_backslash</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-BackSpace" title="IBUS_BackSpace">IBUS_BackSpace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ballotcross" title="IBUS_ballotcross">IBUS_ballotcross</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-bar" title="IBUS_bar">IBUS_bar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-because" title="IBUS_because">IBUS_because</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Begin" title="IBUS_Begin">IBUS_Begin</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-blank" title="IBUS_blank">IBUS_blank</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botintegral" title="IBUS_botintegral">IBUS_botintegral</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botleftparens" title="IBUS_botleftparens">IBUS_botleftparens</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botleftsqbracket" title="IBUS_botleftsqbracket">IBUS_botleftsqbracket</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botleftsummation" title="IBUS_botleftsummation">IBUS_botleftsummation</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botrightparens" title="IBUS_botrightparens">IBUS_botrightparens</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botrightsqbracket" title="IBUS_botrightsqbracket">IBUS_botrightsqbracket</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botrightsummation" title="IBUS_botrightsummation">IBUS_botrightsummation</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-bott" title="IBUS_bott">IBUS_bott</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botvertsummationconnector" title="IBUS_botvertsummationconnector">IBUS_botvertsummationconnector</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-BounceKeys-Enable" title="IBUS_BounceKeys_Enable">IBUS_BounceKeys_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braceleft" title="IBUS_braceleft">IBUS_braceleft</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braceright" title="IBUS_braceright">IBUS_braceright</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-bracketleft" title="IBUS_bracketleft">IBUS_bracketleft</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-bracketright" title="IBUS_bracketright">IBUS_bracketright</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-blank" title="IBUS_braille_blank">IBUS_braille_blank</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1" title="IBUS_braille_dots_1">IBUS_braille_dots_1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12" title="IBUS_braille_dots_12">IBUS_braille_dots_12</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123" title="IBUS_braille_dots_123">IBUS_braille_dots_123</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234" title="IBUS_braille_dots_1234">IBUS_braille_dots_1234</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12345" title="IBUS_braille_dots_12345">IBUS_braille_dots_12345</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123456" title="IBUS_braille_dots_123456">IBUS_braille_dots_123456</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234567" title="IBUS_braille_dots_1234567">IBUS_braille_dots_1234567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12345678" title="IBUS_braille_dots_12345678">IBUS_braille_dots_12345678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234568" title="IBUS_braille_dots_1234568">IBUS_braille_dots_1234568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123457" title="IBUS_braille_dots_123457">IBUS_braille_dots_123457</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234578" title="IBUS_braille_dots_1234578">IBUS_braille_dots_1234578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123458" title="IBUS_braille_dots_123458">IBUS_braille_dots_123458</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12346" title="IBUS_braille_dots_12346">IBUS_braille_dots_12346</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123467" title="IBUS_braille_dots_123467">IBUS_braille_dots_123467</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234678" title="IBUS_braille_dots_1234678">IBUS_braille_dots_1234678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123468" title="IBUS_braille_dots_123468">IBUS_braille_dots_123468</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12347" title="IBUS_braille_dots_12347">IBUS_braille_dots_12347</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123478" title="IBUS_braille_dots_123478">IBUS_braille_dots_123478</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12348" title="IBUS_braille_dots_12348">IBUS_braille_dots_12348</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1235" title="IBUS_braille_dots_1235">IBUS_braille_dots_1235</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12356" title="IBUS_braille_dots_12356">IBUS_braille_dots_12356</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123567" title="IBUS_braille_dots_123567">IBUS_braille_dots_123567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1235678" title="IBUS_braille_dots_1235678">IBUS_braille_dots_1235678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123568" title="IBUS_braille_dots_123568">IBUS_braille_dots_123568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12357" title="IBUS_braille_dots_12357">IBUS_braille_dots_12357</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123578" title="IBUS_braille_dots_123578">IBUS_braille_dots_123578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12358" title="IBUS_braille_dots_12358">IBUS_braille_dots_12358</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1236" title="IBUS_braille_dots_1236">IBUS_braille_dots_1236</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12367" title="IBUS_braille_dots_12367">IBUS_braille_dots_12367</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123678" title="IBUS_braille_dots_123678">IBUS_braille_dots_123678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12368" title="IBUS_braille_dots_12368">IBUS_braille_dots_12368</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1237" title="IBUS_braille_dots_1237">IBUS_braille_dots_1237</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12378" title="IBUS_braille_dots_12378">IBUS_braille_dots_12378</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1238" title="IBUS_braille_dots_1238">IBUS_braille_dots_1238</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124" title="IBUS_braille_dots_124">IBUS_braille_dots_124</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1245" title="IBUS_braille_dots_1245">IBUS_braille_dots_1245</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12456" title="IBUS_braille_dots_12456">IBUS_braille_dots_12456</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124567" title="IBUS_braille_dots_124567">IBUS_braille_dots_124567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1245678" title="IBUS_braille_dots_1245678">IBUS_braille_dots_1245678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124568" title="IBUS_braille_dots_124568">IBUS_braille_dots_124568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12457" title="IBUS_braille_dots_12457">IBUS_braille_dots_12457</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124578" title="IBUS_braille_dots_124578">IBUS_braille_dots_124578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12458" title="IBUS_braille_dots_12458">IBUS_braille_dots_12458</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1246" title="IBUS_braille_dots_1246">IBUS_braille_dots_1246</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12467" title="IBUS_braille_dots_12467">IBUS_braille_dots_12467</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124678" title="IBUS_braille_dots_124678">IBUS_braille_dots_124678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12468" title="IBUS_braille_dots_12468">IBUS_braille_dots_12468</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1247" title="IBUS_braille_dots_1247">IBUS_braille_dots_1247</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12478" title="IBUS_braille_dots_12478">IBUS_braille_dots_12478</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1248" title="IBUS_braille_dots_1248">IBUS_braille_dots_1248</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-125" title="IBUS_braille_dots_125">IBUS_braille_dots_125</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1256" title="IBUS_braille_dots_1256">IBUS_braille_dots_1256</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12567" title="IBUS_braille_dots_12567">IBUS_braille_dots_12567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-125678" title="IBUS_braille_dots_125678">IBUS_braille_dots_125678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12568" title="IBUS_braille_dots_12568">IBUS_braille_dots_12568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1257" title="IBUS_braille_dots_1257">IBUS_braille_dots_1257</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12578" title="IBUS_braille_dots_12578">IBUS_braille_dots_12578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1258" title="IBUS_braille_dots_1258">IBUS_braille_dots_1258</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-126" title="IBUS_braille_dots_126">IBUS_braille_dots_126</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1267" title="IBUS_braille_dots_1267">IBUS_braille_dots_1267</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12678" title="IBUS_braille_dots_12678">IBUS_braille_dots_12678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1268" title="IBUS_braille_dots_1268">IBUS_braille_dots_1268</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-127" title="IBUS_braille_dots_127">IBUS_braille_dots_127</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1278" title="IBUS_braille_dots_1278">IBUS_braille_dots_1278</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-128" title="IBUS_braille_dots_128">IBUS_braille_dots_128</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13" title="IBUS_braille_dots_13">IBUS_braille_dots_13</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134" title="IBUS_braille_dots_134">IBUS_braille_dots_134</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1345" title="IBUS_braille_dots_1345">IBUS_braille_dots_1345</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13456" title="IBUS_braille_dots_13456">IBUS_braille_dots_13456</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134567" title="IBUS_braille_dots_134567">IBUS_braille_dots_134567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1345678" title="IBUS_braille_dots_1345678">IBUS_braille_dots_1345678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134568" title="IBUS_braille_dots_134568">IBUS_braille_dots_134568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13457" title="IBUS_braille_dots_13457">IBUS_braille_dots_13457</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134578" title="IBUS_braille_dots_134578">IBUS_braille_dots_134578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13458" title="IBUS_braille_dots_13458">IBUS_braille_dots_13458</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1346" title="IBUS_braille_dots_1346">IBUS_braille_dots_1346</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13467" title="IBUS_braille_dots_13467">IBUS_braille_dots_13467</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134678" title="IBUS_braille_dots_134678">IBUS_braille_dots_134678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13468" title="IBUS_braille_dots_13468">IBUS_braille_dots_13468</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1347" title="IBUS_braille_dots_1347">IBUS_braille_dots_1347</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13478" title="IBUS_braille_dots_13478">IBUS_braille_dots_13478</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1348" title="IBUS_braille_dots_1348">IBUS_braille_dots_1348</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-135" title="IBUS_braille_dots_135">IBUS_braille_dots_135</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1356" title="IBUS_braille_dots_1356">IBUS_braille_dots_1356</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13567" title="IBUS_braille_dots_13567">IBUS_braille_dots_13567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-135678" title="IBUS_braille_dots_135678">IBUS_braille_dots_135678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13568" title="IBUS_braille_dots_13568">IBUS_braille_dots_13568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1357" title="IBUS_braille_dots_1357">IBUS_braille_dots_1357</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13578" title="IBUS_braille_dots_13578">IBUS_braille_dots_13578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1358" title="IBUS_braille_dots_1358">IBUS_braille_dots_1358</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-136" title="IBUS_braille_dots_136">IBUS_braille_dots_136</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1367" title="IBUS_braille_dots_1367">IBUS_braille_dots_1367</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13678" title="IBUS_braille_dots_13678">IBUS_braille_dots_13678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1368" title="IBUS_braille_dots_1368">IBUS_braille_dots_1368</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-137" title="IBUS_braille_dots_137">IBUS_braille_dots_137</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1378" title="IBUS_braille_dots_1378">IBUS_braille_dots_1378</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-138" title="IBUS_braille_dots_138">IBUS_braille_dots_138</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14" title="IBUS_braille_dots_14">IBUS_braille_dots_14</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-145" title="IBUS_braille_dots_145">IBUS_braille_dots_145</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1456" title="IBUS_braille_dots_1456">IBUS_braille_dots_1456</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14567" title="IBUS_braille_dots_14567">IBUS_braille_dots_14567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-145678" title="IBUS_braille_dots_145678">IBUS_braille_dots_145678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14568" title="IBUS_braille_dots_14568">IBUS_braille_dots_14568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1457" title="IBUS_braille_dots_1457">IBUS_braille_dots_1457</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14578" title="IBUS_braille_dots_14578">IBUS_braille_dots_14578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1458" title="IBUS_braille_dots_1458">IBUS_braille_dots_1458</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-146" title="IBUS_braille_dots_146">IBUS_braille_dots_146</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1467" title="IBUS_braille_dots_1467">IBUS_braille_dots_1467</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14678" title="IBUS_braille_dots_14678">IBUS_braille_dots_14678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1468" title="IBUS_braille_dots_1468">IBUS_braille_dots_1468</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-147" title="IBUS_braille_dots_147">IBUS_braille_dots_147</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1478" title="IBUS_braille_dots_1478">IBUS_braille_dots_1478</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-148" title="IBUS_braille_dots_148">IBUS_braille_dots_148</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-15" title="IBUS_braille_dots_15">IBUS_braille_dots_15</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-156" title="IBUS_braille_dots_156">IBUS_braille_dots_156</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1567" title="IBUS_braille_dots_1567">IBUS_braille_dots_1567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-15678" title="IBUS_braille_dots_15678">IBUS_braille_dots_15678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1568" title="IBUS_braille_dots_1568">IBUS_braille_dots_1568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-157" title="IBUS_braille_dots_157">IBUS_braille_dots_157</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1578" title="IBUS_braille_dots_1578">IBUS_braille_dots_1578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-158" title="IBUS_braille_dots_158">IBUS_braille_dots_158</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-16" title="IBUS_braille_dots_16">IBUS_braille_dots_16</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-167" title="IBUS_braille_dots_167">IBUS_braille_dots_167</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1678" title="IBUS_braille_dots_1678">IBUS_braille_dots_1678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-168" title="IBUS_braille_dots_168">IBUS_braille_dots_168</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-17" title="IBUS_braille_dots_17">IBUS_braille_dots_17</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-178" title="IBUS_braille_dots_178">IBUS_braille_dots_178</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-18" title="IBUS_braille_dots_18">IBUS_braille_dots_18</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2" title="IBUS_braille_dots_2">IBUS_braille_dots_2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23" title="IBUS_braille_dots_23">IBUS_braille_dots_23</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234" title="IBUS_braille_dots_234">IBUS_braille_dots_234</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2345" title="IBUS_braille_dots_2345">IBUS_braille_dots_2345</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23456" title="IBUS_braille_dots_23456">IBUS_braille_dots_23456</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234567" title="IBUS_braille_dots_234567">IBUS_braille_dots_234567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2345678" title="IBUS_braille_dots_2345678">IBUS_braille_dots_2345678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234568" title="IBUS_braille_dots_234568">IBUS_braille_dots_234568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23457" title="IBUS_braille_dots_23457">IBUS_braille_dots_23457</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234578" title="IBUS_braille_dots_234578">IBUS_braille_dots_234578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23458" title="IBUS_braille_dots_23458">IBUS_braille_dots_23458</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2346" title="IBUS_braille_dots_2346">IBUS_braille_dots_2346</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23467" title="IBUS_braille_dots_23467">IBUS_braille_dots_23467</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234678" title="IBUS_braille_dots_234678">IBUS_braille_dots_234678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23468" title="IBUS_braille_dots_23468">IBUS_braille_dots_23468</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2347" title="IBUS_braille_dots_2347">IBUS_braille_dots_2347</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23478" title="IBUS_braille_dots_23478">IBUS_braille_dots_23478</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2348" title="IBUS_braille_dots_2348">IBUS_braille_dots_2348</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-235" title="IBUS_braille_dots_235">IBUS_braille_dots_235</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2356" title="IBUS_braille_dots_2356">IBUS_braille_dots_2356</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23567" title="IBUS_braille_dots_23567">IBUS_braille_dots_23567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-235678" title="IBUS_braille_dots_235678">IBUS_braille_dots_235678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23568" title="IBUS_braille_dots_23568">IBUS_braille_dots_23568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2357" title="IBUS_braille_dots_2357">IBUS_braille_dots_2357</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23578" title="IBUS_braille_dots_23578">IBUS_braille_dots_23578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2358" title="IBUS_braille_dots_2358">IBUS_braille_dots_2358</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-236" title="IBUS_braille_dots_236">IBUS_braille_dots_236</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2367" title="IBUS_braille_dots_2367">IBUS_braille_dots_2367</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23678" title="IBUS_braille_dots_23678">IBUS_braille_dots_23678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2368" title="IBUS_braille_dots_2368">IBUS_braille_dots_2368</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-237" title="IBUS_braille_dots_237">IBUS_braille_dots_237</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2378" title="IBUS_braille_dots_2378">IBUS_braille_dots_2378</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-238" title="IBUS_braille_dots_238">IBUS_braille_dots_238</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24" title="IBUS_braille_dots_24">IBUS_braille_dots_24</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-245" title="IBUS_braille_dots_245">IBUS_braille_dots_245</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2456" title="IBUS_braille_dots_2456">IBUS_braille_dots_2456</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24567" title="IBUS_braille_dots_24567">IBUS_braille_dots_24567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-245678" title="IBUS_braille_dots_245678">IBUS_braille_dots_245678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24568" title="IBUS_braille_dots_24568">IBUS_braille_dots_24568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2457" title="IBUS_braille_dots_2457">IBUS_braille_dots_2457</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24578" title="IBUS_braille_dots_24578">IBUS_braille_dots_24578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2458" title="IBUS_braille_dots_2458">IBUS_braille_dots_2458</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-246" title="IBUS_braille_dots_246">IBUS_braille_dots_246</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2467" title="IBUS_braille_dots_2467">IBUS_braille_dots_2467</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24678" title="IBUS_braille_dots_24678">IBUS_braille_dots_24678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2468" title="IBUS_braille_dots_2468">IBUS_braille_dots_2468</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-247" title="IBUS_braille_dots_247">IBUS_braille_dots_247</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2478" title="IBUS_braille_dots_2478">IBUS_braille_dots_2478</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-248" title="IBUS_braille_dots_248">IBUS_braille_dots_248</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-25" title="IBUS_braille_dots_25">IBUS_braille_dots_25</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-256" title="IBUS_braille_dots_256">IBUS_braille_dots_256</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2567" title="IBUS_braille_dots_2567">IBUS_braille_dots_2567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-25678" title="IBUS_braille_dots_25678">IBUS_braille_dots_25678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2568" title="IBUS_braille_dots_2568">IBUS_braille_dots_2568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-257" title="IBUS_braille_dots_257">IBUS_braille_dots_257</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2578" title="IBUS_braille_dots_2578">IBUS_braille_dots_2578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-258" title="IBUS_braille_dots_258">IBUS_braille_dots_258</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-26" title="IBUS_braille_dots_26">IBUS_braille_dots_26</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-267" title="IBUS_braille_dots_267">IBUS_braille_dots_267</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2678" title="IBUS_braille_dots_2678">IBUS_braille_dots_2678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-268" title="IBUS_braille_dots_268">IBUS_braille_dots_268</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-27" title="IBUS_braille_dots_27">IBUS_braille_dots_27</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-278" title="IBUS_braille_dots_278">IBUS_braille_dots_278</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-28" title="IBUS_braille_dots_28">IBUS_braille_dots_28</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3" title="IBUS_braille_dots_3">IBUS_braille_dots_3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34" title="IBUS_braille_dots_34">IBUS_braille_dots_34</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-345" title="IBUS_braille_dots_345">IBUS_braille_dots_345</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3456" title="IBUS_braille_dots_3456">IBUS_braille_dots_3456</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34567" title="IBUS_braille_dots_34567">IBUS_braille_dots_34567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-345678" title="IBUS_braille_dots_345678">IBUS_braille_dots_345678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34568" title="IBUS_braille_dots_34568">IBUS_braille_dots_34568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3457" title="IBUS_braille_dots_3457">IBUS_braille_dots_3457</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34578" title="IBUS_braille_dots_34578">IBUS_braille_dots_34578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3458" title="IBUS_braille_dots_3458">IBUS_braille_dots_3458</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-346" title="IBUS_braille_dots_346">IBUS_braille_dots_346</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3467" title="IBUS_braille_dots_3467">IBUS_braille_dots_3467</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34678" title="IBUS_braille_dots_34678">IBUS_braille_dots_34678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3468" title="IBUS_braille_dots_3468">IBUS_braille_dots_3468</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-347" title="IBUS_braille_dots_347">IBUS_braille_dots_347</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3478" title="IBUS_braille_dots_3478">IBUS_braille_dots_3478</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-348" title="IBUS_braille_dots_348">IBUS_braille_dots_348</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-35" title="IBUS_braille_dots_35">IBUS_braille_dots_35</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-356" title="IBUS_braille_dots_356">IBUS_braille_dots_356</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3567" title="IBUS_braille_dots_3567">IBUS_braille_dots_3567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-35678" title="IBUS_braille_dots_35678">IBUS_braille_dots_35678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3568" title="IBUS_braille_dots_3568">IBUS_braille_dots_3568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-357" title="IBUS_braille_dots_357">IBUS_braille_dots_357</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3578" title="IBUS_braille_dots_3578">IBUS_braille_dots_3578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-358" title="IBUS_braille_dots_358">IBUS_braille_dots_358</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-36" title="IBUS_braille_dots_36">IBUS_braille_dots_36</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-367" title="IBUS_braille_dots_367">IBUS_braille_dots_367</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3678" title="IBUS_braille_dots_3678">IBUS_braille_dots_3678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-368" title="IBUS_braille_dots_368">IBUS_braille_dots_368</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-37" title="IBUS_braille_dots_37">IBUS_braille_dots_37</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-378" title="IBUS_braille_dots_378">IBUS_braille_dots_378</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-38" title="IBUS_braille_dots_38">IBUS_braille_dots_38</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4" title="IBUS_braille_dots_4">IBUS_braille_dots_4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-45" title="IBUS_braille_dots_45">IBUS_braille_dots_45</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-456" title="IBUS_braille_dots_456">IBUS_braille_dots_456</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4567" title="IBUS_braille_dots_4567">IBUS_braille_dots_4567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-45678" title="IBUS_braille_dots_45678">IBUS_braille_dots_45678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4568" title="IBUS_braille_dots_4568">IBUS_braille_dots_4568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-457" title="IBUS_braille_dots_457">IBUS_braille_dots_457</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4578" title="IBUS_braille_dots_4578">IBUS_braille_dots_4578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-458" title="IBUS_braille_dots_458">IBUS_braille_dots_458</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-46" title="IBUS_braille_dots_46">IBUS_braille_dots_46</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-467" title="IBUS_braille_dots_467">IBUS_braille_dots_467</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4678" title="IBUS_braille_dots_4678">IBUS_braille_dots_4678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-468" title="IBUS_braille_dots_468">IBUS_braille_dots_468</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-47" title="IBUS_braille_dots_47">IBUS_braille_dots_47</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-478" title="IBUS_braille_dots_478">IBUS_braille_dots_478</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-48" title="IBUS_braille_dots_48">IBUS_braille_dots_48</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-5" title="IBUS_braille_dots_5">IBUS_braille_dots_5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-56" title="IBUS_braille_dots_56">IBUS_braille_dots_56</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-567" title="IBUS_braille_dots_567">IBUS_braille_dots_567</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-5678" title="IBUS_braille_dots_5678">IBUS_braille_dots_5678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-568" title="IBUS_braille_dots_568">IBUS_braille_dots_568</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-57" title="IBUS_braille_dots_57">IBUS_braille_dots_57</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-578" title="IBUS_braille_dots_578">IBUS_braille_dots_578</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-58" title="IBUS_braille_dots_58">IBUS_braille_dots_58</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-6" title="IBUS_braille_dots_6">IBUS_braille_dots_6</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-67" title="IBUS_braille_dots_67">IBUS_braille_dots_67</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-678" title="IBUS_braille_dots_678">IBUS_braille_dots_678</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-68" title="IBUS_braille_dots_68">IBUS_braille_dots_68</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-7" title="IBUS_braille_dots_7">IBUS_braille_dots_7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-78" title="IBUS_braille_dots_78">IBUS_braille_dots_78</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-8" title="IBUS_braille_dots_8">IBUS_braille_dots_8</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-1" title="IBUS_braille_dot_1">IBUS_braille_dot_1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-10" title="IBUS_braille_dot_10">IBUS_braille_dot_10</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-2" title="IBUS_braille_dot_2">IBUS_braille_dot_2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-3" title="IBUS_braille_dot_3">IBUS_braille_dot_3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-4" title="IBUS_braille_dot_4">IBUS_braille_dot_4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-5" title="IBUS_braille_dot_5">IBUS_braille_dot_5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-6" title="IBUS_braille_dot_6">IBUS_braille_dot_6</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-7" title="IBUS_braille_dot_7">IBUS_braille_dot_7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-8" title="IBUS_braille_dot_8">IBUS_braille_dot_8</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-9" title="IBUS_braille_dot_9">IBUS_braille_dot_9</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Break" title="IBUS_Break">IBUS_Break</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-breve" title="IBUS_breve">IBUS_breve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-brokenbar" title="IBUS_brokenbar">IBUS_brokenbar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#IBusBus-struct" title="struct IBusBus">IBusBus</a>, struct in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#IBusBus-connected" title='The "connected" signal'>IBusBus::connected</a>, object signal in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#IBusBus-disconnected" title='The "disconnected" signal'>IBusBus::disconnected</a>, object signal in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#IBusBus-global-engine-changed" title='The "global-engine-changed" signal'>IBusBus::global-engine-changed</a>, object signal in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#IBusBus-name-owner-changed" title='The "name-owner-changed" signal'>IBusBus::name-owner-changed</a>, object signal in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#IBusBus--connect-async" title='The "connect-async" property'>IBusBus:connect-async</a>, object property in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#IBusBusClass" title="struct IBusBusClass">IBusBusClass</a>, struct in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusBusNameFlag" title="enum IBusBusNameFlag">IBusBusNameFlag</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusBusRequestNameReply" title="enum IBusBusRequestNameReply">IBusBusRequestNameReply</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusBusStartServiceByNameReply" title="enum IBusBusStartServiceByNameReply">IBusBusStartServiceByNameReply</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-add-match" title="ibus_bus_add_match ()">ibus_bus_add_match</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-add-match-async" title="ibus_bus_add_match_async ()">ibus_bus_add_match_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-add-match-async-finish" title="ibus_bus_add_match_async_finish ()">ibus_bus_add_match_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-create-input-context" title="ibus_bus_create_input_context ()">ibus_bus_create_input_context</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-create-input-context-async" title="ibus_bus_create_input_context_async ()">ibus_bus_create_input_context_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-create-input-context-async-finish" title="ibus_bus_create_input_context_async_finish ()">ibus_bus_create_input_context_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-current-input-context" title="ibus_bus_current_input_context ()">ibus_bus_current_input_context</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-current-input-context-async" title="ibus_bus_current_input_context_async ()">ibus_bus_current_input_context_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-current-input-context-async-finish" title="ibus_bus_current_input_context_async_finish ()">ibus_bus_current_input_context_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-exit" title="ibus_bus_exit ()">ibus_bus_exit</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-exit-async" title="ibus_bus_exit_async ()">ibus_bus_exit_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-exit-async-finish" title="ibus_bus_exit_async_finish ()">ibus_bus_exit_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-config" title="ibus_bus_get_config ()">ibus_bus_get_config</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-connection" title="ibus_bus_get_connection ()">ibus_bus_get_connection</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-engines-by-names" title="ibus_bus_get_engines_by_names ()">ibus_bus_get_engines_by_names</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-global-engine" title="ibus_bus_get_global_engine ()">ibus_bus_get_global_engine</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-global-engine-async" title="ibus_bus_get_global_engine_async ()">ibus_bus_get_global_engine_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-global-engine-async-finish" title="ibus_bus_get_global_engine_async_finish ()">ibus_bus_get_global_engine_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-ibus-property" title="ibus_bus_get_ibus_property ()">ibus_bus_get_ibus_property</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-ibus-property-async" title="ibus_bus_get_ibus_property_async ()">ibus_bus_get_ibus_property_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-ibus-property-async-finish" title="ibus_bus_get_ibus_property_async_finish ()">ibus_bus_get_ibus_property_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-name-owner" title="ibus_bus_get_name_owner ()">ibus_bus_get_name_owner</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-name-owner-async" title="ibus_bus_get_name_owner_async ()">ibus_bus_get_name_owner_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-name-owner-async-finish" title="ibus_bus_get_name_owner_async_finish ()">ibus_bus_get_name_owner_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine" title="ibus_bus_get_use_global_engine ()">ibus_bus_get_use_global_engine</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine-async" title="ibus_bus_get_use_global_engine_async ()">ibus_bus_get_use_global_engine_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-global-engine-async-finish" title="ibus_bus_get_use_global_engine_async_finish ()">ibus_bus_get_use_global_engine_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout" title="ibus_bus_get_use_sys_layout ()">ibus_bus_get_use_sys_layout</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout-async" title="ibus_bus_get_use_sys_layout_async ()">ibus_bus_get_use_sys_layout_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-get-use-sys-layout-async-finish" title="ibus_bus_get_use_sys_layout_async_finish ()">ibus_bus_get_use_sys_layout_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-hello" title="ibus_bus_hello ()">ibus_bus_hello</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-is-connected" title="ibus_bus_is_connected ()">ibus_bus_is_connected</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled" title="ibus_bus_is_global_engine_enabled ()">ibus_bus_is_global_engine_enabled</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled-async" title="ibus_bus_is_global_engine_enabled_async ()">ibus_bus_is_global_engine_enabled_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-is-global-engine-enabled-async-finish" title="ibus_bus_is_global_engine_enabled_async_finish ()">ibus_bus_is_global_engine_enabled_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-active-engines" title="ibus_bus_list_active_engines ()">ibus_bus_list_active_engines</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-active-engines-async" title="ibus_bus_list_active_engines_async ()">ibus_bus_list_active_engines_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-active-engines-async-finish" title="ibus_bus_list_active_engines_async_finish ()">ibus_bus_list_active_engines_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-engines" title="ibus_bus_list_engines ()">ibus_bus_list_engines</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-engines-async" title="ibus_bus_list_engines_async ()">ibus_bus_list_engines_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-engines-async-finish" title="ibus_bus_list_engines_async_finish ()">ibus_bus_list_engines_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-names" title="ibus_bus_list_names ()">ibus_bus_list_names</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-list-queued-owners" title="ibus_bus_list_queued_owners ()">ibus_bus_list_queued_owners</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-name-has-owner" title="ibus_bus_name_has_owner ()">ibus_bus_name_has_owner</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-name-has-owner-async" title="ibus_bus_name_has_owner_async ()">ibus_bus_name_has_owner_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-name-has-owner-async-finish" title="ibus_bus_name_has_owner_async_finish ()">ibus_bus_name_has_owner_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-new" title="ibus_bus_new ()">ibus_bus_new</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-new-async" title="ibus_bus_new_async ()">ibus_bus_new_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-preload-engines" title="ibus_bus_preload_engines ()">ibus_bus_preload_engines</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-preload-engines-async" title="ibus_bus_preload_engines_async ()">ibus_bus_preload_engines_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-preload-engines-async-finish" title="ibus_bus_preload_engines_async_finish ()">ibus_bus_preload_engines_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-register-component" title="ibus_bus_register_component ()">ibus_bus_register_component</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-register-component-async" title="ibus_bus_register_component_async ()">ibus_bus_register_component_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-register-component-async-finish" title="ibus_bus_register_component_async_finish ()">ibus_bus_register_component_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-release-name" title="ibus_bus_release_name ()">ibus_bus_release_name</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-release-name-async" title="ibus_bus_release_name_async ()">ibus_bus_release_name_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-release-name-async-finish" title="ibus_bus_release_name_async_finish ()">ibus_bus_release_name_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-remove-match" title="ibus_bus_remove_match ()">ibus_bus_remove_match</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-remove-match-async" title="ibus_bus_remove_match_async ()">ibus_bus_remove_match_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-remove-match-async-finish" title="ibus_bus_remove_match_async_finish ()">ibus_bus_remove_match_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-request-name" title="ibus_bus_request_name ()">ibus_bus_request_name</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-request-name-async" title="ibus_bus_request_name_async ()">ibus_bus_request_name_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-request-name-async-finish" title="ibus_bus_request_name_async_finish ()">ibus_bus_request_name_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-set-global-engine" title="ibus_bus_set_global_engine ()">ibus_bus_set_global_engine</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-set-global-engine-async" title="ibus_bus_set_global_engine_async ()">ibus_bus_set_global_engine_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-set-global-engine-async-finish" title="ibus_bus_set_global_engine_async_finish ()">ibus_bus_set_global_engine_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-set-ibus-property" title="ibus_bus_set_ibus_property ()">ibus_bus_set_ibus_property</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-set-ibus-property-async" title="ibus_bus_set_ibus_property_async ()">ibus_bus_set_ibus_property_async</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-set-ibus-property-async-finish" title="ibus_bus_set_ibus_property_async_finish ()">ibus_bus_set_ibus_property_async_finish</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-set-watch-dbus-signal" title="ibus_bus_set_watch_dbus_signal ()">ibus_bus_set_watch_dbus_signal</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusBus.html#ibus-bus-set-watch-ibus-signal" title="ibus_bus_set_watch_ibus_signal ()">ibus_bus_set_watch_ibus_signal</a>, function in <a class="link" href="IBusBus.html" title="IBusBus">IBusBus</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Byelorussian-shortu" title="IBUS_Byelorussian_shortu">IBUS_Byelorussian_shortu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Byelorussian-SHORTU" title="IBUS_Byelorussian_SHORTU">IBUS_Byelorussian_SHORTU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxC"></a><h3 class="title">C</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-C:CAPS" title="IBUS_C">IBUS_C</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-c" title="IBUS_c">IBUS_c</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cabovedot" title="IBUS_Cabovedot">IBUS_Cabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cabovedot" title="IBUS_cabovedot">IBUS_cabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cacute" title="IBUS_Cacute">IBUS_Cacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cacute" title="IBUS_cacute">IBUS_cacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cancel" title="IBUS_Cancel">IBUS_Cancel</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusCapabilite-enum" title="enum IBusCapabilite">IBusCapabilite</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Caps-Lock" title="IBUS_Caps_Lock">IBUS_Caps_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-careof" title="IBUS_careof">IBUS_careof</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-caret" title="IBUS_caret">IBUS_caret</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-caron" title="IBUS_caron">IBUS_caron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ccaron" title="IBUS_ccaron">IBUS_ccaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ccaron" title="IBUS_Ccaron">IBUS_Ccaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ccedilla" title="IBUS_ccedilla">IBUS_ccedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ccedilla" title="IBUS_Ccedilla">IBUS_Ccedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ccircumflex" title="IBUS_Ccircumflex">IBUS_Ccircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ccircumflex" title="IBUS_ccircumflex">IBUS_ccircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cedilla" title="IBUS_cedilla">IBUS_cedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cent" title="IBUS_cent">IBUS_cent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-checkerboard" title="IBUS_checkerboard">IBUS_checkerboard</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-checkmark" title="IBUS_checkmark">IBUS_checkmark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusversion.html#IBUS-CHECK-VERSION:CAPS" title="IBUS_CHECK_VERSION()">IBUS_CHECK_VERSION</a>, macro in <a class="link" href="ibus-ibusversion.html" title="ibusversion">ibusversion</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-circle" title="IBUS_circle">IBUS_circle</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Clear" title="IBUS_Clear">IBUS_Clear</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-club" title="IBUS_club">IBUS_club</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Codeinput" title="IBUS_Codeinput">IBUS_Codeinput</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-colon" title="IBUS_colon">IBUS_colon</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ColonSign" title="IBUS_ColonSign">IBUS_ColonSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-comma" title="IBUS_comma">IBUS_comma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponent-struct" title="struct IBusComponent">IBusComponent</a>, struct in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponent--author" title='The "author" property'>IBusComponent:author</a>, object property in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponent--command-line" title='The "command-line" property'>IBusComponent:command-line</a>, object property in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponent--description" title='The "description" property'>IBusComponent:description</a>, object property in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponent--homepage" title='The "homepage" property'>IBusComponent:homepage</a>, object property in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponent--license" title='The "license" property'>IBusComponent:license</a>, object property in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponent--name" title='The "name" property'>IBusComponent:name</a>, object property in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponent--textdomain" title='The "textdomain" property'>IBusComponent:textdomain</a>, object property in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponent--version" title='The "version" property'>IBusComponent:version</a>, object property in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#IBusComponentClass" title="struct IBusComponentClass">IBusComponentClass</a>, struct in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-add-engine" title="ibus_component_add_engine ()">ibus_component_add_engine</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-add-observed-path" title="ibus_component_add_observed_path ()">ibus_component_add_observed_path</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-check-modification" title="ibus_component_check_modification ()">ibus_component_check_modification</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-author" title="ibus_component_get_author ()">ibus_component_get_author</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-description" title="ibus_component_get_description ()">ibus_component_get_description</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-engines" title="ibus_component_get_engines ()">ibus_component_get_engines</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-exec" title="ibus_component_get_exec ()">ibus_component_get_exec</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-homepage" title="ibus_component_get_homepage ()">ibus_component_get_homepage</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-license" title="ibus_component_get_license ()">ibus_component_get_license</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-name" title="ibus_component_get_name ()">ibus_component_get_name</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-observed-paths" title="ibus_component_get_observed_paths ()">ibus_component_get_observed_paths</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-textdomain" title="ibus_component_get_textdomain ()">ibus_component_get_textdomain</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-get-version" title="ibus_component_get_version ()">ibus_component_get_version</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-new" title="ibus_component_new ()">ibus_component_new</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-new-from-file" title="ibus_component_new_from_file ()">ibus_component_new_from_file</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-new-from-xml-node" title="ibus_component_new_from_xml_node ()">ibus_component_new_from_xml_node</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-new-varargs" title="ibus_component_new_varargs ()">ibus_component_new_varargs</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-output" title="ibus_component_output ()">ibus_component_output</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusComponent.html#ibus-component-output-engines" title="ibus_component_output_engines ()">ibus_component_output_engines</a>, function in <a class="link" href="IBusComponent.html" title="IBusComponent">IBusComponent</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#IBusConfig-struct" title="struct IBusConfig">IBusConfig</a>, struct in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#IBusConfig-value-changed" title='The "value-changed" signal'>IBusConfig::value-changed</a>, object signal in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#IBusConfigClass" title="struct IBusConfigClass">IBusConfigClass</a>, struct in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfigService.html#IBusConfigService-struct" title="struct IBusConfigService">IBusConfigService</a>, struct in <a class="link" href="IBusConfigService.html" title="IBusConfigService">IBusConfigService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfigService.html#IBusConfigServiceClass" title="struct IBusConfigServiceClass">IBusConfigServiceClass</a>, struct in <a class="link" href="IBusConfigService.html" title="IBusConfigService">IBusConfigService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-get-value" title="ibus_config_get_value ()">ibus_config_get_value</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-get-values" title="ibus_config_get_values ()">ibus_config_get_values</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-get-values-async" title="ibus_config_get_values_async ()">ibus_config_get_values_async</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-get-values-async-finish" title="ibus_config_get_values_async_finish ()">ibus_config_get_values_async_finish</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-get-value-async" title="ibus_config_get_value_async ()">ibus_config_get_value_async</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-get-value-async-finish" title="ibus_config_get_value_async_finish ()">ibus_config_get_value_async_finish</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-new" title="ibus_config_new ()">ibus_config_new</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-new-async" title="ibus_config_new_async ()">ibus_config_new_async</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-new-async-finish" title="ibus_config_new_async_finish ()">ibus_config_new_async_finish</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfigService.html#ibus-config-service-new" title="ibus_config_service_new ()">ibus_config_service_new</a>, function in <a class="link" href="IBusConfigService.html" title="IBusConfigService">IBusConfigService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfigService.html#ibus-config-service-value-changed" title="ibus_config_service_value_changed ()">ibus_config_service_value_changed</a>, function in <a class="link" href="IBusConfigService.html" title="IBusConfigService">IBusConfigService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-set-value" title="ibus_config_set_value ()">ibus_config_set_value</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-set-value-async" title="ibus_config_set_value_async ()">ibus_config_set_value_async</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-set-value-async-finish" title="ibus_config_set_value_async_finish ()">ibus_config_set_value_async_finish</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-unset" title="ibus_config_unset ()">ibus_config_unset</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-unwatch" title="ibus_config_unwatch ()">ibus_config_unwatch</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusConfig.html#ibus-config-watch" title="ibus_config_watch ()">ibus_config_watch</a>, function in <a class="link" href="IBusConfig.html" title="IBusConfig">IBusConfig</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-containsas" title="IBUS_containsas">IBUS_containsas</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Control-L" title="IBUS_Control_L">IBUS_Control_L</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Control-R" title="IBUS_Control_R">IBUS_Control_R</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-copyright" title="IBUS_copyright">IBUS_copyright</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cr" title="IBUS_cr">IBUS_cr</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-crossinglines" title="IBUS_crossinglines">IBUS_crossinglines</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-CruzeiroSign" title="IBUS_CruzeiroSign">IBUS_CruzeiroSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cuberoot" title="IBUS_cuberoot">IBUS_cuberoot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-currency" title="IBUS_currency">IBUS_currency</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cursor" title="IBUS_cursor">IBUS_cursor</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-A" title="IBUS_Cyrillic_A">IBUS_Cyrillic_A</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-a" title="IBUS_Cyrillic_a">IBUS_Cyrillic_a</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-BE" title="IBUS_Cyrillic_BE">IBUS_Cyrillic_BE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-be" title="IBUS_Cyrillic_be">IBUS_Cyrillic_be</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che" title="IBUS_Cyrillic_che">IBUS_Cyrillic_che</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE" title="IBUS_Cyrillic_CHE">IBUS_Cyrillic_CHE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che-descender" title="IBUS_Cyrillic_che_descender">IBUS_Cyrillic_che_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE-descender" title="IBUS_Cyrillic_CHE_descender">IBUS_Cyrillic_CHE_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE-vertstroke" title="IBUS_Cyrillic_CHE_vertstroke">IBUS_Cyrillic_CHE_vertstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che-vertstroke" title="IBUS_Cyrillic_che_vertstroke">IBUS_Cyrillic_che_vertstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-de" title="IBUS_Cyrillic_de">IBUS_Cyrillic_de</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-DE" title="IBUS_Cyrillic_DE">IBUS_Cyrillic_DE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-dzhe" title="IBUS_Cyrillic_dzhe">IBUS_Cyrillic_dzhe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-DZHE" title="IBUS_Cyrillic_DZHE">IBUS_Cyrillic_DZHE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-e" title="IBUS_Cyrillic_e">IBUS_Cyrillic_e</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-E" title="IBUS_Cyrillic_E">IBUS_Cyrillic_E</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EF" title="IBUS_Cyrillic_EF">IBUS_Cyrillic_EF</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ef" title="IBUS_Cyrillic_ef">IBUS_Cyrillic_ef</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EL" title="IBUS_Cyrillic_EL">IBUS_Cyrillic_EL</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-el" title="IBUS_Cyrillic_el">IBUS_Cyrillic_el</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-em" title="IBUS_Cyrillic_em">IBUS_Cyrillic_em</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EM" title="IBUS_Cyrillic_EM">IBUS_Cyrillic_EM</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EN" title="IBUS_Cyrillic_EN">IBUS_Cyrillic_EN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-en" title="IBUS_Cyrillic_en">IBUS_Cyrillic_en</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-en-descender" title="IBUS_Cyrillic_en_descender">IBUS_Cyrillic_en_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EN-descender" title="IBUS_Cyrillic_EN_descender">IBUS_Cyrillic_EN_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-er" title="IBUS_Cyrillic_er">IBUS_Cyrillic_er</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ER" title="IBUS_Cyrillic_ER">IBUS_Cyrillic_ER</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-es" title="IBUS_Cyrillic_es">IBUS_Cyrillic_es</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ES" title="IBUS_Cyrillic_ES">IBUS_Cyrillic_ES</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-GHE" title="IBUS_Cyrillic_GHE">IBUS_Cyrillic_GHE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ghe" title="IBUS_Cyrillic_ghe">IBUS_Cyrillic_ghe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-GHE-bar" title="IBUS_Cyrillic_GHE_bar">IBUS_Cyrillic_GHE_bar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ghe-bar" title="IBUS_Cyrillic_ghe_bar">IBUS_Cyrillic_ghe_bar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ha" title="IBUS_Cyrillic_ha">IBUS_Cyrillic_ha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HA" title="IBUS_Cyrillic_HA">IBUS_Cyrillic_HA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-hardsign" title="IBUS_Cyrillic_hardsign">IBUS_Cyrillic_hardsign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HARDSIGN" title="IBUS_Cyrillic_HARDSIGN">IBUS_Cyrillic_HARDSIGN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HA-descender" title="IBUS_Cyrillic_HA_descender">IBUS_Cyrillic_HA_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ha-descender" title="IBUS_Cyrillic_ha_descender">IBUS_Cyrillic_ha_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-i" title="IBUS_Cyrillic_i">IBUS_Cyrillic_i</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-I" title="IBUS_Cyrillic_I">IBUS_Cyrillic_I</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ie" title="IBUS_Cyrillic_ie">IBUS_Cyrillic_ie</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-IE" title="IBUS_Cyrillic_IE">IBUS_Cyrillic_IE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-io" title="IBUS_Cyrillic_io">IBUS_Cyrillic_io</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-IO" title="IBUS_Cyrillic_IO">IBUS_Cyrillic_IO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-I-macron" title="IBUS_Cyrillic_I_macron">IBUS_Cyrillic_I_macron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-i-macron" title="IBUS_Cyrillic_i_macron">IBUS_Cyrillic_i_macron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-JE" title="IBUS_Cyrillic_JE">IBUS_Cyrillic_JE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-je" title="IBUS_Cyrillic_je">IBUS_Cyrillic_je</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka" title="IBUS_Cyrillic_ka">IBUS_Cyrillic_ka</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA" title="IBUS_Cyrillic_KA">IBUS_Cyrillic_KA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA-descender" title="IBUS_Cyrillic_KA_descender">IBUS_Cyrillic_KA_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka-descender" title="IBUS_Cyrillic_ka_descender">IBUS_Cyrillic_ka_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka-vertstroke" title="IBUS_Cyrillic_ka_vertstroke">IBUS_Cyrillic_ka_vertstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA-vertstroke" title="IBUS_Cyrillic_KA_vertstroke">IBUS_Cyrillic_KA_vertstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-lje" title="IBUS_Cyrillic_lje">IBUS_Cyrillic_lje</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-LJE" title="IBUS_Cyrillic_LJE">IBUS_Cyrillic_LJE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-nje" title="IBUS_Cyrillic_nje">IBUS_Cyrillic_nje</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-NJE" title="IBUS_Cyrillic_NJE">IBUS_Cyrillic_NJE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-O" title="IBUS_Cyrillic_O">IBUS_Cyrillic_O</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-o" title="IBUS_Cyrillic_o">IBUS_Cyrillic_o</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-O-bar" title="IBUS_Cyrillic_O_bar">IBUS_Cyrillic_O_bar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-o-bar" title="IBUS_Cyrillic_o_bar">IBUS_Cyrillic_o_bar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-PE" title="IBUS_Cyrillic_PE">IBUS_Cyrillic_PE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-pe" title="IBUS_Cyrillic_pe">IBUS_Cyrillic_pe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-schwa" title="IBUS_Cyrillic_schwa">IBUS_Cyrillic_schwa</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SCHWA" title="IBUS_Cyrillic_SCHWA">IBUS_Cyrillic_SCHWA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-sha" title="IBUS_Cyrillic_sha">IBUS_Cyrillic_sha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHA" title="IBUS_Cyrillic_SHA">IBUS_Cyrillic_SHA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shcha" title="IBUS_Cyrillic_shcha">IBUS_Cyrillic_shcha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHCHA" title="IBUS_Cyrillic_SHCHA">IBUS_Cyrillic_SHCHA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHHA" title="IBUS_Cyrillic_SHHA">IBUS_Cyrillic_SHHA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shha" title="IBUS_Cyrillic_shha">IBUS_Cyrillic_shha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHORTI" title="IBUS_Cyrillic_SHORTI">IBUS_Cyrillic_SHORTI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shorti" title="IBUS_Cyrillic_shorti">IBUS_Cyrillic_shorti</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-softsign" title="IBUS_Cyrillic_softsign">IBUS_Cyrillic_softsign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SOFTSIGN" title="IBUS_Cyrillic_SOFTSIGN">IBUS_Cyrillic_SOFTSIGN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-te" title="IBUS_Cyrillic_te">IBUS_Cyrillic_te</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-TE" title="IBUS_Cyrillic_TE">IBUS_Cyrillic_TE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-tse" title="IBUS_Cyrillic_tse">IBUS_Cyrillic_tse</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-TSE" title="IBUS_Cyrillic_TSE">IBUS_Cyrillic_TSE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U" title="IBUS_Cyrillic_U">IBUS_Cyrillic_U</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u" title="IBUS_Cyrillic_u">IBUS_Cyrillic_u</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-macron" title="IBUS_Cyrillic_u_macron">IBUS_Cyrillic_u_macron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-macron" title="IBUS_Cyrillic_U_macron">IBUS_Cyrillic_U_macron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-straight" title="IBUS_Cyrillic_U_straight">IBUS_Cyrillic_U_straight</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-straight" title="IBUS_Cyrillic_u_straight">IBUS_Cyrillic_u_straight</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-straight-bar" title="IBUS_Cyrillic_u_straight_bar">IBUS_Cyrillic_u_straight_bar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-straight-bar" title="IBUS_Cyrillic_U_straight_bar">IBUS_Cyrillic_U_straight_bar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-VE" title="IBUS_Cyrillic_VE">IBUS_Cyrillic_VE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ve" title="IBUS_Cyrillic_ve">IBUS_Cyrillic_ve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YA" title="IBUS_Cyrillic_YA">IBUS_Cyrillic_YA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ya" title="IBUS_Cyrillic_ya">IBUS_Cyrillic_ya</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-yeru" title="IBUS_Cyrillic_yeru">IBUS_Cyrillic_yeru</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YERU" title="IBUS_Cyrillic_YERU">IBUS_Cyrillic_YERU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YU" title="IBUS_Cyrillic_YU">IBUS_Cyrillic_YU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-yu" title="IBUS_Cyrillic_yu">IBUS_Cyrillic_yu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ze" title="IBUS_Cyrillic_ze">IBUS_Cyrillic_ze</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZE" title="IBUS_Cyrillic_ZE">IBUS_Cyrillic_ZE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-zhe" title="IBUS_Cyrillic_zhe">IBUS_Cyrillic_zhe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZHE" title="IBUS_Cyrillic_ZHE">IBUS_Cyrillic_ZHE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZHE-descender" title="IBUS_Cyrillic_ZHE_descender">IBUS_Cyrillic_ZHE_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-zhe-descender" title="IBUS_Cyrillic_zhe_descender">IBUS_Cyrillic_zhe_descender</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxD"></a><h3 class="title">D</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-d" title="IBUS_d">IBUS_d</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-D:CAPS" title="IBUS_D">IBUS_D</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dabovedot" title="IBUS_dabovedot">IBUS_dabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Dabovedot" title="IBUS_Dabovedot">IBUS_Dabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dagger" title="IBUS_dagger">IBUS_dagger</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Dcaron" title="IBUS_Dcaron">IBUS_Dcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dcaron" title="IBUS_dcaron">IBUS_dcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-abovecomma" title="IBUS_dead_abovecomma">IBUS_dead_abovecomma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-abovedot" title="IBUS_dead_abovedot">IBUS_dead_abovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-abovereversedcomma" title="IBUS_dead_abovereversedcomma">IBUS_dead_abovereversedcomma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-abovering" title="IBUS_dead_abovering">IBUS_dead_abovering</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-acute" title="IBUS_dead_acute">IBUS_dead_acute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowbreve" title="IBUS_dead_belowbreve">IBUS_dead_belowbreve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowcircumflex" title="IBUS_dead_belowcircumflex">IBUS_dead_belowcircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowdiaeresis" title="IBUS_dead_belowdiaeresis">IBUS_dead_belowdiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowdot" title="IBUS_dead_belowdot">IBUS_dead_belowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowmacron" title="IBUS_dead_belowmacron">IBUS_dead_belowmacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowring" title="IBUS_dead_belowring">IBUS_dead_belowring</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowtilde" title="IBUS_dead_belowtilde">IBUS_dead_belowtilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-breve" title="IBUS_dead_breve">IBUS_dead_breve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-caron" title="IBUS_dead_caron">IBUS_dead_caron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-cedilla" title="IBUS_dead_cedilla">IBUS_dead_cedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-circumflex" title="IBUS_dead_circumflex">IBUS_dead_circumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-dasia" title="IBUS_dead_dasia">IBUS_dead_dasia</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-diaeresis" title="IBUS_dead_diaeresis">IBUS_dead_diaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-doubleacute" title="IBUS_dead_doubleacute">IBUS_dead_doubleacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-grave" title="IBUS_dead_grave">IBUS_dead_grave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-hook" title="IBUS_dead_hook">IBUS_dead_hook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-horn" title="IBUS_dead_horn">IBUS_dead_horn</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-iota" title="IBUS_dead_iota">IBUS_dead_iota</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-macron" title="IBUS_dead_macron">IBUS_dead_macron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-ogonek" title="IBUS_dead_ogonek">IBUS_dead_ogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-perispomeni" title="IBUS_dead_perispomeni">IBUS_dead_perispomeni</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-psili" title="IBUS_dead_psili">IBUS_dead_psili</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-semivoiced-sound" title="IBUS_dead_semivoiced_sound">IBUS_dead_semivoiced_sound</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-stroke" title="IBUS_dead_stroke">IBUS_dead_stroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-tilde" title="IBUS_dead_tilde">IBUS_dead_tilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-voiced-sound" title="IBUS_dead_voiced_sound">IBUS_dead_voiced_sound</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-decimalpoint" title="IBUS_decimalpoint">IBUS_decimalpoint</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-degree" title="IBUS_degree">IBUS_degree</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Delete" title="IBUS_Delete">IBUS_Delete</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-DEPRECATED:CAPS" title="IBUS_DEPRECATED">IBUS_DEPRECATED</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-diaeresis" title="IBUS_diaeresis">IBUS_diaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-diamond" title="IBUS_diamond">IBUS_diamond</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-digitspace" title="IBUS_digitspace">IBUS_digitspace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dintegral" title="IBUS_dintegral">IBUS_dintegral</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-division" title="IBUS_division">IBUS_division</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dollar" title="IBUS_dollar">IBUS_dollar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-DongSign" title="IBUS_DongSign">IBUS_DongSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-doubbaselinedot" title="IBUS_doubbaselinedot">IBUS_doubbaselinedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-doubleacute" title="IBUS_doubleacute">IBUS_doubleacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-doubledagger" title="IBUS_doubledagger">IBUS_doubledagger</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-doublelowquotemark" title="IBUS_doublelowquotemark">IBUS_doublelowquotemark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Down" title="IBUS_Down">IBUS_Down</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downarrow" title="IBUS_downarrow">IBUS_downarrow</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downcaret" title="IBUS_downcaret">IBUS_downcaret</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downshoe" title="IBUS_downshoe">IBUS_downshoe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downstile" title="IBUS_downstile">IBUS_downstile</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downtack" title="IBUS_downtack">IBUS_downtack</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Dstroke" title="IBUS_Dstroke">IBUS_Dstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dstroke" title="IBUS_dstroke">IBUS_dstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxE"></a><h3 class="title">E</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-E:CAPS" title="IBUS_E">IBUS_E</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-e" title="IBUS_e">IBUS_e</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eabovedot" title="IBUS_Eabovedot">IBUS_Eabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eabovedot" title="IBUS_eabovedot">IBUS_eabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eacute" title="IBUS_eacute">IBUS_eacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eacute" title="IBUS_Eacute">IBUS_Eacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ebelowdot" title="IBUS_Ebelowdot">IBUS_Ebelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ebelowdot" title="IBUS_ebelowdot">IBUS_ebelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecaron" title="IBUS_Ecaron">IBUS_Ecaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecaron" title="IBUS_ecaron">IBUS_ecaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflex" title="IBUS_Ecircumflex">IBUS_Ecircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflex" title="IBUS_ecircumflex">IBUS_ecircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexacute" title="IBUS_ecircumflexacute">IBUS_ecircumflexacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexacute" title="IBUS_Ecircumflexacute">IBUS_Ecircumflexacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexbelowdot" title="IBUS_ecircumflexbelowdot">IBUS_ecircumflexbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexbelowdot" title="IBUS_Ecircumflexbelowdot">IBUS_Ecircumflexbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexgrave" title="IBUS_Ecircumflexgrave">IBUS_Ecircumflexgrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexgrave" title="IBUS_ecircumflexgrave">IBUS_ecircumflexgrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexhook" title="IBUS_Ecircumflexhook">IBUS_Ecircumflexhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexhook" title="IBUS_ecircumflexhook">IBUS_ecircumflexhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflextilde" title="IBUS_ecircumflextilde">IBUS_ecircumflextilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflextilde" title="IBUS_Ecircumflextilde">IBUS_Ecircumflextilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-EcuSign" title="IBUS_EcuSign">IBUS_EcuSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ediaeresis" title="IBUS_Ediaeresis">IBUS_Ediaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ediaeresis" title="IBUS_ediaeresis">IBUS_ediaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-egrave" title="IBUS_egrave">IBUS_egrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Egrave" title="IBUS_Egrave">IBUS_Egrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ehook" title="IBUS_ehook">IBUS_ehook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ehook" title="IBUS_Ehook">IBUS_Ehook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eightsubscript" title="IBUS_eightsubscript">IBUS_eightsubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eightsuperior" title="IBUS_eightsuperior">IBUS_eightsuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eisu-Shift" title="IBUS_Eisu_Shift">IBUS_Eisu_Shift</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eisu-toggle" title="IBUS_Eisu_toggle">IBUS_Eisu_toggle</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-elementof" title="IBUS_elementof">IBUS_elementof</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ellipsis" title="IBUS_ellipsis">IBUS_ellipsis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-em3space" title="IBUS_em3space">IBUS_em3space</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-em4space" title="IBUS_em4space">IBUS_em4space</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emacron" title="IBUS_emacron">IBUS_emacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Emacron" title="IBUS_Emacron">IBUS_Emacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emdash" title="IBUS_emdash">IBUS_emdash</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emfilledcircle" title="IBUS_emfilledcircle">IBUS_emfilledcircle</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emfilledrect" title="IBUS_emfilledrect">IBUS_emfilledrect</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emopencircle" title="IBUS_emopencircle">IBUS_emopencircle</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emopenrectangle" title="IBUS_emopenrectangle">IBUS_emopenrectangle</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emptyset" title="IBUS_emptyset">IBUS_emptyset</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emspace" title="IBUS_emspace">IBUS_emspace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-End" title="IBUS_End">IBUS_End</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-endash" title="IBUS_endash">IBUS_endash</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enfilledcircbullet" title="IBUS_enfilledcircbullet">IBUS_enfilledcircbullet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enfilledsqbullet" title="IBUS_enfilledsqbullet">IBUS_enfilledsqbullet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ENG:CAPS" title="IBUS_ENG">IBUS_ENG</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eng" title="IBUS_eng">IBUS_eng</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-struct" title="struct IBusEngine">IBusEngine</a>, struct in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-cancel-hand-writing" title='The "cancel-hand-writing" signal'>IBusEngine::cancel-hand-writing</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-candidate-clicked" title='The "candidate-clicked" signal'>IBusEngine::candidate-clicked</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-cursor-down" title='The "cursor-down" signal'>IBusEngine::cursor-down</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-cursor-up" title='The "cursor-up" signal'>IBusEngine::cursor-up</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-disable" title='The "disable" signal'>IBusEngine::disable</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-enable" title='The "enable" signal'>IBusEngine::enable</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-focus-in" title='The "focus-in" signal'>IBusEngine::focus-in</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-focus-out" title='The "focus-out" signal'>IBusEngine::focus-out</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-page-down" title='The "page-down" signal'>IBusEngine::page-down</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-page-up" title='The "page-up" signal'>IBusEngine::page-up</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-process-hand-writing-event" title='The "process-hand-writing-event" signal'>IBusEngine::process-hand-writing-event</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-process-key-event" title='The "process-key-event" signal'>IBusEngine::process-key-event</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-property-activate" title='The "property-activate" signal'>IBusEngine::property-activate</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-property-hide" title='The "property-hide" signal'>IBusEngine::property-hide</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-property-show" title='The "property-show" signal'>IBusEngine::property-show</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-reset" title='The "reset" signal'>IBusEngine::reset</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-set-capabilities" title='The "set-capabilities" signal'>IBusEngine::set-capabilities</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-set-content-type" title='The "set-content-type" signal'>IBusEngine::set-content-type</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-set-cursor-location" title='The "set-cursor-location" signal'>IBusEngine::set-cursor-location</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine-set-surrounding-text" title='The "set-surrounding-text" signal'>IBusEngine::set-surrounding-text</a>, object signal in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngine--engine-name" title='The "engine-name" property'>IBusEngine:engine-name</a>, object property in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#IBusEngineClass" title="struct IBusEngineClass">IBusEngineClass</a>, struct in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc-struct" title="struct IBusEngineDesc">IBusEngineDesc</a>, struct in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--author" title='The "author" property'>IBusEngineDesc:author</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--description" title='The "description" property'>IBusEngineDesc:description</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--hotkeys" title='The "hotkeys" property'>IBusEngineDesc:hotkeys</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--icon" title='The "icon" property'>IBusEngineDesc:icon</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--language" title='The "language" property'>IBusEngineDesc:language</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--layout" title='The "layout" property'>IBusEngineDesc:layout</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--layout-option" title='The "layout-option" property'>IBusEngineDesc:layout-option</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--layout-variant" title='The "layout-variant" property'>IBusEngineDesc:layout-variant</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--license" title='The "license" property'>IBusEngineDesc:license</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--longname" title='The "longname" property'>IBusEngineDesc:longname</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--name" title='The "name" property'>IBusEngineDesc:name</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--rank" title='The "rank" property'>IBusEngineDesc:rank</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--setup" title='The "setup" property'>IBusEngineDesc:setup</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--symbol" title='The "symbol" property'>IBusEngineDesc:symbol</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--textdomain" title='The "textdomain" property'>IBusEngineDesc:textdomain</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDesc--version" title='The "version" property'>IBusEngineDesc:version</a>, object property in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#IBusEngineDescClass" title="struct IBusEngineDescClass">IBusEngineDescClass</a>, struct in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusEngineSimple.html#IBusEngineSimple" title="struct IBusEngineSimple">IBusEngineSimple</a>, struct in <a class="link" href="ibus-IBusEngineSimple.html" title="IBusEngineSimple">IBusEngineSimple</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusEngineSimple.html#IBusEngineSimpleClass" title="struct IBusEngineSimpleClass">IBusEngineSimpleClass</a>, struct in <a class="link" href="ibus-IBusEngineSimple.html" title="IBusEngineSimple">IBusEngineSimple</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-commit-text" title="ibus_engine_commit_text ()">ibus_engine_commit_text</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-delete-surrounding-text" title="ibus_engine_delete_surrounding_text ()">ibus_engine_delete_surrounding_text</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-author" title="ibus_engine_desc_get_author ()">ibus_engine_desc_get_author</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-description" title="ibus_engine_desc_get_description ()">ibus_engine_desc_get_description</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-hotkeys" title="ibus_engine_desc_get_hotkeys ()">ibus_engine_desc_get_hotkeys</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-icon" title="ibus_engine_desc_get_icon ()">ibus_engine_desc_get_icon</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-language" title="ibus_engine_desc_get_language ()">ibus_engine_desc_get_language</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-layout" title="ibus_engine_desc_get_layout ()">ibus_engine_desc_get_layout</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-layout-option" title="ibus_engine_desc_get_layout_option ()">ibus_engine_desc_get_layout_option</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-layout-variant" title="ibus_engine_desc_get_layout_variant ()">ibus_engine_desc_get_layout_variant</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-license" title="ibus_engine_desc_get_license ()">ibus_engine_desc_get_license</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-longname" title="ibus_engine_desc_get_longname ()">ibus_engine_desc_get_longname</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-name" title="ibus_engine_desc_get_name ()">ibus_engine_desc_get_name</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-rank" title="ibus_engine_desc_get_rank ()">ibus_engine_desc_get_rank</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-setup" title="ibus_engine_desc_get_setup ()">ibus_engine_desc_get_setup</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-symbol" title="ibus_engine_desc_get_symbol ()">ibus_engine_desc_get_symbol</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-textdomain" title="ibus_engine_desc_get_textdomain ()">ibus_engine_desc_get_textdomain</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-get-version" title="ibus_engine_desc_get_version ()">ibus_engine_desc_get_version</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new" title="ibus_engine_desc_new ()">ibus_engine_desc_new</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new-from-xml-node" title="ibus_engine_desc_new_from_xml_node ()">ibus_engine_desc_new_from_xml_node</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-new-varargs" title="ibus_engine_desc_new_varargs ()">ibus_engine_desc_new_varargs</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngineDesc.html#ibus-engine-desc-output" title="ibus_engine_desc_output ()">ibus_engine_desc_output</a>, function in <a class="link" href="IBusEngineDesc.html" title="IBusEngineDesc">IBusEngineDesc</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-forward-key-event" title="ibus_engine_forward_key_event ()">ibus_engine_forward_key_event</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-get-content-type" title="ibus_engine_get_content_type ()">ibus_engine_get_content_type</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-get-name" title="ibus_engine_get_name ()">ibus_engine_get_name</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-get-surrounding-text" title="ibus_engine_get_surrounding_text ()">ibus_engine_get_surrounding_text</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-hide-auxiliary-text" title="ibus_engine_hide_auxiliary_text ()">ibus_engine_hide_auxiliary_text</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-hide-lookup-table" title="ibus_engine_hide_lookup_table ()">ibus_engine_hide_lookup_table</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-hide-preedit-text" title="ibus_engine_hide_preedit_text ()">ibus_engine_hide_preedit_text</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-new" title="ibus_engine_new ()">ibus_engine_new</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-new-with-type" title="ibus_engine_new_with_type ()">ibus_engine_new_with_type</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-register-properties" title="ibus_engine_register_properties ()">ibus_engine_register_properties</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-show-auxiliary-text" title="ibus_engine_show_auxiliary_text ()">ibus_engine_show_auxiliary_text</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-show-lookup-table" title="ibus_engine_show_lookup_table ()">ibus_engine_show_lookup_table</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-show-preedit-text" title="ibus_engine_show_preedit_text ()">ibus_engine_show_preedit_text</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusEngineSimple.html#ibus-engine-simple-add-table" title="ibus_engine_simple_add_table ()">ibus_engine_simple_add_table</a>, function in <a class="link" href="ibus-IBusEngineSimple.html" title="IBusEngineSimple">IBusEngineSimple</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-update-auxiliary-text" title="ibus_engine_update_auxiliary_text ()">ibus_engine_update_auxiliary_text</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-update-lookup-table" title="ibus_engine_update_lookup_table ()">ibus_engine_update_lookup_table</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-update-lookup-table-fast" title="ibus_engine_update_lookup_table_fast ()">ibus_engine_update_lookup_table_fast</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-update-preedit-text" title="ibus_engine_update_preedit_text ()">ibus_engine_update_preedit_text</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-update-preedit-text-with-mode" title="ibus_engine_update_preedit_text_with_mode ()">ibus_engine_update_preedit_text_with_mode</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusEngine.html#ibus-engine-update-property" title="ibus_engine_update_property ()">ibus_engine_update_property</a>, function in <a class="link" href="IBusEngine.html" title="IBusEngine">IBusEngine</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enopencircbullet" title="IBUS_enopencircbullet">IBUS_enopencircbullet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enopensquarebullet" title="IBUS_enopensquarebullet">IBUS_enopensquarebullet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enspace" title="IBUS_enspace">IBUS_enspace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eogonek" title="IBUS_Eogonek">IBUS_Eogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eogonek" title="IBUS_eogonek">IBUS_eogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-equal" title="IBUS_equal">IBUS_equal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusError" title="enum IBusError">IBusError</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuserror.html#IBUS-ERROR:CAPS" title="IBUS_ERROR">IBUS_ERROR</a>, macro in <a class="link" href="ibus-ibuserror.html" title="ibuserror">ibuserror</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuserror.html#ibus-error-quark" title="ibus_error_quark ()">ibus_error_quark</a>, function in <a class="link" href="ibus-ibuserror.html" title="ibuserror">ibuserror</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Escape" title="IBUS_Escape">IBUS_Escape</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eth" title="IBUS_eth">IBUS_eth</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eth" title="IBUS_Eth">IBUS_Eth</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ETH:CAPS" title="IBUS_ETH">IBUS_ETH</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-etilde" title="IBUS_etilde">IBUS_etilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Etilde" title="IBUS_Etilde">IBUS_Etilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-EuroSign" title="IBUS_EuroSign">IBUS_EuroSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-exclam" title="IBUS_exclam">IBUS_exclam</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-exclamdown" title="IBUS_exclamdown">IBUS_exclamdown</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Execute" title="IBUS_Execute">IBUS_Execute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxF"></a><h3 class="title">F</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F:CAPS" title="IBUS_F">IBUS_F</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-f" title="IBUS_f">IBUS_f</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F1:CAPS" title="IBUS_F1">IBUS_F1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F10:CAPS" title="IBUS_F10">IBUS_F10</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F11:CAPS" title="IBUS_F11">IBUS_F11</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F12:CAPS" title="IBUS_F12">IBUS_F12</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F13:CAPS" title="IBUS_F13">IBUS_F13</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F14:CAPS" title="IBUS_F14">IBUS_F14</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F15:CAPS" title="IBUS_F15">IBUS_F15</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F16:CAPS" title="IBUS_F16">IBUS_F16</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F17:CAPS" title="IBUS_F17">IBUS_F17</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F18:CAPS" title="IBUS_F18">IBUS_F18</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F19:CAPS" title="IBUS_F19">IBUS_F19</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F2:CAPS" title="IBUS_F2">IBUS_F2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F20:CAPS" title="IBUS_F20">IBUS_F20</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F21:CAPS" title="IBUS_F21">IBUS_F21</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F22:CAPS" title="IBUS_F22">IBUS_F22</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F23:CAPS" title="IBUS_F23">IBUS_F23</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F24:CAPS" title="IBUS_F24">IBUS_F24</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F25:CAPS" title="IBUS_F25">IBUS_F25</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F26:CAPS" title="IBUS_F26">IBUS_F26</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F27:CAPS" title="IBUS_F27">IBUS_F27</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F28:CAPS" title="IBUS_F28">IBUS_F28</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F29:CAPS" title="IBUS_F29">IBUS_F29</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F3:CAPS" title="IBUS_F3">IBUS_F3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F30:CAPS" title="IBUS_F30">IBUS_F30</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F31:CAPS" title="IBUS_F31">IBUS_F31</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F32:CAPS" title="IBUS_F32">IBUS_F32</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F33:CAPS" title="IBUS_F33">IBUS_F33</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F34:CAPS" title="IBUS_F34">IBUS_F34</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F35:CAPS" title="IBUS_F35">IBUS_F35</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F4:CAPS" title="IBUS_F4">IBUS_F4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F5:CAPS" title="IBUS_F5">IBUS_F5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F6:CAPS" title="IBUS_F6">IBUS_F6</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F7:CAPS" title="IBUS_F7">IBUS_F7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F8:CAPS" title="IBUS_F8">IBUS_F8</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F9:CAPS" title="IBUS_F9">IBUS_F9</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fabovedot" title="IBUS_fabovedot">IBUS_fabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Fabovedot" title="IBUS_Fabovedot">IBUS_Fabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusFactory.html#IBusFactory-struct" title="struct IBusFactory">IBusFactory</a>, struct in <a class="link" href="IBusFactory.html" title="IBusFactory">IBusFactory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusFactory.html#IBusFactory-create-engine" title='The "create-engine" signal'>IBusFactory::create-engine</a>, object signal in <a class="link" href="IBusFactory.html" title="IBusFactory">IBusFactory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusFactory.html#IBusFactoryClass" title="struct IBusFactoryClass">IBusFactoryClass</a>, struct in <a class="link" href="IBusFactory.html" title="IBusFactory">IBusFactory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusFactory.html#ibus-factory-add-engine" title="ibus_factory_add_engine ()">ibus_factory_add_engine</a>, function in <a class="link" href="IBusFactory.html" title="IBusFactory">IBusFactory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusFactory.html#ibus-factory-create-engine" title="ibus_factory_create_engine ()">ibus_factory_create_engine</a>, function in <a class="link" href="IBusFactory.html" title="IBusFactory">IBusFactory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusFactory.html#ibus-factory-new" title="ibus_factory_new ()">ibus_factory_new</a>, function in <a class="link" href="IBusFactory.html" title="IBusFactory">IBusFactory</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-0" title="IBUS_Farsi_0">IBUS_Farsi_0</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-1" title="IBUS_Farsi_1">IBUS_Farsi_1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-2" title="IBUS_Farsi_2">IBUS_Farsi_2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-3" title="IBUS_Farsi_3">IBUS_Farsi_3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-4" title="IBUS_Farsi_4">IBUS_Farsi_4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-5" title="IBUS_Farsi_5">IBUS_Farsi_5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-6" title="IBUS_Farsi_6">IBUS_Farsi_6</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-7" title="IBUS_Farsi_7">IBUS_Farsi_7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-8" title="IBUS_Farsi_8">IBUS_Farsi_8</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-9" title="IBUS_Farsi_9">IBUS_Farsi_9</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-yeh" title="IBUS_Farsi_yeh">IBUS_Farsi_yeh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-femalesymbol" title="IBUS_femalesymbol">IBUS_femalesymbol</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ff" title="IBUS_ff">IBUS_ff</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-FFrancSign" title="IBUS_FFrancSign">IBUS_FFrancSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-figdash" title="IBUS_figdash">IBUS_figdash</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledlefttribullet" title="IBUS_filledlefttribullet">IBUS_filledlefttribullet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledrectbullet" title="IBUS_filledrectbullet">IBUS_filledrectbullet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledrighttribullet" title="IBUS_filledrighttribullet">IBUS_filledrighttribullet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledtribulletdown" title="IBUS_filledtribulletdown">IBUS_filledtribulletdown</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledtribulletup" title="IBUS_filledtribulletup">IBUS_filledtribulletup</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Find" title="IBUS_Find">IBUS_Find</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-First-Virtual-Screen" title="IBUS_First_Virtual_Screen">IBUS_First_Virtual_Screen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fiveeighths" title="IBUS_fiveeighths">IBUS_fiveeighths</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fivesixths" title="IBUS_fivesixths">IBUS_fivesixths</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fivesubscript" title="IBUS_fivesubscript">IBUS_fivesubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fivesuperior" title="IBUS_fivesuperior">IBUS_fivesuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fourfifths" title="IBUS_fourfifths">IBUS_fourfifths</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-foursubscript" title="IBUS_foursubscript">IBUS_foursubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-foursuperior" title="IBUS_foursuperior">IBUS_foursuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fourthroot" title="IBUS_fourthroot">IBUS_fourthroot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusFreeFunc" title="IBusFreeFunc ()">IBusFreeFunc</a>, user_function in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-free-strv" title="ibus_free_strv ()">ibus_free_strv</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-function" title="IBUS_function">IBUS_function</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxG"></a><h3 class="title">G</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-g" title="IBUS_g">IBUS_g</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-G:CAPS" title="IBUS_G">IBUS_G</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gabovedot" title="IBUS_gabovedot">IBUS_gabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gabovedot" title="IBUS_Gabovedot">IBUS_Gabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gbreve" title="IBUS_gbreve">IBUS_gbreve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gbreve" title="IBUS_Gbreve">IBUS_Gbreve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gcaron" title="IBUS_gcaron">IBUS_gcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gcaron" title="IBUS_Gcaron">IBUS_Gcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gcedilla" title="IBUS_Gcedilla">IBUS_Gcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gcedilla" title="IBUS_gcedilla">IBUS_gcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gcircumflex" title="IBUS_Gcircumflex">IBUS_Gcircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gcircumflex" title="IBUS_gcircumflex">IBUS_gcircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-an" title="IBUS_Georgian_an">IBUS_Georgian_an</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-ban" title="IBUS_Georgian_ban">IBUS_Georgian_ban</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-can" title="IBUS_Georgian_can">IBUS_Georgian_can</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-char" title="IBUS_Georgian_char">IBUS_Georgian_char</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-chin" title="IBUS_Georgian_chin">IBUS_Georgian_chin</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-cil" title="IBUS_Georgian_cil">IBUS_Georgian_cil</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-don" title="IBUS_Georgian_don">IBUS_Georgian_don</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-en" title="IBUS_Georgian_en">IBUS_Georgian_en</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-fi" title="IBUS_Georgian_fi">IBUS_Georgian_fi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-gan" title="IBUS_Georgian_gan">IBUS_Georgian_gan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-ghan" title="IBUS_Georgian_ghan">IBUS_Georgian_ghan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-hae" title="IBUS_Georgian_hae">IBUS_Georgian_hae</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-har" title="IBUS_Georgian_har">IBUS_Georgian_har</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-he" title="IBUS_Georgian_he">IBUS_Georgian_he</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-hie" title="IBUS_Georgian_hie">IBUS_Georgian_hie</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-hoe" title="IBUS_Georgian_hoe">IBUS_Georgian_hoe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-in" title="IBUS_Georgian_in">IBUS_Georgian_in</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-jhan" title="IBUS_Georgian_jhan">IBUS_Georgian_jhan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-jil" title="IBUS_Georgian_jil">IBUS_Georgian_jil</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-kan" title="IBUS_Georgian_kan">IBUS_Georgian_kan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-khar" title="IBUS_Georgian_khar">IBUS_Georgian_khar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-las" title="IBUS_Georgian_las">IBUS_Georgian_las</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-man" title="IBUS_Georgian_man">IBUS_Georgian_man</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-nar" title="IBUS_Georgian_nar">IBUS_Georgian_nar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-on" title="IBUS_Georgian_on">IBUS_Georgian_on</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-par" title="IBUS_Georgian_par">IBUS_Georgian_par</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-phar" title="IBUS_Georgian_phar">IBUS_Georgian_phar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-qar" title="IBUS_Georgian_qar">IBUS_Georgian_qar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-rae" title="IBUS_Georgian_rae">IBUS_Georgian_rae</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-san" title="IBUS_Georgian_san">IBUS_Georgian_san</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-shin" title="IBUS_Georgian_shin">IBUS_Georgian_shin</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-tan" title="IBUS_Georgian_tan">IBUS_Georgian_tan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-tar" title="IBUS_Georgian_tar">IBUS_Georgian_tar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-un" title="IBUS_Georgian_un">IBUS_Georgian_un</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-vin" title="IBUS_Georgian_vin">IBUS_Georgian_vin</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-we" title="IBUS_Georgian_we">IBUS_Georgian_we</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-xan" title="IBUS_Georgian_xan">IBUS_Georgian_xan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-zen" title="IBUS_Georgian_zen">IBUS_Georgian_zen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-zhar" title="IBUS_Georgian_zhar">IBUS_Georgian_zhar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-get-address" title="ibus_get_address ()">ibus_get_address</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-get-daemon-uid" title="ibus_get_daemon_uid ()">ibus_get_daemon_uid</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusutil.html#ibus-get-language-name" title="ibus_get_language_name ()">ibus_get_language_name</a>, function in <a class="link" href="ibus-ibusutil.html" title="ibusutil">ibusutil</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-get-local-machine-id" title="ibus_get_local_machine_id ()">ibus_get_local_machine_id</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-get-socket-path" title="ibus_get_socket_path ()">ibus_get_socket_path</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-get-timeout" title="ibus_get_timeout ()">ibus_get_timeout</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-get-user-name" title="ibus_get_user_name ()">ibus_get_user_name</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-grave" title="IBUS_grave">IBUS_grave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-greater" title="IBUS_greater">IBUS_greater</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-greaterthanequal" title="IBUS_greaterthanequal">IBUS_greaterthanequal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-accentdieresis" title="IBUS_Greek_accentdieresis">IBUS_Greek_accentdieresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-alpha" title="IBUS_Greek_alpha">IBUS_Greek_alpha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ALPHA" title="IBUS_Greek_ALPHA">IBUS_Greek_ALPHA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-alphaaccent" title="IBUS_Greek_alphaaccent">IBUS_Greek_alphaaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ALPHAaccent" title="IBUS_Greek_ALPHAaccent">IBUS_Greek_ALPHAaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-beta" title="IBUS_Greek_beta">IBUS_Greek_beta</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-BETA" title="IBUS_Greek_BETA">IBUS_Greek_BETA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-chi" title="IBUS_Greek_chi">IBUS_Greek_chi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-CHI" title="IBUS_Greek_CHI">IBUS_Greek_CHI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-DELTA" title="IBUS_Greek_DELTA">IBUS_Greek_DELTA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-delta" title="IBUS_Greek_delta">IBUS_Greek_delta</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-epsilon" title="IBUS_Greek_epsilon">IBUS_Greek_epsilon</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-EPSILON" title="IBUS_Greek_EPSILON">IBUS_Greek_EPSILON</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-epsilonaccent" title="IBUS_Greek_epsilonaccent">IBUS_Greek_epsilonaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-EPSILONaccent" title="IBUS_Greek_EPSILONaccent">IBUS_Greek_EPSILONaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ETA" title="IBUS_Greek_ETA">IBUS_Greek_ETA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-eta" title="IBUS_Greek_eta">IBUS_Greek_eta</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-etaaccent" title="IBUS_Greek_etaaccent">IBUS_Greek_etaaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ETAaccent" title="IBUS_Greek_ETAaccent">IBUS_Greek_ETAaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-finalsmallsigma" title="IBUS_Greek_finalsmallsigma">IBUS_Greek_finalsmallsigma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-gamma" title="IBUS_Greek_gamma">IBUS_Greek_gamma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-GAMMA" title="IBUS_Greek_GAMMA">IBUS_Greek_GAMMA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-horizbar" title="IBUS_Greek_horizbar">IBUS_Greek_horizbar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTA" title="IBUS_Greek_IOTA">IBUS_Greek_IOTA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-iota" title="IBUS_Greek_iota">IBUS_Greek_iota</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-iotaaccent" title="IBUS_Greek_iotaaccent">IBUS_Greek_iotaaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAaccent" title="IBUS_Greek_IOTAaccent">IBUS_Greek_IOTAaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-iotaaccentdieresis" title="IBUS_Greek_iotaaccentdieresis">IBUS_Greek_iotaaccentdieresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAdiaeresis" title="IBUS_Greek_IOTAdiaeresis">IBUS_Greek_IOTAdiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-iotadieresis" title="IBUS_Greek_iotadieresis">IBUS_Greek_iotadieresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAdieresis" title="IBUS_Greek_IOTAdieresis">IBUS_Greek_IOTAdieresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-kappa" title="IBUS_Greek_kappa">IBUS_Greek_kappa</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-KAPPA" title="IBUS_Greek_KAPPA">IBUS_Greek_KAPPA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-lambda" title="IBUS_Greek_lambda">IBUS_Greek_lambda</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-LAMBDA" title="IBUS_Greek_LAMBDA">IBUS_Greek_LAMBDA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-lamda" title="IBUS_Greek_lamda">IBUS_Greek_lamda</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-LAMDA" title="IBUS_Greek_LAMDA">IBUS_Greek_LAMDA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-mu" title="IBUS_Greek_mu">IBUS_Greek_mu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-MU" title="IBUS_Greek_MU">IBUS_Greek_MU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-NU" title="IBUS_Greek_NU">IBUS_Greek_NU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-nu" title="IBUS_Greek_nu">IBUS_Greek_nu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-omega" title="IBUS_Greek_omega">IBUS_Greek_omega</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMEGA" title="IBUS_Greek_OMEGA">IBUS_Greek_OMEGA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMEGAaccent" title="IBUS_Greek_OMEGAaccent">IBUS_Greek_OMEGAaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-omegaaccent" title="IBUS_Greek_omegaaccent">IBUS_Greek_omegaaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMICRON" title="IBUS_Greek_OMICRON">IBUS_Greek_OMICRON</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-omicron" title="IBUS_Greek_omicron">IBUS_Greek_omicron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-omicronaccent" title="IBUS_Greek_omicronaccent">IBUS_Greek_omicronaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMICRONaccent" title="IBUS_Greek_OMICRONaccent">IBUS_Greek_OMICRONaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-phi" title="IBUS_Greek_phi">IBUS_Greek_phi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-PHI" title="IBUS_Greek_PHI">IBUS_Greek_PHI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-PI" title="IBUS_Greek_PI">IBUS_Greek_PI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-pi" title="IBUS_Greek_pi">IBUS_Greek_pi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-psi" title="IBUS_Greek_psi">IBUS_Greek_psi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-PSI" title="IBUS_Greek_PSI">IBUS_Greek_PSI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-rho" title="IBUS_Greek_rho">IBUS_Greek_rho</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-RHO" title="IBUS_Greek_RHO">IBUS_Greek_RHO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-SIGMA" title="IBUS_Greek_SIGMA">IBUS_Greek_SIGMA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-sigma" title="IBUS_Greek_sigma">IBUS_Greek_sigma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-switch" title="IBUS_Greek_switch">IBUS_Greek_switch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-tau" title="IBUS_Greek_tau">IBUS_Greek_tau</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-TAU" title="IBUS_Greek_TAU">IBUS_Greek_TAU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-THETA" title="IBUS_Greek_THETA">IBUS_Greek_THETA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-theta" title="IBUS_Greek_theta">IBUS_Greek_theta</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilon" title="IBUS_Greek_upsilon">IBUS_Greek_upsilon</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILON" title="IBUS_Greek_UPSILON">IBUS_Greek_UPSILON</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILONaccent" title="IBUS_Greek_UPSILONaccent">IBUS_Greek_UPSILONaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilonaccent" title="IBUS_Greek_upsilonaccent">IBUS_Greek_upsilonaccent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilonaccentdieresis" title="IBUS_Greek_upsilonaccentdieresis">IBUS_Greek_upsilonaccentdieresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilondieresis" title="IBUS_Greek_upsilondieresis">IBUS_Greek_upsilondieresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILONdieresis" title="IBUS_Greek_UPSILONdieresis">IBUS_Greek_UPSILONdieresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-xi" title="IBUS_Greek_xi">IBUS_Greek_xi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-XI" title="IBUS_Greek_XI">IBUS_Greek_XI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ZETA" title="IBUS_Greek_ZETA">IBUS_Greek_ZETA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-zeta" title="IBUS_Greek_zeta">IBUS_Greek_zeta</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-guillemotleft" title="IBUS_guillemotleft">IBUS_guillemotleft</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-guillemotright" title="IBUS_guillemotright">IBUS_guillemotright</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxH"></a><h3 class="title">H</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-H:CAPS" title="IBUS_H">IBUS_H</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-h" title="IBUS_h">IBUS_h</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hairspace" title="IBUS_hairspace">IBUS_hairspace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul" title="IBUS_Hangul">IBUS_Hangul</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-A" title="IBUS_Hangul_A">IBUS_Hangul_A</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-AE" title="IBUS_Hangul_AE">IBUS_Hangul_AE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-AraeA" title="IBUS_Hangul_AraeA">IBUS_Hangul_AraeA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-AraeAE" title="IBUS_Hangul_AraeAE">IBUS_Hangul_AraeAE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Banja" title="IBUS_Hangul_Banja">IBUS_Hangul_Banja</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Cieuc" title="IBUS_Hangul_Cieuc">IBUS_Hangul_Cieuc</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Codeinput" title="IBUS_Hangul_Codeinput">IBUS_Hangul_Codeinput</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Dikeud" title="IBUS_Hangul_Dikeud">IBUS_Hangul_Dikeud</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-E" title="IBUS_Hangul_E">IBUS_Hangul_E</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-End" title="IBUS_Hangul_End">IBUS_Hangul_End</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-EO" title="IBUS_Hangul_EO">IBUS_Hangul_EO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-EU" title="IBUS_Hangul_EU">IBUS_Hangul_EU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Hanja" title="IBUS_Hangul_Hanja">IBUS_Hangul_Hanja</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Hieuh" title="IBUS_Hangul_Hieuh">IBUS_Hangul_Hieuh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-I" title="IBUS_Hangul_I">IBUS_Hangul_I</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Ieung" title="IBUS_Hangul_Ieung">IBUS_Hangul_Ieung</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jamo" title="IBUS_Hangul_Jamo">IBUS_Hangul_Jamo</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jeonja" title="IBUS_Hangul_Jeonja">IBUS_Hangul_Jeonja</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jieuj" title="IBUS_Hangul_Jieuj">IBUS_Hangul_Jieuj</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Cieuc" title="IBUS_Hangul_J_Cieuc">IBUS_Hangul_J_Cieuc</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Dikeud" title="IBUS_Hangul_J_Dikeud">IBUS_Hangul_J_Dikeud</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Hieuh" title="IBUS_Hangul_J_Hieuh">IBUS_Hangul_J_Hieuh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Ieung" title="IBUS_Hangul_J_Ieung">IBUS_Hangul_J_Ieung</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Jieuj" title="IBUS_Hangul_J_Jieuj">IBUS_Hangul_J_Jieuj</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Khieuq" title="IBUS_Hangul_J_Khieuq">IBUS_Hangul_J_Khieuq</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Kiyeog" title="IBUS_Hangul_J_Kiyeog">IBUS_Hangul_J_Kiyeog</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-KiyeogSios" title="IBUS_Hangul_J_KiyeogSios">IBUS_Hangul_J_KiyeogSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-KkogjiDalrinIeung" title="IBUS_Hangul_J_KkogjiDalrinIeung">IBUS_Hangul_J_KkogjiDalrinIeung</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Mieum" title="IBUS_Hangul_J_Mieum">IBUS_Hangul_J_Mieum</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Nieun" title="IBUS_Hangul_J_Nieun">IBUS_Hangul_J_Nieun</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-NieunHieuh" title="IBUS_Hangul_J_NieunHieuh">IBUS_Hangul_J_NieunHieuh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-NieunJieuj" title="IBUS_Hangul_J_NieunJieuj">IBUS_Hangul_J_NieunJieuj</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-PanSios" title="IBUS_Hangul_J_PanSios">IBUS_Hangul_J_PanSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Phieuf" title="IBUS_Hangul_J_Phieuf">IBUS_Hangul_J_Phieuf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Pieub" title="IBUS_Hangul_J_Pieub">IBUS_Hangul_J_Pieub</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-PieubSios" title="IBUS_Hangul_J_PieubSios">IBUS_Hangul_J_PieubSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Rieul" title="IBUS_Hangul_J_Rieul">IBUS_Hangul_J_Rieul</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulHieuh" title="IBUS_Hangul_J_RieulHieuh">IBUS_Hangul_J_RieulHieuh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulKiyeog" title="IBUS_Hangul_J_RieulKiyeog">IBUS_Hangul_J_RieulKiyeog</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulMieum" title="IBUS_Hangul_J_RieulMieum">IBUS_Hangul_J_RieulMieum</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulPhieuf" title="IBUS_Hangul_J_RieulPhieuf">IBUS_Hangul_J_RieulPhieuf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulPieub" title="IBUS_Hangul_J_RieulPieub">IBUS_Hangul_J_RieulPieub</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulSios" title="IBUS_Hangul_J_RieulSios">IBUS_Hangul_J_RieulSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulTieut" title="IBUS_Hangul_J_RieulTieut">IBUS_Hangul_J_RieulTieut</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Sios" title="IBUS_Hangul_J_Sios">IBUS_Hangul_J_Sios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-SsangKiyeog" title="IBUS_Hangul_J_SsangKiyeog">IBUS_Hangul_J_SsangKiyeog</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-SsangSios" title="IBUS_Hangul_J_SsangSios">IBUS_Hangul_J_SsangSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Tieut" title="IBUS_Hangul_J_Tieut">IBUS_Hangul_J_Tieut</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-YeorinHieuh" title="IBUS_Hangul_J_YeorinHieuh">IBUS_Hangul_J_YeorinHieuh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Khieuq" title="IBUS_Hangul_Khieuq">IBUS_Hangul_Khieuq</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Kiyeog" title="IBUS_Hangul_Kiyeog">IBUS_Hangul_Kiyeog</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-KiyeogSios" title="IBUS_Hangul_KiyeogSios">IBUS_Hangul_KiyeogSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-KkogjiDalrinIeung" title="IBUS_Hangul_KkogjiDalrinIeung">IBUS_Hangul_KkogjiDalrinIeung</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Mieum" title="IBUS_Hangul_Mieum">IBUS_Hangul_Mieum</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-MultipleCandidate" title="IBUS_Hangul_MultipleCandidate">IBUS_Hangul_MultipleCandidate</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Nieun" title="IBUS_Hangul_Nieun">IBUS_Hangul_Nieun</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-NieunHieuh" title="IBUS_Hangul_NieunHieuh">IBUS_Hangul_NieunHieuh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-NieunJieuj" title="IBUS_Hangul_NieunJieuj">IBUS_Hangul_NieunJieuj</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-O" title="IBUS_Hangul_O">IBUS_Hangul_O</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-OE" title="IBUS_Hangul_OE">IBUS_Hangul_OE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PanSios" title="IBUS_Hangul_PanSios">IBUS_Hangul_PanSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Phieuf" title="IBUS_Hangul_Phieuf">IBUS_Hangul_Phieuf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Pieub" title="IBUS_Hangul_Pieub">IBUS_Hangul_Pieub</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PieubSios" title="IBUS_Hangul_PieubSios">IBUS_Hangul_PieubSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PostHanja" title="IBUS_Hangul_PostHanja">IBUS_Hangul_PostHanja</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PreHanja" title="IBUS_Hangul_PreHanja">IBUS_Hangul_PreHanja</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PreviousCandidate" title="IBUS_Hangul_PreviousCandidate">IBUS_Hangul_PreviousCandidate</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Rieul" title="IBUS_Hangul_Rieul">IBUS_Hangul_Rieul</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulHieuh" title="IBUS_Hangul_RieulHieuh">IBUS_Hangul_RieulHieuh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulKiyeog" title="IBUS_Hangul_RieulKiyeog">IBUS_Hangul_RieulKiyeog</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulMieum" title="IBUS_Hangul_RieulMieum">IBUS_Hangul_RieulMieum</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulPhieuf" title="IBUS_Hangul_RieulPhieuf">IBUS_Hangul_RieulPhieuf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulPieub" title="IBUS_Hangul_RieulPieub">IBUS_Hangul_RieulPieub</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulSios" title="IBUS_Hangul_RieulSios">IBUS_Hangul_RieulSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulTieut" title="IBUS_Hangul_RieulTieut">IBUS_Hangul_RieulTieut</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulYeorinHieuh" title="IBUS_Hangul_RieulYeorinHieuh">IBUS_Hangul_RieulYeorinHieuh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Romaja" title="IBUS_Hangul_Romaja">IBUS_Hangul_Romaja</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SingleCandidate" title="IBUS_Hangul_SingleCandidate">IBUS_Hangul_SingleCandidate</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Sios" title="IBUS_Hangul_Sios">IBUS_Hangul_Sios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Special" title="IBUS_Hangul_Special">IBUS_Hangul_Special</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangDikeud" title="IBUS_Hangul_SsangDikeud">IBUS_Hangul_SsangDikeud</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangJieuj" title="IBUS_Hangul_SsangJieuj">IBUS_Hangul_SsangJieuj</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangKiyeog" title="IBUS_Hangul_SsangKiyeog">IBUS_Hangul_SsangKiyeog</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangPieub" title="IBUS_Hangul_SsangPieub">IBUS_Hangul_SsangPieub</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangSios" title="IBUS_Hangul_SsangSios">IBUS_Hangul_SsangSios</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Start" title="IBUS_Hangul_Start">IBUS_Hangul_Start</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumMieum" title="IBUS_Hangul_SunkyeongeumMieum">IBUS_Hangul_SunkyeongeumMieum</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumPhieuf" title="IBUS_Hangul_SunkyeongeumPhieuf">IBUS_Hangul_SunkyeongeumPhieuf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumPieub" title="IBUS_Hangul_SunkyeongeumPieub">IBUS_Hangul_SunkyeongeumPieub</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-switch" title="IBUS_Hangul_switch">IBUS_Hangul_switch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Tieut" title="IBUS_Hangul_Tieut">IBUS_Hangul_Tieut</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-U" title="IBUS_Hangul_U">IBUS_Hangul_U</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WA" title="IBUS_Hangul_WA">IBUS_Hangul_WA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WAE" title="IBUS_Hangul_WAE">IBUS_Hangul_WAE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WE" title="IBUS_Hangul_WE">IBUS_Hangul_WE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WEO" title="IBUS_Hangul_WEO">IBUS_Hangul_WEO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WI" title="IBUS_Hangul_WI">IBUS_Hangul_WI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YA" title="IBUS_Hangul_YA">IBUS_Hangul_YA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YAE" title="IBUS_Hangul_YAE">IBUS_Hangul_YAE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YE" title="IBUS_Hangul_YE">IBUS_Hangul_YE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YEO" title="IBUS_Hangul_YEO">IBUS_Hangul_YEO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YeorinHieuh" title="IBUS_Hangul_YeorinHieuh">IBUS_Hangul_YeorinHieuh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YI" title="IBUS_Hangul_YI">IBUS_Hangul_YI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YO" title="IBUS_Hangul_YO">IBUS_Hangul_YO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YU" title="IBUS_Hangul_YU">IBUS_Hangul_YU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hankaku" title="IBUS_Hankaku">IBUS_Hankaku</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hcircumflex" title="IBUS_Hcircumflex">IBUS_Hcircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hcircumflex" title="IBUS_hcircumflex">IBUS_hcircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-heart" title="IBUS_heart">IBUS_heart</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-aleph" title="IBUS_hebrew_aleph">IBUS_hebrew_aleph</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-ayin" title="IBUS_hebrew_ayin">IBUS_hebrew_ayin</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-bet" title="IBUS_hebrew_bet">IBUS_hebrew_bet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-beth" title="IBUS_hebrew_beth">IBUS_hebrew_beth</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-chet" title="IBUS_hebrew_chet">IBUS_hebrew_chet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-dalet" title="IBUS_hebrew_dalet">IBUS_hebrew_dalet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-daleth" title="IBUS_hebrew_daleth">IBUS_hebrew_daleth</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-doublelowline" title="IBUS_hebrew_doublelowline">IBUS_hebrew_doublelowline</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalkaph" title="IBUS_hebrew_finalkaph">IBUS_hebrew_finalkaph</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalmem" title="IBUS_hebrew_finalmem">IBUS_hebrew_finalmem</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalnun" title="IBUS_hebrew_finalnun">IBUS_hebrew_finalnun</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalpe" title="IBUS_hebrew_finalpe">IBUS_hebrew_finalpe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalzade" title="IBUS_hebrew_finalzade">IBUS_hebrew_finalzade</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalzadi" title="IBUS_hebrew_finalzadi">IBUS_hebrew_finalzadi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-gimel" title="IBUS_hebrew_gimel">IBUS_hebrew_gimel</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-gimmel" title="IBUS_hebrew_gimmel">IBUS_hebrew_gimmel</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-he" title="IBUS_hebrew_he">IBUS_hebrew_he</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-het" title="IBUS_hebrew_het">IBUS_hebrew_het</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-kaph" title="IBUS_hebrew_kaph">IBUS_hebrew_kaph</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-kuf" title="IBUS_hebrew_kuf">IBUS_hebrew_kuf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-lamed" title="IBUS_hebrew_lamed">IBUS_hebrew_lamed</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-mem" title="IBUS_hebrew_mem">IBUS_hebrew_mem</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-nun" title="IBUS_hebrew_nun">IBUS_hebrew_nun</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-pe" title="IBUS_hebrew_pe">IBUS_hebrew_pe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-qoph" title="IBUS_hebrew_qoph">IBUS_hebrew_qoph</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-resh" title="IBUS_hebrew_resh">IBUS_hebrew_resh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-samech" title="IBUS_hebrew_samech">IBUS_hebrew_samech</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-samekh" title="IBUS_hebrew_samekh">IBUS_hebrew_samekh</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-shin" title="IBUS_hebrew_shin">IBUS_hebrew_shin</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hebrew-switch" title="IBUS_Hebrew_switch">IBUS_Hebrew_switch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-taf" title="IBUS_hebrew_taf">IBUS_hebrew_taf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-taw" title="IBUS_hebrew_taw">IBUS_hebrew_taw</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-tet" title="IBUS_hebrew_tet">IBUS_hebrew_tet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-teth" title="IBUS_hebrew_teth">IBUS_hebrew_teth</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-waw" title="IBUS_hebrew_waw">IBUS_hebrew_waw</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-yod" title="IBUS_hebrew_yod">IBUS_hebrew_yod</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zade" title="IBUS_hebrew_zade">IBUS_hebrew_zade</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zadi" title="IBUS_hebrew_zadi">IBUS_hebrew_zadi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zain" title="IBUS_hebrew_zain">IBUS_hebrew_zain</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zayin" title="IBUS_hebrew_zayin">IBUS_hebrew_zayin</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Help" title="IBUS_Help">IBUS_Help</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Henkan" title="IBUS_Henkan">IBUS_Henkan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Henkan-Mode" title="IBUS_Henkan_Mode">IBUS_Henkan_Mode</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hexagram" title="IBUS_hexagram">IBUS_hexagram</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hiragana" title="IBUS_Hiragana">IBUS_Hiragana</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hiragana-Katakana" title="IBUS_Hiragana_Katakana">IBUS_Hiragana_Katakana</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Home" title="IBUS_Home">IBUS_Home</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizconnector" title="IBUS_horizconnector">IBUS_horizconnector</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan1" title="IBUS_horizlinescan1">IBUS_horizlinescan1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan3" title="IBUS_horizlinescan3">IBUS_horizlinescan3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan5" title="IBUS_horizlinescan5">IBUS_horizlinescan5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan7" title="IBUS_horizlinescan7">IBUS_horizlinescan7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan9" title="IBUS_horizlinescan9">IBUS_horizlinescan9</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusHotkeyProfile.html#IBusHotkeyProfile-struct" title="struct IBusHotkeyProfile">IBusHotkeyProfile</a>, struct in <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusHotkeyProfile.html#IBusHotkeyProfile-trigger" title='The "trigger" signal'>IBusHotkeyProfile::trigger</a>, object signal in <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusHotkeyProfile.html#IBusHotkeyProfileClass" title="struct IBusHotkeyProfileClass">IBusHotkeyProfileClass</a>, struct in <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-add-hotkey" title="ibus_hotkey_profile_add_hotkey ()">ibus_hotkey_profile_add_hotkey</a>, function in <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-add-hotkey-from-string" title="ibus_hotkey_profile_add_hotkey_from_string ()">ibus_hotkey_profile_add_hotkey_from_string</a>, function in <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-filter-key-event" title="ibus_hotkey_profile_filter_key_event ()">ibus_hotkey_profile_filter_key_event</a>, function in <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-lookup-hotkey" title="ibus_hotkey_profile_lookup_hotkey ()">ibus_hotkey_profile_lookup_hotkey</a>, function in <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-remove-hotkey" title="ibus_hotkey_profile_remove_hotkey ()">ibus_hotkey_profile_remove_hotkey</a>, function in <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusHotkeyProfile.html#ibus-hotkey-profile-remove-hotkey-by-event" title="ibus_hotkey_profile_remove_hotkey_by_event ()">ibus_hotkey_profile_remove_hotkey_by_event</a>, function in <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile">IBusHotkeyProfile</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hstroke" title="IBUS_hstroke">IBUS_hstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hstroke" title="IBUS_Hstroke">IBUS_Hstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ht" title="IBUS_ht">IBUS_ht</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hyper-L" title="IBUS_Hyper_L">IBUS_Hyper_L</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hyper-R" title="IBUS_Hyper_R">IBUS_Hyper_R</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hyphen" title="IBUS_hyphen">IBUS_hyphen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxI"></a><h3 class="title">I</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-i" title="IBUS_i">IBUS_i</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-I:CAPS" title="IBUS_I">IBUS_I</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Iabovedot" title="IBUS_Iabovedot">IBUS_Iabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-iacute" title="IBUS_iacute">IBUS_iacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Iacute" title="IBUS_Iacute">IBUS_Iacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ibelowdot" title="IBUS_Ibelowdot">IBUS_Ibelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ibelowdot" title="IBUS_ibelowdot">IBUS_ibelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ibreve" title="IBUS_ibreve">IBUS_ibreve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ibreve" title="IBUS_Ibreve">IBUS_Ibreve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Icircumflex" title="IBUS_Icircumflex">IBUS_Icircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-icircumflex" title="IBUS_icircumflex">IBUS_icircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-identical" title="IBUS_identical">IBUS_identical</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Idiaeresis" title="IBUS_Idiaeresis">IBUS_Idiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-idiaeresis" title="IBUS_idiaeresis">IBUS_idiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-idotless" title="IBUS_idotless">IBUS_idotless</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ifonlyif" title="IBUS_ifonlyif">IBUS_ifonlyif</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-igrave" title="IBUS_igrave">IBUS_igrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Igrave" title="IBUS_Igrave">IBUS_Igrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ihook" title="IBUS_Ihook">IBUS_Ihook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ihook" title="IBUS_ihook">IBUS_ihook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-imacron" title="IBUS_imacron">IBUS_imacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Imacron" title="IBUS_Imacron">IBUS_Imacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-implies" title="IBUS_implies">IBUS_implies</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-includedin" title="IBUS_includedin">IBUS_includedin</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-includes" title="IBUS_includes">IBUS_includes</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-infinity" title="IBUS_infinity">IBUS_infinity</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-init" title="ibus_init ()">ibus_init</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-struct" title="struct IBusInputContext">IBusInputContext</a>, struct in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-commit-text" title='The "commit-text" signal'>IBusInputContext::commit-text</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-cursor-down-lookup-table" title='The "cursor-down-lookup-table" signal'>IBusInputContext::cursor-down-lookup-table</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-cursor-up-lookup-table" title='The "cursor-up-lookup-table" signal'>IBusInputContext::cursor-up-lookup-table</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-delete-surrounding-text" title='The "delete-surrounding-text" signal'>IBusInputContext::delete-surrounding-text</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-disabled" title='The "disabled" signal'>IBusInputContext::disabled</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-enabled" title='The "enabled" signal'>IBusInputContext::enabled</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-forward-key-event" title='The "forward-key-event" signal'>IBusInputContext::forward-key-event</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-hide-auxiliary-text" title='The "hide-auxiliary-text" signal'>IBusInputContext::hide-auxiliary-text</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-hide-lookup-table" title='The "hide-lookup-table" signal'>IBusInputContext::hide-lookup-table</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-hide-preedit-text" title='The "hide-preedit-text" signal'>IBusInputContext::hide-preedit-text</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-page-down-lookup-table" title='The "page-down-lookup-table" signal'>IBusInputContext::page-down-lookup-table</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-page-up-lookup-table" title='The "page-up-lookup-table" signal'>IBusInputContext::page-up-lookup-table</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-register-properties" title='The "register-properties" signal'>IBusInputContext::register-properties</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-show-auxiliary-text" title='The "show-auxiliary-text" signal'>IBusInputContext::show-auxiliary-text</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-show-lookup-table" title='The "show-lookup-table" signal'>IBusInputContext::show-lookup-table</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-show-preedit-text" title='The "show-preedit-text" signal'>IBusInputContext::show-preedit-text</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-update-auxiliary-text" title='The "update-auxiliary-text" signal'>IBusInputContext::update-auxiliary-text</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-update-lookup-table" title='The "update-lookup-table" signal'>IBusInputContext::update-lookup-table</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-update-preedit-text" title='The "update-preedit-text" signal'>IBusInputContext::update-preedit-text</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContext-update-property" title='The "update-property" signal'>IBusInputContext::update-property</a>, object signal in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#IBusInputContextClass" title="struct IBusInputContextClass">IBusInputContextClass</a>, struct in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusInputHints" title="enum IBusInputHints">IBusInputHints</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusInputPurpose" title="enum IBusInputPurpose">IBusInputPurpose</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-cancel-hand-writing" title="ibus_input_context_cancel_hand_writing ()">ibus_input_context_cancel_hand_writing</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-focus-in" title="ibus_input_context_focus_in ()">ibus_input_context_focus_in</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-focus-out" title="ibus_input_context_focus_out ()">ibus_input_context_focus_out</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-get-engine" title="ibus_input_context_get_engine ()">ibus_input_context_get_engine</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-get-engine-async" title="ibus_input_context_get_engine_async ()">ibus_input_context_get_engine_async</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-get-engine-async-finish" title="ibus_input_context_get_engine_async_finish ()">ibus_input_context_get_engine_async_finish</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-get-input-context" title="ibus_input_context_get_input_context ()">ibus_input_context_get_input_context</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-get-input-context-async" title="ibus_input_context_get_input_context_async ()">ibus_input_context_get_input_context_async</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-get-input-context-async-finish" title="ibus_input_context_get_input_context_async_finish ()">ibus_input_context_get_input_context_async_finish</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-needs-surrounding-text" title="ibus_input_context_needs_surrounding_text ()">ibus_input_context_needs_surrounding_text</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-new" title="ibus_input_context_new ()">ibus_input_context_new</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-new-async" title="ibus_input_context_new_async ()">ibus_input_context_new_async</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-new-async-finish" title="ibus_input_context_new_async_finish ()">ibus_input_context_new_async_finish</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-process-hand-writing-event" title="ibus_input_context_process_hand_writing_event ()">ibus_input_context_process_hand_writing_event</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event" title="ibus_input_context_process_key_event ()">ibus_input_context_process_key_event</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event-async" title="ibus_input_context_process_key_event_async ()">ibus_input_context_process_key_event_async</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-process-key-event-async-finish" title="ibus_input_context_process_key_event_async_finish ()">ibus_input_context_process_key_event_async_finish</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-property-activate" title="ibus_input_context_property_activate ()">ibus_input_context_property_activate</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-reset" title="ibus_input_context_reset ()">ibus_input_context_reset</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-set-capabilities" title="ibus_input_context_set_capabilities ()">ibus_input_context_set_capabilities</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-set-content-type" title="ibus_input_context_set_content_type ()">ibus_input_context_set_content_type</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-set-cursor-location" title="ibus_input_context_set_cursor_location ()">ibus_input_context_set_cursor_location</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-set-engine" title="ibus_input_context_set_engine ()">ibus_input_context_set_engine</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusInputContext.html#ibus-input-context-set-surrounding-text" title="ibus_input_context_set_surrounding_text ()">ibus_input_context_set_surrounding_text</a>, function in <a class="link" href="IBusInputContext.html" title="IBusInputContext">IBusInputContext</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Insert" title="IBUS_Insert">IBUS_Insert</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-integral" title="IBUS_integral">IBUS_integral</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-CONFIG:CAPS" title="IBUS_INTERFACE_CONFIG">IBUS_INTERFACE_CONFIG</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-ENGINE:CAPS" title="IBUS_INTERFACE_ENGINE">IBUS_INTERFACE_ENGINE</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-FACTORY:CAPS" title="IBUS_INTERFACE_FACTORY">IBUS_INTERFACE_FACTORY</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-IBUS:CAPS" title="IBUS_INTERFACE_IBUS">IBUS_INTERFACE_IBUS</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-INPUT-CONTEXT:CAPS" title="IBUS_INTERFACE_INPUT_CONTEXT">IBUS_INTERFACE_INPUT_CONTEXT</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-NOTIFICATIONS:CAPS" title="IBUS_INTERFACE_NOTIFICATIONS">IBUS_INTERFACE_NOTIFICATIONS</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-PANEL:CAPS" title="IBUS_INTERFACE_PANEL">IBUS_INTERFACE_PANEL</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-intersection" title="IBUS_intersection">IBUS_intersection</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Iogonek" title="IBUS_Iogonek">IBUS_Iogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-iogonek" title="IBUS_iogonek">IBUS_iogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Center-Object" title="IBUS_ISO_Center_Object">IBUS_ISO_Center_Object</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Continuous-Underline" title="IBUS_ISO_Continuous_Underline">IBUS_ISO_Continuous_Underline</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Discontinuous-Underline" title="IBUS_ISO_Discontinuous_Underline">IBUS_ISO_Discontinuous_Underline</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Emphasize" title="IBUS_ISO_Emphasize">IBUS_ISO_Emphasize</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Enter" title="IBUS_ISO_Enter">IBUS_ISO_Enter</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Down" title="IBUS_ISO_Fast_Cursor_Down">IBUS_ISO_Fast_Cursor_Down</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Left" title="IBUS_ISO_Fast_Cursor_Left">IBUS_ISO_Fast_Cursor_Left</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Right" title="IBUS_ISO_Fast_Cursor_Right">IBUS_ISO_Fast_Cursor_Right</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Up" title="IBUS_ISO_Fast_Cursor_Up">IBUS_ISO_Fast_Cursor_Up</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-First-Group" title="IBUS_ISO_First_Group">IBUS_ISO_First_Group</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-First-Group-Lock" title="IBUS_ISO_First_Group_Lock">IBUS_ISO_First_Group_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Latch" title="IBUS_ISO_Group_Latch">IBUS_ISO_Group_Latch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Lock" title="IBUS_ISO_Group_Lock">IBUS_ISO_Group_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Shift" title="IBUS_ISO_Group_Shift">IBUS_ISO_Group_Shift</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Last-Group" title="IBUS_ISO_Last_Group">IBUS_ISO_Last_Group</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Last-Group-Lock" title="IBUS_ISO_Last_Group_Lock">IBUS_ISO_Last_Group_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Left-Tab" title="IBUS_ISO_Left_Tab">IBUS_ISO_Left_Tab</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level2-Latch" title="IBUS_ISO_Level2_Latch">IBUS_ISO_Level2_Latch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Latch" title="IBUS_ISO_Level3_Latch">IBUS_ISO_Level3_Latch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Lock" title="IBUS_ISO_Level3_Lock">IBUS_ISO_Level3_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Shift" title="IBUS_ISO_Level3_Shift">IBUS_ISO_Level3_Shift</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Latch" title="IBUS_ISO_Level5_Latch">IBUS_ISO_Level5_Latch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Lock" title="IBUS_ISO_Level5_Lock">IBUS_ISO_Level5_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Shift" title="IBUS_ISO_Level5_Shift">IBUS_ISO_Level5_Shift</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Lock" title="IBUS_ISO_Lock">IBUS_ISO_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Move-Line-Down" title="IBUS_ISO_Move_Line_Down">IBUS_ISO_Move_Line_Down</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Move-Line-Up" title="IBUS_ISO_Move_Line_Up">IBUS_ISO_Move_Line_Up</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Next-Group" title="IBUS_ISO_Next_Group">IBUS_ISO_Next_Group</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Next-Group-Lock" title="IBUS_ISO_Next_Group_Lock">IBUS_ISO_Next_Group_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Line-Down" title="IBUS_ISO_Partial_Line_Down">IBUS_ISO_Partial_Line_Down</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Line-Up" title="IBUS_ISO_Partial_Line_Up">IBUS_ISO_Partial_Line_Up</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Space-Left" title="IBUS_ISO_Partial_Space_Left">IBUS_ISO_Partial_Space_Left</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Space-Right" title="IBUS_ISO_Partial_Space_Right">IBUS_ISO_Partial_Space_Right</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Prev-Group" title="IBUS_ISO_Prev_Group">IBUS_ISO_Prev_Group</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Prev-Group-Lock" title="IBUS_ISO_Prev_Group_Lock">IBUS_ISO_Prev_Group_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Both-Margins" title="IBUS_ISO_Release_Both_Margins">IBUS_ISO_Release_Both_Margins</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Margin-Left" title="IBUS_ISO_Release_Margin_Left">IBUS_ISO_Release_Margin_Left</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Margin-Right" title="IBUS_ISO_Release_Margin_Right">IBUS_ISO_Release_Margin_Right</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Set-Margin-Left" title="IBUS_ISO_Set_Margin_Left">IBUS_ISO_Set_Margin_Left</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Set-Margin-Right" title="IBUS_ISO_Set_Margin_Right">IBUS_ISO_Set_Margin_Right</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-itilde" title="IBUS_itilde">IBUS_itilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Itilde" title="IBUS_Itilde">IBUS_Itilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxJ"></a><h3 class="title">J</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-J:CAPS" title="IBUS_J">IBUS_J</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-j" title="IBUS_j">IBUS_j</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-jcircumflex" title="IBUS_jcircumflex">IBUS_jcircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Jcircumflex" title="IBUS_Jcircumflex">IBUS_Jcircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-jot" title="IBUS_jot">IBUS_jot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxK"></a><h3 class="title">K</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-k" title="IBUS_k">IBUS_k</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-K:CAPS" title="IBUS_K">IBUS_K</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-a" title="IBUS_kana_a">IBUS_kana_a</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-A" title="IBUS_kana_A">IBUS_kana_A</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-CHI" title="IBUS_kana_CHI">IBUS_kana_CHI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-closingbracket" title="IBUS_kana_closingbracket">IBUS_kana_closingbracket</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-comma" title="IBUS_kana_comma">IBUS_kana_comma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-conjunctive" title="IBUS_kana_conjunctive">IBUS_kana_conjunctive</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-e" title="IBUS_kana_e">IBUS_kana_e</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-E" title="IBUS_kana_E">IBUS_kana_E</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-FU" title="IBUS_kana_FU">IBUS_kana_FU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-fullstop" title="IBUS_kana_fullstop">IBUS_kana_fullstop</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HA" title="IBUS_kana_HA">IBUS_kana_HA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HE" title="IBUS_kana_HE">IBUS_kana_HE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HI" title="IBUS_kana_HI">IBUS_kana_HI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HO" title="IBUS_kana_HO">IBUS_kana_HO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HU" title="IBUS_kana_HU">IBUS_kana_HU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-i" title="IBUS_kana_i">IBUS_kana_i</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-I" title="IBUS_kana_I">IBUS_kana_I</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KA" title="IBUS_kana_KA">IBUS_kana_KA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KE" title="IBUS_kana_KE">IBUS_kana_KE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KI" title="IBUS_kana_KI">IBUS_kana_KI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KO" title="IBUS_kana_KO">IBUS_kana_KO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KU" title="IBUS_kana_KU">IBUS_kana_KU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kana-Lock" title="IBUS_Kana_Lock">IBUS_Kana_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-MA" title="IBUS_kana_MA">IBUS_kana_MA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-ME" title="IBUS_kana_ME">IBUS_kana_ME</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-MI" title="IBUS_kana_MI">IBUS_kana_MI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-middledot" title="IBUS_kana_middledot">IBUS_kana_middledot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-MO" title="IBUS_kana_MO">IBUS_kana_MO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-MU" title="IBUS_kana_MU">IBUS_kana_MU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-N" title="IBUS_kana_N">IBUS_kana_N</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NA" title="IBUS_kana_NA">IBUS_kana_NA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NE" title="IBUS_kana_NE">IBUS_kana_NE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NI" title="IBUS_kana_NI">IBUS_kana_NI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NO" title="IBUS_kana_NO">IBUS_kana_NO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NU" title="IBUS_kana_NU">IBUS_kana_NU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-O" title="IBUS_kana_O">IBUS_kana_O</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-o" title="IBUS_kana_o">IBUS_kana_o</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-openingbracket" title="IBUS_kana_openingbracket">IBUS_kana_openingbracket</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RA" title="IBUS_kana_RA">IBUS_kana_RA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RE" title="IBUS_kana_RE">IBUS_kana_RE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RI" title="IBUS_kana_RI">IBUS_kana_RI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RO" title="IBUS_kana_RO">IBUS_kana_RO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RU" title="IBUS_kana_RU">IBUS_kana_RU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SA" title="IBUS_kana_SA">IBUS_kana_SA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SE" title="IBUS_kana_SE">IBUS_kana_SE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SHI" title="IBUS_kana_SHI">IBUS_kana_SHI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kana-Shift" title="IBUS_Kana_Shift">IBUS_Kana_Shift</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SO" title="IBUS_kana_SO">IBUS_kana_SO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SU" title="IBUS_kana_SU">IBUS_kana_SU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-switch" title="IBUS_kana_switch">IBUS_kana_switch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TA" title="IBUS_kana_TA">IBUS_kana_TA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TE" title="IBUS_kana_TE">IBUS_kana_TE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TI" title="IBUS_kana_TI">IBUS_kana_TI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TO" title="IBUS_kana_TO">IBUS_kana_TO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TSU" title="IBUS_kana_TSU">IBUS_kana_TSU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-tsu" title="IBUS_kana_tsu">IBUS_kana_tsu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TU" title="IBUS_kana_TU">IBUS_kana_TU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-tu" title="IBUS_kana_tu">IBUS_kana_tu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-u" title="IBUS_kana_u">IBUS_kana_u</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-U" title="IBUS_kana_U">IBUS_kana_U</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-WA" title="IBUS_kana_WA">IBUS_kana_WA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-WO" title="IBUS_kana_WO">IBUS_kana_WO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-YA" title="IBUS_kana_YA">IBUS_kana_YA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-ya" title="IBUS_kana_ya">IBUS_kana_ya</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-YO" title="IBUS_kana_YO">IBUS_kana_YO</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-yo" title="IBUS_kana_yo">IBUS_kana_yo</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-YU" title="IBUS_kana_YU">IBUS_kana_YU</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-yu" title="IBUS_kana_yu">IBUS_kana_yu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kanji" title="IBUS_Kanji">IBUS_Kanji</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kanji-Bangou" title="IBUS_Kanji_Bangou">IBUS_Kanji_Bangou</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kappa" title="IBUS_kappa">IBUS_kappa</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Katakana" title="IBUS_Katakana">IBUS_Katakana</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kcedilla" title="IBUS_Kcedilla">IBUS_Kcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kcedilla" title="IBUS_kcedilla">IBUS_kcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusKeymap.html#IBusKeymap-struct" title="struct IBusKeymap">IBusKeymap</a>, struct in <a class="link" href="IBusKeymap.html" title="IBusKeymap">IBusKeymap</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusKeymap.html#IBusKeymapClass" title="struct IBusKeymapClass">IBusKeymapClass</a>, struct in <a class="link" href="IBusKeymap.html" title="IBusKeymap">IBusKeymap</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusKeymap.html#ibus-keymap-get" title="ibus_keymap_get ()">ibus_keymap_get</a>, function in <a class="link" href="IBusKeymap.html" title="IBusKeymap">IBusKeymap</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusKeymap.html#ibus-keymap-lookup-keysym" title="ibus_keymap_lookup_keysym ()">ibus_keymap_lookup_keysym</a>, function in <a class="link" href="IBusKeymap.html" title="IBusKeymap">IBusKeymap</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusKeymap.html#ibus-keymap-new" title="ibus_keymap_new ()">ibus_keymap_new</a>, function in <a class="link" href="IBusKeymap.html" title="IBusKeymap">IBusKeymap</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeys.html#ibus-keyval-from-name" title="ibus_keyval_from_name ()">ibus_keyval_from_name</a>, function in <a class="link" href="ibus-ibuskeys.html" title="ibuskeys">ibuskeys</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeys.html#ibus-keyval-name" title="ibus_keyval_name ()">ibus_keyval_name</a>, function in <a class="link" href="ibus-ibuskeys.html" title="ibuskeys">ibuskeys</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeys.html#ibus-keyval-to-unicode" title="ibus_keyval_to_unicode ()">ibus_keyval_to_unicode</a>, function in <a class="link" href="ibus-ibuskeys.html" title="ibuskeys">ibuskeys</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-0:CAPS" title="IBUS_KEY_0">IBUS_KEY_0</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-1:CAPS" title="IBUS_KEY_1">IBUS_KEY_1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-2:CAPS" title="IBUS_KEY_2">IBUS_KEY_2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3:CAPS" title="IBUS_KEY_3">IBUS_KEY_3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-AltCursor" title="IBUS_KEY_3270_AltCursor">IBUS_KEY_3270_AltCursor</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Attn" title="IBUS_KEY_3270_Attn">IBUS_KEY_3270_Attn</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-BackTab" title="IBUS_KEY_3270_BackTab">IBUS_KEY_3270_BackTab</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-ChangeScreen" title="IBUS_KEY_3270_ChangeScreen">IBUS_KEY_3270_ChangeScreen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Copy" title="IBUS_KEY_3270_Copy">IBUS_KEY_3270_Copy</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-CursorBlink" title="IBUS_KEY_3270_CursorBlink">IBUS_KEY_3270_CursorBlink</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-CursorSelect" title="IBUS_KEY_3270_CursorSelect">IBUS_KEY_3270_CursorSelect</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-DeleteWord" title="IBUS_KEY_3270_DeleteWord">IBUS_KEY_3270_DeleteWord</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Duplicate" title="IBUS_KEY_3270_Duplicate">IBUS_KEY_3270_Duplicate</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Enter" title="IBUS_KEY_3270_Enter">IBUS_KEY_3270_Enter</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-EraseEOF" title="IBUS_KEY_3270_EraseEOF">IBUS_KEY_3270_EraseEOF</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-EraseInput" title="IBUS_KEY_3270_EraseInput">IBUS_KEY_3270_EraseInput</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-ExSelect" title="IBUS_KEY_3270_ExSelect">IBUS_KEY_3270_ExSelect</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-FieldMark" title="IBUS_KEY_3270_FieldMark">IBUS_KEY_3270_FieldMark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Ident" title="IBUS_KEY_3270_Ident">IBUS_KEY_3270_Ident</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Jump" title="IBUS_KEY_3270_Jump">IBUS_KEY_3270_Jump</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-KeyClick" title="IBUS_KEY_3270_KeyClick">IBUS_KEY_3270_KeyClick</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Left2" title="IBUS_KEY_3270_Left2">IBUS_KEY_3270_Left2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-PA1:CAPS" title="IBUS_KEY_3270_PA1">IBUS_KEY_3270_PA1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-PA2:CAPS" title="IBUS_KEY_3270_PA2">IBUS_KEY_3270_PA2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-PA3:CAPS" title="IBUS_KEY_3270_PA3">IBUS_KEY_3270_PA3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Play" title="IBUS_KEY_3270_Play">IBUS_KEY_3270_Play</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-PrintScreen" title="IBUS_KEY_3270_PrintScreen">IBUS_KEY_3270_PrintScreen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Quit" title="IBUS_KEY_3270_Quit">IBUS_KEY_3270_Quit</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Record" title="IBUS_KEY_3270_Record">IBUS_KEY_3270_Record</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Reset" title="IBUS_KEY_3270_Reset">IBUS_KEY_3270_Reset</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Right2" title="IBUS_KEY_3270_Right2">IBUS_KEY_3270_Right2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Rule" title="IBUS_KEY_3270_Rule">IBUS_KEY_3270_Rule</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Setup" title="IBUS_KEY_3270_Setup">IBUS_KEY_3270_Setup</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Test" title="IBUS_KEY_3270_Test">IBUS_KEY_3270_Test</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-4:CAPS" title="IBUS_KEY_4">IBUS_KEY_4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-5:CAPS" title="IBUS_KEY_5">IBUS_KEY_5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-6:CAPS" title="IBUS_KEY_6">IBUS_KEY_6</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-7:CAPS" title="IBUS_KEY_7">IBUS_KEY_7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-8:CAPS" title="IBUS_KEY_8">IBUS_KEY_8</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-9:CAPS" title="IBUS_KEY_9">IBUS_KEY_9</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-A:CAPS" title="IBUS_KEY_A">IBUS_KEY_A</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-a" title="IBUS_KEY_a">IBUS_KEY_a</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-aacute" title="IBUS_KEY_aacute">IBUS_KEY_aacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Aacute" title="IBUS_KEY_Aacute">IBUS_KEY_Aacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abelowdot" title="IBUS_KEY_abelowdot">IBUS_KEY_abelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abelowdot" title="IBUS_KEY_Abelowdot">IBUS_KEY_Abelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abovedot" title="IBUS_KEY_abovedot">IBUS_KEY_abovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abreve" title="IBUS_KEY_Abreve">IBUS_KEY_Abreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abreve" title="IBUS_KEY_abreve">IBUS_KEY_abreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abreveacute" title="IBUS_KEY_abreveacute">IBUS_KEY_abreveacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abreveacute" title="IBUS_KEY_Abreveacute">IBUS_KEY_Abreveacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abrevebelowdot" title="IBUS_KEY_abrevebelowdot">IBUS_KEY_abrevebelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abrevebelowdot" title="IBUS_KEY_Abrevebelowdot">IBUS_KEY_Abrevebelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abrevegrave" title="IBUS_KEY_Abrevegrave">IBUS_KEY_Abrevegrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abrevegrave" title="IBUS_KEY_abrevegrave">IBUS_KEY_abrevegrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abrevehook" title="IBUS_KEY_abrevehook">IBUS_KEY_abrevehook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abrevehook" title="IBUS_KEY_Abrevehook">IBUS_KEY_Abrevehook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abrevetilde" title="IBUS_KEY_Abrevetilde">IBUS_KEY_Abrevetilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abrevetilde" title="IBUS_KEY_abrevetilde">IBUS_KEY_abrevetilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-AccessX-Enable" title="IBUS_KEY_AccessX_Enable">IBUS_KEY_AccessX_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-AccessX-Feedback-Enable" title="IBUS_KEY_AccessX_Feedback_Enable">IBUS_KEY_AccessX_Feedback_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflex" title="IBUS_KEY_acircumflex">IBUS_KEY_acircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflex" title="IBUS_KEY_Acircumflex">IBUS_KEY_Acircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexacute" title="IBUS_KEY_acircumflexacute">IBUS_KEY_acircumflexacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexacute" title="IBUS_KEY_Acircumflexacute">IBUS_KEY_Acircumflexacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexbelowdot" title="IBUS_KEY_Acircumflexbelowdot">IBUS_KEY_Acircumflexbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexbelowdot" title="IBUS_KEY_acircumflexbelowdot">IBUS_KEY_acircumflexbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexgrave" title="IBUS_KEY_Acircumflexgrave">IBUS_KEY_Acircumflexgrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexgrave" title="IBUS_KEY_acircumflexgrave">IBUS_KEY_acircumflexgrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexhook" title="IBUS_KEY_acircumflexhook">IBUS_KEY_acircumflexhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexhook" title="IBUS_KEY_Acircumflexhook">IBUS_KEY_Acircumflexhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflextilde" title="IBUS_KEY_acircumflextilde">IBUS_KEY_acircumflextilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflextilde" title="IBUS_KEY_Acircumflextilde">IBUS_KEY_Acircumflextilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acute" title="IBUS_KEY_acute">IBUS_KEY_acute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Adiaeresis" title="IBUS_KEY_Adiaeresis">IBUS_KEY_Adiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-adiaeresis" title="IBUS_KEY_adiaeresis">IBUS_KEY_adiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ae" title="IBUS_KEY_ae">IBUS_KEY_ae</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-AE:CAPS" title="IBUS_KEY_AE">IBUS_KEY_AE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-agrave" title="IBUS_KEY_agrave">IBUS_KEY_agrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Agrave" title="IBUS_KEY_Agrave">IBUS_KEY_Agrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ahook" title="IBUS_KEY_Ahook">IBUS_KEY_Ahook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ahook" title="IBUS_KEY_ahook">IBUS_KEY_ahook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Alt-L" title="IBUS_KEY_Alt_L">IBUS_KEY_Alt_L</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Alt-R" title="IBUS_KEY_Alt_R">IBUS_KEY_Alt_R</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Amacron" title="IBUS_KEY_Amacron">IBUS_KEY_Amacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-amacron" title="IBUS_KEY_amacron">IBUS_KEY_amacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ampersand" title="IBUS_KEY_ampersand">IBUS_KEY_ampersand</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-aogonek" title="IBUS_KEY_aogonek">IBUS_KEY_aogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Aogonek" title="IBUS_KEY_Aogonek">IBUS_KEY_Aogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-apostrophe" title="IBUS_KEY_apostrophe">IBUS_KEY_apostrophe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-approxeq" title="IBUS_KEY_approxeq">IBUS_KEY_approxeq</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-approximate" title="IBUS_KEY_approximate">IBUS_KEY_approximate</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-0" title="IBUS_KEY_Arabic_0">IBUS_KEY_Arabic_0</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-1" title="IBUS_KEY_Arabic_1">IBUS_KEY_Arabic_1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-2" title="IBUS_KEY_Arabic_2">IBUS_KEY_Arabic_2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-3" title="IBUS_KEY_Arabic_3">IBUS_KEY_Arabic_3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-4" title="IBUS_KEY_Arabic_4">IBUS_KEY_Arabic_4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-5" title="IBUS_KEY_Arabic_5">IBUS_KEY_Arabic_5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-6" title="IBUS_KEY_Arabic_6">IBUS_KEY_Arabic_6</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-7" title="IBUS_KEY_Arabic_7">IBUS_KEY_Arabic_7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-8" title="IBUS_KEY_Arabic_8">IBUS_KEY_Arabic_8</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-9" title="IBUS_KEY_Arabic_9">IBUS_KEY_Arabic_9</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ain" title="IBUS_KEY_Arabic_ain">IBUS_KEY_Arabic_ain</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-alef" title="IBUS_KEY_Arabic_alef">IBUS_KEY_Arabic_alef</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-alefmaksura" title="IBUS_KEY_Arabic_alefmaksura">IBUS_KEY_Arabic_alefmaksura</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-beh" title="IBUS_KEY_Arabic_beh">IBUS_KEY_Arabic_beh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-comma" title="IBUS_KEY_Arabic_comma">IBUS_KEY_Arabic_comma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dad" title="IBUS_KEY_Arabic_dad">IBUS_KEY_Arabic_dad</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dal" title="IBUS_KEY_Arabic_dal">IBUS_KEY_Arabic_dal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-damma" title="IBUS_KEY_Arabic_damma">IBUS_KEY_Arabic_damma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dammatan" title="IBUS_KEY_Arabic_dammatan">IBUS_KEY_Arabic_dammatan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ddal" title="IBUS_KEY_Arabic_ddal">IBUS_KEY_Arabic_ddal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-farsi-yeh" title="IBUS_KEY_Arabic_farsi_yeh">IBUS_KEY_Arabic_farsi_yeh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fatha" title="IBUS_KEY_Arabic_fatha">IBUS_KEY_Arabic_fatha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fathatan" title="IBUS_KEY_Arabic_fathatan">IBUS_KEY_Arabic_fathatan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-feh" title="IBUS_KEY_Arabic_feh">IBUS_KEY_Arabic_feh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fullstop" title="IBUS_KEY_Arabic_fullstop">IBUS_KEY_Arabic_fullstop</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-gaf" title="IBUS_KEY_Arabic_gaf">IBUS_KEY_Arabic_gaf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ghain" title="IBUS_KEY_Arabic_ghain">IBUS_KEY_Arabic_ghain</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ha" title="IBUS_KEY_Arabic_ha">IBUS_KEY_Arabic_ha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hah" title="IBUS_KEY_Arabic_hah">IBUS_KEY_Arabic_hah</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza" title="IBUS_KEY_Arabic_hamza">IBUS_KEY_Arabic_hamza</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonalef" title="IBUS_KEY_Arabic_hamzaonalef">IBUS_KEY_Arabic_hamzaonalef</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonwaw" title="IBUS_KEY_Arabic_hamzaonwaw">IBUS_KEY_Arabic_hamzaonwaw</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonyeh" title="IBUS_KEY_Arabic_hamzaonyeh">IBUS_KEY_Arabic_hamzaonyeh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaunderalef" title="IBUS_KEY_Arabic_hamzaunderalef">IBUS_KEY_Arabic_hamzaunderalef</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza-above" title="IBUS_KEY_Arabic_hamza_above">IBUS_KEY_Arabic_hamza_above</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza-below" title="IBUS_KEY_Arabic_hamza_below">IBUS_KEY_Arabic_hamza_below</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh" title="IBUS_KEY_Arabic_heh">IBUS_KEY_Arabic_heh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh-doachashmee" title="IBUS_KEY_Arabic_heh_doachashmee">IBUS_KEY_Arabic_heh_doachashmee</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh-goal" title="IBUS_KEY_Arabic_heh_goal">IBUS_KEY_Arabic_heh_goal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-jeem" title="IBUS_KEY_Arabic_jeem">IBUS_KEY_Arabic_jeem</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-jeh" title="IBUS_KEY_Arabic_jeh">IBUS_KEY_Arabic_jeh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kaf" title="IBUS_KEY_Arabic_kaf">IBUS_KEY_Arabic_kaf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kasra" title="IBUS_KEY_Arabic_kasra">IBUS_KEY_Arabic_kasra</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kasratan" title="IBUS_KEY_Arabic_kasratan">IBUS_KEY_Arabic_kasratan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-keheh" title="IBUS_KEY_Arabic_keheh">IBUS_KEY_Arabic_keheh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-khah" title="IBUS_KEY_Arabic_khah">IBUS_KEY_Arabic_khah</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-lam" title="IBUS_KEY_Arabic_lam">IBUS_KEY_Arabic_lam</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-maddaonalef" title="IBUS_KEY_Arabic_maddaonalef">IBUS_KEY_Arabic_maddaonalef</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-madda-above" title="IBUS_KEY_Arabic_madda_above">IBUS_KEY_Arabic_madda_above</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-meem" title="IBUS_KEY_Arabic_meem">IBUS_KEY_Arabic_meem</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-noon" title="IBUS_KEY_Arabic_noon">IBUS_KEY_Arabic_noon</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-noon-ghunna" title="IBUS_KEY_Arabic_noon_ghunna">IBUS_KEY_Arabic_noon_ghunna</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-peh" title="IBUS_KEY_Arabic_peh">IBUS_KEY_Arabic_peh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-percent" title="IBUS_KEY_Arabic_percent">IBUS_KEY_Arabic_percent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-qaf" title="IBUS_KEY_Arabic_qaf">IBUS_KEY_Arabic_qaf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-question-mark" title="IBUS_KEY_Arabic_question_mark">IBUS_KEY_Arabic_question_mark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ra" title="IBUS_KEY_Arabic_ra">IBUS_KEY_Arabic_ra</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-rreh" title="IBUS_KEY_Arabic_rreh">IBUS_KEY_Arabic_rreh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sad" title="IBUS_KEY_Arabic_sad">IBUS_KEY_Arabic_sad</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-seen" title="IBUS_KEY_Arabic_seen">IBUS_KEY_Arabic_seen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-semicolon" title="IBUS_KEY_Arabic_semicolon">IBUS_KEY_Arabic_semicolon</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-shadda" title="IBUS_KEY_Arabic_shadda">IBUS_KEY_Arabic_shadda</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sheen" title="IBUS_KEY_Arabic_sheen">IBUS_KEY_Arabic_sheen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sukun" title="IBUS_KEY_Arabic_sukun">IBUS_KEY_Arabic_sukun</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-superscript-alef" title="IBUS_KEY_Arabic_superscript_alef">IBUS_KEY_Arabic_superscript_alef</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-switch" title="IBUS_KEY_Arabic_switch">IBUS_KEY_Arabic_switch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tah" title="IBUS_KEY_Arabic_tah">IBUS_KEY_Arabic_tah</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tatweel" title="IBUS_KEY_Arabic_tatweel">IBUS_KEY_Arabic_tatweel</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tcheh" title="IBUS_KEY_Arabic_tcheh">IBUS_KEY_Arabic_tcheh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-teh" title="IBUS_KEY_Arabic_teh">IBUS_KEY_Arabic_teh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tehmarbuta" title="IBUS_KEY_Arabic_tehmarbuta">IBUS_KEY_Arabic_tehmarbuta</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-thal" title="IBUS_KEY_Arabic_thal">IBUS_KEY_Arabic_thal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-theh" title="IBUS_KEY_Arabic_theh">IBUS_KEY_Arabic_theh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tteh" title="IBUS_KEY_Arabic_tteh">IBUS_KEY_Arabic_tteh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-veh" title="IBUS_KEY_Arabic_veh">IBUS_KEY_Arabic_veh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-waw" title="IBUS_KEY_Arabic_waw">IBUS_KEY_Arabic_waw</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-yeh" title="IBUS_KEY_Arabic_yeh">IBUS_KEY_Arabic_yeh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-yeh-baree" title="IBUS_KEY_Arabic_yeh_baree">IBUS_KEY_Arabic_yeh_baree</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-zah" title="IBUS_KEY_Arabic_zah">IBUS_KEY_Arabic_zah</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-zain" title="IBUS_KEY_Arabic_zain">IBUS_KEY_Arabic_zain</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-aring" title="IBUS_KEY_aring">IBUS_KEY_aring</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Aring" title="IBUS_KEY_Aring">IBUS_KEY_Aring</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-accent" title="IBUS_KEY_Armenian_accent">IBUS_KEY_Armenian_accent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-amanak" title="IBUS_KEY_Armenian_amanak">IBUS_KEY_Armenian_amanak</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-apostrophe" title="IBUS_KEY_Armenian_apostrophe">IBUS_KEY_Armenian_apostrophe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-AT" title="IBUS_KEY_Armenian_AT">IBUS_KEY_Armenian_AT</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-at" title="IBUS_KEY_Armenian_at">IBUS_KEY_Armenian_at</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-AYB" title="IBUS_KEY_Armenian_AYB">IBUS_KEY_Armenian_AYB</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ayb" title="IBUS_KEY_Armenian_ayb">IBUS_KEY_Armenian_ayb</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-BEN" title="IBUS_KEY_Armenian_BEN">IBUS_KEY_Armenian_BEN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ben" title="IBUS_KEY_Armenian_ben">IBUS_KEY_Armenian_ben</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-but" title="IBUS_KEY_Armenian_but">IBUS_KEY_Armenian_but</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-cha" title="IBUS_KEY_Armenian_cha">IBUS_KEY_Armenian_cha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-CHA" title="IBUS_KEY_Armenian_CHA">IBUS_KEY_Armenian_CHA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-da" title="IBUS_KEY_Armenian_da">IBUS_KEY_Armenian_da</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-DA" title="IBUS_KEY_Armenian_DA">IBUS_KEY_Armenian_DA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-DZA" title="IBUS_KEY_Armenian_DZA">IBUS_KEY_Armenian_DZA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-dza" title="IBUS_KEY_Armenian_dza">IBUS_KEY_Armenian_dza</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-E" title="IBUS_KEY_Armenian_E">IBUS_KEY_Armenian_E</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-e" title="IBUS_KEY_Armenian_e">IBUS_KEY_Armenian_e</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-exclam" title="IBUS_KEY_Armenian_exclam">IBUS_KEY_Armenian_exclam</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-fe" title="IBUS_KEY_Armenian_fe">IBUS_KEY_Armenian_fe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-FE" title="IBUS_KEY_Armenian_FE">IBUS_KEY_Armenian_FE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-full-stop" title="IBUS_KEY_Armenian_full_stop">IBUS_KEY_Armenian_full_stop</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-GHAT" title="IBUS_KEY_Armenian_GHAT">IBUS_KEY_Armenian_GHAT</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ghat" title="IBUS_KEY_Armenian_ghat">IBUS_KEY_Armenian_ghat</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-gim" title="IBUS_KEY_Armenian_gim">IBUS_KEY_Armenian_gim</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-GIM" title="IBUS_KEY_Armenian_GIM">IBUS_KEY_Armenian_GIM</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-hi" title="IBUS_KEY_Armenian_hi">IBUS_KEY_Armenian_hi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-HI" title="IBUS_KEY_Armenian_HI">IBUS_KEY_Armenian_HI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-HO" title="IBUS_KEY_Armenian_HO">IBUS_KEY_Armenian_HO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ho" title="IBUS_KEY_Armenian_ho">IBUS_KEY_Armenian_ho</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-hyphen" title="IBUS_KEY_Armenian_hyphen">IBUS_KEY_Armenian_hyphen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ini" title="IBUS_KEY_Armenian_ini">IBUS_KEY_Armenian_ini</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-INI" title="IBUS_KEY_Armenian_INI">IBUS_KEY_Armenian_INI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-JE" title="IBUS_KEY_Armenian_JE">IBUS_KEY_Armenian_JE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-je" title="IBUS_KEY_Armenian_je">IBUS_KEY_Armenian_je</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KE" title="IBUS_KEY_Armenian_KE">IBUS_KEY_Armenian_KE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ke" title="IBUS_KEY_Armenian_ke">IBUS_KEY_Armenian_ke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KEN" title="IBUS_KEY_Armenian_KEN">IBUS_KEY_Armenian_KEN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ken" title="IBUS_KEY_Armenian_ken">IBUS_KEY_Armenian_ken</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-khe" title="IBUS_KEY_Armenian_khe">IBUS_KEY_Armenian_khe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KHE" title="IBUS_KEY_Armenian_KHE">IBUS_KEY_Armenian_KHE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ligature-ew" title="IBUS_KEY_Armenian_ligature_ew">IBUS_KEY_Armenian_ligature_ew</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-LYUN" title="IBUS_KEY_Armenian_LYUN">IBUS_KEY_Armenian_LYUN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-lyun" title="IBUS_KEY_Armenian_lyun">IBUS_KEY_Armenian_lyun</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-MEN" title="IBUS_KEY_Armenian_MEN">IBUS_KEY_Armenian_MEN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-men" title="IBUS_KEY_Armenian_men">IBUS_KEY_Armenian_men</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-nu" title="IBUS_KEY_Armenian_nu">IBUS_KEY_Armenian_nu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-NU" title="IBUS_KEY_Armenian_NU">IBUS_KEY_Armenian_NU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-O" title="IBUS_KEY_Armenian_O">IBUS_KEY_Armenian_O</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-o" title="IBUS_KEY_Armenian_o">IBUS_KEY_Armenian_o</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-paruyk" title="IBUS_KEY_Armenian_paruyk">IBUS_KEY_Armenian_paruyk</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-pe" title="IBUS_KEY_Armenian_pe">IBUS_KEY_Armenian_pe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-PE" title="IBUS_KEY_Armenian_PE">IBUS_KEY_Armenian_PE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-PYUR" title="IBUS_KEY_Armenian_PYUR">IBUS_KEY_Armenian_PYUR</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-pyur" title="IBUS_KEY_Armenian_pyur">IBUS_KEY_Armenian_pyur</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-question" title="IBUS_KEY_Armenian_question">IBUS_KEY_Armenian_question</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ra" title="IBUS_KEY_Armenian_ra">IBUS_KEY_Armenian_ra</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-RA" title="IBUS_KEY_Armenian_RA">IBUS_KEY_Armenian_RA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-RE" title="IBUS_KEY_Armenian_RE">IBUS_KEY_Armenian_RE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-re" title="IBUS_KEY_Armenian_re">IBUS_KEY_Armenian_re</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-SE" title="IBUS_KEY_Armenian_SE">IBUS_KEY_Armenian_SE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-se" title="IBUS_KEY_Armenian_se">IBUS_KEY_Armenian_se</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-separation-mark" title="IBUS_KEY_Armenian_separation_mark">IBUS_KEY_Armenian_separation_mark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-sha" title="IBUS_KEY_Armenian_sha">IBUS_KEY_Armenian_sha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-SHA" title="IBUS_KEY_Armenian_SHA">IBUS_KEY_Armenian_SHA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-shesht" title="IBUS_KEY_Armenian_shesht">IBUS_KEY_Armenian_shesht</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TCHE" title="IBUS_KEY_Armenian_TCHE">IBUS_KEY_Armenian_TCHE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tche" title="IBUS_KEY_Armenian_tche">IBUS_KEY_Armenian_tche</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TO" title="IBUS_KEY_Armenian_TO">IBUS_KEY_Armenian_TO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-to" title="IBUS_KEY_Armenian_to">IBUS_KEY_Armenian_to</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tsa" title="IBUS_KEY_Armenian_tsa">IBUS_KEY_Armenian_tsa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TSA" title="IBUS_KEY_Armenian_TSA">IBUS_KEY_Armenian_TSA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tso" title="IBUS_KEY_Armenian_tso">IBUS_KEY_Armenian_tso</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TSO" title="IBUS_KEY_Armenian_TSO">IBUS_KEY_Armenian_TSO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tyun" title="IBUS_KEY_Armenian_tyun">IBUS_KEY_Armenian_tyun</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TYUN" title="IBUS_KEY_Armenian_TYUN">IBUS_KEY_Armenian_TYUN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-verjaket" title="IBUS_KEY_Armenian_verjaket">IBUS_KEY_Armenian_verjaket</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VEV" title="IBUS_KEY_Armenian_VEV">IBUS_KEY_Armenian_VEV</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vev" title="IBUS_KEY_Armenian_vev">IBUS_KEY_Armenian_vev</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vo" title="IBUS_KEY_Armenian_vo">IBUS_KEY_Armenian_vo</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VO" title="IBUS_KEY_Armenian_VO">IBUS_KEY_Armenian_VO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VYUN" title="IBUS_KEY_Armenian_VYUN">IBUS_KEY_Armenian_VYUN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vyun" title="IBUS_KEY_Armenian_vyun">IBUS_KEY_Armenian_vyun</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-yech" title="IBUS_KEY_Armenian_yech">IBUS_KEY_Armenian_yech</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-YECH" title="IBUS_KEY_Armenian_YECH">IBUS_KEY_Armenian_YECH</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-yentamna" title="IBUS_KEY_Armenian_yentamna">IBUS_KEY_Armenian_yentamna</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ZA" title="IBUS_KEY_Armenian_ZA">IBUS_KEY_Armenian_ZA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-za" title="IBUS_KEY_Armenian_za">IBUS_KEY_Armenian_za</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ZHE" title="IBUS_KEY_Armenian_ZHE">IBUS_KEY_Armenian_ZHE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-zhe" title="IBUS_KEY_Armenian_zhe">IBUS_KEY_Armenian_zhe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-asciicircum" title="IBUS_KEY_asciicircum">IBUS_KEY_asciicircum</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-asciitilde" title="IBUS_KEY_asciitilde">IBUS_KEY_asciitilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-asterisk" title="IBUS_KEY_asterisk">IBUS_KEY_asterisk</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-at" title="IBUS_KEY_at">IBUS_KEY_at</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Atilde" title="IBUS_KEY_Atilde">IBUS_KEY_Atilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-atilde" title="IBUS_KEY_atilde">IBUS_KEY_atilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-AudibleBell-Enable" title="IBUS_KEY_AudibleBell_Enable">IBUS_KEY_AudibleBell_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-B:CAPS" title="IBUS_KEY_B">IBUS_KEY_B</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-b" title="IBUS_KEY_b">IBUS_KEY_b</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-babovedot" title="IBUS_KEY_babovedot">IBUS_KEY_babovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Babovedot" title="IBUS_KEY_Babovedot">IBUS_KEY_Babovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-backslash" title="IBUS_KEY_backslash">IBUS_KEY_backslash</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-BackSpace" title="IBUS_KEY_BackSpace">IBUS_KEY_BackSpace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ballotcross" title="IBUS_KEY_ballotcross">IBUS_KEY_ballotcross</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-bar" title="IBUS_KEY_bar">IBUS_KEY_bar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-because" title="IBUS_KEY_because">IBUS_KEY_because</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Begin" title="IBUS_KEY_Begin">IBUS_KEY_Begin</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-blank" title="IBUS_KEY_blank">IBUS_KEY_blank</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botintegral" title="IBUS_KEY_botintegral">IBUS_KEY_botintegral</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botleftparens" title="IBUS_KEY_botleftparens">IBUS_KEY_botleftparens</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botleftsqbracket" title="IBUS_KEY_botleftsqbracket">IBUS_KEY_botleftsqbracket</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botleftsummation" title="IBUS_KEY_botleftsummation">IBUS_KEY_botleftsummation</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botrightparens" title="IBUS_KEY_botrightparens">IBUS_KEY_botrightparens</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botrightsqbracket" title="IBUS_KEY_botrightsqbracket">IBUS_KEY_botrightsqbracket</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botrightsummation" title="IBUS_KEY_botrightsummation">IBUS_KEY_botrightsummation</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-bott" title="IBUS_KEY_bott">IBUS_KEY_bott</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botvertsummationconnector" title="IBUS_KEY_botvertsummationconnector">IBUS_KEY_botvertsummationconnector</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-BounceKeys-Enable" title="IBUS_KEY_BounceKeys_Enable">IBUS_KEY_BounceKeys_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braceleft" title="IBUS_KEY_braceleft">IBUS_KEY_braceleft</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braceright" title="IBUS_KEY_braceright">IBUS_KEY_braceright</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-bracketleft" title="IBUS_KEY_bracketleft">IBUS_KEY_bracketleft</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-bracketright" title="IBUS_KEY_bracketright">IBUS_KEY_bracketright</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-blank" title="IBUS_KEY_braille_blank">IBUS_KEY_braille_blank</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1" title="IBUS_KEY_braille_dots_1">IBUS_KEY_braille_dots_1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12" title="IBUS_KEY_braille_dots_12">IBUS_KEY_braille_dots_12</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123" title="IBUS_KEY_braille_dots_123">IBUS_KEY_braille_dots_123</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234" title="IBUS_KEY_braille_dots_1234">IBUS_KEY_braille_dots_1234</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12345" title="IBUS_KEY_braille_dots_12345">IBUS_KEY_braille_dots_12345</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123456" title="IBUS_KEY_braille_dots_123456">IBUS_KEY_braille_dots_123456</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234567" title="IBUS_KEY_braille_dots_1234567">IBUS_KEY_braille_dots_1234567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12345678" title="IBUS_KEY_braille_dots_12345678">IBUS_KEY_braille_dots_12345678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234568" title="IBUS_KEY_braille_dots_1234568">IBUS_KEY_braille_dots_1234568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123457" title="IBUS_KEY_braille_dots_123457">IBUS_KEY_braille_dots_123457</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234578" title="IBUS_KEY_braille_dots_1234578">IBUS_KEY_braille_dots_1234578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123458" title="IBUS_KEY_braille_dots_123458">IBUS_KEY_braille_dots_123458</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12346" title="IBUS_KEY_braille_dots_12346">IBUS_KEY_braille_dots_12346</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123467" title="IBUS_KEY_braille_dots_123467">IBUS_KEY_braille_dots_123467</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234678" title="IBUS_KEY_braille_dots_1234678">IBUS_KEY_braille_dots_1234678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123468" title="IBUS_KEY_braille_dots_123468">IBUS_KEY_braille_dots_123468</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12347" title="IBUS_KEY_braille_dots_12347">IBUS_KEY_braille_dots_12347</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123478" title="IBUS_KEY_braille_dots_123478">IBUS_KEY_braille_dots_123478</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12348" title="IBUS_KEY_braille_dots_12348">IBUS_KEY_braille_dots_12348</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1235" title="IBUS_KEY_braille_dots_1235">IBUS_KEY_braille_dots_1235</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12356" title="IBUS_KEY_braille_dots_12356">IBUS_KEY_braille_dots_12356</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123567" title="IBUS_KEY_braille_dots_123567">IBUS_KEY_braille_dots_123567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1235678" title="IBUS_KEY_braille_dots_1235678">IBUS_KEY_braille_dots_1235678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123568" title="IBUS_KEY_braille_dots_123568">IBUS_KEY_braille_dots_123568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12357" title="IBUS_KEY_braille_dots_12357">IBUS_KEY_braille_dots_12357</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123578" title="IBUS_KEY_braille_dots_123578">IBUS_KEY_braille_dots_123578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12358" title="IBUS_KEY_braille_dots_12358">IBUS_KEY_braille_dots_12358</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1236" title="IBUS_KEY_braille_dots_1236">IBUS_KEY_braille_dots_1236</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12367" title="IBUS_KEY_braille_dots_12367">IBUS_KEY_braille_dots_12367</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123678" title="IBUS_KEY_braille_dots_123678">IBUS_KEY_braille_dots_123678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12368" title="IBUS_KEY_braille_dots_12368">IBUS_KEY_braille_dots_12368</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1237" title="IBUS_KEY_braille_dots_1237">IBUS_KEY_braille_dots_1237</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12378" title="IBUS_KEY_braille_dots_12378">IBUS_KEY_braille_dots_12378</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1238" title="IBUS_KEY_braille_dots_1238">IBUS_KEY_braille_dots_1238</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124" title="IBUS_KEY_braille_dots_124">IBUS_KEY_braille_dots_124</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1245" title="IBUS_KEY_braille_dots_1245">IBUS_KEY_braille_dots_1245</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12456" title="IBUS_KEY_braille_dots_12456">IBUS_KEY_braille_dots_12456</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124567" title="IBUS_KEY_braille_dots_124567">IBUS_KEY_braille_dots_124567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1245678" title="IBUS_KEY_braille_dots_1245678">IBUS_KEY_braille_dots_1245678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124568" title="IBUS_KEY_braille_dots_124568">IBUS_KEY_braille_dots_124568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12457" title="IBUS_KEY_braille_dots_12457">IBUS_KEY_braille_dots_12457</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124578" title="IBUS_KEY_braille_dots_124578">IBUS_KEY_braille_dots_124578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12458" title="IBUS_KEY_braille_dots_12458">IBUS_KEY_braille_dots_12458</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1246" title="IBUS_KEY_braille_dots_1246">IBUS_KEY_braille_dots_1246</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12467" title="IBUS_KEY_braille_dots_12467">IBUS_KEY_braille_dots_12467</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124678" title="IBUS_KEY_braille_dots_124678">IBUS_KEY_braille_dots_124678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12468" title="IBUS_KEY_braille_dots_12468">IBUS_KEY_braille_dots_12468</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1247" title="IBUS_KEY_braille_dots_1247">IBUS_KEY_braille_dots_1247</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12478" title="IBUS_KEY_braille_dots_12478">IBUS_KEY_braille_dots_12478</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1248" title="IBUS_KEY_braille_dots_1248">IBUS_KEY_braille_dots_1248</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-125" title="IBUS_KEY_braille_dots_125">IBUS_KEY_braille_dots_125</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1256" title="IBUS_KEY_braille_dots_1256">IBUS_KEY_braille_dots_1256</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12567" title="IBUS_KEY_braille_dots_12567">IBUS_KEY_braille_dots_12567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-125678" title="IBUS_KEY_braille_dots_125678">IBUS_KEY_braille_dots_125678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12568" title="IBUS_KEY_braille_dots_12568">IBUS_KEY_braille_dots_12568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1257" title="IBUS_KEY_braille_dots_1257">IBUS_KEY_braille_dots_1257</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12578" title="IBUS_KEY_braille_dots_12578">IBUS_KEY_braille_dots_12578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1258" title="IBUS_KEY_braille_dots_1258">IBUS_KEY_braille_dots_1258</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-126" title="IBUS_KEY_braille_dots_126">IBUS_KEY_braille_dots_126</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1267" title="IBUS_KEY_braille_dots_1267">IBUS_KEY_braille_dots_1267</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12678" title="IBUS_KEY_braille_dots_12678">IBUS_KEY_braille_dots_12678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1268" title="IBUS_KEY_braille_dots_1268">IBUS_KEY_braille_dots_1268</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-127" title="IBUS_KEY_braille_dots_127">IBUS_KEY_braille_dots_127</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1278" title="IBUS_KEY_braille_dots_1278">IBUS_KEY_braille_dots_1278</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-128" title="IBUS_KEY_braille_dots_128">IBUS_KEY_braille_dots_128</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13" title="IBUS_KEY_braille_dots_13">IBUS_KEY_braille_dots_13</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134" title="IBUS_KEY_braille_dots_134">IBUS_KEY_braille_dots_134</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1345" title="IBUS_KEY_braille_dots_1345">IBUS_KEY_braille_dots_1345</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13456" title="IBUS_KEY_braille_dots_13456">IBUS_KEY_braille_dots_13456</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134567" title="IBUS_KEY_braille_dots_134567">IBUS_KEY_braille_dots_134567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1345678" title="IBUS_KEY_braille_dots_1345678">IBUS_KEY_braille_dots_1345678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134568" title="IBUS_KEY_braille_dots_134568">IBUS_KEY_braille_dots_134568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13457" title="IBUS_KEY_braille_dots_13457">IBUS_KEY_braille_dots_13457</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134578" title="IBUS_KEY_braille_dots_134578">IBUS_KEY_braille_dots_134578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13458" title="IBUS_KEY_braille_dots_13458">IBUS_KEY_braille_dots_13458</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1346" title="IBUS_KEY_braille_dots_1346">IBUS_KEY_braille_dots_1346</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13467" title="IBUS_KEY_braille_dots_13467">IBUS_KEY_braille_dots_13467</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134678" title="IBUS_KEY_braille_dots_134678">IBUS_KEY_braille_dots_134678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13468" title="IBUS_KEY_braille_dots_13468">IBUS_KEY_braille_dots_13468</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1347" title="IBUS_KEY_braille_dots_1347">IBUS_KEY_braille_dots_1347</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13478" title="IBUS_KEY_braille_dots_13478">IBUS_KEY_braille_dots_13478</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1348" title="IBUS_KEY_braille_dots_1348">IBUS_KEY_braille_dots_1348</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-135" title="IBUS_KEY_braille_dots_135">IBUS_KEY_braille_dots_135</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1356" title="IBUS_KEY_braille_dots_1356">IBUS_KEY_braille_dots_1356</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13567" title="IBUS_KEY_braille_dots_13567">IBUS_KEY_braille_dots_13567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-135678" title="IBUS_KEY_braille_dots_135678">IBUS_KEY_braille_dots_135678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13568" title="IBUS_KEY_braille_dots_13568">IBUS_KEY_braille_dots_13568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1357" title="IBUS_KEY_braille_dots_1357">IBUS_KEY_braille_dots_1357</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13578" title="IBUS_KEY_braille_dots_13578">IBUS_KEY_braille_dots_13578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1358" title="IBUS_KEY_braille_dots_1358">IBUS_KEY_braille_dots_1358</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-136" title="IBUS_KEY_braille_dots_136">IBUS_KEY_braille_dots_136</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1367" title="IBUS_KEY_braille_dots_1367">IBUS_KEY_braille_dots_1367</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13678" title="IBUS_KEY_braille_dots_13678">IBUS_KEY_braille_dots_13678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1368" title="IBUS_KEY_braille_dots_1368">IBUS_KEY_braille_dots_1368</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-137" title="IBUS_KEY_braille_dots_137">IBUS_KEY_braille_dots_137</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1378" title="IBUS_KEY_braille_dots_1378">IBUS_KEY_braille_dots_1378</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-138" title="IBUS_KEY_braille_dots_138">IBUS_KEY_braille_dots_138</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14" title="IBUS_KEY_braille_dots_14">IBUS_KEY_braille_dots_14</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-145" title="IBUS_KEY_braille_dots_145">IBUS_KEY_braille_dots_145</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1456" title="IBUS_KEY_braille_dots_1456">IBUS_KEY_braille_dots_1456</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14567" title="IBUS_KEY_braille_dots_14567">IBUS_KEY_braille_dots_14567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-145678" title="IBUS_KEY_braille_dots_145678">IBUS_KEY_braille_dots_145678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14568" title="IBUS_KEY_braille_dots_14568">IBUS_KEY_braille_dots_14568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1457" title="IBUS_KEY_braille_dots_1457">IBUS_KEY_braille_dots_1457</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14578" title="IBUS_KEY_braille_dots_14578">IBUS_KEY_braille_dots_14578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1458" title="IBUS_KEY_braille_dots_1458">IBUS_KEY_braille_dots_1458</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-146" title="IBUS_KEY_braille_dots_146">IBUS_KEY_braille_dots_146</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1467" title="IBUS_KEY_braille_dots_1467">IBUS_KEY_braille_dots_1467</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14678" title="IBUS_KEY_braille_dots_14678">IBUS_KEY_braille_dots_14678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1468" title="IBUS_KEY_braille_dots_1468">IBUS_KEY_braille_dots_1468</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-147" title="IBUS_KEY_braille_dots_147">IBUS_KEY_braille_dots_147</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1478" title="IBUS_KEY_braille_dots_1478">IBUS_KEY_braille_dots_1478</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-148" title="IBUS_KEY_braille_dots_148">IBUS_KEY_braille_dots_148</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-15" title="IBUS_KEY_braille_dots_15">IBUS_KEY_braille_dots_15</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-156" title="IBUS_KEY_braille_dots_156">IBUS_KEY_braille_dots_156</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1567" title="IBUS_KEY_braille_dots_1567">IBUS_KEY_braille_dots_1567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-15678" title="IBUS_KEY_braille_dots_15678">IBUS_KEY_braille_dots_15678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1568" title="IBUS_KEY_braille_dots_1568">IBUS_KEY_braille_dots_1568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-157" title="IBUS_KEY_braille_dots_157">IBUS_KEY_braille_dots_157</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1578" title="IBUS_KEY_braille_dots_1578">IBUS_KEY_braille_dots_1578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-158" title="IBUS_KEY_braille_dots_158">IBUS_KEY_braille_dots_158</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-16" title="IBUS_KEY_braille_dots_16">IBUS_KEY_braille_dots_16</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-167" title="IBUS_KEY_braille_dots_167">IBUS_KEY_braille_dots_167</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1678" title="IBUS_KEY_braille_dots_1678">IBUS_KEY_braille_dots_1678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-168" title="IBUS_KEY_braille_dots_168">IBUS_KEY_braille_dots_168</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-17" title="IBUS_KEY_braille_dots_17">IBUS_KEY_braille_dots_17</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-178" title="IBUS_KEY_braille_dots_178">IBUS_KEY_braille_dots_178</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-18" title="IBUS_KEY_braille_dots_18">IBUS_KEY_braille_dots_18</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2" title="IBUS_KEY_braille_dots_2">IBUS_KEY_braille_dots_2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23" title="IBUS_KEY_braille_dots_23">IBUS_KEY_braille_dots_23</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234" title="IBUS_KEY_braille_dots_234">IBUS_KEY_braille_dots_234</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2345" title="IBUS_KEY_braille_dots_2345">IBUS_KEY_braille_dots_2345</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23456" title="IBUS_KEY_braille_dots_23456">IBUS_KEY_braille_dots_23456</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234567" title="IBUS_KEY_braille_dots_234567">IBUS_KEY_braille_dots_234567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2345678" title="IBUS_KEY_braille_dots_2345678">IBUS_KEY_braille_dots_2345678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234568" title="IBUS_KEY_braille_dots_234568">IBUS_KEY_braille_dots_234568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23457" title="IBUS_KEY_braille_dots_23457">IBUS_KEY_braille_dots_23457</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234578" title="IBUS_KEY_braille_dots_234578">IBUS_KEY_braille_dots_234578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23458" title="IBUS_KEY_braille_dots_23458">IBUS_KEY_braille_dots_23458</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2346" title="IBUS_KEY_braille_dots_2346">IBUS_KEY_braille_dots_2346</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23467" title="IBUS_KEY_braille_dots_23467">IBUS_KEY_braille_dots_23467</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234678" title="IBUS_KEY_braille_dots_234678">IBUS_KEY_braille_dots_234678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23468" title="IBUS_KEY_braille_dots_23468">IBUS_KEY_braille_dots_23468</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2347" title="IBUS_KEY_braille_dots_2347">IBUS_KEY_braille_dots_2347</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23478" title="IBUS_KEY_braille_dots_23478">IBUS_KEY_braille_dots_23478</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2348" title="IBUS_KEY_braille_dots_2348">IBUS_KEY_braille_dots_2348</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-235" title="IBUS_KEY_braille_dots_235">IBUS_KEY_braille_dots_235</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2356" title="IBUS_KEY_braille_dots_2356">IBUS_KEY_braille_dots_2356</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23567" title="IBUS_KEY_braille_dots_23567">IBUS_KEY_braille_dots_23567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-235678" title="IBUS_KEY_braille_dots_235678">IBUS_KEY_braille_dots_235678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23568" title="IBUS_KEY_braille_dots_23568">IBUS_KEY_braille_dots_23568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2357" title="IBUS_KEY_braille_dots_2357">IBUS_KEY_braille_dots_2357</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23578" title="IBUS_KEY_braille_dots_23578">IBUS_KEY_braille_dots_23578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2358" title="IBUS_KEY_braille_dots_2358">IBUS_KEY_braille_dots_2358</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-236" title="IBUS_KEY_braille_dots_236">IBUS_KEY_braille_dots_236</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2367" title="IBUS_KEY_braille_dots_2367">IBUS_KEY_braille_dots_2367</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23678" title="IBUS_KEY_braille_dots_23678">IBUS_KEY_braille_dots_23678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2368" title="IBUS_KEY_braille_dots_2368">IBUS_KEY_braille_dots_2368</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-237" title="IBUS_KEY_braille_dots_237">IBUS_KEY_braille_dots_237</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2378" title="IBUS_KEY_braille_dots_2378">IBUS_KEY_braille_dots_2378</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-238" title="IBUS_KEY_braille_dots_238">IBUS_KEY_braille_dots_238</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24" title="IBUS_KEY_braille_dots_24">IBUS_KEY_braille_dots_24</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-245" title="IBUS_KEY_braille_dots_245">IBUS_KEY_braille_dots_245</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2456" title="IBUS_KEY_braille_dots_2456">IBUS_KEY_braille_dots_2456</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24567" title="IBUS_KEY_braille_dots_24567">IBUS_KEY_braille_dots_24567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-245678" title="IBUS_KEY_braille_dots_245678">IBUS_KEY_braille_dots_245678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24568" title="IBUS_KEY_braille_dots_24568">IBUS_KEY_braille_dots_24568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2457" title="IBUS_KEY_braille_dots_2457">IBUS_KEY_braille_dots_2457</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24578" title="IBUS_KEY_braille_dots_24578">IBUS_KEY_braille_dots_24578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2458" title="IBUS_KEY_braille_dots_2458">IBUS_KEY_braille_dots_2458</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-246" title="IBUS_KEY_braille_dots_246">IBUS_KEY_braille_dots_246</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2467" title="IBUS_KEY_braille_dots_2467">IBUS_KEY_braille_dots_2467</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24678" title="IBUS_KEY_braille_dots_24678">IBUS_KEY_braille_dots_24678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2468" title="IBUS_KEY_braille_dots_2468">IBUS_KEY_braille_dots_2468</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-247" title="IBUS_KEY_braille_dots_247">IBUS_KEY_braille_dots_247</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2478" title="IBUS_KEY_braille_dots_2478">IBUS_KEY_braille_dots_2478</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-248" title="IBUS_KEY_braille_dots_248">IBUS_KEY_braille_dots_248</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-25" title="IBUS_KEY_braille_dots_25">IBUS_KEY_braille_dots_25</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-256" title="IBUS_KEY_braille_dots_256">IBUS_KEY_braille_dots_256</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2567" title="IBUS_KEY_braille_dots_2567">IBUS_KEY_braille_dots_2567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-25678" title="IBUS_KEY_braille_dots_25678">IBUS_KEY_braille_dots_25678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2568" title="IBUS_KEY_braille_dots_2568">IBUS_KEY_braille_dots_2568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-257" title="IBUS_KEY_braille_dots_257">IBUS_KEY_braille_dots_257</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2578" title="IBUS_KEY_braille_dots_2578">IBUS_KEY_braille_dots_2578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-258" title="IBUS_KEY_braille_dots_258">IBUS_KEY_braille_dots_258</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-26" title="IBUS_KEY_braille_dots_26">IBUS_KEY_braille_dots_26</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-267" title="IBUS_KEY_braille_dots_267">IBUS_KEY_braille_dots_267</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2678" title="IBUS_KEY_braille_dots_2678">IBUS_KEY_braille_dots_2678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-268" title="IBUS_KEY_braille_dots_268">IBUS_KEY_braille_dots_268</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-27" title="IBUS_KEY_braille_dots_27">IBUS_KEY_braille_dots_27</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-278" title="IBUS_KEY_braille_dots_278">IBUS_KEY_braille_dots_278</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-28" title="IBUS_KEY_braille_dots_28">IBUS_KEY_braille_dots_28</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3" title="IBUS_KEY_braille_dots_3">IBUS_KEY_braille_dots_3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34" title="IBUS_KEY_braille_dots_34">IBUS_KEY_braille_dots_34</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-345" title="IBUS_KEY_braille_dots_345">IBUS_KEY_braille_dots_345</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3456" title="IBUS_KEY_braille_dots_3456">IBUS_KEY_braille_dots_3456</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34567" title="IBUS_KEY_braille_dots_34567">IBUS_KEY_braille_dots_34567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-345678" title="IBUS_KEY_braille_dots_345678">IBUS_KEY_braille_dots_345678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34568" title="IBUS_KEY_braille_dots_34568">IBUS_KEY_braille_dots_34568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3457" title="IBUS_KEY_braille_dots_3457">IBUS_KEY_braille_dots_3457</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34578" title="IBUS_KEY_braille_dots_34578">IBUS_KEY_braille_dots_34578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3458" title="IBUS_KEY_braille_dots_3458">IBUS_KEY_braille_dots_3458</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-346" title="IBUS_KEY_braille_dots_346">IBUS_KEY_braille_dots_346</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3467" title="IBUS_KEY_braille_dots_3467">IBUS_KEY_braille_dots_3467</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34678" title="IBUS_KEY_braille_dots_34678">IBUS_KEY_braille_dots_34678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3468" title="IBUS_KEY_braille_dots_3468">IBUS_KEY_braille_dots_3468</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-347" title="IBUS_KEY_braille_dots_347">IBUS_KEY_braille_dots_347</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3478" title="IBUS_KEY_braille_dots_3478">IBUS_KEY_braille_dots_3478</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-348" title="IBUS_KEY_braille_dots_348">IBUS_KEY_braille_dots_348</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-35" title="IBUS_KEY_braille_dots_35">IBUS_KEY_braille_dots_35</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-356" title="IBUS_KEY_braille_dots_356">IBUS_KEY_braille_dots_356</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3567" title="IBUS_KEY_braille_dots_3567">IBUS_KEY_braille_dots_3567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-35678" title="IBUS_KEY_braille_dots_35678">IBUS_KEY_braille_dots_35678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3568" title="IBUS_KEY_braille_dots_3568">IBUS_KEY_braille_dots_3568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-357" title="IBUS_KEY_braille_dots_357">IBUS_KEY_braille_dots_357</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3578" title="IBUS_KEY_braille_dots_3578">IBUS_KEY_braille_dots_3578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-358" title="IBUS_KEY_braille_dots_358">IBUS_KEY_braille_dots_358</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-36" title="IBUS_KEY_braille_dots_36">IBUS_KEY_braille_dots_36</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-367" title="IBUS_KEY_braille_dots_367">IBUS_KEY_braille_dots_367</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3678" title="IBUS_KEY_braille_dots_3678">IBUS_KEY_braille_dots_3678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-368" title="IBUS_KEY_braille_dots_368">IBUS_KEY_braille_dots_368</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-37" title="IBUS_KEY_braille_dots_37">IBUS_KEY_braille_dots_37</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-378" title="IBUS_KEY_braille_dots_378">IBUS_KEY_braille_dots_378</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-38" title="IBUS_KEY_braille_dots_38">IBUS_KEY_braille_dots_38</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4" title="IBUS_KEY_braille_dots_4">IBUS_KEY_braille_dots_4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-45" title="IBUS_KEY_braille_dots_45">IBUS_KEY_braille_dots_45</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-456" title="IBUS_KEY_braille_dots_456">IBUS_KEY_braille_dots_456</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4567" title="IBUS_KEY_braille_dots_4567">IBUS_KEY_braille_dots_4567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-45678" title="IBUS_KEY_braille_dots_45678">IBUS_KEY_braille_dots_45678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4568" title="IBUS_KEY_braille_dots_4568">IBUS_KEY_braille_dots_4568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-457" title="IBUS_KEY_braille_dots_457">IBUS_KEY_braille_dots_457</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4578" title="IBUS_KEY_braille_dots_4578">IBUS_KEY_braille_dots_4578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-458" title="IBUS_KEY_braille_dots_458">IBUS_KEY_braille_dots_458</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-46" title="IBUS_KEY_braille_dots_46">IBUS_KEY_braille_dots_46</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-467" title="IBUS_KEY_braille_dots_467">IBUS_KEY_braille_dots_467</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4678" title="IBUS_KEY_braille_dots_4678">IBUS_KEY_braille_dots_4678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-468" title="IBUS_KEY_braille_dots_468">IBUS_KEY_braille_dots_468</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-47" title="IBUS_KEY_braille_dots_47">IBUS_KEY_braille_dots_47</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-478" title="IBUS_KEY_braille_dots_478">IBUS_KEY_braille_dots_478</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-48" title="IBUS_KEY_braille_dots_48">IBUS_KEY_braille_dots_48</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-5" title="IBUS_KEY_braille_dots_5">IBUS_KEY_braille_dots_5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-56" title="IBUS_KEY_braille_dots_56">IBUS_KEY_braille_dots_56</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-567" title="IBUS_KEY_braille_dots_567">IBUS_KEY_braille_dots_567</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-5678" title="IBUS_KEY_braille_dots_5678">IBUS_KEY_braille_dots_5678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-568" title="IBUS_KEY_braille_dots_568">IBUS_KEY_braille_dots_568</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-57" title="IBUS_KEY_braille_dots_57">IBUS_KEY_braille_dots_57</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-578" title="IBUS_KEY_braille_dots_578">IBUS_KEY_braille_dots_578</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-58" title="IBUS_KEY_braille_dots_58">IBUS_KEY_braille_dots_58</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-6" title="IBUS_KEY_braille_dots_6">IBUS_KEY_braille_dots_6</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-67" title="IBUS_KEY_braille_dots_67">IBUS_KEY_braille_dots_67</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-678" title="IBUS_KEY_braille_dots_678">IBUS_KEY_braille_dots_678</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-68" title="IBUS_KEY_braille_dots_68">IBUS_KEY_braille_dots_68</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-7" title="IBUS_KEY_braille_dots_7">IBUS_KEY_braille_dots_7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-78" title="IBUS_KEY_braille_dots_78">IBUS_KEY_braille_dots_78</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-8" title="IBUS_KEY_braille_dots_8">IBUS_KEY_braille_dots_8</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-1" title="IBUS_KEY_braille_dot_1">IBUS_KEY_braille_dot_1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-10" title="IBUS_KEY_braille_dot_10">IBUS_KEY_braille_dot_10</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-2" title="IBUS_KEY_braille_dot_2">IBUS_KEY_braille_dot_2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-3" title="IBUS_KEY_braille_dot_3">IBUS_KEY_braille_dot_3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-4" title="IBUS_KEY_braille_dot_4">IBUS_KEY_braille_dot_4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-5" title="IBUS_KEY_braille_dot_5">IBUS_KEY_braille_dot_5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-6" title="IBUS_KEY_braille_dot_6">IBUS_KEY_braille_dot_6</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-7" title="IBUS_KEY_braille_dot_7">IBUS_KEY_braille_dot_7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-8" title="IBUS_KEY_braille_dot_8">IBUS_KEY_braille_dot_8</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-9" title="IBUS_KEY_braille_dot_9">IBUS_KEY_braille_dot_9</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Break" title="IBUS_KEY_Break">IBUS_KEY_Break</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-breve" title="IBUS_KEY_breve">IBUS_KEY_breve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-brokenbar" title="IBUS_KEY_brokenbar">IBUS_KEY_brokenbar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Byelorussian-SHORTU" title="IBUS_KEY_Byelorussian_SHORTU">IBUS_KEY_Byelorussian_SHORTU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Byelorussian-shortu" title="IBUS_KEY_Byelorussian_shortu">IBUS_KEY_Byelorussian_shortu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-C:CAPS" title="IBUS_KEY_C">IBUS_KEY_C</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-c" title="IBUS_KEY_c">IBUS_KEY_c</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cabovedot" title="IBUS_KEY_cabovedot">IBUS_KEY_cabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cabovedot" title="IBUS_KEY_Cabovedot">IBUS_KEY_Cabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cacute" title="IBUS_KEY_Cacute">IBUS_KEY_Cacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cacute" title="IBUS_KEY_cacute">IBUS_KEY_cacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cancel" title="IBUS_KEY_Cancel">IBUS_KEY_Cancel</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Caps-Lock" title="IBUS_KEY_Caps_Lock">IBUS_KEY_Caps_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-careof" title="IBUS_KEY_careof">IBUS_KEY_careof</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-caret" title="IBUS_KEY_caret">IBUS_KEY_caret</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-caron" title="IBUS_KEY_caron">IBUS_KEY_caron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ccaron" title="IBUS_KEY_Ccaron">IBUS_KEY_Ccaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ccaron" title="IBUS_KEY_ccaron">IBUS_KEY_ccaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ccedilla" title="IBUS_KEY_Ccedilla">IBUS_KEY_Ccedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ccedilla" title="IBUS_KEY_ccedilla">IBUS_KEY_ccedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ccircumflex" title="IBUS_KEY_ccircumflex">IBUS_KEY_ccircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ccircumflex" title="IBUS_KEY_Ccircumflex">IBUS_KEY_Ccircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cedilla" title="IBUS_KEY_cedilla">IBUS_KEY_cedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cent" title="IBUS_KEY_cent">IBUS_KEY_cent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ch" title="IBUS_KEY_Ch">IBUS_KEY_Ch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ch" title="IBUS_KEY_ch">IBUS_KEY_ch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-CH:CAPS" title="IBUS_KEY_CH">IBUS_KEY_CH</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-checkerboard" title="IBUS_KEY_checkerboard">IBUS_KEY_checkerboard</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-checkmark" title="IBUS_KEY_checkmark">IBUS_KEY_checkmark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-circle" title="IBUS_KEY_circle">IBUS_KEY_circle</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Clear" title="IBUS_KEY_Clear">IBUS_KEY_Clear</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-club" title="IBUS_KEY_club">IBUS_KEY_club</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Codeinput" title="IBUS_KEY_Codeinput">IBUS_KEY_Codeinput</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-colon" title="IBUS_KEY_colon">IBUS_KEY_colon</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ColonSign" title="IBUS_KEY_ColonSign">IBUS_KEY_ColonSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-comma" title="IBUS_KEY_comma">IBUS_KEY_comma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-containsas" title="IBUS_KEY_containsas">IBUS_KEY_containsas</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Control-L" title="IBUS_KEY_Control_L">IBUS_KEY_Control_L</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Control-R" title="IBUS_KEY_Control_R">IBUS_KEY_Control_R</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-copyright" title="IBUS_KEY_copyright">IBUS_KEY_copyright</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cr" title="IBUS_KEY_cr">IBUS_KEY_cr</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-crossinglines" title="IBUS_KEY_crossinglines">IBUS_KEY_crossinglines</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-CruzeiroSign" title="IBUS_KEY_CruzeiroSign">IBUS_KEY_CruzeiroSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cuberoot" title="IBUS_KEY_cuberoot">IBUS_KEY_cuberoot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-currency" title="IBUS_KEY_currency">IBUS_KEY_currency</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cursor" title="IBUS_KEY_cursor">IBUS_KEY_cursor</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-a" title="IBUS_KEY_Cyrillic_a">IBUS_KEY_Cyrillic_a</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-A" title="IBUS_KEY_Cyrillic_A">IBUS_KEY_Cyrillic_A</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-BE" title="IBUS_KEY_Cyrillic_BE">IBUS_KEY_Cyrillic_BE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-be" title="IBUS_KEY_Cyrillic_be">IBUS_KEY_Cyrillic_be</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE" title="IBUS_KEY_Cyrillic_CHE">IBUS_KEY_Cyrillic_CHE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che" title="IBUS_KEY_Cyrillic_che">IBUS_KEY_Cyrillic_che</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che-descender" title="IBUS_KEY_Cyrillic_che_descender">IBUS_KEY_Cyrillic_che_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE-descender" title="IBUS_KEY_Cyrillic_CHE_descender">IBUS_KEY_Cyrillic_CHE_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che-vertstroke" title="IBUS_KEY_Cyrillic_che_vertstroke">IBUS_KEY_Cyrillic_che_vertstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE-vertstroke" title="IBUS_KEY_Cyrillic_CHE_vertstroke">IBUS_KEY_Cyrillic_CHE_vertstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-de" title="IBUS_KEY_Cyrillic_de">IBUS_KEY_Cyrillic_de</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-DE" title="IBUS_KEY_Cyrillic_DE">IBUS_KEY_Cyrillic_DE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-dzhe" title="IBUS_KEY_Cyrillic_dzhe">IBUS_KEY_Cyrillic_dzhe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-DZHE" title="IBUS_KEY_Cyrillic_DZHE">IBUS_KEY_Cyrillic_DZHE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-E" title="IBUS_KEY_Cyrillic_E">IBUS_KEY_Cyrillic_E</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-e" title="IBUS_KEY_Cyrillic_e">IBUS_KEY_Cyrillic_e</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ef" title="IBUS_KEY_Cyrillic_ef">IBUS_KEY_Cyrillic_ef</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EF" title="IBUS_KEY_Cyrillic_EF">IBUS_KEY_Cyrillic_EF</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EL" title="IBUS_KEY_Cyrillic_EL">IBUS_KEY_Cyrillic_EL</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-el" title="IBUS_KEY_Cyrillic_el">IBUS_KEY_Cyrillic_el</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-em" title="IBUS_KEY_Cyrillic_em">IBUS_KEY_Cyrillic_em</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EM" title="IBUS_KEY_Cyrillic_EM">IBUS_KEY_Cyrillic_EM</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-en" title="IBUS_KEY_Cyrillic_en">IBUS_KEY_Cyrillic_en</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EN" title="IBUS_KEY_Cyrillic_EN">IBUS_KEY_Cyrillic_EN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EN-descender" title="IBUS_KEY_Cyrillic_EN_descender">IBUS_KEY_Cyrillic_EN_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-en-descender" title="IBUS_KEY_Cyrillic_en_descender">IBUS_KEY_Cyrillic_en_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-er" title="IBUS_KEY_Cyrillic_er">IBUS_KEY_Cyrillic_er</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ER" title="IBUS_KEY_Cyrillic_ER">IBUS_KEY_Cyrillic_ER</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ES" title="IBUS_KEY_Cyrillic_ES">IBUS_KEY_Cyrillic_ES</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-es" title="IBUS_KEY_Cyrillic_es">IBUS_KEY_Cyrillic_es</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-GHE" title="IBUS_KEY_Cyrillic_GHE">IBUS_KEY_Cyrillic_GHE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ghe" title="IBUS_KEY_Cyrillic_ghe">IBUS_KEY_Cyrillic_ghe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-GHE-bar" title="IBUS_KEY_Cyrillic_GHE_bar">IBUS_KEY_Cyrillic_GHE_bar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ghe-bar" title="IBUS_KEY_Cyrillic_ghe_bar">IBUS_KEY_Cyrillic_ghe_bar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HA" title="IBUS_KEY_Cyrillic_HA">IBUS_KEY_Cyrillic_HA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ha" title="IBUS_KEY_Cyrillic_ha">IBUS_KEY_Cyrillic_ha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-hardsign" title="IBUS_KEY_Cyrillic_hardsign">IBUS_KEY_Cyrillic_hardsign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HARDSIGN" title="IBUS_KEY_Cyrillic_HARDSIGN">IBUS_KEY_Cyrillic_HARDSIGN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ha-descender" title="IBUS_KEY_Cyrillic_ha_descender">IBUS_KEY_Cyrillic_ha_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HA-descender" title="IBUS_KEY_Cyrillic_HA_descender">IBUS_KEY_Cyrillic_HA_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-I" title="IBUS_KEY_Cyrillic_I">IBUS_KEY_Cyrillic_I</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-i" title="IBUS_KEY_Cyrillic_i">IBUS_KEY_Cyrillic_i</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ie" title="IBUS_KEY_Cyrillic_ie">IBUS_KEY_Cyrillic_ie</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-IE" title="IBUS_KEY_Cyrillic_IE">IBUS_KEY_Cyrillic_IE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-io" title="IBUS_KEY_Cyrillic_io">IBUS_KEY_Cyrillic_io</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-IO" title="IBUS_KEY_Cyrillic_IO">IBUS_KEY_Cyrillic_IO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-i-macron" title="IBUS_KEY_Cyrillic_i_macron">IBUS_KEY_Cyrillic_i_macron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-I-macron" title="IBUS_KEY_Cyrillic_I_macron">IBUS_KEY_Cyrillic_I_macron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-JE" title="IBUS_KEY_Cyrillic_JE">IBUS_KEY_Cyrillic_JE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-je" title="IBUS_KEY_Cyrillic_je">IBUS_KEY_Cyrillic_je</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA" title="IBUS_KEY_Cyrillic_KA">IBUS_KEY_Cyrillic_KA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka" title="IBUS_KEY_Cyrillic_ka">IBUS_KEY_Cyrillic_ka</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA-descender" title="IBUS_KEY_Cyrillic_KA_descender">IBUS_KEY_Cyrillic_KA_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka-descender" title="IBUS_KEY_Cyrillic_ka_descender">IBUS_KEY_Cyrillic_ka_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka-vertstroke" title="IBUS_KEY_Cyrillic_ka_vertstroke">IBUS_KEY_Cyrillic_ka_vertstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA-vertstroke" title="IBUS_KEY_Cyrillic_KA_vertstroke">IBUS_KEY_Cyrillic_KA_vertstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-lje" title="IBUS_KEY_Cyrillic_lje">IBUS_KEY_Cyrillic_lje</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-LJE" title="IBUS_KEY_Cyrillic_LJE">IBUS_KEY_Cyrillic_LJE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-nje" title="IBUS_KEY_Cyrillic_nje">IBUS_KEY_Cyrillic_nje</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-NJE" title="IBUS_KEY_Cyrillic_NJE">IBUS_KEY_Cyrillic_NJE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-o" title="IBUS_KEY_Cyrillic_o">IBUS_KEY_Cyrillic_o</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-O" title="IBUS_KEY_Cyrillic_O">IBUS_KEY_Cyrillic_O</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-o-bar" title="IBUS_KEY_Cyrillic_o_bar">IBUS_KEY_Cyrillic_o_bar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-O-bar" title="IBUS_KEY_Cyrillic_O_bar">IBUS_KEY_Cyrillic_O_bar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-PE" title="IBUS_KEY_Cyrillic_PE">IBUS_KEY_Cyrillic_PE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-pe" title="IBUS_KEY_Cyrillic_pe">IBUS_KEY_Cyrillic_pe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-schwa" title="IBUS_KEY_Cyrillic_schwa">IBUS_KEY_Cyrillic_schwa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SCHWA" title="IBUS_KEY_Cyrillic_SCHWA">IBUS_KEY_Cyrillic_SCHWA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-sha" title="IBUS_KEY_Cyrillic_sha">IBUS_KEY_Cyrillic_sha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHA" title="IBUS_KEY_Cyrillic_SHA">IBUS_KEY_Cyrillic_SHA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shcha" title="IBUS_KEY_Cyrillic_shcha">IBUS_KEY_Cyrillic_shcha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHCHA" title="IBUS_KEY_Cyrillic_SHCHA">IBUS_KEY_Cyrillic_SHCHA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shha" title="IBUS_KEY_Cyrillic_shha">IBUS_KEY_Cyrillic_shha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHHA" title="IBUS_KEY_Cyrillic_SHHA">IBUS_KEY_Cyrillic_SHHA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHORTI" title="IBUS_KEY_Cyrillic_SHORTI">IBUS_KEY_Cyrillic_SHORTI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shorti" title="IBUS_KEY_Cyrillic_shorti">IBUS_KEY_Cyrillic_shorti</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SOFTSIGN" title="IBUS_KEY_Cyrillic_SOFTSIGN">IBUS_KEY_Cyrillic_SOFTSIGN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-softsign" title="IBUS_KEY_Cyrillic_softsign">IBUS_KEY_Cyrillic_softsign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-te" title="IBUS_KEY_Cyrillic_te">IBUS_KEY_Cyrillic_te</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-TE" title="IBUS_KEY_Cyrillic_TE">IBUS_KEY_Cyrillic_TE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-tse" title="IBUS_KEY_Cyrillic_tse">IBUS_KEY_Cyrillic_tse</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-TSE" title="IBUS_KEY_Cyrillic_TSE">IBUS_KEY_Cyrillic_TSE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U" title="IBUS_KEY_Cyrillic_U">IBUS_KEY_Cyrillic_U</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u" title="IBUS_KEY_Cyrillic_u">IBUS_KEY_Cyrillic_u</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-macron" title="IBUS_KEY_Cyrillic_u_macron">IBUS_KEY_Cyrillic_u_macron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-macron" title="IBUS_KEY_Cyrillic_U_macron">IBUS_KEY_Cyrillic_U_macron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-straight" title="IBUS_KEY_Cyrillic_U_straight">IBUS_KEY_Cyrillic_U_straight</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-straight" title="IBUS_KEY_Cyrillic_u_straight">IBUS_KEY_Cyrillic_u_straight</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-straight-bar" title="IBUS_KEY_Cyrillic_U_straight_bar">IBUS_KEY_Cyrillic_U_straight_bar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-straight-bar" title="IBUS_KEY_Cyrillic_u_straight_bar">IBUS_KEY_Cyrillic_u_straight_bar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ve" title="IBUS_KEY_Cyrillic_ve">IBUS_KEY_Cyrillic_ve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-VE" title="IBUS_KEY_Cyrillic_VE">IBUS_KEY_Cyrillic_VE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ya" title="IBUS_KEY_Cyrillic_ya">IBUS_KEY_Cyrillic_ya</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YA" title="IBUS_KEY_Cyrillic_YA">IBUS_KEY_Cyrillic_YA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YERU" title="IBUS_KEY_Cyrillic_YERU">IBUS_KEY_Cyrillic_YERU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-yeru" title="IBUS_KEY_Cyrillic_yeru">IBUS_KEY_Cyrillic_yeru</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-yu" title="IBUS_KEY_Cyrillic_yu">IBUS_KEY_Cyrillic_yu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YU" title="IBUS_KEY_Cyrillic_YU">IBUS_KEY_Cyrillic_YU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ze" title="IBUS_KEY_Cyrillic_ze">IBUS_KEY_Cyrillic_ze</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZE" title="IBUS_KEY_Cyrillic_ZE">IBUS_KEY_Cyrillic_ZE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZHE" title="IBUS_KEY_Cyrillic_ZHE">IBUS_KEY_Cyrillic_ZHE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-zhe" title="IBUS_KEY_Cyrillic_zhe">IBUS_KEY_Cyrillic_zhe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZHE-descender" title="IBUS_KEY_Cyrillic_ZHE_descender">IBUS_KEY_Cyrillic_ZHE_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-zhe-descender" title="IBUS_KEY_Cyrillic_zhe_descender">IBUS_KEY_Cyrillic_zhe_descender</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-C-H:CAPS" title="IBUS_KEY_C_H">IBUS_KEY_C_H</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-C-h" title="IBUS_KEY_C_h">IBUS_KEY_C_h</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-c-h" title="IBUS_KEY_c_h">IBUS_KEY_c_h</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-D:CAPS" title="IBUS_KEY_D">IBUS_KEY_D</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-d" title="IBUS_KEY_d">IBUS_KEY_d</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Dabovedot" title="IBUS_KEY_Dabovedot">IBUS_KEY_Dabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dabovedot" title="IBUS_KEY_dabovedot">IBUS_KEY_dabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dagger" title="IBUS_KEY_dagger">IBUS_KEY_dagger</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dcaron" title="IBUS_KEY_dcaron">IBUS_KEY_dcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Dcaron" title="IBUS_KEY_Dcaron">IBUS_KEY_Dcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-a" title="IBUS_KEY_dead_a">IBUS_KEY_dead_a</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-A" title="IBUS_KEY_dead_A">IBUS_KEY_dead_A</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovecomma" title="IBUS_KEY_dead_abovecomma">IBUS_KEY_dead_abovecomma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovedot" title="IBUS_KEY_dead_abovedot">IBUS_KEY_dead_abovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovereversedcomma" title="IBUS_KEY_dead_abovereversedcomma">IBUS_KEY_dead_abovereversedcomma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovering" title="IBUS_KEY_dead_abovering">IBUS_KEY_dead_abovering</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-acute" title="IBUS_KEY_dead_acute">IBUS_KEY_dead_acute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowbreve" title="IBUS_KEY_dead_belowbreve">IBUS_KEY_dead_belowbreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowcircumflex" title="IBUS_KEY_dead_belowcircumflex">IBUS_KEY_dead_belowcircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowcomma" title="IBUS_KEY_dead_belowcomma">IBUS_KEY_dead_belowcomma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowdiaeresis" title="IBUS_KEY_dead_belowdiaeresis">IBUS_KEY_dead_belowdiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowdot" title="IBUS_KEY_dead_belowdot">IBUS_KEY_dead_belowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowmacron" title="IBUS_KEY_dead_belowmacron">IBUS_KEY_dead_belowmacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowring" title="IBUS_KEY_dead_belowring">IBUS_KEY_dead_belowring</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowtilde" title="IBUS_KEY_dead_belowtilde">IBUS_KEY_dead_belowtilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-breve" title="IBUS_KEY_dead_breve">IBUS_KEY_dead_breve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-capital-schwa" title="IBUS_KEY_dead_capital_schwa">IBUS_KEY_dead_capital_schwa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-caron" title="IBUS_KEY_dead_caron">IBUS_KEY_dead_caron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-cedilla" title="IBUS_KEY_dead_cedilla">IBUS_KEY_dead_cedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-circumflex" title="IBUS_KEY_dead_circumflex">IBUS_KEY_dead_circumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-currency" title="IBUS_KEY_dead_currency">IBUS_KEY_dead_currency</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-dasia" title="IBUS_KEY_dead_dasia">IBUS_KEY_dead_dasia</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-diaeresis" title="IBUS_KEY_dead_diaeresis">IBUS_KEY_dead_diaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-doubleacute" title="IBUS_KEY_dead_doubleacute">IBUS_KEY_dead_doubleacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-doublegrave" title="IBUS_KEY_dead_doublegrave">IBUS_KEY_dead_doublegrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-E" title="IBUS_KEY_dead_E">IBUS_KEY_dead_E</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-e" title="IBUS_KEY_dead_e">IBUS_KEY_dead_e</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-grave" title="IBUS_KEY_dead_grave">IBUS_KEY_dead_grave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-hook" title="IBUS_KEY_dead_hook">IBUS_KEY_dead_hook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-horn" title="IBUS_KEY_dead_horn">IBUS_KEY_dead_horn</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-i" title="IBUS_KEY_dead_i">IBUS_KEY_dead_i</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-I" title="IBUS_KEY_dead_I">IBUS_KEY_dead_I</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-invertedbreve" title="IBUS_KEY_dead_invertedbreve">IBUS_KEY_dead_invertedbreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-iota" title="IBUS_KEY_dead_iota">IBUS_KEY_dead_iota</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-macron" title="IBUS_KEY_dead_macron">IBUS_KEY_dead_macron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-o" title="IBUS_KEY_dead_o">IBUS_KEY_dead_o</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-O" title="IBUS_KEY_dead_O">IBUS_KEY_dead_O</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-ogonek" title="IBUS_KEY_dead_ogonek">IBUS_KEY_dead_ogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-perispomeni" title="IBUS_KEY_dead_perispomeni">IBUS_KEY_dead_perispomeni</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-psili" title="IBUS_KEY_dead_psili">IBUS_KEY_dead_psili</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-semivoiced-sound" title="IBUS_KEY_dead_semivoiced_sound">IBUS_KEY_dead_semivoiced_sound</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-small-schwa" title="IBUS_KEY_dead_small_schwa">IBUS_KEY_dead_small_schwa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-stroke" title="IBUS_KEY_dead_stroke">IBUS_KEY_dead_stroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-tilde" title="IBUS_KEY_dead_tilde">IBUS_KEY_dead_tilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-u" title="IBUS_KEY_dead_u">IBUS_KEY_dead_u</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-U" title="IBUS_KEY_dead_U">IBUS_KEY_dead_U</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-voiced-sound" title="IBUS_KEY_dead_voiced_sound">IBUS_KEY_dead_voiced_sound</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-decimalpoint" title="IBUS_KEY_decimalpoint">IBUS_KEY_decimalpoint</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-degree" title="IBUS_KEY_degree">IBUS_KEY_degree</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Delete" title="IBUS_KEY_Delete">IBUS_KEY_Delete</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-diaeresis" title="IBUS_KEY_diaeresis">IBUS_KEY_diaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-diamond" title="IBUS_KEY_diamond">IBUS_KEY_diamond</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-digitspace" title="IBUS_KEY_digitspace">IBUS_KEY_digitspace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dintegral" title="IBUS_KEY_dintegral">IBUS_KEY_dintegral</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-division" title="IBUS_KEY_division">IBUS_KEY_division</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dollar" title="IBUS_KEY_dollar">IBUS_KEY_dollar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-DongSign" title="IBUS_KEY_DongSign">IBUS_KEY_DongSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-doubbaselinedot" title="IBUS_KEY_doubbaselinedot">IBUS_KEY_doubbaselinedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-doubleacute" title="IBUS_KEY_doubleacute">IBUS_KEY_doubleacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-doubledagger" title="IBUS_KEY_doubledagger">IBUS_KEY_doubledagger</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-doublelowquotemark" title="IBUS_KEY_doublelowquotemark">IBUS_KEY_doublelowquotemark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Down" title="IBUS_KEY_Down">IBUS_KEY_Down</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downarrow" title="IBUS_KEY_downarrow">IBUS_KEY_downarrow</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downcaret" title="IBUS_KEY_downcaret">IBUS_KEY_downcaret</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downshoe" title="IBUS_KEY_downshoe">IBUS_KEY_downshoe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downstile" title="IBUS_KEY_downstile">IBUS_KEY_downstile</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downtack" title="IBUS_KEY_downtack">IBUS_KEY_downtack</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Dstroke" title="IBUS_KEY_Dstroke">IBUS_KEY_Dstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dstroke" title="IBUS_KEY_dstroke">IBUS_KEY_dstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-E:CAPS" title="IBUS_KEY_E">IBUS_KEY_E</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-e" title="IBUS_KEY_e">IBUS_KEY_e</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eabovedot" title="IBUS_KEY_Eabovedot">IBUS_KEY_Eabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eabovedot" title="IBUS_KEY_eabovedot">IBUS_KEY_eabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eacute" title="IBUS_KEY_eacute">IBUS_KEY_eacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eacute" title="IBUS_KEY_Eacute">IBUS_KEY_Eacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ebelowdot" title="IBUS_KEY_ebelowdot">IBUS_KEY_ebelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ebelowdot" title="IBUS_KEY_Ebelowdot">IBUS_KEY_Ebelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecaron" title="IBUS_KEY_ecaron">IBUS_KEY_ecaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecaron" title="IBUS_KEY_Ecaron">IBUS_KEY_Ecaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflex" title="IBUS_KEY_ecircumflex">IBUS_KEY_ecircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflex" title="IBUS_KEY_Ecircumflex">IBUS_KEY_Ecircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexacute" title="IBUS_KEY_ecircumflexacute">IBUS_KEY_ecircumflexacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexacute" title="IBUS_KEY_Ecircumflexacute">IBUS_KEY_Ecircumflexacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexbelowdot" title="IBUS_KEY_ecircumflexbelowdot">IBUS_KEY_ecircumflexbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexbelowdot" title="IBUS_KEY_Ecircumflexbelowdot">IBUS_KEY_Ecircumflexbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexgrave" title="IBUS_KEY_Ecircumflexgrave">IBUS_KEY_Ecircumflexgrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexgrave" title="IBUS_KEY_ecircumflexgrave">IBUS_KEY_ecircumflexgrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexhook" title="IBUS_KEY_ecircumflexhook">IBUS_KEY_ecircumflexhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexhook" title="IBUS_KEY_Ecircumflexhook">IBUS_KEY_Ecircumflexhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflextilde" title="IBUS_KEY_Ecircumflextilde">IBUS_KEY_Ecircumflextilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflextilde" title="IBUS_KEY_ecircumflextilde">IBUS_KEY_ecircumflextilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-EcuSign" title="IBUS_KEY_EcuSign">IBUS_KEY_EcuSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ediaeresis" title="IBUS_KEY_ediaeresis">IBUS_KEY_ediaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ediaeresis" title="IBUS_KEY_Ediaeresis">IBUS_KEY_Ediaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Egrave" title="IBUS_KEY_Egrave">IBUS_KEY_Egrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-egrave" title="IBUS_KEY_egrave">IBUS_KEY_egrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ehook" title="IBUS_KEY_Ehook">IBUS_KEY_Ehook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ehook" title="IBUS_KEY_ehook">IBUS_KEY_ehook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eightsubscript" title="IBUS_KEY_eightsubscript">IBUS_KEY_eightsubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eightsuperior" title="IBUS_KEY_eightsuperior">IBUS_KEY_eightsuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eisu-Shift" title="IBUS_KEY_Eisu_Shift">IBUS_KEY_Eisu_Shift</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eisu-toggle" title="IBUS_KEY_Eisu_toggle">IBUS_KEY_Eisu_toggle</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-elementof" title="IBUS_KEY_elementof">IBUS_KEY_elementof</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ellipsis" title="IBUS_KEY_ellipsis">IBUS_KEY_ellipsis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-em3space" title="IBUS_KEY_em3space">IBUS_KEY_em3space</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-em4space" title="IBUS_KEY_em4space">IBUS_KEY_em4space</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emacron" title="IBUS_KEY_emacron">IBUS_KEY_emacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Emacron" title="IBUS_KEY_Emacron">IBUS_KEY_Emacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emdash" title="IBUS_KEY_emdash">IBUS_KEY_emdash</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emfilledcircle" title="IBUS_KEY_emfilledcircle">IBUS_KEY_emfilledcircle</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emfilledrect" title="IBUS_KEY_emfilledrect">IBUS_KEY_emfilledrect</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emopencircle" title="IBUS_KEY_emopencircle">IBUS_KEY_emopencircle</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emopenrectangle" title="IBUS_KEY_emopenrectangle">IBUS_KEY_emopenrectangle</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emptyset" title="IBUS_KEY_emptyset">IBUS_KEY_emptyset</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emspace" title="IBUS_KEY_emspace">IBUS_KEY_emspace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-End" title="IBUS_KEY_End">IBUS_KEY_End</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-endash" title="IBUS_KEY_endash">IBUS_KEY_endash</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enfilledcircbullet" title="IBUS_KEY_enfilledcircbullet">IBUS_KEY_enfilledcircbullet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enfilledsqbullet" title="IBUS_KEY_enfilledsqbullet">IBUS_KEY_enfilledsqbullet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eng" title="IBUS_KEY_eng">IBUS_KEY_eng</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ENG:CAPS" title="IBUS_KEY_ENG">IBUS_KEY_ENG</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enopencircbullet" title="IBUS_KEY_enopencircbullet">IBUS_KEY_enopencircbullet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enopensquarebullet" title="IBUS_KEY_enopensquarebullet">IBUS_KEY_enopensquarebullet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enspace" title="IBUS_KEY_enspace">IBUS_KEY_enspace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eogonek" title="IBUS_KEY_eogonek">IBUS_KEY_eogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eogonek" title="IBUS_KEY_Eogonek">IBUS_KEY_Eogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-equal" title="IBUS_KEY_equal">IBUS_KEY_equal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Escape" title="IBUS_KEY_Escape">IBUS_KEY_Escape</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ETH:CAPS" title="IBUS_KEY_ETH">IBUS_KEY_ETH</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eth" title="IBUS_KEY_eth">IBUS_KEY_eth</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eth" title="IBUS_KEY_Eth">IBUS_KEY_Eth</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-etilde" title="IBUS_KEY_etilde">IBUS_KEY_etilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Etilde" title="IBUS_KEY_Etilde">IBUS_KEY_Etilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-EuroSign" title="IBUS_KEY_EuroSign">IBUS_KEY_EuroSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-key-event-from-string" title="ibus_key_event_from_string ()">ibus_key_event_from_string</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-key-event-to-string" title="ibus_key_event_to_string ()">ibus_key_event_to_string</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-exclam" title="IBUS_KEY_exclam">IBUS_KEY_exclam</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-exclamdown" title="IBUS_KEY_exclamdown">IBUS_KEY_exclamdown</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Execute" title="IBUS_KEY_Execute">IBUS_KEY_Execute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F:CAPS" title="IBUS_KEY_F">IBUS_KEY_F</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-f" title="IBUS_KEY_f">IBUS_KEY_f</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F1:CAPS" title="IBUS_KEY_F1">IBUS_KEY_F1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F10:CAPS" title="IBUS_KEY_F10">IBUS_KEY_F10</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F11:CAPS" title="IBUS_KEY_F11">IBUS_KEY_F11</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F12:CAPS" title="IBUS_KEY_F12">IBUS_KEY_F12</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F13:CAPS" title="IBUS_KEY_F13">IBUS_KEY_F13</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F14:CAPS" title="IBUS_KEY_F14">IBUS_KEY_F14</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F15:CAPS" title="IBUS_KEY_F15">IBUS_KEY_F15</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F16:CAPS" title="IBUS_KEY_F16">IBUS_KEY_F16</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F17:CAPS" title="IBUS_KEY_F17">IBUS_KEY_F17</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F18:CAPS" title="IBUS_KEY_F18">IBUS_KEY_F18</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F19:CAPS" title="IBUS_KEY_F19">IBUS_KEY_F19</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F2:CAPS" title="IBUS_KEY_F2">IBUS_KEY_F2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F20:CAPS" title="IBUS_KEY_F20">IBUS_KEY_F20</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F21:CAPS" title="IBUS_KEY_F21">IBUS_KEY_F21</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F22:CAPS" title="IBUS_KEY_F22">IBUS_KEY_F22</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F23:CAPS" title="IBUS_KEY_F23">IBUS_KEY_F23</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F24:CAPS" title="IBUS_KEY_F24">IBUS_KEY_F24</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F25:CAPS" title="IBUS_KEY_F25">IBUS_KEY_F25</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F26:CAPS" title="IBUS_KEY_F26">IBUS_KEY_F26</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F27:CAPS" title="IBUS_KEY_F27">IBUS_KEY_F27</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F28:CAPS" title="IBUS_KEY_F28">IBUS_KEY_F28</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F29:CAPS" title="IBUS_KEY_F29">IBUS_KEY_F29</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F3:CAPS" title="IBUS_KEY_F3">IBUS_KEY_F3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F30:CAPS" title="IBUS_KEY_F30">IBUS_KEY_F30</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F31:CAPS" title="IBUS_KEY_F31">IBUS_KEY_F31</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F32:CAPS" title="IBUS_KEY_F32">IBUS_KEY_F32</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F33:CAPS" title="IBUS_KEY_F33">IBUS_KEY_F33</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F34:CAPS" title="IBUS_KEY_F34">IBUS_KEY_F34</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F35:CAPS" title="IBUS_KEY_F35">IBUS_KEY_F35</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F4:CAPS" title="IBUS_KEY_F4">IBUS_KEY_F4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F5:CAPS" title="IBUS_KEY_F5">IBUS_KEY_F5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F6:CAPS" title="IBUS_KEY_F6">IBUS_KEY_F6</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F7:CAPS" title="IBUS_KEY_F7">IBUS_KEY_F7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F8:CAPS" title="IBUS_KEY_F8">IBUS_KEY_F8</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F9:CAPS" title="IBUS_KEY_F9">IBUS_KEY_F9</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Fabovedot" title="IBUS_KEY_Fabovedot">IBUS_KEY_Fabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fabovedot" title="IBUS_KEY_fabovedot">IBUS_KEY_fabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-0" title="IBUS_KEY_Farsi_0">IBUS_KEY_Farsi_0</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-1" title="IBUS_KEY_Farsi_1">IBUS_KEY_Farsi_1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-2" title="IBUS_KEY_Farsi_2">IBUS_KEY_Farsi_2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-3" title="IBUS_KEY_Farsi_3">IBUS_KEY_Farsi_3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-4" title="IBUS_KEY_Farsi_4">IBUS_KEY_Farsi_4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-5" title="IBUS_KEY_Farsi_5">IBUS_KEY_Farsi_5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-6" title="IBUS_KEY_Farsi_6">IBUS_KEY_Farsi_6</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-7" title="IBUS_KEY_Farsi_7">IBUS_KEY_Farsi_7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-8" title="IBUS_KEY_Farsi_8">IBUS_KEY_Farsi_8</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-9" title="IBUS_KEY_Farsi_9">IBUS_KEY_Farsi_9</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-yeh" title="IBUS_KEY_Farsi_yeh">IBUS_KEY_Farsi_yeh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-femalesymbol" title="IBUS_KEY_femalesymbol">IBUS_KEY_femalesymbol</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ff" title="IBUS_KEY_ff">IBUS_KEY_ff</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-FFrancSign" title="IBUS_KEY_FFrancSign">IBUS_KEY_FFrancSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-figdash" title="IBUS_KEY_figdash">IBUS_KEY_figdash</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledlefttribullet" title="IBUS_KEY_filledlefttribullet">IBUS_KEY_filledlefttribullet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledrectbullet" title="IBUS_KEY_filledrectbullet">IBUS_KEY_filledrectbullet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledrighttribullet" title="IBUS_KEY_filledrighttribullet">IBUS_KEY_filledrighttribullet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledtribulletdown" title="IBUS_KEY_filledtribulletdown">IBUS_KEY_filledtribulletdown</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledtribulletup" title="IBUS_KEY_filledtribulletup">IBUS_KEY_filledtribulletup</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Find" title="IBUS_KEY_Find">IBUS_KEY_Find</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-First-Virtual-Screen" title="IBUS_KEY_First_Virtual_Screen">IBUS_KEY_First_Virtual_Screen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fiveeighths" title="IBUS_KEY_fiveeighths">IBUS_KEY_fiveeighths</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fivesixths" title="IBUS_KEY_fivesixths">IBUS_KEY_fivesixths</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fivesubscript" title="IBUS_KEY_fivesubscript">IBUS_KEY_fivesubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fivesuperior" title="IBUS_KEY_fivesuperior">IBUS_KEY_fivesuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fourfifths" title="IBUS_KEY_fourfifths">IBUS_KEY_fourfifths</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-foursubscript" title="IBUS_KEY_foursubscript">IBUS_KEY_foursubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-foursuperior" title="IBUS_KEY_foursuperior">IBUS_KEY_foursuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fourthroot" title="IBUS_KEY_fourthroot">IBUS_KEY_fourthroot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-function" title="IBUS_KEY_function">IBUS_KEY_function</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-G:CAPS" title="IBUS_KEY_G">IBUS_KEY_G</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-g" title="IBUS_KEY_g">IBUS_KEY_g</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gabovedot" title="IBUS_KEY_Gabovedot">IBUS_KEY_Gabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gabovedot" title="IBUS_KEY_gabovedot">IBUS_KEY_gabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gbreve" title="IBUS_KEY_Gbreve">IBUS_KEY_Gbreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gbreve" title="IBUS_KEY_gbreve">IBUS_KEY_gbreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gcaron" title="IBUS_KEY_Gcaron">IBUS_KEY_Gcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gcaron" title="IBUS_KEY_gcaron">IBUS_KEY_gcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gcedilla" title="IBUS_KEY_gcedilla">IBUS_KEY_gcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gcedilla" title="IBUS_KEY_Gcedilla">IBUS_KEY_Gcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gcircumflex" title="IBUS_KEY_gcircumflex">IBUS_KEY_gcircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gcircumflex" title="IBUS_KEY_Gcircumflex">IBUS_KEY_Gcircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-an" title="IBUS_KEY_Georgian_an">IBUS_KEY_Georgian_an</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-ban" title="IBUS_KEY_Georgian_ban">IBUS_KEY_Georgian_ban</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-can" title="IBUS_KEY_Georgian_can">IBUS_KEY_Georgian_can</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-char" title="IBUS_KEY_Georgian_char">IBUS_KEY_Georgian_char</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-chin" title="IBUS_KEY_Georgian_chin">IBUS_KEY_Georgian_chin</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-cil" title="IBUS_KEY_Georgian_cil">IBUS_KEY_Georgian_cil</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-don" title="IBUS_KEY_Georgian_don">IBUS_KEY_Georgian_don</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-en" title="IBUS_KEY_Georgian_en">IBUS_KEY_Georgian_en</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-fi" title="IBUS_KEY_Georgian_fi">IBUS_KEY_Georgian_fi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-gan" title="IBUS_KEY_Georgian_gan">IBUS_KEY_Georgian_gan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-ghan" title="IBUS_KEY_Georgian_ghan">IBUS_KEY_Georgian_ghan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hae" title="IBUS_KEY_Georgian_hae">IBUS_KEY_Georgian_hae</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-har" title="IBUS_KEY_Georgian_har">IBUS_KEY_Georgian_har</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-he" title="IBUS_KEY_Georgian_he">IBUS_KEY_Georgian_he</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hie" title="IBUS_KEY_Georgian_hie">IBUS_KEY_Georgian_hie</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hoe" title="IBUS_KEY_Georgian_hoe">IBUS_KEY_Georgian_hoe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-in" title="IBUS_KEY_Georgian_in">IBUS_KEY_Georgian_in</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-jhan" title="IBUS_KEY_Georgian_jhan">IBUS_KEY_Georgian_jhan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-jil" title="IBUS_KEY_Georgian_jil">IBUS_KEY_Georgian_jil</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-kan" title="IBUS_KEY_Georgian_kan">IBUS_KEY_Georgian_kan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-khar" title="IBUS_KEY_Georgian_khar">IBUS_KEY_Georgian_khar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-las" title="IBUS_KEY_Georgian_las">IBUS_KEY_Georgian_las</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-man" title="IBUS_KEY_Georgian_man">IBUS_KEY_Georgian_man</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-nar" title="IBUS_KEY_Georgian_nar">IBUS_KEY_Georgian_nar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-on" title="IBUS_KEY_Georgian_on">IBUS_KEY_Georgian_on</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-par" title="IBUS_KEY_Georgian_par">IBUS_KEY_Georgian_par</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-phar" title="IBUS_KEY_Georgian_phar">IBUS_KEY_Georgian_phar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-qar" title="IBUS_KEY_Georgian_qar">IBUS_KEY_Georgian_qar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-rae" title="IBUS_KEY_Georgian_rae">IBUS_KEY_Georgian_rae</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-san" title="IBUS_KEY_Georgian_san">IBUS_KEY_Georgian_san</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-shin" title="IBUS_KEY_Georgian_shin">IBUS_KEY_Georgian_shin</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-tan" title="IBUS_KEY_Georgian_tan">IBUS_KEY_Georgian_tan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-tar" title="IBUS_KEY_Georgian_tar">IBUS_KEY_Georgian_tar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-un" title="IBUS_KEY_Georgian_un">IBUS_KEY_Georgian_un</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-vin" title="IBUS_KEY_Georgian_vin">IBUS_KEY_Georgian_vin</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-we" title="IBUS_KEY_Georgian_we">IBUS_KEY_Georgian_we</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-xan" title="IBUS_KEY_Georgian_xan">IBUS_KEY_Georgian_xan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-zen" title="IBUS_KEY_Georgian_zen">IBUS_KEY_Georgian_zen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-zhar" title="IBUS_KEY_Georgian_zhar">IBUS_KEY_Georgian_zhar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-grave" title="IBUS_KEY_grave">IBUS_KEY_grave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-greater" title="IBUS_KEY_greater">IBUS_KEY_greater</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-greaterthanequal" title="IBUS_KEY_greaterthanequal">IBUS_KEY_greaterthanequal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-accentdieresis" title="IBUS_KEY_Greek_accentdieresis">IBUS_KEY_Greek_accentdieresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-alpha" title="IBUS_KEY_Greek_alpha">IBUS_KEY_Greek_alpha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ALPHA" title="IBUS_KEY_Greek_ALPHA">IBUS_KEY_Greek_ALPHA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-alphaaccent" title="IBUS_KEY_Greek_alphaaccent">IBUS_KEY_Greek_alphaaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ALPHAaccent" title="IBUS_KEY_Greek_ALPHAaccent">IBUS_KEY_Greek_ALPHAaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-beta" title="IBUS_KEY_Greek_beta">IBUS_KEY_Greek_beta</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-BETA" title="IBUS_KEY_Greek_BETA">IBUS_KEY_Greek_BETA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-chi" title="IBUS_KEY_Greek_chi">IBUS_KEY_Greek_chi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-CHI" title="IBUS_KEY_Greek_CHI">IBUS_KEY_Greek_CHI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-DELTA" title="IBUS_KEY_Greek_DELTA">IBUS_KEY_Greek_DELTA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-delta" title="IBUS_KEY_Greek_delta">IBUS_KEY_Greek_delta</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-epsilon" title="IBUS_KEY_Greek_epsilon">IBUS_KEY_Greek_epsilon</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-EPSILON" title="IBUS_KEY_Greek_EPSILON">IBUS_KEY_Greek_EPSILON</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-EPSILONaccent" title="IBUS_KEY_Greek_EPSILONaccent">IBUS_KEY_Greek_EPSILONaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-epsilonaccent" title="IBUS_KEY_Greek_epsilonaccent">IBUS_KEY_Greek_epsilonaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-eta" title="IBUS_KEY_Greek_eta">IBUS_KEY_Greek_eta</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ETA" title="IBUS_KEY_Greek_ETA">IBUS_KEY_Greek_ETA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-etaaccent" title="IBUS_KEY_Greek_etaaccent">IBUS_KEY_Greek_etaaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ETAaccent" title="IBUS_KEY_Greek_ETAaccent">IBUS_KEY_Greek_ETAaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-finalsmallsigma" title="IBUS_KEY_Greek_finalsmallsigma">IBUS_KEY_Greek_finalsmallsigma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-GAMMA" title="IBUS_KEY_Greek_GAMMA">IBUS_KEY_Greek_GAMMA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-gamma" title="IBUS_KEY_Greek_gamma">IBUS_KEY_Greek_gamma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-horizbar" title="IBUS_KEY_Greek_horizbar">IBUS_KEY_Greek_horizbar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iota" title="IBUS_KEY_Greek_iota">IBUS_KEY_Greek_iota</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTA" title="IBUS_KEY_Greek_IOTA">IBUS_KEY_Greek_IOTA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAaccent" title="IBUS_KEY_Greek_IOTAaccent">IBUS_KEY_Greek_IOTAaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotaaccent" title="IBUS_KEY_Greek_iotaaccent">IBUS_KEY_Greek_iotaaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotaaccentdieresis" title="IBUS_KEY_Greek_iotaaccentdieresis">IBUS_KEY_Greek_iotaaccentdieresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAdiaeresis" title="IBUS_KEY_Greek_IOTAdiaeresis">IBUS_KEY_Greek_IOTAdiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAdieresis" title="IBUS_KEY_Greek_IOTAdieresis">IBUS_KEY_Greek_IOTAdieresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotadieresis" title="IBUS_KEY_Greek_iotadieresis">IBUS_KEY_Greek_iotadieresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-kappa" title="IBUS_KEY_Greek_kappa">IBUS_KEY_Greek_kappa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-KAPPA" title="IBUS_KEY_Greek_KAPPA">IBUS_KEY_Greek_KAPPA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-LAMBDA" title="IBUS_KEY_Greek_LAMBDA">IBUS_KEY_Greek_LAMBDA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-lambda" title="IBUS_KEY_Greek_lambda">IBUS_KEY_Greek_lambda</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-lamda" title="IBUS_KEY_Greek_lamda">IBUS_KEY_Greek_lamda</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-LAMDA" title="IBUS_KEY_Greek_LAMDA">IBUS_KEY_Greek_LAMDA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-mu" title="IBUS_KEY_Greek_mu">IBUS_KEY_Greek_mu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-MU" title="IBUS_KEY_Greek_MU">IBUS_KEY_Greek_MU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-NU" title="IBUS_KEY_Greek_NU">IBUS_KEY_Greek_NU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-nu" title="IBUS_KEY_Greek_nu">IBUS_KEY_Greek_nu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMEGA" title="IBUS_KEY_Greek_OMEGA">IBUS_KEY_Greek_OMEGA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omega" title="IBUS_KEY_Greek_omega">IBUS_KEY_Greek_omega</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMEGAaccent" title="IBUS_KEY_Greek_OMEGAaccent">IBUS_KEY_Greek_OMEGAaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omegaaccent" title="IBUS_KEY_Greek_omegaaccent">IBUS_KEY_Greek_omegaaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omicron" title="IBUS_KEY_Greek_omicron">IBUS_KEY_Greek_omicron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMICRON" title="IBUS_KEY_Greek_OMICRON">IBUS_KEY_Greek_OMICRON</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omicronaccent" title="IBUS_KEY_Greek_omicronaccent">IBUS_KEY_Greek_omicronaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMICRONaccent" title="IBUS_KEY_Greek_OMICRONaccent">IBUS_KEY_Greek_OMICRONaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-PHI" title="IBUS_KEY_Greek_PHI">IBUS_KEY_Greek_PHI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-phi" title="IBUS_KEY_Greek_phi">IBUS_KEY_Greek_phi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-PI" title="IBUS_KEY_Greek_PI">IBUS_KEY_Greek_PI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-pi" title="IBUS_KEY_Greek_pi">IBUS_KEY_Greek_pi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-PSI" title="IBUS_KEY_Greek_PSI">IBUS_KEY_Greek_PSI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-psi" title="IBUS_KEY_Greek_psi">IBUS_KEY_Greek_psi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-RHO" title="IBUS_KEY_Greek_RHO">IBUS_KEY_Greek_RHO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-rho" title="IBUS_KEY_Greek_rho">IBUS_KEY_Greek_rho</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-sigma" title="IBUS_KEY_Greek_sigma">IBUS_KEY_Greek_sigma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-SIGMA" title="IBUS_KEY_Greek_SIGMA">IBUS_KEY_Greek_SIGMA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-switch" title="IBUS_KEY_Greek_switch">IBUS_KEY_Greek_switch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-tau" title="IBUS_KEY_Greek_tau">IBUS_KEY_Greek_tau</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-TAU" title="IBUS_KEY_Greek_TAU">IBUS_KEY_Greek_TAU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-theta" title="IBUS_KEY_Greek_theta">IBUS_KEY_Greek_theta</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-THETA" title="IBUS_KEY_Greek_THETA">IBUS_KEY_Greek_THETA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILON" title="IBUS_KEY_Greek_UPSILON">IBUS_KEY_Greek_UPSILON</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilon" title="IBUS_KEY_Greek_upsilon">IBUS_KEY_Greek_upsilon</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILONaccent" title="IBUS_KEY_Greek_UPSILONaccent">IBUS_KEY_Greek_UPSILONaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilonaccent" title="IBUS_KEY_Greek_upsilonaccent">IBUS_KEY_Greek_upsilonaccent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilonaccentdieresis" title="IBUS_KEY_Greek_upsilonaccentdieresis">IBUS_KEY_Greek_upsilonaccentdieresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilondieresis" title="IBUS_KEY_Greek_upsilondieresis">IBUS_KEY_Greek_upsilondieresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILONdieresis" title="IBUS_KEY_Greek_UPSILONdieresis">IBUS_KEY_Greek_UPSILONdieresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-XI" title="IBUS_KEY_Greek_XI">IBUS_KEY_Greek_XI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-xi" title="IBUS_KEY_Greek_xi">IBUS_KEY_Greek_xi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ZETA" title="IBUS_KEY_Greek_ZETA">IBUS_KEY_Greek_ZETA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-zeta" title="IBUS_KEY_Greek_zeta">IBUS_KEY_Greek_zeta</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-guillemotleft" title="IBUS_KEY_guillemotleft">IBUS_KEY_guillemotleft</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-guillemotright" title="IBUS_KEY_guillemotright">IBUS_KEY_guillemotright</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-H:CAPS" title="IBUS_KEY_H">IBUS_KEY_H</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-h" title="IBUS_KEY_h">IBUS_KEY_h</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hairspace" title="IBUS_KEY_hairspace">IBUS_KEY_hairspace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul" title="IBUS_KEY_Hangul">IBUS_KEY_Hangul</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-A" title="IBUS_KEY_Hangul_A">IBUS_KEY_Hangul_A</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AE" title="IBUS_KEY_Hangul_AE">IBUS_KEY_Hangul_AE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AraeA" title="IBUS_KEY_Hangul_AraeA">IBUS_KEY_Hangul_AraeA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AraeAE" title="IBUS_KEY_Hangul_AraeAE">IBUS_KEY_Hangul_AraeAE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Banja" title="IBUS_KEY_Hangul_Banja">IBUS_KEY_Hangul_Banja</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Cieuc" title="IBUS_KEY_Hangul_Cieuc">IBUS_KEY_Hangul_Cieuc</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Codeinput" title="IBUS_KEY_Hangul_Codeinput">IBUS_KEY_Hangul_Codeinput</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Dikeud" title="IBUS_KEY_Hangul_Dikeud">IBUS_KEY_Hangul_Dikeud</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-E" title="IBUS_KEY_Hangul_E">IBUS_KEY_Hangul_E</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-End" title="IBUS_KEY_Hangul_End">IBUS_KEY_Hangul_End</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-EO" title="IBUS_KEY_Hangul_EO">IBUS_KEY_Hangul_EO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-EU" title="IBUS_KEY_Hangul_EU">IBUS_KEY_Hangul_EU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Hanja" title="IBUS_KEY_Hangul_Hanja">IBUS_KEY_Hangul_Hanja</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Hieuh" title="IBUS_KEY_Hangul_Hieuh">IBUS_KEY_Hangul_Hieuh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-I" title="IBUS_KEY_Hangul_I">IBUS_KEY_Hangul_I</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Ieung" title="IBUS_KEY_Hangul_Ieung">IBUS_KEY_Hangul_Ieung</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jamo" title="IBUS_KEY_Hangul_Jamo">IBUS_KEY_Hangul_Jamo</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jeonja" title="IBUS_KEY_Hangul_Jeonja">IBUS_KEY_Hangul_Jeonja</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jieuj" title="IBUS_KEY_Hangul_Jieuj">IBUS_KEY_Hangul_Jieuj</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Cieuc" title="IBUS_KEY_Hangul_J_Cieuc">IBUS_KEY_Hangul_J_Cieuc</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Dikeud" title="IBUS_KEY_Hangul_J_Dikeud">IBUS_KEY_Hangul_J_Dikeud</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Hieuh" title="IBUS_KEY_Hangul_J_Hieuh">IBUS_KEY_Hangul_J_Hieuh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Ieung" title="IBUS_KEY_Hangul_J_Ieung">IBUS_KEY_Hangul_J_Ieung</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Jieuj" title="IBUS_KEY_Hangul_J_Jieuj">IBUS_KEY_Hangul_J_Jieuj</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Khieuq" title="IBUS_KEY_Hangul_J_Khieuq">IBUS_KEY_Hangul_J_Khieuq</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Kiyeog" title="IBUS_KEY_Hangul_J_Kiyeog">IBUS_KEY_Hangul_J_Kiyeog</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-KiyeogSios" title="IBUS_KEY_Hangul_J_KiyeogSios">IBUS_KEY_Hangul_J_KiyeogSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-KkogjiDalrinIeung" title="IBUS_KEY_Hangul_J_KkogjiDalrinIeung">IBUS_KEY_Hangul_J_KkogjiDalrinIeung</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Mieum" title="IBUS_KEY_Hangul_J_Mieum">IBUS_KEY_Hangul_J_Mieum</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Nieun" title="IBUS_KEY_Hangul_J_Nieun">IBUS_KEY_Hangul_J_Nieun</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-NieunHieuh" title="IBUS_KEY_Hangul_J_NieunHieuh">IBUS_KEY_Hangul_J_NieunHieuh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-NieunJieuj" title="IBUS_KEY_Hangul_J_NieunJieuj">IBUS_KEY_Hangul_J_NieunJieuj</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-PanSios" title="IBUS_KEY_Hangul_J_PanSios">IBUS_KEY_Hangul_J_PanSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Phieuf" title="IBUS_KEY_Hangul_J_Phieuf">IBUS_KEY_Hangul_J_Phieuf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Pieub" title="IBUS_KEY_Hangul_J_Pieub">IBUS_KEY_Hangul_J_Pieub</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-PieubSios" title="IBUS_KEY_Hangul_J_PieubSios">IBUS_KEY_Hangul_J_PieubSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Rieul" title="IBUS_KEY_Hangul_J_Rieul">IBUS_KEY_Hangul_J_Rieul</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulHieuh" title="IBUS_KEY_Hangul_J_RieulHieuh">IBUS_KEY_Hangul_J_RieulHieuh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulKiyeog" title="IBUS_KEY_Hangul_J_RieulKiyeog">IBUS_KEY_Hangul_J_RieulKiyeog</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulMieum" title="IBUS_KEY_Hangul_J_RieulMieum">IBUS_KEY_Hangul_J_RieulMieum</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulPhieuf" title="IBUS_KEY_Hangul_J_RieulPhieuf">IBUS_KEY_Hangul_J_RieulPhieuf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulPieub" title="IBUS_KEY_Hangul_J_RieulPieub">IBUS_KEY_Hangul_J_RieulPieub</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulSios" title="IBUS_KEY_Hangul_J_RieulSios">IBUS_KEY_Hangul_J_RieulSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulTieut" title="IBUS_KEY_Hangul_J_RieulTieut">IBUS_KEY_Hangul_J_RieulTieut</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Sios" title="IBUS_KEY_Hangul_J_Sios">IBUS_KEY_Hangul_J_Sios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-SsangKiyeog" title="IBUS_KEY_Hangul_J_SsangKiyeog">IBUS_KEY_Hangul_J_SsangKiyeog</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-SsangSios" title="IBUS_KEY_Hangul_J_SsangSios">IBUS_KEY_Hangul_J_SsangSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Tieut" title="IBUS_KEY_Hangul_J_Tieut">IBUS_KEY_Hangul_J_Tieut</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-YeorinHieuh" title="IBUS_KEY_Hangul_J_YeorinHieuh">IBUS_KEY_Hangul_J_YeorinHieuh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Khieuq" title="IBUS_KEY_Hangul_Khieuq">IBUS_KEY_Hangul_Khieuq</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Kiyeog" title="IBUS_KEY_Hangul_Kiyeog">IBUS_KEY_Hangul_Kiyeog</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-KiyeogSios" title="IBUS_KEY_Hangul_KiyeogSios">IBUS_KEY_Hangul_KiyeogSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-KkogjiDalrinIeung" title="IBUS_KEY_Hangul_KkogjiDalrinIeung">IBUS_KEY_Hangul_KkogjiDalrinIeung</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Mieum" title="IBUS_KEY_Hangul_Mieum">IBUS_KEY_Hangul_Mieum</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-MultipleCandidate" title="IBUS_KEY_Hangul_MultipleCandidate">IBUS_KEY_Hangul_MultipleCandidate</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Nieun" title="IBUS_KEY_Hangul_Nieun">IBUS_KEY_Hangul_Nieun</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-NieunHieuh" title="IBUS_KEY_Hangul_NieunHieuh">IBUS_KEY_Hangul_NieunHieuh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-NieunJieuj" title="IBUS_KEY_Hangul_NieunJieuj">IBUS_KEY_Hangul_NieunJieuj</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-O" title="IBUS_KEY_Hangul_O">IBUS_KEY_Hangul_O</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-OE" title="IBUS_KEY_Hangul_OE">IBUS_KEY_Hangul_OE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PanSios" title="IBUS_KEY_Hangul_PanSios">IBUS_KEY_Hangul_PanSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Phieuf" title="IBUS_KEY_Hangul_Phieuf">IBUS_KEY_Hangul_Phieuf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Pieub" title="IBUS_KEY_Hangul_Pieub">IBUS_KEY_Hangul_Pieub</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PieubSios" title="IBUS_KEY_Hangul_PieubSios">IBUS_KEY_Hangul_PieubSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PostHanja" title="IBUS_KEY_Hangul_PostHanja">IBUS_KEY_Hangul_PostHanja</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PreHanja" title="IBUS_KEY_Hangul_PreHanja">IBUS_KEY_Hangul_PreHanja</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PreviousCandidate" title="IBUS_KEY_Hangul_PreviousCandidate">IBUS_KEY_Hangul_PreviousCandidate</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Rieul" title="IBUS_KEY_Hangul_Rieul">IBUS_KEY_Hangul_Rieul</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulHieuh" title="IBUS_KEY_Hangul_RieulHieuh">IBUS_KEY_Hangul_RieulHieuh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulKiyeog" title="IBUS_KEY_Hangul_RieulKiyeog">IBUS_KEY_Hangul_RieulKiyeog</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulMieum" title="IBUS_KEY_Hangul_RieulMieum">IBUS_KEY_Hangul_RieulMieum</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulPhieuf" title="IBUS_KEY_Hangul_RieulPhieuf">IBUS_KEY_Hangul_RieulPhieuf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulPieub" title="IBUS_KEY_Hangul_RieulPieub">IBUS_KEY_Hangul_RieulPieub</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulSios" title="IBUS_KEY_Hangul_RieulSios">IBUS_KEY_Hangul_RieulSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulTieut" title="IBUS_KEY_Hangul_RieulTieut">IBUS_KEY_Hangul_RieulTieut</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulYeorinHieuh" title="IBUS_KEY_Hangul_RieulYeorinHieuh">IBUS_KEY_Hangul_RieulYeorinHieuh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Romaja" title="IBUS_KEY_Hangul_Romaja">IBUS_KEY_Hangul_Romaja</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SingleCandidate" title="IBUS_KEY_Hangul_SingleCandidate">IBUS_KEY_Hangul_SingleCandidate</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Sios" title="IBUS_KEY_Hangul_Sios">IBUS_KEY_Hangul_Sios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Special" title="IBUS_KEY_Hangul_Special">IBUS_KEY_Hangul_Special</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangDikeud" title="IBUS_KEY_Hangul_SsangDikeud">IBUS_KEY_Hangul_SsangDikeud</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangJieuj" title="IBUS_KEY_Hangul_SsangJieuj">IBUS_KEY_Hangul_SsangJieuj</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangKiyeog" title="IBUS_KEY_Hangul_SsangKiyeog">IBUS_KEY_Hangul_SsangKiyeog</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangPieub" title="IBUS_KEY_Hangul_SsangPieub">IBUS_KEY_Hangul_SsangPieub</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangSios" title="IBUS_KEY_Hangul_SsangSios">IBUS_KEY_Hangul_SsangSios</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Start" title="IBUS_KEY_Hangul_Start">IBUS_KEY_Hangul_Start</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumMieum" title="IBUS_KEY_Hangul_SunkyeongeumMieum">IBUS_KEY_Hangul_SunkyeongeumMieum</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumPhieuf" title="IBUS_KEY_Hangul_SunkyeongeumPhieuf">IBUS_KEY_Hangul_SunkyeongeumPhieuf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumPieub" title="IBUS_KEY_Hangul_SunkyeongeumPieub">IBUS_KEY_Hangul_SunkyeongeumPieub</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-switch" title="IBUS_KEY_Hangul_switch">IBUS_KEY_Hangul_switch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Tieut" title="IBUS_KEY_Hangul_Tieut">IBUS_KEY_Hangul_Tieut</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-U" title="IBUS_KEY_Hangul_U">IBUS_KEY_Hangul_U</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WA" title="IBUS_KEY_Hangul_WA">IBUS_KEY_Hangul_WA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WAE" title="IBUS_KEY_Hangul_WAE">IBUS_KEY_Hangul_WAE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WE" title="IBUS_KEY_Hangul_WE">IBUS_KEY_Hangul_WE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WEO" title="IBUS_KEY_Hangul_WEO">IBUS_KEY_Hangul_WEO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WI" title="IBUS_KEY_Hangul_WI">IBUS_KEY_Hangul_WI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YA" title="IBUS_KEY_Hangul_YA">IBUS_KEY_Hangul_YA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YAE" title="IBUS_KEY_Hangul_YAE">IBUS_KEY_Hangul_YAE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YE" title="IBUS_KEY_Hangul_YE">IBUS_KEY_Hangul_YE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YEO" title="IBUS_KEY_Hangul_YEO">IBUS_KEY_Hangul_YEO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YeorinHieuh" title="IBUS_KEY_Hangul_YeorinHieuh">IBUS_KEY_Hangul_YeorinHieuh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YI" title="IBUS_KEY_Hangul_YI">IBUS_KEY_Hangul_YI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YO" title="IBUS_KEY_Hangul_YO">IBUS_KEY_Hangul_YO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YU" title="IBUS_KEY_Hangul_YU">IBUS_KEY_Hangul_YU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hankaku" title="IBUS_KEY_Hankaku">IBUS_KEY_Hankaku</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hcircumflex" title="IBUS_KEY_hcircumflex">IBUS_KEY_hcircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hcircumflex" title="IBUS_KEY_Hcircumflex">IBUS_KEY_Hcircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-heart" title="IBUS_KEY_heart">IBUS_KEY_heart</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-aleph" title="IBUS_KEY_hebrew_aleph">IBUS_KEY_hebrew_aleph</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-ayin" title="IBUS_KEY_hebrew_ayin">IBUS_KEY_hebrew_ayin</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-bet" title="IBUS_KEY_hebrew_bet">IBUS_KEY_hebrew_bet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-beth" title="IBUS_KEY_hebrew_beth">IBUS_KEY_hebrew_beth</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-chet" title="IBUS_KEY_hebrew_chet">IBUS_KEY_hebrew_chet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-dalet" title="IBUS_KEY_hebrew_dalet">IBUS_KEY_hebrew_dalet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-daleth" title="IBUS_KEY_hebrew_daleth">IBUS_KEY_hebrew_daleth</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-doublelowline" title="IBUS_KEY_hebrew_doublelowline">IBUS_KEY_hebrew_doublelowline</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalkaph" title="IBUS_KEY_hebrew_finalkaph">IBUS_KEY_hebrew_finalkaph</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalmem" title="IBUS_KEY_hebrew_finalmem">IBUS_KEY_hebrew_finalmem</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalnun" title="IBUS_KEY_hebrew_finalnun">IBUS_KEY_hebrew_finalnun</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalpe" title="IBUS_KEY_hebrew_finalpe">IBUS_KEY_hebrew_finalpe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalzade" title="IBUS_KEY_hebrew_finalzade">IBUS_KEY_hebrew_finalzade</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalzadi" title="IBUS_KEY_hebrew_finalzadi">IBUS_KEY_hebrew_finalzadi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-gimel" title="IBUS_KEY_hebrew_gimel">IBUS_KEY_hebrew_gimel</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-gimmel" title="IBUS_KEY_hebrew_gimmel">IBUS_KEY_hebrew_gimmel</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-he" title="IBUS_KEY_hebrew_he">IBUS_KEY_hebrew_he</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-het" title="IBUS_KEY_hebrew_het">IBUS_KEY_hebrew_het</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-kaph" title="IBUS_KEY_hebrew_kaph">IBUS_KEY_hebrew_kaph</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-kuf" title="IBUS_KEY_hebrew_kuf">IBUS_KEY_hebrew_kuf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-lamed" title="IBUS_KEY_hebrew_lamed">IBUS_KEY_hebrew_lamed</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-mem" title="IBUS_KEY_hebrew_mem">IBUS_KEY_hebrew_mem</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-nun" title="IBUS_KEY_hebrew_nun">IBUS_KEY_hebrew_nun</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-pe" title="IBUS_KEY_hebrew_pe">IBUS_KEY_hebrew_pe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-qoph" title="IBUS_KEY_hebrew_qoph">IBUS_KEY_hebrew_qoph</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-resh" title="IBUS_KEY_hebrew_resh">IBUS_KEY_hebrew_resh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-samech" title="IBUS_KEY_hebrew_samech">IBUS_KEY_hebrew_samech</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-samekh" title="IBUS_KEY_hebrew_samekh">IBUS_KEY_hebrew_samekh</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-shin" title="IBUS_KEY_hebrew_shin">IBUS_KEY_hebrew_shin</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hebrew-switch" title="IBUS_KEY_Hebrew_switch">IBUS_KEY_Hebrew_switch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-taf" title="IBUS_KEY_hebrew_taf">IBUS_KEY_hebrew_taf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-taw" title="IBUS_KEY_hebrew_taw">IBUS_KEY_hebrew_taw</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-tet" title="IBUS_KEY_hebrew_tet">IBUS_KEY_hebrew_tet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-teth" title="IBUS_KEY_hebrew_teth">IBUS_KEY_hebrew_teth</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-waw" title="IBUS_KEY_hebrew_waw">IBUS_KEY_hebrew_waw</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-yod" title="IBUS_KEY_hebrew_yod">IBUS_KEY_hebrew_yod</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zade" title="IBUS_KEY_hebrew_zade">IBUS_KEY_hebrew_zade</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zadi" title="IBUS_KEY_hebrew_zadi">IBUS_KEY_hebrew_zadi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zain" title="IBUS_KEY_hebrew_zain">IBUS_KEY_hebrew_zain</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zayin" title="IBUS_KEY_hebrew_zayin">IBUS_KEY_hebrew_zayin</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Help" title="IBUS_KEY_Help">IBUS_KEY_Help</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Henkan" title="IBUS_KEY_Henkan">IBUS_KEY_Henkan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Henkan-Mode" title="IBUS_KEY_Henkan_Mode">IBUS_KEY_Henkan_Mode</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hexagram" title="IBUS_KEY_hexagram">IBUS_KEY_hexagram</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hiragana" title="IBUS_KEY_Hiragana">IBUS_KEY_Hiragana</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hiragana-Katakana" title="IBUS_KEY_Hiragana_Katakana">IBUS_KEY_Hiragana_Katakana</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Home" title="IBUS_KEY_Home">IBUS_KEY_Home</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizconnector" title="IBUS_KEY_horizconnector">IBUS_KEY_horizconnector</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan1" title="IBUS_KEY_horizlinescan1">IBUS_KEY_horizlinescan1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan3" title="IBUS_KEY_horizlinescan3">IBUS_KEY_horizlinescan3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan5" title="IBUS_KEY_horizlinescan5">IBUS_KEY_horizlinescan5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan7" title="IBUS_KEY_horizlinescan7">IBUS_KEY_horizlinescan7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan9" title="IBUS_KEY_horizlinescan9">IBUS_KEY_horizlinescan9</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hstroke" title="IBUS_KEY_Hstroke">IBUS_KEY_Hstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hstroke" title="IBUS_KEY_hstroke">IBUS_KEY_hstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ht" title="IBUS_KEY_ht">IBUS_KEY_ht</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hyper-L" title="IBUS_KEY_Hyper_L">IBUS_KEY_Hyper_L</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hyper-R" title="IBUS_KEY_Hyper_R">IBUS_KEY_Hyper_R</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hyphen" title="IBUS_KEY_hyphen">IBUS_KEY_hyphen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-i" title="IBUS_KEY_i">IBUS_KEY_i</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-I:CAPS" title="IBUS_KEY_I">IBUS_KEY_I</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Iabovedot" title="IBUS_KEY_Iabovedot">IBUS_KEY_Iabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Iacute" title="IBUS_KEY_Iacute">IBUS_KEY_Iacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-iacute" title="IBUS_KEY_iacute">IBUS_KEY_iacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ibelowdot" title="IBUS_KEY_ibelowdot">IBUS_KEY_ibelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ibelowdot" title="IBUS_KEY_Ibelowdot">IBUS_KEY_Ibelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ibreve" title="IBUS_KEY_ibreve">IBUS_KEY_ibreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ibreve" title="IBUS_KEY_Ibreve">IBUS_KEY_Ibreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Icircumflex" title="IBUS_KEY_Icircumflex">IBUS_KEY_Icircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-icircumflex" title="IBUS_KEY_icircumflex">IBUS_KEY_icircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-identical" title="IBUS_KEY_identical">IBUS_KEY_identical</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-idiaeresis" title="IBUS_KEY_idiaeresis">IBUS_KEY_idiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Idiaeresis" title="IBUS_KEY_Idiaeresis">IBUS_KEY_Idiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-idotless" title="IBUS_KEY_idotless">IBUS_KEY_idotless</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ifonlyif" title="IBUS_KEY_ifonlyif">IBUS_KEY_ifonlyif</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-igrave" title="IBUS_KEY_igrave">IBUS_KEY_igrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Igrave" title="IBUS_KEY_Igrave">IBUS_KEY_Igrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ihook" title="IBUS_KEY_Ihook">IBUS_KEY_Ihook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ihook" title="IBUS_KEY_ihook">IBUS_KEY_ihook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-imacron" title="IBUS_KEY_imacron">IBUS_KEY_imacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Imacron" title="IBUS_KEY_Imacron">IBUS_KEY_Imacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-implies" title="IBUS_KEY_implies">IBUS_KEY_implies</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-includedin" title="IBUS_KEY_includedin">IBUS_KEY_includedin</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-includes" title="IBUS_KEY_includes">IBUS_KEY_includes</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-infinity" title="IBUS_KEY_infinity">IBUS_KEY_infinity</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Insert" title="IBUS_KEY_Insert">IBUS_KEY_Insert</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-integral" title="IBUS_KEY_integral">IBUS_KEY_integral</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-intersection" title="IBUS_KEY_intersection">IBUS_KEY_intersection</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-iogonek" title="IBUS_KEY_iogonek">IBUS_KEY_iogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Iogonek" title="IBUS_KEY_Iogonek">IBUS_KEY_Iogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Center-Object" title="IBUS_KEY_ISO_Center_Object">IBUS_KEY_ISO_Center_Object</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Continuous-Underline" title="IBUS_KEY_ISO_Continuous_Underline">IBUS_KEY_ISO_Continuous_Underline</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Discontinuous-Underline" title="IBUS_KEY_ISO_Discontinuous_Underline">IBUS_KEY_ISO_Discontinuous_Underline</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Emphasize" title="IBUS_KEY_ISO_Emphasize">IBUS_KEY_ISO_Emphasize</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Enter" title="IBUS_KEY_ISO_Enter">IBUS_KEY_ISO_Enter</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Down" title="IBUS_KEY_ISO_Fast_Cursor_Down">IBUS_KEY_ISO_Fast_Cursor_Down</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Left" title="IBUS_KEY_ISO_Fast_Cursor_Left">IBUS_KEY_ISO_Fast_Cursor_Left</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Right" title="IBUS_KEY_ISO_Fast_Cursor_Right">IBUS_KEY_ISO_Fast_Cursor_Right</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Up" title="IBUS_KEY_ISO_Fast_Cursor_Up">IBUS_KEY_ISO_Fast_Cursor_Up</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-First-Group" title="IBUS_KEY_ISO_First_Group">IBUS_KEY_ISO_First_Group</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-First-Group-Lock" title="IBUS_KEY_ISO_First_Group_Lock">IBUS_KEY_ISO_First_Group_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Latch" title="IBUS_KEY_ISO_Group_Latch">IBUS_KEY_ISO_Group_Latch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Lock" title="IBUS_KEY_ISO_Group_Lock">IBUS_KEY_ISO_Group_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Shift" title="IBUS_KEY_ISO_Group_Shift">IBUS_KEY_ISO_Group_Shift</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Last-Group" title="IBUS_KEY_ISO_Last_Group">IBUS_KEY_ISO_Last_Group</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Last-Group-Lock" title="IBUS_KEY_ISO_Last_Group_Lock">IBUS_KEY_ISO_Last_Group_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Left-Tab" title="IBUS_KEY_ISO_Left_Tab">IBUS_KEY_ISO_Left_Tab</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level2-Latch" title="IBUS_KEY_ISO_Level2_Latch">IBUS_KEY_ISO_Level2_Latch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Latch" title="IBUS_KEY_ISO_Level3_Latch">IBUS_KEY_ISO_Level3_Latch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Lock" title="IBUS_KEY_ISO_Level3_Lock">IBUS_KEY_ISO_Level3_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Shift" title="IBUS_KEY_ISO_Level3_Shift">IBUS_KEY_ISO_Level3_Shift</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Latch" title="IBUS_KEY_ISO_Level5_Latch">IBUS_KEY_ISO_Level5_Latch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Lock" title="IBUS_KEY_ISO_Level5_Lock">IBUS_KEY_ISO_Level5_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Shift" title="IBUS_KEY_ISO_Level5_Shift">IBUS_KEY_ISO_Level5_Shift</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Lock" title="IBUS_KEY_ISO_Lock">IBUS_KEY_ISO_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Move-Line-Down" title="IBUS_KEY_ISO_Move_Line_Down">IBUS_KEY_ISO_Move_Line_Down</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Move-Line-Up" title="IBUS_KEY_ISO_Move_Line_Up">IBUS_KEY_ISO_Move_Line_Up</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Next-Group" title="IBUS_KEY_ISO_Next_Group">IBUS_KEY_ISO_Next_Group</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Next-Group-Lock" title="IBUS_KEY_ISO_Next_Group_Lock">IBUS_KEY_ISO_Next_Group_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Line-Down" title="IBUS_KEY_ISO_Partial_Line_Down">IBUS_KEY_ISO_Partial_Line_Down</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Line-Up" title="IBUS_KEY_ISO_Partial_Line_Up">IBUS_KEY_ISO_Partial_Line_Up</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Space-Left" title="IBUS_KEY_ISO_Partial_Space_Left">IBUS_KEY_ISO_Partial_Space_Left</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Space-Right" title="IBUS_KEY_ISO_Partial_Space_Right">IBUS_KEY_ISO_Partial_Space_Right</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Prev-Group" title="IBUS_KEY_ISO_Prev_Group">IBUS_KEY_ISO_Prev_Group</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Prev-Group-Lock" title="IBUS_KEY_ISO_Prev_Group_Lock">IBUS_KEY_ISO_Prev_Group_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Both-Margins" title="IBUS_KEY_ISO_Release_Both_Margins">IBUS_KEY_ISO_Release_Both_Margins</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Margin-Left" title="IBUS_KEY_ISO_Release_Margin_Left">IBUS_KEY_ISO_Release_Margin_Left</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Margin-Right" title="IBUS_KEY_ISO_Release_Margin_Right">IBUS_KEY_ISO_Release_Margin_Right</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Set-Margin-Left" title="IBUS_KEY_ISO_Set_Margin_Left">IBUS_KEY_ISO_Set_Margin_Left</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Set-Margin-Right" title="IBUS_KEY_ISO_Set_Margin_Right">IBUS_KEY_ISO_Set_Margin_Right</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Itilde" title="IBUS_KEY_Itilde">IBUS_KEY_Itilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-itilde" title="IBUS_KEY_itilde">IBUS_KEY_itilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-j" title="IBUS_KEY_j">IBUS_KEY_j</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-J:CAPS" title="IBUS_KEY_J">IBUS_KEY_J</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-jcircumflex" title="IBUS_KEY_jcircumflex">IBUS_KEY_jcircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Jcircumflex" title="IBUS_KEY_Jcircumflex">IBUS_KEY_Jcircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-jot" title="IBUS_KEY_jot">IBUS_KEY_jot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-k" title="IBUS_KEY_k">IBUS_KEY_k</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-K:CAPS" title="IBUS_KEY_K">IBUS_KEY_K</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-A" title="IBUS_KEY_kana_A">IBUS_KEY_kana_A</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-a" title="IBUS_KEY_kana_a">IBUS_KEY_kana_a</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-CHI" title="IBUS_KEY_kana_CHI">IBUS_KEY_kana_CHI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-closingbracket" title="IBUS_KEY_kana_closingbracket">IBUS_KEY_kana_closingbracket</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-comma" title="IBUS_KEY_kana_comma">IBUS_KEY_kana_comma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-conjunctive" title="IBUS_KEY_kana_conjunctive">IBUS_KEY_kana_conjunctive</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-E" title="IBUS_KEY_kana_E">IBUS_KEY_kana_E</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-e" title="IBUS_KEY_kana_e">IBUS_KEY_kana_e</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-FU" title="IBUS_KEY_kana_FU">IBUS_KEY_kana_FU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-fullstop" title="IBUS_KEY_kana_fullstop">IBUS_KEY_kana_fullstop</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HA" title="IBUS_KEY_kana_HA">IBUS_KEY_kana_HA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HE" title="IBUS_KEY_kana_HE">IBUS_KEY_kana_HE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HI" title="IBUS_KEY_kana_HI">IBUS_KEY_kana_HI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HO" title="IBUS_KEY_kana_HO">IBUS_KEY_kana_HO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HU" title="IBUS_KEY_kana_HU">IBUS_KEY_kana_HU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-i" title="IBUS_KEY_kana_i">IBUS_KEY_kana_i</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-I" title="IBUS_KEY_kana_I">IBUS_KEY_kana_I</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KA" title="IBUS_KEY_kana_KA">IBUS_KEY_kana_KA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KE" title="IBUS_KEY_kana_KE">IBUS_KEY_kana_KE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KI" title="IBUS_KEY_kana_KI">IBUS_KEY_kana_KI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KO" title="IBUS_KEY_kana_KO">IBUS_KEY_kana_KO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KU" title="IBUS_KEY_kana_KU">IBUS_KEY_kana_KU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kana-Lock" title="IBUS_KEY_Kana_Lock">IBUS_KEY_Kana_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-MA" title="IBUS_KEY_kana_MA">IBUS_KEY_kana_MA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-ME" title="IBUS_KEY_kana_ME">IBUS_KEY_kana_ME</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-MI" title="IBUS_KEY_kana_MI">IBUS_KEY_kana_MI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-middledot" title="IBUS_KEY_kana_middledot">IBUS_KEY_kana_middledot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-MO" title="IBUS_KEY_kana_MO">IBUS_KEY_kana_MO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-MU" title="IBUS_KEY_kana_MU">IBUS_KEY_kana_MU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-N" title="IBUS_KEY_kana_N">IBUS_KEY_kana_N</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NA" title="IBUS_KEY_kana_NA">IBUS_KEY_kana_NA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NE" title="IBUS_KEY_kana_NE">IBUS_KEY_kana_NE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NI" title="IBUS_KEY_kana_NI">IBUS_KEY_kana_NI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NO" title="IBUS_KEY_kana_NO">IBUS_KEY_kana_NO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NU" title="IBUS_KEY_kana_NU">IBUS_KEY_kana_NU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-o" title="IBUS_KEY_kana_o">IBUS_KEY_kana_o</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-O" title="IBUS_KEY_kana_O">IBUS_KEY_kana_O</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-openingbracket" title="IBUS_KEY_kana_openingbracket">IBUS_KEY_kana_openingbracket</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RA" title="IBUS_KEY_kana_RA">IBUS_KEY_kana_RA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RE" title="IBUS_KEY_kana_RE">IBUS_KEY_kana_RE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RI" title="IBUS_KEY_kana_RI">IBUS_KEY_kana_RI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RO" title="IBUS_KEY_kana_RO">IBUS_KEY_kana_RO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RU" title="IBUS_KEY_kana_RU">IBUS_KEY_kana_RU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SA" title="IBUS_KEY_kana_SA">IBUS_KEY_kana_SA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SE" title="IBUS_KEY_kana_SE">IBUS_KEY_kana_SE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SHI" title="IBUS_KEY_kana_SHI">IBUS_KEY_kana_SHI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kana-Shift" title="IBUS_KEY_Kana_Shift">IBUS_KEY_Kana_Shift</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SO" title="IBUS_KEY_kana_SO">IBUS_KEY_kana_SO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SU" title="IBUS_KEY_kana_SU">IBUS_KEY_kana_SU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-switch" title="IBUS_KEY_kana_switch">IBUS_KEY_kana_switch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TA" title="IBUS_KEY_kana_TA">IBUS_KEY_kana_TA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TE" title="IBUS_KEY_kana_TE">IBUS_KEY_kana_TE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TI" title="IBUS_KEY_kana_TI">IBUS_KEY_kana_TI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TO" title="IBUS_KEY_kana_TO">IBUS_KEY_kana_TO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TSU" title="IBUS_KEY_kana_TSU">IBUS_KEY_kana_TSU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-tsu" title="IBUS_KEY_kana_tsu">IBUS_KEY_kana_tsu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-tu" title="IBUS_KEY_kana_tu">IBUS_KEY_kana_tu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TU" title="IBUS_KEY_kana_TU">IBUS_KEY_kana_TU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-U" title="IBUS_KEY_kana_U">IBUS_KEY_kana_U</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-u" title="IBUS_KEY_kana_u">IBUS_KEY_kana_u</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-WA" title="IBUS_KEY_kana_WA">IBUS_KEY_kana_WA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-WO" title="IBUS_KEY_kana_WO">IBUS_KEY_kana_WO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-ya" title="IBUS_KEY_kana_ya">IBUS_KEY_kana_ya</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-YA" title="IBUS_KEY_kana_YA">IBUS_KEY_kana_YA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-YO" title="IBUS_KEY_kana_YO">IBUS_KEY_kana_YO</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-yo" title="IBUS_KEY_kana_yo">IBUS_KEY_kana_yo</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-YU" title="IBUS_KEY_kana_YU">IBUS_KEY_kana_YU</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-yu" title="IBUS_KEY_kana_yu">IBUS_KEY_kana_yu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kanji" title="IBUS_KEY_Kanji">IBUS_KEY_Kanji</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kanji-Bangou" title="IBUS_KEY_Kanji_Bangou">IBUS_KEY_Kanji_Bangou</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kappa" title="IBUS_KEY_kappa">IBUS_KEY_kappa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Katakana" title="IBUS_KEY_Katakana">IBUS_KEY_Katakana</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kcedilla" title="IBUS_KEY_kcedilla">IBUS_KEY_kcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kcedilla" title="IBUS_KEY_Kcedilla">IBUS_KEY_Kcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Korean-Won" title="IBUS_KEY_Korean_Won">IBUS_KEY_Korean_Won</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-0:CAPS" title="IBUS_KEY_KP_0">IBUS_KEY_KP_0</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-1:CAPS" title="IBUS_KEY_KP_1">IBUS_KEY_KP_1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-2:CAPS" title="IBUS_KEY_KP_2">IBUS_KEY_KP_2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-3:CAPS" title="IBUS_KEY_KP_3">IBUS_KEY_KP_3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-4:CAPS" title="IBUS_KEY_KP_4">IBUS_KEY_KP_4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-5:CAPS" title="IBUS_KEY_KP_5">IBUS_KEY_KP_5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-6:CAPS" title="IBUS_KEY_KP_6">IBUS_KEY_KP_6</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-7:CAPS" title="IBUS_KEY_KP_7">IBUS_KEY_KP_7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-8:CAPS" title="IBUS_KEY_KP_8">IBUS_KEY_KP_8</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-9:CAPS" title="IBUS_KEY_KP_9">IBUS_KEY_KP_9</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Add" title="IBUS_KEY_KP_Add">IBUS_KEY_KP_Add</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Begin" title="IBUS_KEY_KP_Begin">IBUS_KEY_KP_Begin</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Decimal" title="IBUS_KEY_KP_Decimal">IBUS_KEY_KP_Decimal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Delete" title="IBUS_KEY_KP_Delete">IBUS_KEY_KP_Delete</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Divide" title="IBUS_KEY_KP_Divide">IBUS_KEY_KP_Divide</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Down" title="IBUS_KEY_KP_Down">IBUS_KEY_KP_Down</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-End" title="IBUS_KEY_KP_End">IBUS_KEY_KP_End</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Enter" title="IBUS_KEY_KP_Enter">IBUS_KEY_KP_Enter</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Equal" title="IBUS_KEY_KP_Equal">IBUS_KEY_KP_Equal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-F1:CAPS" title="IBUS_KEY_KP_F1">IBUS_KEY_KP_F1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-F2:CAPS" title="IBUS_KEY_KP_F2">IBUS_KEY_KP_F2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-F3:CAPS" title="IBUS_KEY_KP_F3">IBUS_KEY_KP_F3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-F4:CAPS" title="IBUS_KEY_KP_F4">IBUS_KEY_KP_F4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Home" title="IBUS_KEY_KP_Home">IBUS_KEY_KP_Home</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Insert" title="IBUS_KEY_KP_Insert">IBUS_KEY_KP_Insert</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Left" title="IBUS_KEY_KP_Left">IBUS_KEY_KP_Left</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Multiply" title="IBUS_KEY_KP_Multiply">IBUS_KEY_KP_Multiply</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Next" title="IBUS_KEY_KP_Next">IBUS_KEY_KP_Next</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Page-Down" title="IBUS_KEY_KP_Page_Down">IBUS_KEY_KP_Page_Down</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Page-Up" title="IBUS_KEY_KP_Page_Up">IBUS_KEY_KP_Page_Up</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Prior" title="IBUS_KEY_KP_Prior">IBUS_KEY_KP_Prior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Right" title="IBUS_KEY_KP_Right">IBUS_KEY_KP_Right</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Separator" title="IBUS_KEY_KP_Separator">IBUS_KEY_KP_Separator</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Space" title="IBUS_KEY_KP_Space">IBUS_KEY_KP_Space</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Subtract" title="IBUS_KEY_KP_Subtract">IBUS_KEY_KP_Subtract</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Tab" title="IBUS_KEY_KP_Tab">IBUS_KEY_KP_Tab</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Up" title="IBUS_KEY_KP_Up">IBUS_KEY_KP_Up</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kra" title="IBUS_KEY_kra">IBUS_KEY_kra</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L:CAPS" title="IBUS_KEY_L">IBUS_KEY_L</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-l" title="IBUS_KEY_l">IBUS_KEY_l</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L1:CAPS" title="IBUS_KEY_L1">IBUS_KEY_L1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L10:CAPS" title="IBUS_KEY_L10">IBUS_KEY_L10</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L2:CAPS" title="IBUS_KEY_L2">IBUS_KEY_L2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L3:CAPS" title="IBUS_KEY_L3">IBUS_KEY_L3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L4:CAPS" title="IBUS_KEY_L4">IBUS_KEY_L4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L5:CAPS" title="IBUS_KEY_L5">IBUS_KEY_L5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L6:CAPS" title="IBUS_KEY_L6">IBUS_KEY_L6</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L7:CAPS" title="IBUS_KEY_L7">IBUS_KEY_L7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L8:CAPS" title="IBUS_KEY_L8">IBUS_KEY_L8</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L9:CAPS" title="IBUS_KEY_L9">IBUS_KEY_L9</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lacute" title="IBUS_KEY_Lacute">IBUS_KEY_Lacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lacute" title="IBUS_KEY_lacute">IBUS_KEY_lacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Last-Virtual-Screen" title="IBUS_KEY_Last_Virtual_Screen">IBUS_KEY_Last_Virtual_Screen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-latincross" title="IBUS_KEY_latincross">IBUS_KEY_latincross</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lbelowdot" title="IBUS_KEY_lbelowdot">IBUS_KEY_lbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lbelowdot" title="IBUS_KEY_Lbelowdot">IBUS_KEY_Lbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lcaron" title="IBUS_KEY_Lcaron">IBUS_KEY_Lcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lcaron" title="IBUS_KEY_lcaron">IBUS_KEY_lcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lcedilla" title="IBUS_KEY_Lcedilla">IBUS_KEY_Lcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lcedilla" title="IBUS_KEY_lcedilla">IBUS_KEY_lcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Left" title="IBUS_KEY_Left">IBUS_KEY_Left</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftanglebracket" title="IBUS_KEY_leftanglebracket">IBUS_KEY_leftanglebracket</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftarrow" title="IBUS_KEY_leftarrow">IBUS_KEY_leftarrow</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftcaret" title="IBUS_KEY_leftcaret">IBUS_KEY_leftcaret</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftdoublequotemark" title="IBUS_KEY_leftdoublequotemark">IBUS_KEY_leftdoublequotemark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftmiddlecurlybrace" title="IBUS_KEY_leftmiddlecurlybrace">IBUS_KEY_leftmiddlecurlybrace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftopentriangle" title="IBUS_KEY_leftopentriangle">IBUS_KEY_leftopentriangle</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftpointer" title="IBUS_KEY_leftpointer">IBUS_KEY_leftpointer</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftradical" title="IBUS_KEY_leftradical">IBUS_KEY_leftradical</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftshoe" title="IBUS_KEY_leftshoe">IBUS_KEY_leftshoe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftsinglequotemark" title="IBUS_KEY_leftsinglequotemark">IBUS_KEY_leftsinglequotemark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftt" title="IBUS_KEY_leftt">IBUS_KEY_leftt</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lefttack" title="IBUS_KEY_lefttack">IBUS_KEY_lefttack</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-less" title="IBUS_KEY_less">IBUS_KEY_less</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lessthanequal" title="IBUS_KEY_lessthanequal">IBUS_KEY_lessthanequal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lf" title="IBUS_KEY_lf">IBUS_KEY_lf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Linefeed" title="IBUS_KEY_Linefeed">IBUS_KEY_Linefeed</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-LiraSign" title="IBUS_KEY_LiraSign">IBUS_KEY_LiraSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-logicaland" title="IBUS_KEY_logicaland">IBUS_KEY_logicaland</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-logicalor" title="IBUS_KEY_logicalor">IBUS_KEY_logicalor</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lowleftcorner" title="IBUS_KEY_lowleftcorner">IBUS_KEY_lowleftcorner</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lowrightcorner" title="IBUS_KEY_lowrightcorner">IBUS_KEY_lowrightcorner</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lstroke" title="IBUS_KEY_lstroke">IBUS_KEY_lstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lstroke" title="IBUS_KEY_Lstroke">IBUS_KEY_Lstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-M:CAPS" title="IBUS_KEY_M">IBUS_KEY_M</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-m" title="IBUS_KEY_m">IBUS_KEY_m</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Mabovedot" title="IBUS_KEY_Mabovedot">IBUS_KEY_Mabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-mabovedot" title="IBUS_KEY_mabovedot">IBUS_KEY_mabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-DSE" title="IBUS_KEY_Macedonia_DSE">IBUS_KEY_Macedonia_DSE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-dse" title="IBUS_KEY_Macedonia_dse">IBUS_KEY_Macedonia_dse</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-GJE" title="IBUS_KEY_Macedonia_GJE">IBUS_KEY_Macedonia_GJE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-gje" title="IBUS_KEY_Macedonia_gje">IBUS_KEY_Macedonia_gje</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-KJE" title="IBUS_KEY_Macedonia_KJE">IBUS_KEY_Macedonia_KJE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-kje" title="IBUS_KEY_Macedonia_kje">IBUS_KEY_Macedonia_kje</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-macron" title="IBUS_KEY_macron">IBUS_KEY_macron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Mae-Koho" title="IBUS_KEY_Mae_Koho">IBUS_KEY_Mae_Koho</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-malesymbol" title="IBUS_KEY_malesymbol">IBUS_KEY_malesymbol</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-maltesecross" title="IBUS_KEY_maltesecross">IBUS_KEY_maltesecross</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-marker" title="IBUS_KEY_marker">IBUS_KEY_marker</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-masculine" title="IBUS_KEY_masculine">IBUS_KEY_masculine</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Massyo" title="IBUS_KEY_Massyo">IBUS_KEY_Massyo</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Menu" title="IBUS_KEY_Menu">IBUS_KEY_Menu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Meta-L" title="IBUS_KEY_Meta_L">IBUS_KEY_Meta_L</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Meta-R" title="IBUS_KEY_Meta_R">IBUS_KEY_Meta_R</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-MillSign" title="IBUS_KEY_MillSign">IBUS_KEY_MillSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-minus" title="IBUS_KEY_minus">IBUS_KEY_minus</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-minutes" title="IBUS_KEY_minutes">IBUS_KEY_minutes</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Mode-switch" title="IBUS_KEY_Mode_switch">IBUS_KEY_Mode_switch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-MouseKeys-Accel-Enable" title="IBUS_KEY_MouseKeys_Accel_Enable">IBUS_KEY_MouseKeys_Accel_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-MouseKeys-Enable" title="IBUS_KEY_MouseKeys_Enable">IBUS_KEY_MouseKeys_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-mu" title="IBUS_KEY_mu">IBUS_KEY_mu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Muhenkan" title="IBUS_KEY_Muhenkan">IBUS_KEY_Muhenkan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-MultipleCandidate" title="IBUS_KEY_MultipleCandidate">IBUS_KEY_MultipleCandidate</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-multiply" title="IBUS_KEY_multiply">IBUS_KEY_multiply</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Multi-key" title="IBUS_KEY_Multi_key">IBUS_KEY_Multi_key</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-musicalflat" title="IBUS_KEY_musicalflat">IBUS_KEY_musicalflat</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-musicalsharp" title="IBUS_KEY_musicalsharp">IBUS_KEY_musicalsharp</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-N:CAPS" title="IBUS_KEY_N">IBUS_KEY_N</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-n" title="IBUS_KEY_n">IBUS_KEY_n</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-nabla" title="IBUS_KEY_nabla">IBUS_KEY_nabla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Nacute" title="IBUS_KEY_Nacute">IBUS_KEY_Nacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-nacute" title="IBUS_KEY_nacute">IBUS_KEY_nacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-NairaSign" title="IBUS_KEY_NairaSign">IBUS_KEY_NairaSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ncaron" title="IBUS_KEY_Ncaron">IBUS_KEY_Ncaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ncaron" title="IBUS_KEY_ncaron">IBUS_KEY_ncaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ncedilla" title="IBUS_KEY_Ncedilla">IBUS_KEY_Ncedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ncedilla" title="IBUS_KEY_ncedilla">IBUS_KEY_ncedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-NewSheqelSign" title="IBUS_KEY_NewSheqelSign">IBUS_KEY_NewSheqelSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Next" title="IBUS_KEY_Next">IBUS_KEY_Next</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Next-Virtual-Screen" title="IBUS_KEY_Next_Virtual_Screen">IBUS_KEY_Next_Virtual_Screen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ninesubscript" title="IBUS_KEY_ninesubscript">IBUS_KEY_ninesubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ninesuperior" title="IBUS_KEY_ninesuperior">IBUS_KEY_ninesuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-nl" title="IBUS_KEY_nl">IBUS_KEY_nl</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-nobreakspace" title="IBUS_KEY_nobreakspace">IBUS_KEY_nobreakspace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notapproxeq" title="IBUS_KEY_notapproxeq">IBUS_KEY_notapproxeq</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notelementof" title="IBUS_KEY_notelementof">IBUS_KEY_notelementof</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notequal" title="IBUS_KEY_notequal">IBUS_KEY_notequal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notidentical" title="IBUS_KEY_notidentical">IBUS_KEY_notidentical</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notsign" title="IBUS_KEY_notsign">IBUS_KEY_notsign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ntilde" title="IBUS_KEY_ntilde">IBUS_KEY_ntilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ntilde" title="IBUS_KEY_Ntilde">IBUS_KEY_Ntilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-numbersign" title="IBUS_KEY_numbersign">IBUS_KEY_numbersign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-numerosign" title="IBUS_KEY_numerosign">IBUS_KEY_numerosign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Num-Lock" title="IBUS_KEY_Num_Lock">IBUS_KEY_Num_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-o" title="IBUS_KEY_o">IBUS_KEY_o</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-O:CAPS" title="IBUS_KEY_O">IBUS_KEY_O</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-oacute" title="IBUS_KEY_oacute">IBUS_KEY_oacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Oacute" title="IBUS_KEY_Oacute">IBUS_KEY_Oacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-obarred" title="IBUS_KEY_obarred">IBUS_KEY_obarred</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Obarred" title="IBUS_KEY_Obarred">IBUS_KEY_Obarred</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-obelowdot" title="IBUS_KEY_obelowdot">IBUS_KEY_obelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Obelowdot" title="IBUS_KEY_Obelowdot">IBUS_KEY_Obelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocaron" title="IBUS_KEY_Ocaron">IBUS_KEY_Ocaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocaron" title="IBUS_KEY_ocaron">IBUS_KEY_ocaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflex" title="IBUS_KEY_Ocircumflex">IBUS_KEY_Ocircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflex" title="IBUS_KEY_ocircumflex">IBUS_KEY_ocircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexacute" title="IBUS_KEY_ocircumflexacute">IBUS_KEY_ocircumflexacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexacute" title="IBUS_KEY_Ocircumflexacute">IBUS_KEY_Ocircumflexacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexbelowdot" title="IBUS_KEY_ocircumflexbelowdot">IBUS_KEY_ocircumflexbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexbelowdot" title="IBUS_KEY_Ocircumflexbelowdot">IBUS_KEY_Ocircumflexbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexgrave" title="IBUS_KEY_ocircumflexgrave">IBUS_KEY_ocircumflexgrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexgrave" title="IBUS_KEY_Ocircumflexgrave">IBUS_KEY_Ocircumflexgrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexhook" title="IBUS_KEY_Ocircumflexhook">IBUS_KEY_Ocircumflexhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexhook" title="IBUS_KEY_ocircumflexhook">IBUS_KEY_ocircumflexhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflextilde" title="IBUS_KEY_ocircumflextilde">IBUS_KEY_ocircumflextilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflextilde" title="IBUS_KEY_Ocircumflextilde">IBUS_KEY_Ocircumflextilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Odiaeresis" title="IBUS_KEY_Odiaeresis">IBUS_KEY_Odiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-odiaeresis" title="IBUS_KEY_odiaeresis">IBUS_KEY_odiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-odoubleacute" title="IBUS_KEY_odoubleacute">IBUS_KEY_odoubleacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Odoubleacute" title="IBUS_KEY_Odoubleacute">IBUS_KEY_Odoubleacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-oe" title="IBUS_KEY_oe">IBUS_KEY_oe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-OE:CAPS" title="IBUS_KEY_OE">IBUS_KEY_OE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ogonek" title="IBUS_KEY_ogonek">IBUS_KEY_ogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ograve" title="IBUS_KEY_Ograve">IBUS_KEY_Ograve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ograve" title="IBUS_KEY_ograve">IBUS_KEY_ograve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohook" title="IBUS_KEY_ohook">IBUS_KEY_ohook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohook" title="IBUS_KEY_Ohook">IBUS_KEY_Ohook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohorn" title="IBUS_KEY_Ohorn">IBUS_KEY_Ohorn</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohorn" title="IBUS_KEY_ohorn">IBUS_KEY_ohorn</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohornacute" title="IBUS_KEY_Ohornacute">IBUS_KEY_Ohornacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohornacute" title="IBUS_KEY_ohornacute">IBUS_KEY_ohornacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohornbelowdot" title="IBUS_KEY_Ohornbelowdot">IBUS_KEY_Ohornbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohornbelowdot" title="IBUS_KEY_ohornbelowdot">IBUS_KEY_ohornbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohorngrave" title="IBUS_KEY_ohorngrave">IBUS_KEY_ohorngrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohorngrave" title="IBUS_KEY_Ohorngrave">IBUS_KEY_Ohorngrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohornhook" title="IBUS_KEY_Ohornhook">IBUS_KEY_Ohornhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohornhook" title="IBUS_KEY_ohornhook">IBUS_KEY_ohornhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohorntilde" title="IBUS_KEY_ohorntilde">IBUS_KEY_ohorntilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohorntilde" title="IBUS_KEY_Ohorntilde">IBUS_KEY_Ohorntilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-omacron" title="IBUS_KEY_omacron">IBUS_KEY_omacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Omacron" title="IBUS_KEY_Omacron">IBUS_KEY_Omacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-oneeighth" title="IBUS_KEY_oneeighth">IBUS_KEY_oneeighth</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onefifth" title="IBUS_KEY_onefifth">IBUS_KEY_onefifth</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onehalf" title="IBUS_KEY_onehalf">IBUS_KEY_onehalf</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onequarter" title="IBUS_KEY_onequarter">IBUS_KEY_onequarter</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onesixth" title="IBUS_KEY_onesixth">IBUS_KEY_onesixth</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onesubscript" title="IBUS_KEY_onesubscript">IBUS_KEY_onesubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onesuperior" title="IBUS_KEY_onesuperior">IBUS_KEY_onesuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onethird" title="IBUS_KEY_onethird">IBUS_KEY_onethird</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ooblique" title="IBUS_KEY_Ooblique">IBUS_KEY_Ooblique</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ooblique" title="IBUS_KEY_ooblique">IBUS_KEY_ooblique</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-openrectbullet" title="IBUS_KEY_openrectbullet">IBUS_KEY_openrectbullet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-openstar" title="IBUS_KEY_openstar">IBUS_KEY_openstar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-opentribulletdown" title="IBUS_KEY_opentribulletdown">IBUS_KEY_opentribulletdown</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-opentribulletup" title="IBUS_KEY_opentribulletup">IBUS_KEY_opentribulletup</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ordfeminine" title="IBUS_KEY_ordfeminine">IBUS_KEY_ordfeminine</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-oslash" title="IBUS_KEY_oslash">IBUS_KEY_oslash</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Oslash" title="IBUS_KEY_Oslash">IBUS_KEY_Oslash</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-otilde" title="IBUS_KEY_otilde">IBUS_KEY_otilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Otilde" title="IBUS_KEY_Otilde">IBUS_KEY_Otilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-overbar" title="IBUS_KEY_overbar">IBUS_KEY_overbar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Overlay1-Enable" title="IBUS_KEY_Overlay1_Enable">IBUS_KEY_Overlay1_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Overlay2-Enable" title="IBUS_KEY_Overlay2_Enable">IBUS_KEY_Overlay2_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-overline" title="IBUS_KEY_overline">IBUS_KEY_overline</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-P:CAPS" title="IBUS_KEY_P">IBUS_KEY_P</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-p" title="IBUS_KEY_p">IBUS_KEY_p</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pabovedot" title="IBUS_KEY_Pabovedot">IBUS_KEY_Pabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-pabovedot" title="IBUS_KEY_pabovedot">IBUS_KEY_pabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Page-Down" title="IBUS_KEY_Page_Down">IBUS_KEY_Page_Down</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Page-Up" title="IBUS_KEY_Page_Up">IBUS_KEY_Page_Up</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-paragraph" title="IBUS_KEY_paragraph">IBUS_KEY_paragraph</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-parenleft" title="IBUS_KEY_parenleft">IBUS_KEY_parenleft</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-parenright" title="IBUS_KEY_parenright">IBUS_KEY_parenright</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-partdifferential" title="IBUS_KEY_partdifferential">IBUS_KEY_partdifferential</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-partialderivative" title="IBUS_KEY_partialderivative">IBUS_KEY_partialderivative</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pause" title="IBUS_KEY_Pause">IBUS_KEY_Pause</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-percent" title="IBUS_KEY_percent">IBUS_KEY_percent</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-period" title="IBUS_KEY_period">IBUS_KEY_period</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-periodcentered" title="IBUS_KEY_periodcentered">IBUS_KEY_periodcentered</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-PesetaSign" title="IBUS_KEY_PesetaSign">IBUS_KEY_PesetaSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-phonographcopyright" title="IBUS_KEY_phonographcopyright">IBUS_KEY_phonographcopyright</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-plus" title="IBUS_KEY_plus">IBUS_KEY_plus</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-plusminus" title="IBUS_KEY_plusminus">IBUS_KEY_plusminus</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Accelerate" title="IBUS_KEY_Pointer_Accelerate">IBUS_KEY_Pointer_Accelerate</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button1" title="IBUS_KEY_Pointer_Button1">IBUS_KEY_Pointer_Button1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button2" title="IBUS_KEY_Pointer_Button2">IBUS_KEY_Pointer_Button2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button3" title="IBUS_KEY_Pointer_Button3">IBUS_KEY_Pointer_Button3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button4" title="IBUS_KEY_Pointer_Button4">IBUS_KEY_Pointer_Button4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button5" title="IBUS_KEY_Pointer_Button5">IBUS_KEY_Pointer_Button5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button-Dflt" title="IBUS_KEY_Pointer_Button_Dflt">IBUS_KEY_Pointer_Button_Dflt</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick1" title="IBUS_KEY_Pointer_DblClick1">IBUS_KEY_Pointer_DblClick1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick2" title="IBUS_KEY_Pointer_DblClick2">IBUS_KEY_Pointer_DblClick2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick3" title="IBUS_KEY_Pointer_DblClick3">IBUS_KEY_Pointer_DblClick3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick4" title="IBUS_KEY_Pointer_DblClick4">IBUS_KEY_Pointer_DblClick4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick5" title="IBUS_KEY_Pointer_DblClick5">IBUS_KEY_Pointer_DblClick5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick-Dflt" title="IBUS_KEY_Pointer_DblClick_Dflt">IBUS_KEY_Pointer_DblClick_Dflt</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DfltBtnNext" title="IBUS_KEY_Pointer_DfltBtnNext">IBUS_KEY_Pointer_DfltBtnNext</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DfltBtnPrev" title="IBUS_KEY_Pointer_DfltBtnPrev">IBUS_KEY_Pointer_DfltBtnPrev</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Down" title="IBUS_KEY_Pointer_Down">IBUS_KEY_Pointer_Down</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DownLeft" title="IBUS_KEY_Pointer_DownLeft">IBUS_KEY_Pointer_DownLeft</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DownRight" title="IBUS_KEY_Pointer_DownRight">IBUS_KEY_Pointer_DownRight</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag1" title="IBUS_KEY_Pointer_Drag1">IBUS_KEY_Pointer_Drag1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag2" title="IBUS_KEY_Pointer_Drag2">IBUS_KEY_Pointer_Drag2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag3" title="IBUS_KEY_Pointer_Drag3">IBUS_KEY_Pointer_Drag3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag4" title="IBUS_KEY_Pointer_Drag4">IBUS_KEY_Pointer_Drag4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag5" title="IBUS_KEY_Pointer_Drag5">IBUS_KEY_Pointer_Drag5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag-Dflt" title="IBUS_KEY_Pointer_Drag_Dflt">IBUS_KEY_Pointer_Drag_Dflt</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-EnableKeys" title="IBUS_KEY_Pointer_EnableKeys">IBUS_KEY_Pointer_EnableKeys</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Left" title="IBUS_KEY_Pointer_Left">IBUS_KEY_Pointer_Left</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Right" title="IBUS_KEY_Pointer_Right">IBUS_KEY_Pointer_Right</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Up" title="IBUS_KEY_Pointer_Up">IBUS_KEY_Pointer_Up</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-UpLeft" title="IBUS_KEY_Pointer_UpLeft">IBUS_KEY_Pointer_UpLeft</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-UpRight" title="IBUS_KEY_Pointer_UpRight">IBUS_KEY_Pointer_UpRight</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-prescription" title="IBUS_KEY_prescription">IBUS_KEY_prescription</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-PreviousCandidate" title="IBUS_KEY_PreviousCandidate">IBUS_KEY_PreviousCandidate</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Prev-Virtual-Screen" title="IBUS_KEY_Prev_Virtual_Screen">IBUS_KEY_Prev_Virtual_Screen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Print" title="IBUS_KEY_Print">IBUS_KEY_Print</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Prior" title="IBUS_KEY_Prior">IBUS_KEY_Prior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-prolongedsound" title="IBUS_KEY_prolongedsound">IBUS_KEY_prolongedsound</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-punctspace" title="IBUS_KEY_punctspace">IBUS_KEY_punctspace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-q" title="IBUS_KEY_q">IBUS_KEY_q</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Q:CAPS" title="IBUS_KEY_Q">IBUS_KEY_Q</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-quad" title="IBUS_KEY_quad">IBUS_KEY_quad</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-question" title="IBUS_KEY_question">IBUS_KEY_question</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-questiondown" title="IBUS_KEY_questiondown">IBUS_KEY_questiondown</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-quotedbl" title="IBUS_KEY_quotedbl">IBUS_KEY_quotedbl</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-quoteleft" title="IBUS_KEY_quoteleft">IBUS_KEY_quoteleft</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-quoteright" title="IBUS_KEY_quoteright">IBUS_KEY_quoteright</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-r" title="IBUS_KEY_r">IBUS_KEY_r</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R:CAPS" title="IBUS_KEY_R">IBUS_KEY_R</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R1:CAPS" title="IBUS_KEY_R1">IBUS_KEY_R1</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R10:CAPS" title="IBUS_KEY_R10">IBUS_KEY_R10</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R11:CAPS" title="IBUS_KEY_R11">IBUS_KEY_R11</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R12:CAPS" title="IBUS_KEY_R12">IBUS_KEY_R12</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R13:CAPS" title="IBUS_KEY_R13">IBUS_KEY_R13</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R14:CAPS" title="IBUS_KEY_R14">IBUS_KEY_R14</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R15:CAPS" title="IBUS_KEY_R15">IBUS_KEY_R15</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R2:CAPS" title="IBUS_KEY_R2">IBUS_KEY_R2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R3:CAPS" title="IBUS_KEY_R3">IBUS_KEY_R3</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R4:CAPS" title="IBUS_KEY_R4">IBUS_KEY_R4</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R5:CAPS" title="IBUS_KEY_R5">IBUS_KEY_R5</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R6:CAPS" title="IBUS_KEY_R6">IBUS_KEY_R6</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R7:CAPS" title="IBUS_KEY_R7">IBUS_KEY_R7</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R8:CAPS" title="IBUS_KEY_R8">IBUS_KEY_R8</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R9:CAPS" title="IBUS_KEY_R9">IBUS_KEY_R9</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Racute" title="IBUS_KEY_Racute">IBUS_KEY_Racute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-racute" title="IBUS_KEY_racute">IBUS_KEY_racute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-radical" title="IBUS_KEY_radical">IBUS_KEY_radical</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rcaron" title="IBUS_KEY_rcaron">IBUS_KEY_rcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Rcaron" title="IBUS_KEY_Rcaron">IBUS_KEY_Rcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rcedilla" title="IBUS_KEY_rcedilla">IBUS_KEY_rcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Rcedilla" title="IBUS_KEY_Rcedilla">IBUS_KEY_Rcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Redo" title="IBUS_KEY_Redo">IBUS_KEY_Redo</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-registered" title="IBUS_KEY_registered">IBUS_KEY_registered</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-RepeatKeys-Enable" title="IBUS_KEY_RepeatKeys_Enable">IBUS_KEY_RepeatKeys_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Return" title="IBUS_KEY_Return">IBUS_KEY_Return</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Right" title="IBUS_KEY_Right">IBUS_KEY_Right</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightanglebracket" title="IBUS_KEY_rightanglebracket">IBUS_KEY_rightanglebracket</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightarrow" title="IBUS_KEY_rightarrow">IBUS_KEY_rightarrow</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightcaret" title="IBUS_KEY_rightcaret">IBUS_KEY_rightcaret</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightdoublequotemark" title="IBUS_KEY_rightdoublequotemark">IBUS_KEY_rightdoublequotemark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightmiddlecurlybrace" title="IBUS_KEY_rightmiddlecurlybrace">IBUS_KEY_rightmiddlecurlybrace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightmiddlesummation" title="IBUS_KEY_rightmiddlesummation">IBUS_KEY_rightmiddlesummation</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightopentriangle" title="IBUS_KEY_rightopentriangle">IBUS_KEY_rightopentriangle</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightpointer" title="IBUS_KEY_rightpointer">IBUS_KEY_rightpointer</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightshoe" title="IBUS_KEY_rightshoe">IBUS_KEY_rightshoe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightsinglequotemark" title="IBUS_KEY_rightsinglequotemark">IBUS_KEY_rightsinglequotemark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightt" title="IBUS_KEY_rightt">IBUS_KEY_rightt</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-righttack" title="IBUS_KEY_righttack">IBUS_KEY_righttack</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Romaji" title="IBUS_KEY_Romaji">IBUS_KEY_Romaji</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-RupeeSign" title="IBUS_KEY_RupeeSign">IBUS_KEY_RupeeSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-S:CAPS" title="IBUS_KEY_S">IBUS_KEY_S</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-s" title="IBUS_KEY_s">IBUS_KEY_s</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sabovedot" title="IBUS_KEY_sabovedot">IBUS_KEY_sabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sabovedot" title="IBUS_KEY_Sabovedot">IBUS_KEY_Sabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sacute" title="IBUS_KEY_Sacute">IBUS_KEY_Sacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sacute" title="IBUS_KEY_sacute">IBUS_KEY_sacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Scaron" title="IBUS_KEY_Scaron">IBUS_KEY_Scaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-scaron" title="IBUS_KEY_scaron">IBUS_KEY_scaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Scedilla" title="IBUS_KEY_Scedilla">IBUS_KEY_Scedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-scedilla" title="IBUS_KEY_scedilla">IBUS_KEY_scedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-schwa" title="IBUS_KEY_schwa">IBUS_KEY_schwa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-SCHWA:CAPS" title="IBUS_KEY_SCHWA">IBUS_KEY_SCHWA</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-scircumflex" title="IBUS_KEY_scircumflex">IBUS_KEY_scircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Scircumflex" title="IBUS_KEY_Scircumflex">IBUS_KEY_Scircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-script-switch" title="IBUS_KEY_script_switch">IBUS_KEY_script_switch</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Scroll-Lock" title="IBUS_KEY_Scroll_Lock">IBUS_KEY_Scroll_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-seconds" title="IBUS_KEY_seconds">IBUS_KEY_seconds</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-section" title="IBUS_KEY_section">IBUS_KEY_section</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Select" title="IBUS_KEY_Select">IBUS_KEY_Select</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-semicolon" title="IBUS_KEY_semicolon">IBUS_KEY_semicolon</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-semivoicedsound" title="IBUS_KEY_semivoicedsound">IBUS_KEY_semivoicedsound</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-dje" title="IBUS_KEY_Serbian_dje">IBUS_KEY_Serbian_dje</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-DJE" title="IBUS_KEY_Serbian_DJE">IBUS_KEY_Serbian_DJE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-dze" title="IBUS_KEY_Serbian_dze">IBUS_KEY_Serbian_dze</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-DZE" title="IBUS_KEY_Serbian_DZE">IBUS_KEY_Serbian_DZE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-je" title="IBUS_KEY_Serbian_je">IBUS_KEY_Serbian_je</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-JE" title="IBUS_KEY_Serbian_JE">IBUS_KEY_Serbian_JE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-LJE" title="IBUS_KEY_Serbian_LJE">IBUS_KEY_Serbian_LJE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-lje" title="IBUS_KEY_Serbian_lje">IBUS_KEY_Serbian_lje</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-NJE" title="IBUS_KEY_Serbian_NJE">IBUS_KEY_Serbian_NJE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-nje" title="IBUS_KEY_Serbian_nje">IBUS_KEY_Serbian_nje</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-tshe" title="IBUS_KEY_Serbian_tshe">IBUS_KEY_Serbian_tshe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-TSHE" title="IBUS_KEY_Serbian_TSHE">IBUS_KEY_Serbian_TSHE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-seveneighths" title="IBUS_KEY_seveneighths">IBUS_KEY_seveneighths</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sevensubscript" title="IBUS_KEY_sevensubscript">IBUS_KEY_sevensubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sevensuperior" title="IBUS_KEY_sevensuperior">IBUS_KEY_sevensuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Shift-L" title="IBUS_KEY_Shift_L">IBUS_KEY_Shift_L</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Shift-Lock" title="IBUS_KEY_Shift_Lock">IBUS_KEY_Shift_Lock</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Shift-R" title="IBUS_KEY_Shift_R">IBUS_KEY_Shift_R</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-signaturemark" title="IBUS_KEY_signaturemark">IBUS_KEY_signaturemark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-signifblank" title="IBUS_KEY_signifblank">IBUS_KEY_signifblank</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-similarequal" title="IBUS_KEY_similarequal">IBUS_KEY_similarequal</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-SingleCandidate" title="IBUS_KEY_SingleCandidate">IBUS_KEY_SingleCandidate</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-singlelowquotemark" title="IBUS_KEY_singlelowquotemark">IBUS_KEY_singlelowquotemark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-a" title="IBUS_KEY_Sinh_a">IBUS_KEY_Sinh_a</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aa" title="IBUS_KEY_Sinh_aa">IBUS_KEY_Sinh_aa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aa2" title="IBUS_KEY_Sinh_aa2">IBUS_KEY_Sinh_aa2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ae" title="IBUS_KEY_Sinh_ae">IBUS_KEY_Sinh_ae</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ae2" title="IBUS_KEY_Sinh_ae2">IBUS_KEY_Sinh_ae2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aee" title="IBUS_KEY_Sinh_aee">IBUS_KEY_Sinh_aee</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aee2" title="IBUS_KEY_Sinh_aee2">IBUS_KEY_Sinh_aee2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ai" title="IBUS_KEY_Sinh_ai">IBUS_KEY_Sinh_ai</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ai2" title="IBUS_KEY_Sinh_ai2">IBUS_KEY_Sinh_ai2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-al" title="IBUS_KEY_Sinh_al">IBUS_KEY_Sinh_al</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-au" title="IBUS_KEY_Sinh_au">IBUS_KEY_Sinh_au</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-au2" title="IBUS_KEY_Sinh_au2">IBUS_KEY_Sinh_au2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ba" title="IBUS_KEY_Sinh_ba">IBUS_KEY_Sinh_ba</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-bha" title="IBUS_KEY_Sinh_bha">IBUS_KEY_Sinh_bha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ca" title="IBUS_KEY_Sinh_ca">IBUS_KEY_Sinh_ca</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-cha" title="IBUS_KEY_Sinh_cha">IBUS_KEY_Sinh_cha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dda" title="IBUS_KEY_Sinh_dda">IBUS_KEY_Sinh_dda</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ddha" title="IBUS_KEY_Sinh_ddha">IBUS_KEY_Sinh_ddha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dha" title="IBUS_KEY_Sinh_dha">IBUS_KEY_Sinh_dha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dhha" title="IBUS_KEY_Sinh_dhha">IBUS_KEY_Sinh_dhha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-e" title="IBUS_KEY_Sinh_e">IBUS_KEY_Sinh_e</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-e2" title="IBUS_KEY_Sinh_e2">IBUS_KEY_Sinh_e2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ee" title="IBUS_KEY_Sinh_ee">IBUS_KEY_Sinh_ee</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ee2" title="IBUS_KEY_Sinh_ee2">IBUS_KEY_Sinh_ee2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-fa" title="IBUS_KEY_Sinh_fa">IBUS_KEY_Sinh_fa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ga" title="IBUS_KEY_Sinh_ga">IBUS_KEY_Sinh_ga</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-gha" title="IBUS_KEY_Sinh_gha">IBUS_KEY_Sinh_gha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-h2" title="IBUS_KEY_Sinh_h2">IBUS_KEY_Sinh_h2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ha" title="IBUS_KEY_Sinh_ha">IBUS_KEY_Sinh_ha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-i" title="IBUS_KEY_Sinh_i">IBUS_KEY_Sinh_i</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-i2" title="IBUS_KEY_Sinh_i2">IBUS_KEY_Sinh_i2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ii" title="IBUS_KEY_Sinh_ii">IBUS_KEY_Sinh_ii</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ii2" title="IBUS_KEY_Sinh_ii2">IBUS_KEY_Sinh_ii2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ja" title="IBUS_KEY_Sinh_ja">IBUS_KEY_Sinh_ja</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-jha" title="IBUS_KEY_Sinh_jha">IBUS_KEY_Sinh_jha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-jnya" title="IBUS_KEY_Sinh_jnya">IBUS_KEY_Sinh_jnya</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ka" title="IBUS_KEY_Sinh_ka">IBUS_KEY_Sinh_ka</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-kha" title="IBUS_KEY_Sinh_kha">IBUS_KEY_Sinh_kha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-kunddaliya" title="IBUS_KEY_Sinh_kunddaliya">IBUS_KEY_Sinh_kunddaliya</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-la" title="IBUS_KEY_Sinh_la">IBUS_KEY_Sinh_la</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lla" title="IBUS_KEY_Sinh_lla">IBUS_KEY_Sinh_lla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lu" title="IBUS_KEY_Sinh_lu">IBUS_KEY_Sinh_lu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lu2" title="IBUS_KEY_Sinh_lu2">IBUS_KEY_Sinh_lu2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-luu" title="IBUS_KEY_Sinh_luu">IBUS_KEY_Sinh_luu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-luu2" title="IBUS_KEY_Sinh_luu2">IBUS_KEY_Sinh_luu2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ma" title="IBUS_KEY_Sinh_ma">IBUS_KEY_Sinh_ma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-mba" title="IBUS_KEY_Sinh_mba">IBUS_KEY_Sinh_mba</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-na" title="IBUS_KEY_Sinh_na">IBUS_KEY_Sinh_na</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ndda" title="IBUS_KEY_Sinh_ndda">IBUS_KEY_Sinh_ndda</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ndha" title="IBUS_KEY_Sinh_ndha">IBUS_KEY_Sinh_ndha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ng" title="IBUS_KEY_Sinh_ng">IBUS_KEY_Sinh_ng</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ng2" title="IBUS_KEY_Sinh_ng2">IBUS_KEY_Sinh_ng2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nga" title="IBUS_KEY_Sinh_nga">IBUS_KEY_Sinh_nga</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nja" title="IBUS_KEY_Sinh_nja">IBUS_KEY_Sinh_nja</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nna" title="IBUS_KEY_Sinh_nna">IBUS_KEY_Sinh_nna</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nya" title="IBUS_KEY_Sinh_nya">IBUS_KEY_Sinh_nya</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-o" title="IBUS_KEY_Sinh_o">IBUS_KEY_Sinh_o</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-o2" title="IBUS_KEY_Sinh_o2">IBUS_KEY_Sinh_o2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-oo" title="IBUS_KEY_Sinh_oo">IBUS_KEY_Sinh_oo</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-oo2" title="IBUS_KEY_Sinh_oo2">IBUS_KEY_Sinh_oo2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-pa" title="IBUS_KEY_Sinh_pa">IBUS_KEY_Sinh_pa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-pha" title="IBUS_KEY_Sinh_pha">IBUS_KEY_Sinh_pha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ra" title="IBUS_KEY_Sinh_ra">IBUS_KEY_Sinh_ra</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ri" title="IBUS_KEY_Sinh_ri">IBUS_KEY_Sinh_ri</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-rii" title="IBUS_KEY_Sinh_rii">IBUS_KEY_Sinh_rii</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ru2" title="IBUS_KEY_Sinh_ru2">IBUS_KEY_Sinh_ru2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ruu2" title="IBUS_KEY_Sinh_ruu2">IBUS_KEY_Sinh_ruu2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-sa" title="IBUS_KEY_Sinh_sa">IBUS_KEY_Sinh_sa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-sha" title="IBUS_KEY_Sinh_sha">IBUS_KEY_Sinh_sha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ssha" title="IBUS_KEY_Sinh_ssha">IBUS_KEY_Sinh_ssha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-tha" title="IBUS_KEY_Sinh_tha">IBUS_KEY_Sinh_tha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-thha" title="IBUS_KEY_Sinh_thha">IBUS_KEY_Sinh_thha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-tta" title="IBUS_KEY_Sinh_tta">IBUS_KEY_Sinh_tta</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ttha" title="IBUS_KEY_Sinh_ttha">IBUS_KEY_Sinh_ttha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-u" title="IBUS_KEY_Sinh_u">IBUS_KEY_Sinh_u</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-u2" title="IBUS_KEY_Sinh_u2">IBUS_KEY_Sinh_u2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-uu" title="IBUS_KEY_Sinh_uu">IBUS_KEY_Sinh_uu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-uu2" title="IBUS_KEY_Sinh_uu2">IBUS_KEY_Sinh_uu2</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-va" title="IBUS_KEY_Sinh_va">IBUS_KEY_Sinh_va</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ya" title="IBUS_KEY_Sinh_ya">IBUS_KEY_Sinh_ya</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sixsubscript" title="IBUS_KEY_sixsubscript">IBUS_KEY_sixsubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sixsuperior" title="IBUS_KEY_sixsuperior">IBUS_KEY_sixsuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-slash" title="IBUS_KEY_slash">IBUS_KEY_slash</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-SlowKeys-Enable" title="IBUS_KEY_SlowKeys_Enable">IBUS_KEY_SlowKeys_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-soliddiamond" title="IBUS_KEY_soliddiamond">IBUS_KEY_soliddiamond</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-space" title="IBUS_KEY_space">IBUS_KEY_space</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-squareroot" title="IBUS_KEY_squareroot">IBUS_KEY_squareroot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ssharp" title="IBUS_KEY_ssharp">IBUS_KEY_ssharp</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sterling" title="IBUS_KEY_sterling">IBUS_KEY_sterling</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-StickyKeys-Enable" title="IBUS_KEY_StickyKeys_Enable">IBUS_KEY_StickyKeys_Enable</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-stricteq" title="IBUS_KEY_stricteq">IBUS_KEY_stricteq</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Super-L" title="IBUS_KEY_Super_L">IBUS_KEY_Super_L</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Super-R" title="IBUS_KEY_Super_R">IBUS_KEY_Super_R</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sys-Req" title="IBUS_KEY_Sys_Req">IBUS_KEY_Sys_Req</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-T:CAPS" title="IBUS_KEY_T">IBUS_KEY_T</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-t" title="IBUS_KEY_t">IBUS_KEY_t</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tab" title="IBUS_KEY_Tab">IBUS_KEY_Tab</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tabovedot" title="IBUS_KEY_Tabovedot">IBUS_KEY_Tabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tabovedot" title="IBUS_KEY_tabovedot">IBUS_KEY_tabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tcaron" title="IBUS_KEY_tcaron">IBUS_KEY_tcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tcaron" title="IBUS_KEY_Tcaron">IBUS_KEY_Tcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tcedilla" title="IBUS_KEY_Tcedilla">IBUS_KEY_Tcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tcedilla" title="IBUS_KEY_tcedilla">IBUS_KEY_tcedilla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-telephone" title="IBUS_KEY_telephone">IBUS_KEY_telephone</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-telephonerecorder" title="IBUS_KEY_telephonerecorder">IBUS_KEY_telephonerecorder</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Terminate-Server" title="IBUS_KEY_Terminate_Server">IBUS_KEY_Terminate_Server</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-baht" title="IBUS_KEY_Thai_baht">IBUS_KEY_Thai_baht</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-bobaimai" title="IBUS_KEY_Thai_bobaimai">IBUS_KEY_Thai_bobaimai</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochan" title="IBUS_KEY_Thai_chochan">IBUS_KEY_Thai_chochan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochang" title="IBUS_KEY_Thai_chochang">IBUS_KEY_Thai_chochang</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-choching" title="IBUS_KEY_Thai_choching">IBUS_KEY_Thai_choching</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochoe" title="IBUS_KEY_Thai_chochoe">IBUS_KEY_Thai_chochoe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-dochada" title="IBUS_KEY_Thai_dochada">IBUS_KEY_Thai_dochada</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-dodek" title="IBUS_KEY_Thai_dodek">IBUS_KEY_Thai_dodek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-fofa" title="IBUS_KEY_Thai_fofa">IBUS_KEY_Thai_fofa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-fofan" title="IBUS_KEY_Thai_fofan">IBUS_KEY_Thai_fofan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-hohip" title="IBUS_KEY_Thai_hohip">IBUS_KEY_Thai_hohip</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-honokhuk" title="IBUS_KEY_Thai_honokhuk">IBUS_KEY_Thai_honokhuk</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhai" title="IBUS_KEY_Thai_khokhai">IBUS_KEY_Thai_khokhai</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhon" title="IBUS_KEY_Thai_khokhon">IBUS_KEY_Thai_khokhon</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhuat" title="IBUS_KEY_Thai_khokhuat">IBUS_KEY_Thai_khokhuat</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhwai" title="IBUS_KEY_Thai_khokhwai">IBUS_KEY_Thai_khokhwai</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khorakhang" title="IBUS_KEY_Thai_khorakhang">IBUS_KEY_Thai_khorakhang</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-kokai" title="IBUS_KEY_Thai_kokai">IBUS_KEY_Thai_kokai</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lakkhangyao" title="IBUS_KEY_Thai_lakkhangyao">IBUS_KEY_Thai_lakkhangyao</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekchet" title="IBUS_KEY_Thai_lekchet">IBUS_KEY_Thai_lekchet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekha" title="IBUS_KEY_Thai_lekha">IBUS_KEY_Thai_lekha</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekhok" title="IBUS_KEY_Thai_lekhok">IBUS_KEY_Thai_lekhok</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekkao" title="IBUS_KEY_Thai_lekkao">IBUS_KEY_Thai_lekkao</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leknung" title="IBUS_KEY_Thai_leknung">IBUS_KEY_Thai_leknung</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekpaet" title="IBUS_KEY_Thai_lekpaet">IBUS_KEY_Thai_lekpaet</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksam" title="IBUS_KEY_Thai_leksam">IBUS_KEY_Thai_leksam</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksi" title="IBUS_KEY_Thai_leksi">IBUS_KEY_Thai_leksi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksong" title="IBUS_KEY_Thai_leksong">IBUS_KEY_Thai_leksong</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksun" title="IBUS_KEY_Thai_leksun">IBUS_KEY_Thai_leksun</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lochula" title="IBUS_KEY_Thai_lochula">IBUS_KEY_Thai_lochula</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-loling" title="IBUS_KEY_Thai_loling">IBUS_KEY_Thai_loling</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lu" title="IBUS_KEY_Thai_lu">IBUS_KEY_Thai_lu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maichattawa" title="IBUS_KEY_Thai_maichattawa">IBUS_KEY_Thai_maichattawa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maiek" title="IBUS_KEY_Thai_maiek">IBUS_KEY_Thai_maiek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maihanakat" title="IBUS_KEY_Thai_maihanakat">IBUS_KEY_Thai_maihanakat</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maihanakat-maitho" title="IBUS_KEY_Thai_maihanakat_maitho">IBUS_KEY_Thai_maihanakat_maitho</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitaikhu" title="IBUS_KEY_Thai_maitaikhu">IBUS_KEY_Thai_maitaikhu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitho" title="IBUS_KEY_Thai_maitho">IBUS_KEY_Thai_maitho</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitri" title="IBUS_KEY_Thai_maitri">IBUS_KEY_Thai_maitri</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maiyamok" title="IBUS_KEY_Thai_maiyamok">IBUS_KEY_Thai_maiyamok</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-moma" title="IBUS_KEY_Thai_moma">IBUS_KEY_Thai_moma</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-ngongu" title="IBUS_KEY_Thai_ngongu">IBUS_KEY_Thai_ngongu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-nikhahit" title="IBUS_KEY_Thai_nikhahit">IBUS_KEY_Thai_nikhahit</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-nonen" title="IBUS_KEY_Thai_nonen">IBUS_KEY_Thai_nonen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-nonu" title="IBUS_KEY_Thai_nonu">IBUS_KEY_Thai_nonu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-oang" title="IBUS_KEY_Thai_oang">IBUS_KEY_Thai_oang</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-paiyannoi" title="IBUS_KEY_Thai_paiyannoi">IBUS_KEY_Thai_paiyannoi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phinthu" title="IBUS_KEY_Thai_phinthu">IBUS_KEY_Thai_phinthu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phophan" title="IBUS_KEY_Thai_phophan">IBUS_KEY_Thai_phophan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phophung" title="IBUS_KEY_Thai_phophung">IBUS_KEY_Thai_phophung</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phosamphao" title="IBUS_KEY_Thai_phosamphao">IBUS_KEY_Thai_phosamphao</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-popla" title="IBUS_KEY_Thai_popla">IBUS_KEY_Thai_popla</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-rorua" title="IBUS_KEY_Thai_rorua">IBUS_KEY_Thai_rorua</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-ru" title="IBUS_KEY_Thai_ru">IBUS_KEY_Thai_ru</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraa" title="IBUS_KEY_Thai_saraa">IBUS_KEY_Thai_saraa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaa" title="IBUS_KEY_Thai_saraaa">IBUS_KEY_Thai_saraaa</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraae" title="IBUS_KEY_Thai_saraae">IBUS_KEY_Thai_saraae</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaimaimalai" title="IBUS_KEY_Thai_saraaimaimalai">IBUS_KEY_Thai_saraaimaimalai</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaimaimuan" title="IBUS_KEY_Thai_saraaimaimuan">IBUS_KEY_Thai_saraaimaimuan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraam" title="IBUS_KEY_Thai_saraam">IBUS_KEY_Thai_saraam</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarae" title="IBUS_KEY_Thai_sarae">IBUS_KEY_Thai_sarae</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarai" title="IBUS_KEY_Thai_sarai">IBUS_KEY_Thai_sarai</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraii" title="IBUS_KEY_Thai_saraii">IBUS_KEY_Thai_saraii</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarao" title="IBUS_KEY_Thai_sarao">IBUS_KEY_Thai_sarao</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarau" title="IBUS_KEY_Thai_sarau">IBUS_KEY_Thai_sarau</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraue" title="IBUS_KEY_Thai_saraue">IBUS_KEY_Thai_saraue</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarauee" title="IBUS_KEY_Thai_sarauee">IBUS_KEY_Thai_sarauee</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarauu" title="IBUS_KEY_Thai_sarauu">IBUS_KEY_Thai_sarauu</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sorusi" title="IBUS_KEY_Thai_sorusi">IBUS_KEY_Thai_sorusi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sosala" title="IBUS_KEY_Thai_sosala">IBUS_KEY_Thai_sosala</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-soso" title="IBUS_KEY_Thai_soso">IBUS_KEY_Thai_soso</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sosua" title="IBUS_KEY_Thai_sosua">IBUS_KEY_Thai_sosua</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thanthakhat" title="IBUS_KEY_Thai_thanthakhat">IBUS_KEY_Thai_thanthakhat</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thonangmontho" title="IBUS_KEY_Thai_thonangmontho">IBUS_KEY_Thai_thonangmontho</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thophuthao" title="IBUS_KEY_Thai_thophuthao">IBUS_KEY_Thai_thophuthao</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothahan" title="IBUS_KEY_Thai_thothahan">IBUS_KEY_Thai_thothahan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothan" title="IBUS_KEY_Thai_thothan">IBUS_KEY_Thai_thothan</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothong" title="IBUS_KEY_Thai_thothong">IBUS_KEY_Thai_thothong</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothung" title="IBUS_KEY_Thai_thothung">IBUS_KEY_Thai_thothung</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-topatak" title="IBUS_KEY_Thai_topatak">IBUS_KEY_Thai_topatak</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-totao" title="IBUS_KEY_Thai_totao">IBUS_KEY_Thai_totao</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-wowaen" title="IBUS_KEY_Thai_wowaen">IBUS_KEY_Thai_wowaen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-yoyak" title="IBUS_KEY_Thai_yoyak">IBUS_KEY_Thai_yoyak</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-yoying" title="IBUS_KEY_Thai_yoying">IBUS_KEY_Thai_yoying</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-therefore" title="IBUS_KEY_therefore">IBUS_KEY_therefore</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-thinspace" title="IBUS_KEY_thinspace">IBUS_KEY_thinspace</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-THORN:CAPS" title="IBUS_KEY_THORN">IBUS_KEY_THORN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-thorn" title="IBUS_KEY_thorn">IBUS_KEY_thorn</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thorn" title="IBUS_KEY_Thorn">IBUS_KEY_Thorn</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threeeighths" title="IBUS_KEY_threeeighths">IBUS_KEY_threeeighths</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threefifths" title="IBUS_KEY_threefifths">IBUS_KEY_threefifths</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threequarters" title="IBUS_KEY_threequarters">IBUS_KEY_threequarters</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threesubscript" title="IBUS_KEY_threesubscript">IBUS_KEY_threesubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threesuperior" title="IBUS_KEY_threesuperior">IBUS_KEY_threesuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tintegral" title="IBUS_KEY_tintegral">IBUS_KEY_tintegral</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topintegral" title="IBUS_KEY_topintegral">IBUS_KEY_topintegral</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topleftparens" title="IBUS_KEY_topleftparens">IBUS_KEY_topleftparens</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topleftradical" title="IBUS_KEY_topleftradical">IBUS_KEY_topleftradical</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topleftsqbracket" title="IBUS_KEY_topleftsqbracket">IBUS_KEY_topleftsqbracket</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topleftsummation" title="IBUS_KEY_topleftsummation">IBUS_KEY_topleftsummation</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-toprightparens" title="IBUS_KEY_toprightparens">IBUS_KEY_toprightparens</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-toprightsqbracket" title="IBUS_KEY_toprightsqbracket">IBUS_KEY_toprightsqbracket</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-toprightsummation" title="IBUS_KEY_toprightsummation">IBUS_KEY_toprightsummation</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topt" title="IBUS_KEY_topt">IBUS_KEY_topt</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topvertsummationconnector" title="IBUS_KEY_topvertsummationconnector">IBUS_KEY_topvertsummationconnector</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Touroku" title="IBUS_KEY_Touroku">IBUS_KEY_Touroku</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-trademark" title="IBUS_KEY_trademark">IBUS_KEY_trademark</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-trademarkincircle" title="IBUS_KEY_trademarkincircle">IBUS_KEY_trademarkincircle</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tslash" title="IBUS_KEY_Tslash">IBUS_KEY_Tslash</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tslash" title="IBUS_KEY_tslash">IBUS_KEY_tslash</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-twofifths" title="IBUS_KEY_twofifths">IBUS_KEY_twofifths</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-twosubscript" title="IBUS_KEY_twosubscript">IBUS_KEY_twosubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-twosuperior" title="IBUS_KEY_twosuperior">IBUS_KEY_twosuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-twothirds" title="IBUS_KEY_twothirds">IBUS_KEY_twothirds</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-u" title="IBUS_KEY_u">IBUS_KEY_u</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-U:CAPS" title="IBUS_KEY_U">IBUS_KEY_U</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uacute" title="IBUS_KEY_Uacute">IBUS_KEY_Uacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uacute" title="IBUS_KEY_uacute">IBUS_KEY_uacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ubelowdot" title="IBUS_KEY_ubelowdot">IBUS_KEY_ubelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ubelowdot" title="IBUS_KEY_Ubelowdot">IBUS_KEY_Ubelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ubreve" title="IBUS_KEY_ubreve">IBUS_KEY_ubreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ubreve" title="IBUS_KEY_Ubreve">IBUS_KEY_Ubreve</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ucircumflex" title="IBUS_KEY_Ucircumflex">IBUS_KEY_Ucircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ucircumflex" title="IBUS_KEY_ucircumflex">IBUS_KEY_ucircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-udiaeresis" title="IBUS_KEY_udiaeresis">IBUS_KEY_udiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Udiaeresis" title="IBUS_KEY_Udiaeresis">IBUS_KEY_Udiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-udoubleacute" title="IBUS_KEY_udoubleacute">IBUS_KEY_udoubleacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Udoubleacute" title="IBUS_KEY_Udoubleacute">IBUS_KEY_Udoubleacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ugrave" title="IBUS_KEY_ugrave">IBUS_KEY_ugrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ugrave" title="IBUS_KEY_Ugrave">IBUS_KEY_Ugrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhook" title="IBUS_KEY_uhook">IBUS_KEY_uhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhook" title="IBUS_KEY_Uhook">IBUS_KEY_Uhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhorn" title="IBUS_KEY_Uhorn">IBUS_KEY_Uhorn</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhorn" title="IBUS_KEY_uhorn">IBUS_KEY_uhorn</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhornacute" title="IBUS_KEY_uhornacute">IBUS_KEY_uhornacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhornacute" title="IBUS_KEY_Uhornacute">IBUS_KEY_Uhornacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhornbelowdot" title="IBUS_KEY_Uhornbelowdot">IBUS_KEY_Uhornbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhornbelowdot" title="IBUS_KEY_uhornbelowdot">IBUS_KEY_uhornbelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhorngrave" title="IBUS_KEY_uhorngrave">IBUS_KEY_uhorngrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhorngrave" title="IBUS_KEY_Uhorngrave">IBUS_KEY_Uhorngrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhornhook" title="IBUS_KEY_Uhornhook">IBUS_KEY_Uhornhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhornhook" title="IBUS_KEY_uhornhook">IBUS_KEY_uhornhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhorntilde" title="IBUS_KEY_Uhorntilde">IBUS_KEY_Uhorntilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhorntilde" title="IBUS_KEY_uhorntilde">IBUS_KEY_uhorntilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-ghe-with-upturn" title="IBUS_KEY_Ukrainian_ghe_with_upturn">IBUS_KEY_Ukrainian_ghe_with_upturn</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-GHE-WITH-UPTURN" title="IBUS_KEY_Ukrainian_GHE_WITH_UPTURN">IBUS_KEY_Ukrainian_GHE_WITH_UPTURN</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-I" title="IBUS_KEY_Ukrainian_I">IBUS_KEY_Ukrainian_I</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-i" title="IBUS_KEY_Ukrainian_i">IBUS_KEY_Ukrainian_i</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-ie" title="IBUS_KEY_Ukrainian_ie">IBUS_KEY_Ukrainian_ie</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-IE" title="IBUS_KEY_Ukrainian_IE">IBUS_KEY_Ukrainian_IE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-YI" title="IBUS_KEY_Ukrainian_YI">IBUS_KEY_Ukrainian_YI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-yi" title="IBUS_KEY_Ukrainian_yi">IBUS_KEY_Ukrainian_yi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-I" title="IBUS_KEY_Ukranian_I">IBUS_KEY_Ukranian_I</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-i" title="IBUS_KEY_Ukranian_i">IBUS_KEY_Ukranian_i</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-JE" title="IBUS_KEY_Ukranian_JE">IBUS_KEY_Ukranian_JE</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-je" title="IBUS_KEY_Ukranian_je">IBUS_KEY_Ukranian_je</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-YI" title="IBUS_KEY_Ukranian_YI">IBUS_KEY_Ukranian_YI</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-yi" title="IBUS_KEY_Ukranian_yi">IBUS_KEY_Ukranian_yi</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-umacron" title="IBUS_KEY_umacron">IBUS_KEY_umacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Umacron" title="IBUS_KEY_Umacron">IBUS_KEY_Umacron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-underbar" title="IBUS_KEY_underbar">IBUS_KEY_underbar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-underscore" title="IBUS_KEY_underscore">IBUS_KEY_underscore</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Undo" title="IBUS_KEY_Undo">IBUS_KEY_Undo</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-union" title="IBUS_KEY_union">IBUS_KEY_union</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uogonek" title="IBUS_KEY_uogonek">IBUS_KEY_uogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uogonek" title="IBUS_KEY_Uogonek">IBUS_KEY_Uogonek</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Up" title="IBUS_KEY_Up">IBUS_KEY_Up</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uparrow" title="IBUS_KEY_uparrow">IBUS_KEY_uparrow</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-upcaret" title="IBUS_KEY_upcaret">IBUS_KEY_upcaret</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-upleftcorner" title="IBUS_KEY_upleftcorner">IBUS_KEY_upleftcorner</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uprightcorner" title="IBUS_KEY_uprightcorner">IBUS_KEY_uprightcorner</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-upshoe" title="IBUS_KEY_upshoe">IBUS_KEY_upshoe</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-upstile" title="IBUS_KEY_upstile">IBUS_KEY_upstile</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uptack" title="IBUS_KEY_uptack">IBUS_KEY_uptack</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uring" title="IBUS_KEY_uring">IBUS_KEY_uring</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uring" title="IBUS_KEY_Uring">IBUS_KEY_Uring</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Utilde" title="IBUS_KEY_Utilde">IBUS_KEY_Utilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-utilde" title="IBUS_KEY_utilde">IBUS_KEY_utilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-v" title="IBUS_KEY_v">IBUS_KEY_v</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-V:CAPS" title="IBUS_KEY_V">IBUS_KEY_V</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-variation" title="IBUS_KEY_variation">IBUS_KEY_variation</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-vertbar" title="IBUS_KEY_vertbar">IBUS_KEY_vertbar</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-vertconnector" title="IBUS_KEY_vertconnector">IBUS_KEY_vertconnector</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-voicedsound" title="IBUS_KEY_voicedsound">IBUS_KEY_voicedsound</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-VoidSymbol" title="IBUS_KEY_VoidSymbol">IBUS_KEY_VoidSymbol</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-vt" title="IBUS_KEY_vt">IBUS_KEY_vt</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-W:CAPS" title="IBUS_KEY_W">IBUS_KEY_W</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-w" title="IBUS_KEY_w">IBUS_KEY_w</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Wacute" title="IBUS_KEY_Wacute">IBUS_KEY_Wacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-wacute" title="IBUS_KEY_wacute">IBUS_KEY_wacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Wcircumflex" title="IBUS_KEY_Wcircumflex">IBUS_KEY_Wcircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-wcircumflex" title="IBUS_KEY_wcircumflex">IBUS_KEY_wcircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Wdiaeresis" title="IBUS_KEY_Wdiaeresis">IBUS_KEY_Wdiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-wdiaeresis" title="IBUS_KEY_wdiaeresis">IBUS_KEY_wdiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Wgrave" title="IBUS_KEY_Wgrave">IBUS_KEY_Wgrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-wgrave" title="IBUS_KEY_wgrave">IBUS_KEY_wgrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-WonSign" title="IBUS_KEY_WonSign">IBUS_KEY_WonSign</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-X:CAPS" title="IBUS_KEY_X">IBUS_KEY_X</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-x" title="IBUS_KEY_x">IBUS_KEY_x</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-xabovedot" title="IBUS_KEY_xabovedot">IBUS_KEY_xabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Xabovedot" title="IBUS_KEY_Xabovedot">IBUS_KEY_Xabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-y" title="IBUS_KEY_y">IBUS_KEY_y</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Y:CAPS" title="IBUS_KEY_Y">IBUS_KEY_Y</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Yacute" title="IBUS_KEY_Yacute">IBUS_KEY_Yacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-yacute" title="IBUS_KEY_yacute">IBUS_KEY_yacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ybelowdot" title="IBUS_KEY_ybelowdot">IBUS_KEY_ybelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ybelowdot" title="IBUS_KEY_Ybelowdot">IBUS_KEY_Ybelowdot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ycircumflex" title="IBUS_KEY_Ycircumflex">IBUS_KEY_Ycircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ycircumflex" title="IBUS_KEY_ycircumflex">IBUS_KEY_ycircumflex</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ydiaeresis" title="IBUS_KEY_ydiaeresis">IBUS_KEY_ydiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ydiaeresis" title="IBUS_KEY_Ydiaeresis">IBUS_KEY_Ydiaeresis</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-yen" title="IBUS_KEY_yen">IBUS_KEY_yen</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ygrave" title="IBUS_KEY_ygrave">IBUS_KEY_ygrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ygrave" title="IBUS_KEY_Ygrave">IBUS_KEY_Ygrave</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Yhook" title="IBUS_KEY_Yhook">IBUS_KEY_Yhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-yhook" title="IBUS_KEY_yhook">IBUS_KEY_yhook</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ytilde" title="IBUS_KEY_ytilde">IBUS_KEY_ytilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ytilde" title="IBUS_KEY_Ytilde">IBUS_KEY_Ytilde</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Z:CAPS" title="IBUS_KEY_Z">IBUS_KEY_Z</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-z" title="IBUS_KEY_z">IBUS_KEY_z</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zabovedot" title="IBUS_KEY_zabovedot">IBUS_KEY_zabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zabovedot" title="IBUS_KEY_Zabovedot">IBUS_KEY_Zabovedot</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zacute" title="IBUS_KEY_Zacute">IBUS_KEY_Zacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zacute" title="IBUS_KEY_zacute">IBUS_KEY_zacute</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zcaron" title="IBUS_KEY_zcaron">IBUS_KEY_zcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zcaron" title="IBUS_KEY_Zcaron">IBUS_KEY_Zcaron</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zenkaku" title="IBUS_KEY_Zenkaku">IBUS_KEY_Zenkaku</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zenkaku-Hankaku" title="IBUS_KEY_Zenkaku_Hankaku">IBUS_KEY_Zenkaku_Hankaku</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zen-Koho" title="IBUS_KEY_Zen_Koho">IBUS_KEY_Zen_Koho</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zerosubscript" title="IBUS_KEY_zerosubscript">IBUS_KEY_zerosubscript</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zerosuperior" title="IBUS_KEY_zerosuperior">IBUS_KEY_zerosuperior</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zstroke" title="IBUS_KEY_Zstroke">IBUS_KEY_Zstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zstroke" title="IBUS_KEY_zstroke">IBUS_KEY_zstroke</a>, macro in <a class="link" href="ibus-IBusKeysyms.html" title="IBusKeysyms">IBusKeysyms</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Korean-Won" title="IBUS_Korean_Won">IBUS_Korean_Won</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-0:CAPS" title="IBUS_KP_0">IBUS_KP_0</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-1:CAPS" title="IBUS_KP_1">IBUS_KP_1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-2:CAPS" title="IBUS_KP_2">IBUS_KP_2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-3:CAPS" title="IBUS_KP_3">IBUS_KP_3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-4:CAPS" title="IBUS_KP_4">IBUS_KP_4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-5:CAPS" title="IBUS_KP_5">IBUS_KP_5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-6:CAPS" title="IBUS_KP_6">IBUS_KP_6</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-7:CAPS" title="IBUS_KP_7">IBUS_KP_7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-8:CAPS" title="IBUS_KP_8">IBUS_KP_8</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-9:CAPS" title="IBUS_KP_9">IBUS_KP_9</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Add" title="IBUS_KP_Add">IBUS_KP_Add</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Begin" title="IBUS_KP_Begin">IBUS_KP_Begin</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Decimal" title="IBUS_KP_Decimal">IBUS_KP_Decimal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Delete" title="IBUS_KP_Delete">IBUS_KP_Delete</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Divide" title="IBUS_KP_Divide">IBUS_KP_Divide</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Down" title="IBUS_KP_Down">IBUS_KP_Down</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-End" title="IBUS_KP_End">IBUS_KP_End</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Enter" title="IBUS_KP_Enter">IBUS_KP_Enter</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Equal" title="IBUS_KP_Equal">IBUS_KP_Equal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-F1:CAPS" title="IBUS_KP_F1">IBUS_KP_F1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-F2:CAPS" title="IBUS_KP_F2">IBUS_KP_F2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-F3:CAPS" title="IBUS_KP_F3">IBUS_KP_F3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-F4:CAPS" title="IBUS_KP_F4">IBUS_KP_F4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Home" title="IBUS_KP_Home">IBUS_KP_Home</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Insert" title="IBUS_KP_Insert">IBUS_KP_Insert</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Left" title="IBUS_KP_Left">IBUS_KP_Left</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Multiply" title="IBUS_KP_Multiply">IBUS_KP_Multiply</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Next" title="IBUS_KP_Next">IBUS_KP_Next</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Page-Down" title="IBUS_KP_Page_Down">IBUS_KP_Page_Down</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Page-Up" title="IBUS_KP_Page_Up">IBUS_KP_Page_Up</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Prior" title="IBUS_KP_Prior">IBUS_KP_Prior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Right" title="IBUS_KP_Right">IBUS_KP_Right</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Separator" title="IBUS_KP_Separator">IBUS_KP_Separator</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Space" title="IBUS_KP_Space">IBUS_KP_Space</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Subtract" title="IBUS_KP_Subtract">IBUS_KP_Subtract</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Tab" title="IBUS_KP_Tab">IBUS_KP_Tab</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Up" title="IBUS_KP_Up">IBUS_KP_Up</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kra" title="IBUS_kra">IBUS_kra</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxL"></a><h3 class="title">L</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L:CAPS" title="IBUS_L">IBUS_L</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-l" title="IBUS_l">IBUS_l</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L1:CAPS" title="IBUS_L1">IBUS_L1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L10:CAPS" title="IBUS_L10">IBUS_L10</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L2:CAPS" title="IBUS_L2">IBUS_L2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L3:CAPS" title="IBUS_L3">IBUS_L3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L4:CAPS" title="IBUS_L4">IBUS_L4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L5:CAPS" title="IBUS_L5">IBUS_L5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L6:CAPS" title="IBUS_L6">IBUS_L6</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L7:CAPS" title="IBUS_L7">IBUS_L7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L8:CAPS" title="IBUS_L8">IBUS_L8</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L9:CAPS" title="IBUS_L9">IBUS_L9</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lacute" title="IBUS_lacute">IBUS_lacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lacute" title="IBUS_Lacute">IBUS_Lacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Last-Virtual-Screen" title="IBUS_Last_Virtual_Screen">IBUS_Last_Virtual_Screen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-latincross" title="IBUS_latincross">IBUS_latincross</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lbelowdot" title="IBUS_Lbelowdot">IBUS_Lbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lbelowdot" title="IBUS_lbelowdot">IBUS_lbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lcaron" title="IBUS_Lcaron">IBUS_Lcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lcaron" title="IBUS_lcaron">IBUS_lcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lcedilla" title="IBUS_lcedilla">IBUS_lcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lcedilla" title="IBUS_Lcedilla">IBUS_Lcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Left" title="IBUS_Left">IBUS_Left</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftanglebracket" title="IBUS_leftanglebracket">IBUS_leftanglebracket</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftarrow" title="IBUS_leftarrow">IBUS_leftarrow</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftcaret" title="IBUS_leftcaret">IBUS_leftcaret</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftdoublequotemark" title="IBUS_leftdoublequotemark">IBUS_leftdoublequotemark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftmiddlecurlybrace" title="IBUS_leftmiddlecurlybrace">IBUS_leftmiddlecurlybrace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftopentriangle" title="IBUS_leftopentriangle">IBUS_leftopentriangle</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftpointer" title="IBUS_leftpointer">IBUS_leftpointer</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftradical" title="IBUS_leftradical">IBUS_leftradical</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftshoe" title="IBUS_leftshoe">IBUS_leftshoe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftsinglequotemark" title="IBUS_leftsinglequotemark">IBUS_leftsinglequotemark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftt" title="IBUS_leftt">IBUS_leftt</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lefttack" title="IBUS_lefttack">IBUS_lefttack</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-less" title="IBUS_less">IBUS_less</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lessthanequal" title="IBUS_lessthanequal">IBUS_lessthanequal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lf" title="IBUS_lf">IBUS_lf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Linefeed" title="IBUS_Linefeed">IBUS_Linefeed</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-LiraSign" title="IBUS_LiraSign">IBUS_LiraSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-logicaland" title="IBUS_logicaland">IBUS_logicaland</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-logicalor" title="IBUS_logicalor">IBUS_logicalor</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#IBusLookupTable-struct" title="struct IBusLookupTable">IBusLookupTable</a>, struct in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#IBusLookupTableClass" title="struct IBusLookupTableClass">IBusLookupTableClass</a>, struct in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-append-candidate" title="ibus_lookup_table_append_candidate ()">ibus_lookup_table_append_candidate</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-append-label" title="ibus_lookup_table_append_label ()">ibus_lookup_table_append_label</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-clear" title="ibus_lookup_table_clear ()">ibus_lookup_table_clear</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-cursor-down" title="ibus_lookup_table_cursor_down ()">ibus_lookup_table_cursor_down</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-cursor-up" title="ibus_lookup_table_cursor_up ()">ibus_lookup_table_cursor_up</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-candidate" title="ibus_lookup_table_get_candidate ()">ibus_lookup_table_get_candidate</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-cursor-in-page" title="ibus_lookup_table_get_cursor_in_page ()">ibus_lookup_table_get_cursor_in_page</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-cursor-pos" title="ibus_lookup_table_get_cursor_pos ()">ibus_lookup_table_get_cursor_pos</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-label" title="ibus_lookup_table_get_label ()">ibus_lookup_table_get_label</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-number-of-candidates" title="ibus_lookup_table_get_number_of_candidates ()">ibus_lookup_table_get_number_of_candidates</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-orientation" title="ibus_lookup_table_get_orientation ()">ibus_lookup_table_get_orientation</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-get-page-size" title="ibus_lookup_table_get_page_size ()">ibus_lookup_table_get_page_size</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-is-cursor-visible" title="ibus_lookup_table_is_cursor_visible ()">ibus_lookup_table_is_cursor_visible</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-is-round" title="ibus_lookup_table_is_round ()">ibus_lookup_table_is_round</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-new" title="ibus_lookup_table_new ()">ibus_lookup_table_new</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-page-down" title="ibus_lookup_table_page_down ()">ibus_lookup_table_page_down</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-page-up" title="ibus_lookup_table_page_up ()">ibus_lookup_table_page_up</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-cursor-pos" title="ibus_lookup_table_set_cursor_pos ()">ibus_lookup_table_set_cursor_pos</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-cursor-visible" title="ibus_lookup_table_set_cursor_visible ()">ibus_lookup_table_set_cursor_visible</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-label" title="ibus_lookup_table_set_label ()">ibus_lookup_table_set_label</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-orientation" title="ibus_lookup_table_set_orientation ()">ibus_lookup_table_set_orientation</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-page-size" title="ibus_lookup_table_set_page_size ()">ibus_lookup_table_set_page_size</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusLookupTable.html#ibus-lookup-table-set-round" title="ibus_lookup_table_set_round ()">ibus_lookup_table_set_round</a>, function in <a class="link" href="IBusLookupTable.html" title="IBusLookupTable">IBusLookupTable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lowleftcorner" title="IBUS_lowleftcorner">IBUS_lowleftcorner</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lowrightcorner" title="IBUS_lowrightcorner">IBUS_lowrightcorner</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lstroke" title="IBUS_lstroke">IBUS_lstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lstroke" title="IBUS_Lstroke">IBUS_Lstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-m" title="IBUS_m">IBUS_m</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-M:CAPS" title="IBUS_M">IBUS_M</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Mabovedot" title="IBUS_Mabovedot">IBUS_Mabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-mabovedot" title="IBUS_mabovedot">IBUS_mabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-DSE" title="IBUS_Macedonia_DSE">IBUS_Macedonia_DSE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-dse" title="IBUS_Macedonia_dse">IBUS_Macedonia_dse</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-GJE" title="IBUS_Macedonia_GJE">IBUS_Macedonia_GJE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-gje" title="IBUS_Macedonia_gje">IBUS_Macedonia_gje</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-KJE" title="IBUS_Macedonia_KJE">IBUS_Macedonia_KJE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-kje" title="IBUS_Macedonia_kje">IBUS_Macedonia_kje</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-macron" title="IBUS_macron">IBUS_macron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Mae-Koho" title="IBUS_Mae_Koho">IBUS_Mae_Koho</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-main" title="ibus_main ()">ibus_main</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusversion.html#IBUS-MAJOR-VERSION:CAPS" title="IBUS_MAJOR_VERSION">IBUS_MAJOR_VERSION</a>, macro in <a class="link" href="ibus-ibusversion.html" title="ibusversion">ibusversion</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-malesymbol" title="IBUS_malesymbol">IBUS_malesymbol</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-maltesecross" title="IBUS_maltesecross">IBUS_maltesecross</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-marker" title="IBUS_marker">IBUS_marker</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-masculine" title="IBUS_masculine">IBUS_masculine</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Massyo" title="IBUS_Massyo">IBUS_Massyo</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-IBusEngineSimple.html#IBUS-MAX-COMPOSE-LEN:CAPS" title="IBUS_MAX_COMPOSE_LEN">IBUS_MAX_COMPOSE_LEN</a>, macro in <a class="link" href="ibus-IBusEngineSimple.html" title="IBusEngineSimple">IBusEngineSimple</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Menu" title="IBUS_Menu">IBUS_Menu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Meta-L" title="IBUS_Meta_L">IBUS_Meta_L</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Meta-R" title="IBUS_Meta_R">IBUS_Meta_R</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusversion.html#IBUS-MICRO-VERSION:CAPS" title="IBUS_MICRO_VERSION">IBUS_MICRO_VERSION</a>, macro in <a class="link" href="ibus-ibusversion.html" title="ibusversion">ibusversion</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-MillSign" title="IBUS_MillSign">IBUS_MillSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusversion.html#IBUS-MINOR-VERSION:CAPS" title="IBUS_MINOR_VERSION">IBUS_MINOR_VERSION</a>, macro in <a class="link" href="ibus-ibusversion.html" title="ibusversion">ibusversion</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-minus" title="IBUS_minus">IBUS_minus</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-minutes" title="IBUS_minutes">IBUS_minutes</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Mode-switch" title="IBUS_Mode_switch">IBUS_Mode_switch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusModifierType-enum" title="enum IBusModifierType">IBusModifierType</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-MouseKeys-Accel-Enable" title="IBUS_MouseKeys_Accel_Enable">IBUS_MouseKeys_Accel_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-MouseKeys-Enable" title="IBUS_MouseKeys_Enable">IBUS_MouseKeys_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-mu" title="IBUS_mu">IBUS_mu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Muhenkan" title="IBUS_Muhenkan">IBUS_Muhenkan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-MultipleCandidate" title="IBUS_MultipleCandidate">IBUS_MultipleCandidate</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-multiply" title="IBUS_multiply">IBUS_multiply</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Multi-key" title="IBUS_Multi_key">IBUS_Multi_key</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-musicalflat" title="IBUS_musicalflat">IBUS_musicalflat</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-musicalsharp" title="IBUS_musicalsharp">IBUS_musicalsharp</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxN"></a><h3 class="title">N</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-N:CAPS" title="IBUS_N">IBUS_N</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-n" title="IBUS_n">IBUS_n</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-nabla" title="IBUS_nabla">IBUS_nabla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Nacute" title="IBUS_Nacute">IBUS_Nacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-nacute" title="IBUS_nacute">IBUS_nacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-NairaSign" title="IBUS_NairaSign">IBUS_NairaSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ncaron" title="IBUS_ncaron">IBUS_ncaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ncaron" title="IBUS_Ncaron">IBUS_Ncaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ncedilla" title="IBUS_Ncedilla">IBUS_Ncedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ncedilla" title="IBUS_ncedilla">IBUS_ncedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-NewSheqelSign" title="IBUS_NewSheqelSign">IBUS_NewSheqelSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Next" title="IBUS_Next">IBUS_Next</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Next-Virtual-Screen" title="IBUS_Next_Virtual_Screen">IBUS_Next_Virtual_Screen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ninesubscript" title="IBUS_ninesubscript">IBUS_ninesubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ninesuperior" title="IBUS_ninesuperior">IBUS_ninesuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-nl" title="IBUS_nl">IBUS_nl</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-nobreakspace" title="IBUS_nobreakspace">IBUS_nobreakspace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notapproxeq" title="IBUS_notapproxeq">IBUS_notapproxeq</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notelementof" title="IBUS_notelementof">IBUS_notelementof</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notequal" title="IBUS_notequal">IBUS_notequal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notidentical" title="IBUS_notidentical">IBUS_notidentical</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notsign" title="IBUS_notsign">IBUS_notsign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ntilde" title="IBUS_Ntilde">IBUS_Ntilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ntilde" title="IBUS_ntilde">IBUS_ntilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-numbersign" title="IBUS_numbersign">IBUS_numbersign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-numerosign" title="IBUS_numerosign">IBUS_numerosign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Num-Lock" title="IBUS_Num_Lock">IBUS_Num_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxO"></a><h3 class="title">O</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-O:CAPS" title="IBUS_O">IBUS_O</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-o" title="IBUS_o">IBUS_o</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Oacute" title="IBUS_Oacute">IBUS_Oacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-oacute" title="IBUS_oacute">IBUS_oacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-obarred" title="IBUS_obarred">IBUS_obarred</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Obarred" title="IBUS_Obarred">IBUS_Obarred</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-obelowdot" title="IBUS_obelowdot">IBUS_obelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Obelowdot" title="IBUS_Obelowdot">IBUS_Obelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObject.html#IBusObject-struct" title="struct IBusObject">IBusObject</a>, struct in <a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObject.html#IBusObject-destroy" title='The "destroy" signal'>IBusObject::destroy</a>, object signal in <a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObject.html#IBusObjectClass" title="struct IBusObjectClass">IBusObjectClass</a>, struct in <a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObject.html#ibus-object-destroy" title="ibus_object_destroy ()">ibus_object_destroy</a>, function in <a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObject.html#IBUS-OBJECT-DESTROYED:CAPS" title="IBUS_OBJECT_DESTROYED()">IBUS_OBJECT_DESTROYED</a>, macro in <a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObject.html#IBUS-OBJECT-IN-DESTRUCTION:CAPS" title="IBUS_OBJECT_IN_DESTRUCTION()">IBUS_OBJECT_IN_DESTRUCTION</a>, macro in <a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObject.html#ibus-object-new" title="ibus_object_new ()">ibus_object_new</a>, function in <a class="link" href="IBusObject.html" title="IBusObject">IBusObject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObservedPath.html#IBusObservedPath-struct" title="struct IBusObservedPath">IBusObservedPath</a>, struct in <a class="link" href="IBusObservedPath.html" title="IBusObservedPath">IBusObservedPath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObservedPath.html#IBusObservedPathClass" title="struct IBusObservedPathClass">IBusObservedPathClass</a>, struct in <a class="link" href="IBusObservedPath.html" title="IBusObservedPath">IBusObservedPath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObservedPath.html#ibus-observed-path-check-modification" title="ibus_observed_path_check_modification ()">ibus_observed_path_check_modification</a>, function in <a class="link" href="IBusObservedPath.html" title="IBusObservedPath">IBusObservedPath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObservedPath.html#ibus-observed-path-new" title="ibus_observed_path_new ()">ibus_observed_path_new</a>, function in <a class="link" href="IBusObservedPath.html" title="IBusObservedPath">IBusObservedPath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObservedPath.html#ibus-observed-path-new-from-xml-node" title="ibus_observed_path_new_from_xml_node ()">ibus_observed_path_new_from_xml_node</a>, function in <a class="link" href="IBusObservedPath.html" title="IBusObservedPath">IBusObservedPath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObservedPath.html#ibus-observed-path-output" title="ibus_observed_path_output ()">ibus_observed_path_output</a>, function in <a class="link" href="IBusObservedPath.html" title="IBusObservedPath">IBusObservedPath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusObservedPath.html#ibus-observed-path-traverse" title="ibus_observed_path_traverse ()">ibus_observed_path_traverse</a>, function in <a class="link" href="IBusObservedPath.html" title="IBusObservedPath">IBusObservedPath</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocaron" title="IBUS_ocaron">IBUS_ocaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocaron" title="IBUS_Ocaron">IBUS_Ocaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflex" title="IBUS_ocircumflex">IBUS_ocircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflex" title="IBUS_Ocircumflex">IBUS_Ocircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexacute" title="IBUS_Ocircumflexacute">IBUS_Ocircumflexacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexacute" title="IBUS_ocircumflexacute">IBUS_ocircumflexacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexbelowdot" title="IBUS_ocircumflexbelowdot">IBUS_ocircumflexbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexbelowdot" title="IBUS_Ocircumflexbelowdot">IBUS_Ocircumflexbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexgrave" title="IBUS_ocircumflexgrave">IBUS_ocircumflexgrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexgrave" title="IBUS_Ocircumflexgrave">IBUS_Ocircumflexgrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexhook" title="IBUS_ocircumflexhook">IBUS_ocircumflexhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexhook" title="IBUS_Ocircumflexhook">IBUS_Ocircumflexhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflextilde" title="IBUS_Ocircumflextilde">IBUS_Ocircumflextilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflextilde" title="IBUS_ocircumflextilde">IBUS_ocircumflextilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Odiaeresis" title="IBUS_Odiaeresis">IBUS_Odiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-odiaeresis" title="IBUS_odiaeresis">IBUS_odiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Odoubleacute" title="IBUS_Odoubleacute">IBUS_Odoubleacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-odoubleacute" title="IBUS_odoubleacute">IBUS_odoubleacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-OE:CAPS" title="IBUS_OE">IBUS_OE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-oe" title="IBUS_oe">IBUS_oe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ogonek" title="IBUS_ogonek">IBUS_ogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ograve" title="IBUS_ograve">IBUS_ograve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ograve" title="IBUS_Ograve">IBUS_Ograve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohook" title="IBUS_ohook">IBUS_ohook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohook" title="IBUS_Ohook">IBUS_Ohook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohorn" title="IBUS_ohorn">IBUS_ohorn</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohorn" title="IBUS_Ohorn">IBUS_Ohorn</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohornacute" title="IBUS_ohornacute">IBUS_ohornacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohornacute" title="IBUS_Ohornacute">IBUS_Ohornacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohornbelowdot" title="IBUS_Ohornbelowdot">IBUS_Ohornbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohornbelowdot" title="IBUS_ohornbelowdot">IBUS_ohornbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohorngrave" title="IBUS_Ohorngrave">IBUS_Ohorngrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohorngrave" title="IBUS_ohorngrave">IBUS_ohorngrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohornhook" title="IBUS_Ohornhook">IBUS_Ohornhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohornhook" title="IBUS_ohornhook">IBUS_ohornhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohorntilde" title="IBUS_Ohorntilde">IBUS_Ohorntilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohorntilde" title="IBUS_ohorntilde">IBUS_ohorntilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Omacron" title="IBUS_Omacron">IBUS_Omacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-omacron" title="IBUS_omacron">IBUS_omacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-oneeighth" title="IBUS_oneeighth">IBUS_oneeighth</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onefifth" title="IBUS_onefifth">IBUS_onefifth</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onehalf" title="IBUS_onehalf">IBUS_onehalf</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onequarter" title="IBUS_onequarter">IBUS_onequarter</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onesixth" title="IBUS_onesixth">IBUS_onesixth</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onesubscript" title="IBUS_onesubscript">IBUS_onesubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onesuperior" title="IBUS_onesuperior">IBUS_onesuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onethird" title="IBUS_onethird">IBUS_onethird</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ooblique" title="IBUS_ooblique">IBUS_ooblique</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ooblique" title="IBUS_Ooblique">IBUS_Ooblique</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-openrectbullet" title="IBUS_openrectbullet">IBUS_openrectbullet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-openstar" title="IBUS_openstar">IBUS_openstar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-opentribulletdown" title="IBUS_opentribulletdown">IBUS_opentribulletdown</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-opentribulletup" title="IBUS_opentribulletup">IBUS_opentribulletup</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ordfeminine" title="IBUS_ordfeminine">IBUS_ordfeminine</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusOrientation-enum" title="enum IBusOrientation">IBusOrientation</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-oslash" title="IBUS_oslash">IBUS_oslash</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Oslash" title="IBUS_Oslash">IBUS_Oslash</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-otilde" title="IBUS_otilde">IBUS_otilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Otilde" title="IBUS_Otilde">IBUS_Otilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-overbar" title="IBUS_overbar">IBUS_overbar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Overlay1-Enable" title="IBUS_Overlay1_Enable">IBUS_Overlay1_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Overlay2-Enable" title="IBUS_Overlay2_Enable">IBUS_Overlay2_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-overline" title="IBUS_overline">IBUS_overline</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxP"></a><h3 class="title">P</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-P:CAPS" title="IBUS_P">IBUS_P</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-p" title="IBUS_p">IBUS_p</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pabovedot" title="IBUS_Pabovedot">IBUS_Pabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-pabovedot" title="IBUS_pabovedot">IBUS_pabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Page-Down" title="IBUS_Page_Down">IBUS_Page_Down</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Page-Up" title="IBUS_Page_Up">IBUS_Page_Up</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-struct" title="struct IBusPanelService">IBusPanelService</a>, struct in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-cursor-down-lookup-table" title='The "cursor-down-lookup-table" signal'>IBusPanelService::cursor-down-lookup-table</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-cursor-up-lookup-table" title='The "cursor-up-lookup-table" signal'>IBusPanelService::cursor-up-lookup-table</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-destroy-context" title='The "destroy-context" signal'>IBusPanelService::destroy-context</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-focus-in" title='The "focus-in" signal'>IBusPanelService::focus-in</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-focus-out" title='The "focus-out" signal'>IBusPanelService::focus-out</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-hide-auxiliary-text" title='The "hide-auxiliary-text" signal'>IBusPanelService::hide-auxiliary-text</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-hide-language-bar" title='The "hide-language-bar" signal'>IBusPanelService::hide-language-bar</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-hide-lookup-table" title='The "hide-lookup-table" signal'>IBusPanelService::hide-lookup-table</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-hide-preedit-text" title='The "hide-preedit-text" signal'>IBusPanelService::hide-preedit-text</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-page-down-lookup-table" title='The "page-down-lookup-table" signal'>IBusPanelService::page-down-lookup-table</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-page-up-lookup-table" title='The "page-up-lookup-table" signal'>IBusPanelService::page-up-lookup-table</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-register-properties" title='The "register-properties" signal'>IBusPanelService::register-properties</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-reset" title='The "reset" signal'>IBusPanelService::reset</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-set-cursor-location" title='The "set-cursor-location" signal'>IBusPanelService::set-cursor-location</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-show-auxiliary-text" title='The "show-auxiliary-text" signal'>IBusPanelService::show-auxiliary-text</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-show-language-bar" title='The "show-language-bar" signal'>IBusPanelService::show-language-bar</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-show-lookup-table" title='The "show-lookup-table" signal'>IBusPanelService::show-lookup-table</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-show-preedit-text" title='The "show-preedit-text" signal'>IBusPanelService::show-preedit-text</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-start-setup" title='The "start-setup" signal'>IBusPanelService::start-setup</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-state-changed" title='The "state-changed" signal'>IBusPanelService::state-changed</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-update-auxiliary-text" title='The "update-auxiliary-text" signal'>IBusPanelService::update-auxiliary-text</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-update-lookup-table" title='The "update-lookup-table" signal'>IBusPanelService::update-lookup-table</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-update-preedit-text" title='The "update-preedit-text" signal'>IBusPanelService::update-preedit-text</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelService-update-property" title='The "update-property" signal'>IBusPanelService::update-property</a>, object signal in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#IBusPanelServiceClass" title="struct IBusPanelServiceClass">IBusPanelServiceClass</a>, struct in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#ibus-panel-service-candidate-clicked" title="ibus_panel_service_candidate_clicked ()">ibus_panel_service_candidate_clicked</a>, function in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#ibus-panel-service-cursor-down" title="ibus_panel_service_cursor_down ()">ibus_panel_service_cursor_down</a>, function in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#ibus-panel-service-cursor-up" title="ibus_panel_service_cursor_up ()">ibus_panel_service_cursor_up</a>, function in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#ibus-panel-service-new" title="ibus_panel_service_new ()">ibus_panel_service_new</a>, function in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#ibus-panel-service-page-down" title="ibus_panel_service_page_down ()">ibus_panel_service_page_down</a>, function in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#ibus-panel-service-page-up" title="ibus_panel_service_page_up ()">ibus_panel_service_page_up</a>, function in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#ibus-panel-service-property-activate" title="ibus_panel_service_property_activate ()">ibus_panel_service_property_activate</a>, function in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#ibus-panel-service-property-hide" title="ibus_panel_service_property_hide ()">ibus_panel_service_property_hide</a>, function in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPanelService.html#ibus-panel-service-property-show" title="ibus_panel_service_property_show ()">ibus_panel_service_property_show</a>, function in <a class="link" href="IBusPanelService.html" title="IBusPanelService">IBusPanelService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-paragraph" title="IBUS_paragraph">IBUS_paragraph</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-parenleft" title="IBUS_parenleft">IBUS_parenleft</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-parenright" title="IBUS_parenright">IBUS_parenright</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-partdifferential" title="IBUS_partdifferential">IBUS_partdifferential</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-partialderivative" title="IBUS_partialderivative">IBUS_partialderivative</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-PATH-CONFIG:CAPS" title="IBUS_PATH_CONFIG">IBUS_PATH_CONFIG</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-PATH-FACTORY:CAPS" title="IBUS_PATH_FACTORY">IBUS_PATH_FACTORY</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-PATH-IBUS:CAPS" title="IBUS_PATH_IBUS">IBUS_PATH_IBUS</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-PATH-INPUT-CONTEXT:CAPS" title="IBUS_PATH_INPUT_CONTEXT">IBUS_PATH_INPUT_CONTEXT</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-PATH-NOTIFICATIONS:CAPS" title="IBUS_PATH_NOTIFICATIONS">IBUS_PATH_NOTIFICATIONS</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-PATH-PANEL:CAPS" title="IBUS_PATH_PANEL">IBUS_PATH_PANEL</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pause" title="IBUS_Pause">IBUS_Pause</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-percent" title="IBUS_percent">IBUS_percent</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-period" title="IBUS_period">IBUS_period</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-periodcentered" title="IBUS_periodcentered">IBUS_periodcentered</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-PesetaSign" title="IBUS_PesetaSign">IBUS_PesetaSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-phonographcopyright" title="IBUS_phonographcopyright">IBUS_phonographcopyright</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-plus" title="IBUS_plus">IBUS_plus</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-plusminus" title="IBUS_plusminus">IBUS_plusminus</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Accelerate" title="IBUS_Pointer_Accelerate">IBUS_Pointer_Accelerate</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button1" title="IBUS_Pointer_Button1">IBUS_Pointer_Button1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button2" title="IBUS_Pointer_Button2">IBUS_Pointer_Button2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button3" title="IBUS_Pointer_Button3">IBUS_Pointer_Button3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button4" title="IBUS_Pointer_Button4">IBUS_Pointer_Button4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button5" title="IBUS_Pointer_Button5">IBUS_Pointer_Button5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button-Dflt" title="IBUS_Pointer_Button_Dflt">IBUS_Pointer_Button_Dflt</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick1" title="IBUS_Pointer_DblClick1">IBUS_Pointer_DblClick1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick2" title="IBUS_Pointer_DblClick2">IBUS_Pointer_DblClick2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick3" title="IBUS_Pointer_DblClick3">IBUS_Pointer_DblClick3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick4" title="IBUS_Pointer_DblClick4">IBUS_Pointer_DblClick4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick5" title="IBUS_Pointer_DblClick5">IBUS_Pointer_DblClick5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick-Dflt" title="IBUS_Pointer_DblClick_Dflt">IBUS_Pointer_DblClick_Dflt</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DfltBtnNext" title="IBUS_Pointer_DfltBtnNext">IBUS_Pointer_DfltBtnNext</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DfltBtnPrev" title="IBUS_Pointer_DfltBtnPrev">IBUS_Pointer_DfltBtnPrev</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Down" title="IBUS_Pointer_Down">IBUS_Pointer_Down</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DownLeft" title="IBUS_Pointer_DownLeft">IBUS_Pointer_DownLeft</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DownRight" title="IBUS_Pointer_DownRight">IBUS_Pointer_DownRight</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag1" title="IBUS_Pointer_Drag1">IBUS_Pointer_Drag1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag2" title="IBUS_Pointer_Drag2">IBUS_Pointer_Drag2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag3" title="IBUS_Pointer_Drag3">IBUS_Pointer_Drag3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag4" title="IBUS_Pointer_Drag4">IBUS_Pointer_Drag4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag5" title="IBUS_Pointer_Drag5">IBUS_Pointer_Drag5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag-Dflt" title="IBUS_Pointer_Drag_Dflt">IBUS_Pointer_Drag_Dflt</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-EnableKeys" title="IBUS_Pointer_EnableKeys">IBUS_Pointer_EnableKeys</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Left" title="IBUS_Pointer_Left">IBUS_Pointer_Left</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Right" title="IBUS_Pointer_Right">IBUS_Pointer_Right</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Up" title="IBUS_Pointer_Up">IBUS_Pointer_Up</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-UpLeft" title="IBUS_Pointer_UpLeft">IBUS_Pointer_UpLeft</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-UpRight" title="IBUS_Pointer_UpRight">IBUS_Pointer_UpRight</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusPreeditFocusMode" title="enum IBusPreeditFocusMode">IBusPreeditFocusMode</a>, enum in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-prescription" title="IBUS_prescription">IBUS_prescription</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-PreviousCandidate" title="IBUS_PreviousCandidate">IBUS_PreviousCandidate</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Prev-Virtual-Screen" title="IBUS_Prev_Virtual_Screen">IBUS_Prev_Virtual_Screen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Print" title="IBUS_Print">IBUS_Print</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Prior" title="IBUS_Prior">IBUS_Prior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-prolongedsound" title="IBUS_prolongedsound">IBUS_prolongedsound</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty-struct" title="struct IBusProperty">IBusProperty</a>, struct in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--icon" title='The "icon" property'>IBusProperty:icon</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--key" title='The "key" property'>IBusProperty:key</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--label" title='The "label" property'>IBusProperty:label</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--prop-type" title='The "prop-type" property'>IBusProperty:prop-type</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--sensitive" title='The "sensitive" property'>IBusProperty:sensitive</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--state" title='The "state" property'>IBusProperty:state</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--sub-props" title='The "sub-props" property'>IBusProperty:sub-props</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--symbol" title='The "symbol" property'>IBusProperty:symbol</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--tooltip" title='The "tooltip" property'>IBusProperty:tooltip</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusProperty--visible" title='The "visible" property'>IBusProperty:visible</a>, object property in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusPropertyClass" title="struct IBusPropertyClass">IBusPropertyClass</a>, struct in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-icon" title="ibus_property_get_icon ()">ibus_property_get_icon</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-key" title="ibus_property_get_key ()">ibus_property_get_key</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-label" title="ibus_property_get_label ()">ibus_property_get_label</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-prop-type" title="ibus_property_get_prop_type ()">ibus_property_get_prop_type</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-sensitive" title="ibus_property_get_sensitive ()">ibus_property_get_sensitive</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-state" title="ibus_property_get_state ()">ibus_property_get_state</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-sub-props" title="ibus_property_get_sub_props ()">ibus_property_get_sub_props</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-symbol" title="ibus_property_get_symbol ()">ibus_property_get_symbol</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-tooltip" title="ibus_property_get_tooltip ()">ibus_property_get_tooltip</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-get-visible" title="ibus_property_get_visible ()">ibus_property_get_visible</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-new" title="ibus_property_new ()">ibus_property_new</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-new-varargs" title="ibus_property_new_varargs ()">ibus_property_new_varargs</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-set-icon" title="ibus_property_set_icon ()">ibus_property_set_icon</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-set-label" title="ibus_property_set_label ()">ibus_property_set_label</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-set-sensitive" title="ibus_property_set_sensitive ()">ibus_property_set_sensitive</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-set-state" title="ibus_property_set_state ()">ibus_property_set_state</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-set-sub-props" title="ibus_property_set_sub_props ()">ibus_property_set_sub_props</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-set-symbol" title="ibus_property_set_symbol ()">ibus_property_set_symbol</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-set-tooltip" title="ibus_property_set_tooltip ()">ibus_property_set_tooltip</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-set-visible" title="ibus_property_set_visible ()">ibus_property_set_visible</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#ibus-property-update" title="ibus_property_update ()">ibus_property_update</a>, function in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusPropList-struct" title="IBusPropList">IBusPropList</a>, struct in <a class="link" href="IBusProperty.html#IBusPropList">IBusPropList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusPropListClass" title="IBusPropListClass">IBusPropListClass</a>, struct in <a class="link" href="IBusProperty.html#IBusPropList">IBusPropList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusPropState-enum" title="enum IBusPropState">IBusPropState</a>, enum in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProperty.html#IBusPropType-enum" title="enum IBusPropType">IBusPropType</a>, enum in <a class="link" href="IBusProperty.html" title="IBusProperty">IBusProperty</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPropList.html#ibus-prop-list-append" title="ibus_prop_list_append ()">ibus_prop_list_append</a>, function in <a class="link" href="IBusProperty.html#IBusPropList">IBusPropList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPropList.html#ibus-prop-list-get" title="ibus_prop_list_get ()">ibus_prop_list_get</a>, function in <a class="link" href="IBusProperty.html#IBusPropList">IBusPropList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPropList.html#ibus-prop-list-new" title="ibus_prop_list_new ()">ibus_prop_list_new</a>, function in <a class="link" href="IBusProperty.html#IBusPropList">IBusPropList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusPropList.html#ibus-prop-list-update-property" title="ibus_prop_list_update_property ()">ibus_prop_list_update_property</a>, function in <a class="link" href="IBusProperty.html#IBusPropList">IBusPropList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProxy.html#IBusProxy-struct" title="struct IBusProxy">IBusProxy</a>, struct in <a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProxy.html#IBusProxy-destroy" title='The "destroy" signal'>IBusProxy::destroy</a>, object signal in <a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProxy.html#IBusProxyClass" title="struct IBusProxyClass">IBusProxyClass</a>, struct in <a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProxy.html#ibus-proxy-destroy" title="ibus_proxy_destroy ()">ibus_proxy_destroy</a>, function in <a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProxy.html#IBUS-PROXY-DESTROYED:CAPS" title="IBUS_PROXY_DESTROYED()">IBUS_PROXY_DESTROYED</a>, macro in <a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProxy.html#IBUS-PROXY-FLAGS:CAPS" title="IBUS_PROXY_FLAGS()">IBUS_PROXY_FLAGS</a>, macro in <a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProxy.html#IBUS-PROXY-SET-FLAGS:CAPS" title="IBUS_PROXY_SET_FLAGS()">IBUS_PROXY_SET_FLAGS</a>, macro in <a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusProxy.html#IBUS-PROXY-UNSET-FLAGS:CAPS" title="IBUS_PROXY_UNSET_FLAGS()">IBUS_PROXY_UNSET_FLAGS</a>, macro in <a class="link" href="IBusProxy.html" title="IBusProxy">IBusProxy</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-punctspace" title="IBUS_punctspace">IBUS_punctspace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxQ"></a><h3 class="title">Q</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Q:CAPS" title="IBUS_Q">IBUS_Q</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-q" title="IBUS_q">IBUS_q</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-quad" title="IBUS_quad">IBUS_quad</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-question" title="IBUS_question">IBUS_question</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-questiondown" title="IBUS_questiondown">IBUS_questiondown</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-quit" title="ibus_quit ()">ibus_quit</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-quotedbl" title="IBUS_quotedbl">IBUS_quotedbl</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-quoteleft" title="IBUS_quoteleft">IBUS_quoteleft</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-quoteright" title="IBUS_quoteright">IBUS_quoteright</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxR"></a><h3 class="title">R</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-r" title="IBUS_r">IBUS_r</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R:CAPS" title="IBUS_R">IBUS_R</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R1:CAPS" title="IBUS_R1">IBUS_R1</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R10:CAPS" title="IBUS_R10">IBUS_R10</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R11:CAPS" title="IBUS_R11">IBUS_R11</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R12:CAPS" title="IBUS_R12">IBUS_R12</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R13:CAPS" title="IBUS_R13">IBUS_R13</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R14:CAPS" title="IBUS_R14">IBUS_R14</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R15:CAPS" title="IBUS_R15">IBUS_R15</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R2:CAPS" title="IBUS_R2">IBUS_R2</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R3:CAPS" title="IBUS_R3">IBUS_R3</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R4:CAPS" title="IBUS_R4">IBUS_R4</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R5:CAPS" title="IBUS_R5">IBUS_R5</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R6:CAPS" title="IBUS_R6">IBUS_R6</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R7:CAPS" title="IBUS_R7">IBUS_R7</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R8:CAPS" title="IBUS_R8">IBUS_R8</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R9:CAPS" title="IBUS_R9">IBUS_R9</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-racute" title="IBUS_racute">IBUS_racute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Racute" title="IBUS_Racute">IBUS_Racute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-radical" title="IBUS_radical">IBUS_radical</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rcaron" title="IBUS_rcaron">IBUS_rcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Rcaron" title="IBUS_Rcaron">IBUS_Rcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Rcedilla" title="IBUS_Rcedilla">IBUS_Rcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rcedilla" title="IBUS_rcedilla">IBUS_rcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibustypes.html#IBusRectangle" title="struct IBusRectangle">IBusRectangle</a>, struct in <a class="link" href="ibus-ibustypes.html" title="ibustypes">ibustypes</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Redo" title="IBUS_Redo">IBUS_Redo</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-registered" title="IBUS_registered">IBUS_registered</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#IBusRegistry-struct" title="struct IBusRegistry">IBusRegistry</a>, struct in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#IBusRegistry-changed" title='The "changed" signal'>IBusRegistry::changed</a>, object signal in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#IBusRegistryClass" title="struct IBusRegistryClass">IBusRegistryClass</a>, struct in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-check-modification" title="ibus_registry_check_modification ()">ibus_registry_check_modification</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-get-components" title="ibus_registry_get_components ()">ibus_registry_get_components</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-get-observed-paths" title="ibus_registry_get_observed_paths ()">ibus_registry_get_observed_paths</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-load" title="ibus_registry_load ()">ibus_registry_load</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-load-cache" title="ibus_registry_load_cache ()">ibus_registry_load_cache</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-load-cache-file" title="ibus_registry_load_cache_file ()">ibus_registry_load_cache_file</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-load-in-dir" title="ibus_registry_load_in_dir ()">ibus_registry_load_in_dir</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-new" title="ibus_registry_new ()">ibus_registry_new</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-output" title="ibus_registry_output ()">ibus_registry_output</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-save-cache" title="ibus_registry_save_cache ()">ibus_registry_save_cache</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-save-cache-file" title="ibus_registry_save_cache_file ()">ibus_registry_save_cache_file</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusRegistry.html#ibus-registry-start-monitor-changes" title="ibus_registry_start_monitor_changes ()">ibus_registry_start_monitor_changes</a>, function in <a class="link" href="IBusRegistry.html" title="IBusRegistry">IBusRegistry</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-RepeatKeys-Enable" title="IBUS_RepeatKeys_Enable">IBUS_RepeatKeys_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Return" title="IBUS_Return">IBUS_Return</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Right" title="IBUS_Right">IBUS_Right</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightanglebracket" title="IBUS_rightanglebracket">IBUS_rightanglebracket</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightarrow" title="IBUS_rightarrow">IBUS_rightarrow</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightcaret" title="IBUS_rightcaret">IBUS_rightcaret</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightdoublequotemark" title="IBUS_rightdoublequotemark">IBUS_rightdoublequotemark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightmiddlecurlybrace" title="IBUS_rightmiddlecurlybrace">IBUS_rightmiddlecurlybrace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightmiddlesummation" title="IBUS_rightmiddlesummation">IBUS_rightmiddlesummation</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightopentriangle" title="IBUS_rightopentriangle">IBUS_rightopentriangle</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightpointer" title="IBUS_rightpointer">IBUS_rightpointer</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightshoe" title="IBUS_rightshoe">IBUS_rightshoe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightsinglequotemark" title="IBUS_rightsinglequotemark">IBUS_rightsinglequotemark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightt" title="IBUS_rightt">IBUS_rightt</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-righttack" title="IBUS_righttack">IBUS_righttack</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Romaji" title="IBUS_Romaji">IBUS_Romaji</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-RupeeSign" title="IBUS_RupeeSign">IBUS_RupeeSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxS"></a><h3 class="title">S</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-s" title="IBUS_s">IBUS_s</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-S:CAPS" title="IBUS_S">IBUS_S</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Sabovedot" title="IBUS_Sabovedot">IBUS_Sabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sabovedot" title="IBUS_sabovedot">IBUS_sabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sacute" title="IBUS_sacute">IBUS_sacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Sacute" title="IBUS_Sacute">IBUS_Sacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Scaron" title="IBUS_Scaron">IBUS_Scaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-scaron" title="IBUS_scaron">IBUS_scaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Scedilla" title="IBUS_Scedilla">IBUS_Scedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-scedilla" title="IBUS_scedilla">IBUS_scedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-schwa" title="IBUS_schwa">IBUS_schwa</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-SCHWA:CAPS" title="IBUS_SCHWA">IBUS_SCHWA</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-scircumflex" title="IBUS_scircumflex">IBUS_scircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Scircumflex" title="IBUS_Scircumflex">IBUS_Scircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-script-switch" title="IBUS_script_switch">IBUS_script_switch</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Scroll-Lock" title="IBUS_Scroll_Lock">IBUS_Scroll_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-seconds" title="IBUS_seconds">IBUS_seconds</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-section" title="IBUS_section">IBUS_section</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Select" title="IBUS_Select">IBUS_Select</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-semicolon" title="IBUS_semicolon">IBUS_semicolon</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-semivoicedsound" title="IBUS_semivoicedsound">IBUS_semivoicedsound</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-dje" title="IBUS_Serbian_dje">IBUS_Serbian_dje</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-DJE" title="IBUS_Serbian_DJE">IBUS_Serbian_DJE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-DZE" title="IBUS_Serbian_DZE">IBUS_Serbian_DZE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-dze" title="IBUS_Serbian_dze">IBUS_Serbian_dze</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-je" title="IBUS_Serbian_je">IBUS_Serbian_je</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-JE" title="IBUS_Serbian_JE">IBUS_Serbian_JE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-LJE" title="IBUS_Serbian_LJE">IBUS_Serbian_LJE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-lje" title="IBUS_Serbian_lje">IBUS_Serbian_lje</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-nje" title="IBUS_Serbian_nje">IBUS_Serbian_nje</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-NJE" title="IBUS_Serbian_NJE">IBUS_Serbian_NJE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-tshe" title="IBUS_Serbian_tshe">IBUS_Serbian_tshe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-TSHE" title="IBUS_Serbian_TSHE">IBUS_Serbian_TSHE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#IBusSerializable-struct" title="struct IBusSerializable">IBusSerializable</a>, struct in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#IBusSerializableClass" title="struct IBusSerializableClass">IBusSerializableClass</a>, struct in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#IBusSerializableCopyFunc" title="IBusSerializableCopyFunc ()">IBusSerializableCopyFunc</a>, user_function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#IBusSerializableDeserializeFunc" title="IBusSerializableDeserializeFunc ()">IBusSerializableDeserializeFunc</a>, user_function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#IBusSerializableSerializeFunc" title="IBusSerializableSerializeFunc ()">IBusSerializableSerializeFunc</a>, user_function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-copy" title="ibus_serializable_copy ()">ibus_serializable_copy</a>, function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-deserialize" title="ibus_serializable_deserialize ()">ibus_serializable_deserialize</a>, function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-get-attachment" title="ibus_serializable_get_attachment()">ibus_serializable_get_attachment</a>, macro in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-get-qattachment" title="ibus_serializable_get_qattachment ()">ibus_serializable_get_qattachment</a>, function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-new" title="ibus_serializable_new ()">ibus_serializable_new</a>, function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-remove-attachment" title="ibus_serializable_remove_attachment()">ibus_serializable_remove_attachment</a>, macro in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-remove-qattachment" title="ibus_serializable_remove_qattachment ()">ibus_serializable_remove_qattachment</a>, function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-serialize" title="ibus_serializable_serialize ()">ibus_serializable_serialize</a>, function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-set-attachment" title="ibus_serializable_set_attachment()">ibus_serializable_set_attachment</a>, macro in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusSerializable.html#ibus-serializable-set-qattachment" title="ibus_serializable_set_qattachment ()">ibus_serializable_set_qattachment</a>, function in <a class="link" href="IBusSerializable.html" title="IBusSerializable">IBusSerializable</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusService.html#IBusService-struct" title="struct IBusService">IBusService</a>, struct in <a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusService.html#IBusServiceClass" title="struct IBusServiceClass">IBusServiceClass</a>, struct in <a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusService.html#ibus-service-class-add-interfaces" title="ibus_service_class_add_interfaces ()">ibus_service_class_add_interfaces</a>, function in <a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-SERVICE-CONFIG:CAPS" title="IBUS_SERVICE_CONFIG">IBUS_SERVICE_CONFIG</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusService.html#ibus-service-emit-signal" title="ibus_service_emit_signal ()">ibus_service_emit_signal</a>, function in <a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusService.html#ibus-service-get-connection" title="ibus_service_get_connection ()">ibus_service_get_connection</a>, function in <a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusService.html#ibus-service-get-object-path" title="ibus_service_get_object_path ()">ibus_service_get_object_path</a>, function in <a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-SERVICE-IBUS:CAPS" title="IBUS_SERVICE_IBUS">IBUS_SERVICE_IBUS</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusService.html#ibus-service-new" title="ibus_service_new ()">ibus_service_new</a>, function in <a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-SERVICE-NOTIFICATIONS:CAPS" title="IBUS_SERVICE_NOTIFICATIONS">IBUS_SERVICE_NOTIFICATIONS</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#IBUS-SERVICE-PANEL:CAPS" title="IBUS_SERVICE_PANEL">IBUS_SERVICE_PANEL</a>, macro in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusService.html#ibus-service-register" title="ibus_service_register ()">ibus_service_register</a>, function in <a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusService.html#ibus-service-unregister" title="ibus_service_unregister ()">ibus_service_unregister</a>, function in <a class="link" href="IBusService.html" title="IBusService">IBusService</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-set-display" title="ibus_set_display ()">ibus_set_display</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-set-log-handler" title="ibus_set_log_handler ()">ibus_set_log_handler</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-seveneighths" title="IBUS_seveneighths">IBUS_seveneighths</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sevensubscript" title="IBUS_sevensubscript">IBUS_sevensubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sevensuperior" title="IBUS_sevensuperior">IBUS_sevensuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Shift-L" title="IBUS_Shift_L">IBUS_Shift_L</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Shift-Lock" title="IBUS_Shift_Lock">IBUS_Shift_Lock</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Shift-R" title="IBUS_Shift_R">IBUS_Shift_R</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-signaturemark" title="IBUS_signaturemark">IBUS_signaturemark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-signifblank" title="IBUS_signifblank">IBUS_signifblank</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-similarequal" title="IBUS_similarequal">IBUS_similarequal</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-SingleCandidate" title="IBUS_SingleCandidate">IBUS_SingleCandidate</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-singlelowquotemark" title="IBUS_singlelowquotemark">IBUS_singlelowquotemark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sixsubscript" title="IBUS_sixsubscript">IBUS_sixsubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sixsuperior" title="IBUS_sixsuperior">IBUS_sixsuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-slash" title="IBUS_slash">IBUS_slash</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-SlowKeys-Enable" title="IBUS_SlowKeys_Enable">IBUS_SlowKeys_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-soliddiamond" title="IBUS_soliddiamond">IBUS_soliddiamond</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-space" title="IBUS_space">IBUS_space</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-squareroot" title="IBUS_squareroot">IBUS_squareroot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ssharp" title="IBUS_ssharp">IBUS_ssharp</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sterling" title="IBUS_sterling">IBUS_sterling</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-StickyKeys-Enable" title="IBUS_StickyKeys_Enable">IBUS_StickyKeys_Enable</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-stricteq" title="IBUS_stricteq">IBUS_stricteq</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Super-L" title="IBUS_Super_L">IBUS_Super_L</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Super-R" title="IBUS_Super_R">IBUS_Super_R</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Sys-Req" title="IBUS_Sys_Req">IBUS_Sys_Req</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxT"></a><h3 class="title">T</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-t" title="IBUS_t">IBUS_t</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-T:CAPS" title="IBUS_T">IBUS_T</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tab" title="IBUS_Tab">IBUS_Tab</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tabovedot" title="IBUS_tabovedot">IBUS_tabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tabovedot" title="IBUS_Tabovedot">IBUS_Tabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tcaron" title="IBUS_tcaron">IBUS_tcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tcaron" title="IBUS_Tcaron">IBUS_Tcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tcedilla" title="IBUS_tcedilla">IBUS_tcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tcedilla" title="IBUS_Tcedilla">IBUS_Tcedilla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-telephone" title="IBUS_telephone">IBUS_telephone</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-telephonerecorder" title="IBUS_telephonerecorder">IBUS_telephonerecorder</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Terminate-Server" title="IBUS_Terminate_Server">IBUS_Terminate_Server</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#IBusText-struct" title="struct IBusText">IBusText</a>, struct in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#IBusTextClass" title="struct IBusTextClass">IBusTextClass</a>, struct in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-append-attribute" title="ibus_text_append_attribute ()">ibus_text_append_attribute</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-get-attributes" title="ibus_text_get_attributes ()">ibus_text_get_attributes</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-get-is-static" title="ibus_text_get_is_static ()">ibus_text_get_is_static</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-get-length" title="ibus_text_get_length ()">ibus_text_get_length</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-get-text" title="ibus_text_get_text ()">ibus_text_get_text</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-new-from-printf" title="ibus_text_new_from_printf ()">ibus_text_new_from_printf</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-new-from-static-string" title="ibus_text_new_from_static_string ()">ibus_text_new_from_static_string</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-new-from-string" title="ibus_text_new_from_string ()">ibus_text_new_from_string</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-new-from-ucs4" title="ibus_text_new_from_ucs4 ()">ibus_text_new_from_ucs4</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-new-from-unichar" title="ibus_text_new_from_unichar ()">ibus_text_new_from_unichar</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="IBusText.html#ibus-text-set-attributes" title="ibus_text_set_attributes ()">ibus_text_set_attributes</a>, function in <a class="link" href="IBusText.html" title="IBusText">IBusText</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-baht" title="IBUS_Thai_baht">IBUS_Thai_baht</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-bobaimai" title="IBUS_Thai_bobaimai">IBUS_Thai_bobaimai</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-chochan" title="IBUS_Thai_chochan">IBUS_Thai_chochan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-chochang" title="IBUS_Thai_chochang">IBUS_Thai_chochang</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-choching" title="IBUS_Thai_choching">IBUS_Thai_choching</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-chochoe" title="IBUS_Thai_chochoe">IBUS_Thai_chochoe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-dochada" title="IBUS_Thai_dochada">IBUS_Thai_dochada</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-dodek" title="IBUS_Thai_dodek">IBUS_Thai_dodek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-fofa" title="IBUS_Thai_fofa">IBUS_Thai_fofa</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-fofan" title="IBUS_Thai_fofan">IBUS_Thai_fofan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-hohip" title="IBUS_Thai_hohip">IBUS_Thai_hohip</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-honokhuk" title="IBUS_Thai_honokhuk">IBUS_Thai_honokhuk</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhai" title="IBUS_Thai_khokhai">IBUS_Thai_khokhai</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhon" title="IBUS_Thai_khokhon">IBUS_Thai_khokhon</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhuat" title="IBUS_Thai_khokhuat">IBUS_Thai_khokhuat</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhwai" title="IBUS_Thai_khokhwai">IBUS_Thai_khokhwai</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khorakhang" title="IBUS_Thai_khorakhang">IBUS_Thai_khorakhang</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-kokai" title="IBUS_Thai_kokai">IBUS_Thai_kokai</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lakkhangyao" title="IBUS_Thai_lakkhangyao">IBUS_Thai_lakkhangyao</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekchet" title="IBUS_Thai_lekchet">IBUS_Thai_lekchet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekha" title="IBUS_Thai_lekha">IBUS_Thai_lekha</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekhok" title="IBUS_Thai_lekhok">IBUS_Thai_lekhok</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekkao" title="IBUS_Thai_lekkao">IBUS_Thai_lekkao</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leknung" title="IBUS_Thai_leknung">IBUS_Thai_leknung</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekpaet" title="IBUS_Thai_lekpaet">IBUS_Thai_lekpaet</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksam" title="IBUS_Thai_leksam">IBUS_Thai_leksam</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksi" title="IBUS_Thai_leksi">IBUS_Thai_leksi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksong" title="IBUS_Thai_leksong">IBUS_Thai_leksong</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksun" title="IBUS_Thai_leksun">IBUS_Thai_leksun</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lochula" title="IBUS_Thai_lochula">IBUS_Thai_lochula</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-loling" title="IBUS_Thai_loling">IBUS_Thai_loling</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lu" title="IBUS_Thai_lu">IBUS_Thai_lu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maichattawa" title="IBUS_Thai_maichattawa">IBUS_Thai_maichattawa</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maiek" title="IBUS_Thai_maiek">IBUS_Thai_maiek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maihanakat" title="IBUS_Thai_maihanakat">IBUS_Thai_maihanakat</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maihanakat-maitho" title="IBUS_Thai_maihanakat_maitho">IBUS_Thai_maihanakat_maitho</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maitaikhu" title="IBUS_Thai_maitaikhu">IBUS_Thai_maitaikhu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maitho" title="IBUS_Thai_maitho">IBUS_Thai_maitho</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maitri" title="IBUS_Thai_maitri">IBUS_Thai_maitri</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maiyamok" title="IBUS_Thai_maiyamok">IBUS_Thai_maiyamok</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-moma" title="IBUS_Thai_moma">IBUS_Thai_moma</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-ngongu" title="IBUS_Thai_ngongu">IBUS_Thai_ngongu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-nikhahit" title="IBUS_Thai_nikhahit">IBUS_Thai_nikhahit</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-nonen" title="IBUS_Thai_nonen">IBUS_Thai_nonen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-nonu" title="IBUS_Thai_nonu">IBUS_Thai_nonu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-oang" title="IBUS_Thai_oang">IBUS_Thai_oang</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-paiyannoi" title="IBUS_Thai_paiyannoi">IBUS_Thai_paiyannoi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-phinthu" title="IBUS_Thai_phinthu">IBUS_Thai_phinthu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-phophan" title="IBUS_Thai_phophan">IBUS_Thai_phophan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-phophung" title="IBUS_Thai_phophung">IBUS_Thai_phophung</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-phosamphao" title="IBUS_Thai_phosamphao">IBUS_Thai_phosamphao</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-popla" title="IBUS_Thai_popla">IBUS_Thai_popla</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-rorua" title="IBUS_Thai_rorua">IBUS_Thai_rorua</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-ru" title="IBUS_Thai_ru">IBUS_Thai_ru</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraa" title="IBUS_Thai_saraa">IBUS_Thai_saraa</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaa" title="IBUS_Thai_saraaa">IBUS_Thai_saraaa</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraae" title="IBUS_Thai_saraae">IBUS_Thai_saraae</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaimaimalai" title="IBUS_Thai_saraaimaimalai">IBUS_Thai_saraaimaimalai</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaimaimuan" title="IBUS_Thai_saraaimaimuan">IBUS_Thai_saraaimaimuan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraam" title="IBUS_Thai_saraam">IBUS_Thai_saraam</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarae" title="IBUS_Thai_sarae">IBUS_Thai_sarae</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarai" title="IBUS_Thai_sarai">IBUS_Thai_sarai</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraii" title="IBUS_Thai_saraii">IBUS_Thai_saraii</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarao" title="IBUS_Thai_sarao">IBUS_Thai_sarao</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarau" title="IBUS_Thai_sarau">IBUS_Thai_sarau</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraue" title="IBUS_Thai_saraue">IBUS_Thai_saraue</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarauee" title="IBUS_Thai_sarauee">IBUS_Thai_sarauee</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarauu" title="IBUS_Thai_sarauu">IBUS_Thai_sarauu</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sorusi" title="IBUS_Thai_sorusi">IBUS_Thai_sorusi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sosala" title="IBUS_Thai_sosala">IBUS_Thai_sosala</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-soso" title="IBUS_Thai_soso">IBUS_Thai_soso</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sosua" title="IBUS_Thai_sosua">IBUS_Thai_sosua</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thanthakhat" title="IBUS_Thai_thanthakhat">IBUS_Thai_thanthakhat</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thonangmontho" title="IBUS_Thai_thonangmontho">IBUS_Thai_thonangmontho</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thophuthao" title="IBUS_Thai_thophuthao">IBUS_Thai_thophuthao</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothahan" title="IBUS_Thai_thothahan">IBUS_Thai_thothahan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothan" title="IBUS_Thai_thothan">IBUS_Thai_thothan</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothong" title="IBUS_Thai_thothong">IBUS_Thai_thothong</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothung" title="IBUS_Thai_thothung">IBUS_Thai_thothung</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-topatak" title="IBUS_Thai_topatak">IBUS_Thai_topatak</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-totao" title="IBUS_Thai_totao">IBUS_Thai_totao</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-wowaen" title="IBUS_Thai_wowaen">IBUS_Thai_wowaen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-yoyak" title="IBUS_Thai_yoyak">IBUS_Thai_yoyak</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-yoying" title="IBUS_Thai_yoying">IBUS_Thai_yoying</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-therefore" title="IBUS_therefore">IBUS_therefore</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-thinspace" title="IBUS_thinspace">IBUS_thinspace</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-THORN:CAPS" title="IBUS_THORN">IBUS_THORN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thorn" title="IBUS_Thorn">IBUS_Thorn</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-thorn" title="IBUS_thorn">IBUS_thorn</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threeeighths" title="IBUS_threeeighths">IBUS_threeeighths</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threefifths" title="IBUS_threefifths">IBUS_threefifths</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threequarters" title="IBUS_threequarters">IBUS_threequarters</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threesubscript" title="IBUS_threesubscript">IBUS_threesubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threesuperior" title="IBUS_threesuperior">IBUS_threesuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tintegral" title="IBUS_tintegral">IBUS_tintegral</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topintegral" title="IBUS_topintegral">IBUS_topintegral</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topleftparens" title="IBUS_topleftparens">IBUS_topleftparens</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topleftradical" title="IBUS_topleftradical">IBUS_topleftradical</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topleftsqbracket" title="IBUS_topleftsqbracket">IBUS_topleftsqbracket</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topleftsummation" title="IBUS_topleftsummation">IBUS_topleftsummation</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-toprightparens" title="IBUS_toprightparens">IBUS_toprightparens</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-toprightsqbracket" title="IBUS_toprightsqbracket">IBUS_toprightsqbracket</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-toprightsummation" title="IBUS_toprightsummation">IBUS_toprightsummation</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topt" title="IBUS_topt">IBUS_topt</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topvertsummationconnector" title="IBUS_topvertsummationconnector">IBUS_topvertsummationconnector</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Touroku" title="IBUS_Touroku">IBUS_Touroku</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-trademark" title="IBUS_trademark">IBUS_trademark</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-trademarkincircle" title="IBUS_trademarkincircle">IBUS_trademarkincircle</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tslash" title="IBUS_Tslash">IBUS_Tslash</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tslash" title="IBUS_tslash">IBUS_tslash</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-twofifths" title="IBUS_twofifths">IBUS_twofifths</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-twosubscript" title="IBUS_twosubscript">IBUS_twosubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-twosuperior" title="IBUS_twosuperior">IBUS_twosuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-twothirds" title="IBUS_twothirds">IBUS_twothirds</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxU"></a><h3 class="title">U</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-u" title="IBUS_u">IBUS_u</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-U:CAPS" title="IBUS_U">IBUS_U</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uacute" title="IBUS_Uacute">IBUS_Uacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uacute" title="IBUS_uacute">IBUS_uacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ubelowdot" title="IBUS_ubelowdot">IBUS_ubelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ubelowdot" title="IBUS_Ubelowdot">IBUS_Ubelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ubreve" title="IBUS_Ubreve">IBUS_Ubreve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ubreve" title="IBUS_ubreve">IBUS_ubreve</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ucircumflex" title="IBUS_Ucircumflex">IBUS_Ucircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ucircumflex" title="IBUS_ucircumflex">IBUS_ucircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-udiaeresis" title="IBUS_udiaeresis">IBUS_udiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Udiaeresis" title="IBUS_Udiaeresis">IBUS_Udiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-udoubleacute" title="IBUS_udoubleacute">IBUS_udoubleacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Udoubleacute" title="IBUS_Udoubleacute">IBUS_Udoubleacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ugrave" title="IBUS_Ugrave">IBUS_Ugrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ugrave" title="IBUS_ugrave">IBUS_ugrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhook" title="IBUS_Uhook">IBUS_Uhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhook" title="IBUS_uhook">IBUS_uhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhorn" title="IBUS_uhorn">IBUS_uhorn</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhorn" title="IBUS_Uhorn">IBUS_Uhorn</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhornacute" title="IBUS_uhornacute">IBUS_uhornacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhornacute" title="IBUS_Uhornacute">IBUS_Uhornacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhornbelowdot" title="IBUS_Uhornbelowdot">IBUS_Uhornbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhornbelowdot" title="IBUS_uhornbelowdot">IBUS_uhornbelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhorngrave" title="IBUS_uhorngrave">IBUS_uhorngrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhorngrave" title="IBUS_Uhorngrave">IBUS_Uhorngrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhornhook" title="IBUS_Uhornhook">IBUS_Uhornhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhornhook" title="IBUS_uhornhook">IBUS_uhornhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhorntilde" title="IBUS_uhorntilde">IBUS_uhorntilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhorntilde" title="IBUS_Uhorntilde">IBUS_Uhorntilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-GHE-WITH-UPTURN" title="IBUS_Ukrainian_GHE_WITH_UPTURN">IBUS_Ukrainian_GHE_WITH_UPTURN</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-ghe-with-upturn" title="IBUS_Ukrainian_ghe_with_upturn">IBUS_Ukrainian_ghe_with_upturn</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-I" title="IBUS_Ukrainian_I">IBUS_Ukrainian_I</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-i" title="IBUS_Ukrainian_i">IBUS_Ukrainian_i</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-ie" title="IBUS_Ukrainian_ie">IBUS_Ukrainian_ie</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-IE" title="IBUS_Ukrainian_IE">IBUS_Ukrainian_IE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-YI" title="IBUS_Ukrainian_YI">IBUS_Ukrainian_YI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-yi" title="IBUS_Ukrainian_yi">IBUS_Ukrainian_yi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-I" title="IBUS_Ukranian_I">IBUS_Ukranian_I</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-i" title="IBUS_Ukranian_i">IBUS_Ukranian_i</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-JE" title="IBUS_Ukranian_JE">IBUS_Ukranian_JE</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-je" title="IBUS_Ukranian_je">IBUS_Ukranian_je</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-yi" title="IBUS_Ukranian_yi">IBUS_Ukranian_yi</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-YI" title="IBUS_Ukranian_YI">IBUS_Ukranian_YI</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-umacron" title="IBUS_umacron">IBUS_umacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Umacron" title="IBUS_Umacron">IBUS_Umacron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-underbar" title="IBUS_underbar">IBUS_underbar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-underscore" title="IBUS_underscore">IBUS_underscore</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Undo" title="IBUS_Undo">IBUS_Undo</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeys.html#ibus-unicode-to-keyval" title="ibus_unicode_to_keyval ()">ibus_unicode_to_keyval</a>, function in <a class="link" href="ibus-ibuskeys.html" title="ibuskeys">ibuskeys</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-union" title="IBUS_union">IBUS_union</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-unset-log-handler" title="ibus_unset_log_handler ()">ibus_unset_log_handler</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uogonek" title="IBUS_Uogonek">IBUS_Uogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uogonek" title="IBUS_uogonek">IBUS_uogonek</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Up" title="IBUS_Up">IBUS_Up</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uparrow" title="IBUS_uparrow">IBUS_uparrow</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-upcaret" title="IBUS_upcaret">IBUS_upcaret</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-upleftcorner" title="IBUS_upleftcorner">IBUS_upleftcorner</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uprightcorner" title="IBUS_uprightcorner">IBUS_uprightcorner</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-upshoe" title="IBUS_upshoe">IBUS_upshoe</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-upstile" title="IBUS_upstile">IBUS_upstile</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uptack" title="IBUS_uptack">IBUS_uptack</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uring" title="IBUS_Uring">IBUS_Uring</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uring" title="IBUS_uring">IBUS_uring</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-utilde" title="IBUS_utilde">IBUS_utilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Utilde" title="IBUS_Utilde">IBUS_Utilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxV"></a><h3 class="title">V</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-v" title="IBUS_v">IBUS_v</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-V:CAPS" title="IBUS_V">IBUS_V</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-variation" title="IBUS_variation">IBUS_variation</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-vertbar" title="IBUS_vertbar">IBUS_vertbar</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-vertconnector" title="IBUS_vertconnector">IBUS_vertconnector</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-voicedsound" title="IBUS_voicedsound">IBUS_voicedsound</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-VoidSymbol" title="IBUS_VoidSymbol">IBUS_VoidSymbol</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-vt" title="IBUS_vt">IBUS_vt</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxW"></a><h3 class="title">W</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-W:CAPS" title="IBUS_W">IBUS_W</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-w" title="IBUS_w">IBUS_w</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-wacute" title="IBUS_wacute">IBUS_wacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Wacute" title="IBUS_Wacute">IBUS_Wacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusdebug.html#ibus-warning" title="ibus_warning()">ibus_warning</a>, macro in <a class="link" href="ibus-ibusdebug.html" title="ibusdebug">ibusdebug</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-wcircumflex" title="IBUS_wcircumflex">IBUS_wcircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Wcircumflex" title="IBUS_Wcircumflex">IBUS_Wcircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Wdiaeresis" title="IBUS_Wdiaeresis">IBUS_Wdiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-wdiaeresis" title="IBUS_wdiaeresis">IBUS_wdiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-wgrave" title="IBUS_wgrave">IBUS_wgrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Wgrave" title="IBUS_Wgrave">IBUS_Wgrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-WonSign" title="IBUS_WonSign">IBUS_WonSign</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusshare.html#ibus-write-address" title="ibus_write_address ()">ibus_write_address</a>, function in <a class="link" href="ibus-ibusshare.html" title="ibusshare">ibusshare</a>
+</dt>
+<dd></dd>
+<a name="idxX"></a><h3 class="title">X</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-X:CAPS" title="IBUS_X">IBUS_X</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-x" title="IBUS_x">IBUS_x</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Xabovedot" title="IBUS_Xabovedot">IBUS_Xabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-xabovedot" title="IBUS_xabovedot">IBUS_xabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode">XMLNode</a>, struct in <a class="link" href="ibus-ibusxml.html" title="ibusxml">ibusxml</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusxml.html#ibus-xml-free" title="ibus_xml_free ()">ibus_xml_free</a>, function in <a class="link" href="ibus-ibusxml.html" title="ibusxml">ibusxml</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusxml.html#ibus-xml-output" title="ibus_xml_output ()">ibus_xml_output</a>, function in <a class="link" href="ibus-ibusxml.html" title="ibusxml">ibusxml</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusxml.html#ibus-xml-parse-buffer" title="ibus_xml_parse_buffer ()">ibus_xml_parse_buffer</a>, function in <a class="link" href="ibus-ibusxml.html" title="ibusxml">ibusxml</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibusxml.html#ibus-xml-parse-file" title="ibus_xml_parse_file ()">ibus_xml_parse_file</a>, function in <a class="link" href="ibus-ibusxml.html" title="ibusxml">ibusxml</a>
+</dt>
+<dd></dd>
+<a name="idxY"></a><h3 class="title">Y</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-y" title="IBUS_y">IBUS_y</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Y:CAPS" title="IBUS_Y">IBUS_Y</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Yacute" title="IBUS_Yacute">IBUS_Yacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-yacute" title="IBUS_yacute">IBUS_yacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ybelowdot" title="IBUS_ybelowdot">IBUS_ybelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ybelowdot" title="IBUS_Ybelowdot">IBUS_Ybelowdot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ycircumflex" title="IBUS_ycircumflex">IBUS_ycircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ycircumflex" title="IBUS_Ycircumflex">IBUS_Ycircumflex</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ydiaeresis" title="IBUS_ydiaeresis">IBUS_ydiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ydiaeresis" title="IBUS_Ydiaeresis">IBUS_Ydiaeresis</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-yen" title="IBUS_yen">IBUS_yen</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ygrave" title="IBUS_ygrave">IBUS_ygrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ygrave" title="IBUS_Ygrave">IBUS_Ygrave</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Yhook" title="IBUS_Yhook">IBUS_Yhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-yhook" title="IBUS_yhook">IBUS_yhook</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ytilde" title="IBUS_ytilde">IBUS_ytilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ytilde" title="IBUS_Ytilde">IBUS_Ytilde</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<a name="idxZ"></a><h3 class="title">Z</h3>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-z" title="IBUS_z">IBUS_z</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Z:CAPS" title="IBUS_Z">IBUS_Z</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zabovedot" title="IBUS_zabovedot">IBUS_zabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zabovedot" title="IBUS_Zabovedot">IBUS_Zabovedot</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zacute" title="IBUS_Zacute">IBUS_Zacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zacute" title="IBUS_zacute">IBUS_zacute</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zcaron" title="IBUS_Zcaron">IBUS_Zcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zcaron" title="IBUS_zcaron">IBUS_zcaron</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zenkaku" title="IBUS_Zenkaku">IBUS_Zenkaku</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zenkaku-Hankaku" title="IBUS_Zenkaku_Hankaku">IBUS_Zenkaku_Hankaku</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zen-Koho" title="IBUS_Zen_Koho">IBUS_Zen_Koho</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zerosubscript" title="IBUS_zerosubscript">IBUS_zerosubscript</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zerosuperior" title="IBUS_zerosuperior">IBUS_zerosuperior</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zstroke" title="IBUS_Zstroke">IBUS_Zstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zstroke" title="IBUS_zstroke">IBUS_zstroke</a>, macro in <a class="link" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">ibuskeysyms-compat</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ch01.html b/docs/reference/ibus/html/ch01.html
new file mode 100644 (file)
index 0000000..506d0db
--- /dev/null
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="index.html" title="IBus Reference Manual">
+<link rel="prev" href="index.html" title="IBus Reference Manual">
+<link rel="next" href="ch02.html" title="Panel (User Interfaces)">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ch02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.2"></a>Overview</h1></div></div></div>
+<p>This manual is the API specification for the IBus.
+           IBus is built upon GObject and D-Bus,
+           so you may find that modules are named as classes and objects in the sense of GObject,
+           and may D-Bus wrapper API.</p>
+<p>According to the puroposes of modules, we categorized them into following parts:</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">Panel</span></p></td>
+<td><p>A IBus-panel is an UI which provides UI components such as language bar,
+                     property buttons and so on.</p></td>
+</tr>
+<tr>
+<td><p><span class="term">Input method engine (IME)</span></p></td>
+<td><p>An Input method engine is an implementation of certain input method.
+                     Here lists essential classes and functions for input method engine building,
+                     such as engine specification, and class abstracts.</p></td>
+</tr>
+<tr>
+<td><p><span class="term">Configuration</span></p></td>
+<td><p>This part lists functions for configuring IBus and engines.
+                     Since most configuration files are in XML format,
+                     XML handling functions are also listed here.</p></td>
+</tr>
+<tr>
+<td><p><span class="term">Communication</span></p></td>
+<td><p>Here lists the service communication functions.</p></td>
+</tr>
+<tr>
+<td><p><span class="term">Internal</span></p></td>
+<td><p>Definition and functions for IBus internal use.</p></td>
+</tr>
+</tbody>
+</table></div>
+<p>Normally input method developers need only to read the first three parts.
+      </p>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ch02.html b/docs/reference/ibus/html/ch02.html
new file mode 100644 (file)
index 0000000..ec4c0b3
--- /dev/null
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Panel (User Interfaces)</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="index.html" title="IBus Reference Manual">
+<link rel="prev" href="ch01.html" title="Overview">
+<link rel="next" href="IBusAttribute.html" title="IBusAttribute">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusAttribute.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.3"></a>Panel (User Interfaces)</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="IBusAttribute.html">IBusAttribute</a></span><span class="refpurpose"> — Attributes of IBusText.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusAttrList.html">IBusAttrList</a></span><span class="refpurpose"> — AttrList of IBusText.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusHotkeyProfile.html">IBusHotkeyProfile</a></span><span class="refpurpose"> — Hotkeys and associated events.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusLookupTable.html">IBusLookupTable</a></span><span class="refpurpose"> — Candidate word/phrase lookup table.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusPanelService.html">IBusPanelService</a></span><span class="refpurpose"> — Panel service back-end.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusProperty.html">IBusProperty</a></span><span class="refpurpose"> — UI component for input method engine property.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusPropList.html">IBusPropList</a></span><span class="refpurpose">An <span class="type">IBusProperty</span> container.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusText.html">IBusText</a></span><span class="refpurpose"> — Text with decorating information.</span>
+</dt>
+</dl></div>
+<p>These API pages directly related to user interfaces, such as
+         pre-edit buffer, auxiliary text, language bar, button,
+         radio boxes, and so on.
+      </p>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ch03.html b/docs/reference/ibus/html/ch03.html
new file mode 100644 (file)
index 0000000..1a51355
--- /dev/null
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Input method engine</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="index.html" title="IBus Reference Manual">
+<link rel="prev" href="IBusText.html" title="IBusText">
+<link rel="next" href="IBusComponent.html" title="IBusComponent">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="IBusText.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusComponent.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.4"></a>Input method engine</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="IBusComponent.html">IBusComponent</a></span><span class="refpurpose"> — Component (executable) specification.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusEngine.html">IBusEngine</a></span><span class="refpurpose"> — Input method engine abstract.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusEngineDesc.html">IBusEngineDesc</a></span><span class="refpurpose"> — Input method engine description data.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-IBusEngineSimple.html">IBusEngineSimple</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusFactory.html">IBusFactory</a></span><span class="refpurpose"> — Factory for creating engine instances.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusInputContext.html">IBusInputContext</a></span><span class="refpurpose"> — IBus input context proxy object.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibuskeys.html">ibuskeys</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusKeymap.html">IBusKeymap</a></span><span class="refpurpose"> — Keyboard mapping handling.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibuskeysyms-compat.html">ibuskeysyms-compat</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-IBusKeysyms.html">IBusKeysyms</a></span><span class="refpurpose"> — Key symbol definition.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusutil.html">ibusutil</a></span><span class="refpurpose"> — Utilities with C-Language.</span>
+</dt>
+</dl></div>
+<p>An Input method engine is an implementation of certain input method.
+         Here lists essential classes and functions for input method engine building,
+         such as engine specification, and class abstracts.</p>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ch04.html b/docs/reference/ibus/html/ch04.html
new file mode 100644 (file)
index 0000000..bbf0d50
--- /dev/null
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Configuration</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="index.html" title="IBus Reference Manual">
+<link rel="prev" href="ibus-ibusutil.html" title="ibusutil">
+<link rel="next" href="IBusConfig.html" title="IBusConfig">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="ibus-ibusutil.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusConfig.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.5"></a>Configuration</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="IBusConfig.html">IBusConfig</a></span><span class="refpurpose"> — IBus engine configuration module.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusConfigService.html">IBusConfigService</a></span><span class="refpurpose"> — Configuration service back-end.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusObservedPath.html">IBusObservedPath</a></span><span class="refpurpose"> — Path object of IBus.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusRegistry.html">IBusRegistry</a></span><span class="refpurpose"> — Registry cache handling.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusversion.html">ibusversion</a></span><span class="refpurpose"> — Current version of IBus.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusxml.html">ibusxml</a></span><span class="refpurpose"> — XML handling functions for IBus.</span>
+</dt>
+</dl></div>
+<p>This part lists functions for configuring IBus and engines.
+         Since most configuration files are in XML format,
+         XML handling functions are also listed here.</p>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ch05.html b/docs/reference/ibus/html/ch05.html
new file mode 100644 (file)
index 0000000..24ecab2
--- /dev/null
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Communication</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="index.html" title="IBus Reference Manual">
+<link rel="prev" href="ibus-ibusxml.html" title="ibusxml">
+<link rel="next" href="IBusBus.html" title="IBusBus">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="ibus-ibusxml.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusBus.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.6"></a>Communication</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="IBusBus.html">IBusBus</a></span><span class="refpurpose"> — Connect with IBus daemon.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusProxy.html">IBusProxy</a></span><span class="refpurpose"> — Base proxy object.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusSerializable.html">IBusSerializable</a></span><span class="refpurpose"> — A serializable object.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusService.html">IBusService</a></span><span class="refpurpose"> — IBus service back-end.</span>
+</dt>
+</dl></div>
+<p>Here lists the service communication functions.</p>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ch06.html b/docs/reference/ibus/html/ch06.html
new file mode 100644 (file)
index 0000000..95210c8
--- /dev/null
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Internal</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="index.html" title="IBus Reference Manual">
+<link rel="prev" href="IBusService.html" title="IBusService">
+<link rel="next" href="ibus-ibusdebug.html" title="ibusdebug">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="IBusService.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-ibusdebug.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.7"></a>Internal</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusdebug.html">ibusdebug</a></span><span class="refpurpose"> — Debug message output.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibuserror.html">ibuserror</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusObject.html">IBusObject</a></span><span class="refpurpose"> — Base object of IBus.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusshare.html">ibusshare</a></span><span class="refpurpose"> — Shared utility functions and definition.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibustypes.html">ibustypes</a></span><span class="refpurpose"> — Generic types for  IBus.</span>
+</dt>
+</dl></div>
+<p>Definition and functions for IBus internal use.</p>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/home.png b/docs/reference/ibus/html/home.png
new file mode 100644 (file)
index 0000000..1700361
Binary files /dev/null and b/docs/reference/ibus/html/home.png differ
diff --git a/docs/reference/ibus/html/ibus-IBusEngineSimple.html b/docs/reference/ibus/html/ibus-IBusEngineSimple.html
new file mode 100644 (file)
index 0000000..bb011d7
--- /dev/null
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusEngineSimple</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="IBusEngineDesc.html" title="IBusEngineDesc">
+<link rel="next" href="IBusFactory.html" title="IBusFactory">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusEngineDesc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusFactory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-IBusEngineSimple.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-IBusEngineSimple.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-IBusEngineSimple"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-IBusEngineSimple.top_of_page"></a>IBusEngineSimple</span></h2>
+<p>IBusEngineSimple</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="ibus-IBusEngineSimple.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="ibus-IBusEngineSimple.html#IBUS-MAX-COMPOSE-LEN:CAPS" title="IBUS_MAX_COMPOSE_LEN">IBUS_MAX_COMPOSE_LEN</a>
+struct              <a class="link" href="ibus-IBusEngineSimple.html#IBusEngineSimple" title="struct IBusEngineSimple">IBusEngineSimple</a>;
+struct              <a class="link" href="ibus-IBusEngineSimple.html#IBusEngineSimpleClass" title="struct IBusEngineSimpleClass">IBusEngineSimpleClass</a>;
+<span class="returnvalue">void</span>                <a class="link" href="ibus-IBusEngineSimple.html#ibus-engine-simple-add-table" title="ibus_engine_simple_add_table ()">ibus_engine_simple_add_table</a>        (<em class="parameter"><code><a class="link" href="ibus-IBusEngineSimple.html#IBusEngineSimple" title="struct IBusEngineSimple"><span class="type">IBusEngineSimple</span></a> *simple</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint16</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> max_seq_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> n_seqs</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-IBusEngineSimple.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-IBusEngineSimple.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBUS-MAX-COMPOSE-LEN:CAPS"></a><h3>IBUS_MAX_COMPOSE_LEN</h3>
+<pre class="programlisting">#define IBUS_MAX_COMPOSE_LEN 7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineSimple"></a><h3>struct IBusEngineSimple</h3>
+<pre class="programlisting">struct IBusEngineSimple {
+};
+</pre>
+<p>
+IBusEngineSimple properties.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusEngineSimpleClass"></a><h3>struct IBusEngineSimpleClass</h3>
+<pre class="programlisting">struct IBusEngineSimpleClass {
+    /* signals */
+};
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-engine-simple-add-table"></a><h3>ibus_engine_simple_add_table ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_engine_simple_add_table        (<em class="parameter"><code><a class="link" href="ibus-IBusEngineSimple.html#IBusEngineSimple" title="struct IBusEngineSimple"><span class="type">IBusEngineSimple</span></a> *simple</code></em>,
+                                                         <em class="parameter"><code>const <span class="type">guint16</span> *data</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> max_seq_len</code></em>,
+                                                         <em class="parameter"><code><span class="type">gint</span> n_seqs</code></em>);</pre>
+<p>
+Adds an additional table to search to the engine. Each row of the table
+consists of max_seq_len key symbols followed by two guint16 interpreted as
+the high and low words of a gunicode value. Tables are searched starting from
+the last added.
+</p>
+<p>
+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.)
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>simple</code></em> :</span></p></td>
+<td>An IBusEngineSimple.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
+<td>The table which must be available
+during the whole life of the simple engine. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint16][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max_seq_len</code></em> :</span></p></td>
+<td>Maximum length of a swquence in the table (cannot be greater
+than <a class="link" href="ibus-IBusEngineSimple.html#IBUS-MAX-COMPOSE-LEN:CAPS" title="IBUS_MAX_COMPOSE_LEN"><code class="literal">IBUS_MAX_COMPOSE_LEN</code></a>)</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-IBusKeysyms.html b/docs/reference/ibus/html/ibus-IBusKeysyms.html
new file mode 100644 (file)
index 0000000..f39701a
--- /dev/null
@@ -0,0 +1,18887 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBusKeysyms</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="ibus-ibuskeysyms-compat.html" title="ibuskeysyms-compat">
+<link rel="next" href="ibus-ibusutil.html" title="ibusutil">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ibus-ibuskeysyms-compat.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-ibusutil.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-IBusKeysyms.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-IBusKeysyms.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-IBusKeysyms"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-IBusKeysyms.top_of_page"></a>IBusKeysyms</span></h2>
+<p>IBusKeysyms — Key symbol definition.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="ibus-IBusKeysyms.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="ibus-IBusKeysyms.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-VoidSymbol" title="IBUS_KEY_VoidSymbol">IBUS_KEY_VoidSymbol</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-BackSpace" title="IBUS_KEY_BackSpace">IBUS_KEY_BackSpace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tab" title="IBUS_KEY_Tab">IBUS_KEY_Tab</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Linefeed" title="IBUS_KEY_Linefeed">IBUS_KEY_Linefeed</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Clear" title="IBUS_KEY_Clear">IBUS_KEY_Clear</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Return" title="IBUS_KEY_Return">IBUS_KEY_Return</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pause" title="IBUS_KEY_Pause">IBUS_KEY_Pause</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Scroll-Lock" title="IBUS_KEY_Scroll_Lock">IBUS_KEY_Scroll_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sys-Req" title="IBUS_KEY_Sys_Req">IBUS_KEY_Sys_Req</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Escape" title="IBUS_KEY_Escape">IBUS_KEY_Escape</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Delete" title="IBUS_KEY_Delete">IBUS_KEY_Delete</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Multi-key" title="IBUS_KEY_Multi_key">IBUS_KEY_Multi_key</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Codeinput" title="IBUS_KEY_Codeinput">IBUS_KEY_Codeinput</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-SingleCandidate" title="IBUS_KEY_SingleCandidate">IBUS_KEY_SingleCandidate</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-MultipleCandidate" title="IBUS_KEY_MultipleCandidate">IBUS_KEY_MultipleCandidate</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-PreviousCandidate" title="IBUS_KEY_PreviousCandidate">IBUS_KEY_PreviousCandidate</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kanji" title="IBUS_KEY_Kanji">IBUS_KEY_Kanji</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Muhenkan" title="IBUS_KEY_Muhenkan">IBUS_KEY_Muhenkan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Henkan-Mode" title="IBUS_KEY_Henkan_Mode">IBUS_KEY_Henkan_Mode</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Henkan" title="IBUS_KEY_Henkan">IBUS_KEY_Henkan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Romaji" title="IBUS_KEY_Romaji">IBUS_KEY_Romaji</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hiragana" title="IBUS_KEY_Hiragana">IBUS_KEY_Hiragana</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Katakana" title="IBUS_KEY_Katakana">IBUS_KEY_Katakana</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hiragana-Katakana" title="IBUS_KEY_Hiragana_Katakana">IBUS_KEY_Hiragana_Katakana</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zenkaku" title="IBUS_KEY_Zenkaku">IBUS_KEY_Zenkaku</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hankaku" title="IBUS_KEY_Hankaku">IBUS_KEY_Hankaku</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zenkaku-Hankaku" title="IBUS_KEY_Zenkaku_Hankaku">IBUS_KEY_Zenkaku_Hankaku</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Touroku" title="IBUS_KEY_Touroku">IBUS_KEY_Touroku</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Massyo" title="IBUS_KEY_Massyo">IBUS_KEY_Massyo</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kana-Lock" title="IBUS_KEY_Kana_Lock">IBUS_KEY_Kana_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kana-Shift" title="IBUS_KEY_Kana_Shift">IBUS_KEY_Kana_Shift</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eisu-Shift" title="IBUS_KEY_Eisu_Shift">IBUS_KEY_Eisu_Shift</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eisu-toggle" title="IBUS_KEY_Eisu_toggle">IBUS_KEY_Eisu_toggle</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kanji-Bangou" title="IBUS_KEY_Kanji_Bangou">IBUS_KEY_Kanji_Bangou</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zen-Koho" title="IBUS_KEY_Zen_Koho">IBUS_KEY_Zen_Koho</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Mae-Koho" title="IBUS_KEY_Mae_Koho">IBUS_KEY_Mae_Koho</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Home" title="IBUS_KEY_Home">IBUS_KEY_Home</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Left" title="IBUS_KEY_Left">IBUS_KEY_Left</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Up" title="IBUS_KEY_Up">IBUS_KEY_Up</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Right" title="IBUS_KEY_Right">IBUS_KEY_Right</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Down" title="IBUS_KEY_Down">IBUS_KEY_Down</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Prior" title="IBUS_KEY_Prior">IBUS_KEY_Prior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Page-Up" title="IBUS_KEY_Page_Up">IBUS_KEY_Page_Up</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Next" title="IBUS_KEY_Next">IBUS_KEY_Next</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Page-Down" title="IBUS_KEY_Page_Down">IBUS_KEY_Page_Down</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-End" title="IBUS_KEY_End">IBUS_KEY_End</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Begin" title="IBUS_KEY_Begin">IBUS_KEY_Begin</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Select" title="IBUS_KEY_Select">IBUS_KEY_Select</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Print" title="IBUS_KEY_Print">IBUS_KEY_Print</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Execute" title="IBUS_KEY_Execute">IBUS_KEY_Execute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Insert" title="IBUS_KEY_Insert">IBUS_KEY_Insert</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Undo" title="IBUS_KEY_Undo">IBUS_KEY_Undo</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Redo" title="IBUS_KEY_Redo">IBUS_KEY_Redo</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Menu" title="IBUS_KEY_Menu">IBUS_KEY_Menu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Find" title="IBUS_KEY_Find">IBUS_KEY_Find</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cancel" title="IBUS_KEY_Cancel">IBUS_KEY_Cancel</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Help" title="IBUS_KEY_Help">IBUS_KEY_Help</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Break" title="IBUS_KEY_Break">IBUS_KEY_Break</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Mode-switch" title="IBUS_KEY_Mode_switch">IBUS_KEY_Mode_switch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-script-switch" title="IBUS_KEY_script_switch">IBUS_KEY_script_switch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Num-Lock" title="IBUS_KEY_Num_Lock">IBUS_KEY_Num_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Space" title="IBUS_KEY_KP_Space">IBUS_KEY_KP_Space</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Tab" title="IBUS_KEY_KP_Tab">IBUS_KEY_KP_Tab</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Enter" title="IBUS_KEY_KP_Enter">IBUS_KEY_KP_Enter</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-F1:CAPS" title="IBUS_KEY_KP_F1">IBUS_KEY_KP_F1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-F2:CAPS" title="IBUS_KEY_KP_F2">IBUS_KEY_KP_F2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-F3:CAPS" title="IBUS_KEY_KP_F3">IBUS_KEY_KP_F3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-F4:CAPS" title="IBUS_KEY_KP_F4">IBUS_KEY_KP_F4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Home" title="IBUS_KEY_KP_Home">IBUS_KEY_KP_Home</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Left" title="IBUS_KEY_KP_Left">IBUS_KEY_KP_Left</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Up" title="IBUS_KEY_KP_Up">IBUS_KEY_KP_Up</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Right" title="IBUS_KEY_KP_Right">IBUS_KEY_KP_Right</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Down" title="IBUS_KEY_KP_Down">IBUS_KEY_KP_Down</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Prior" title="IBUS_KEY_KP_Prior">IBUS_KEY_KP_Prior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Page-Up" title="IBUS_KEY_KP_Page_Up">IBUS_KEY_KP_Page_Up</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Next" title="IBUS_KEY_KP_Next">IBUS_KEY_KP_Next</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Page-Down" title="IBUS_KEY_KP_Page_Down">IBUS_KEY_KP_Page_Down</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-End" title="IBUS_KEY_KP_End">IBUS_KEY_KP_End</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Begin" title="IBUS_KEY_KP_Begin">IBUS_KEY_KP_Begin</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Insert" title="IBUS_KEY_KP_Insert">IBUS_KEY_KP_Insert</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Delete" title="IBUS_KEY_KP_Delete">IBUS_KEY_KP_Delete</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Equal" title="IBUS_KEY_KP_Equal">IBUS_KEY_KP_Equal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Multiply" title="IBUS_KEY_KP_Multiply">IBUS_KEY_KP_Multiply</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Add" title="IBUS_KEY_KP_Add">IBUS_KEY_KP_Add</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Separator" title="IBUS_KEY_KP_Separator">IBUS_KEY_KP_Separator</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Subtract" title="IBUS_KEY_KP_Subtract">IBUS_KEY_KP_Subtract</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Decimal" title="IBUS_KEY_KP_Decimal">IBUS_KEY_KP_Decimal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-Divide" title="IBUS_KEY_KP_Divide">IBUS_KEY_KP_Divide</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-0:CAPS" title="IBUS_KEY_KP_0">IBUS_KEY_KP_0</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-1:CAPS" title="IBUS_KEY_KP_1">IBUS_KEY_KP_1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-2:CAPS" title="IBUS_KEY_KP_2">IBUS_KEY_KP_2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-3:CAPS" title="IBUS_KEY_KP_3">IBUS_KEY_KP_3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-4:CAPS" title="IBUS_KEY_KP_4">IBUS_KEY_KP_4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-5:CAPS" title="IBUS_KEY_KP_5">IBUS_KEY_KP_5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-6:CAPS" title="IBUS_KEY_KP_6">IBUS_KEY_KP_6</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-7:CAPS" title="IBUS_KEY_KP_7">IBUS_KEY_KP_7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-8:CAPS" title="IBUS_KEY_KP_8">IBUS_KEY_KP_8</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-KP-9:CAPS" title="IBUS_KEY_KP_9">IBUS_KEY_KP_9</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F1:CAPS" title="IBUS_KEY_F1">IBUS_KEY_F1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F2:CAPS" title="IBUS_KEY_F2">IBUS_KEY_F2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F3:CAPS" title="IBUS_KEY_F3">IBUS_KEY_F3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F4:CAPS" title="IBUS_KEY_F4">IBUS_KEY_F4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F5:CAPS" title="IBUS_KEY_F5">IBUS_KEY_F5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F6:CAPS" title="IBUS_KEY_F6">IBUS_KEY_F6</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F7:CAPS" title="IBUS_KEY_F7">IBUS_KEY_F7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F8:CAPS" title="IBUS_KEY_F8">IBUS_KEY_F8</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F9:CAPS" title="IBUS_KEY_F9">IBUS_KEY_F9</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F10:CAPS" title="IBUS_KEY_F10">IBUS_KEY_F10</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F11:CAPS" title="IBUS_KEY_F11">IBUS_KEY_F11</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L1:CAPS" title="IBUS_KEY_L1">IBUS_KEY_L1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F12:CAPS" title="IBUS_KEY_F12">IBUS_KEY_F12</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L2:CAPS" title="IBUS_KEY_L2">IBUS_KEY_L2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F13:CAPS" title="IBUS_KEY_F13">IBUS_KEY_F13</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L3:CAPS" title="IBUS_KEY_L3">IBUS_KEY_L3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F14:CAPS" title="IBUS_KEY_F14">IBUS_KEY_F14</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L4:CAPS" title="IBUS_KEY_L4">IBUS_KEY_L4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F15:CAPS" title="IBUS_KEY_F15">IBUS_KEY_F15</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L5:CAPS" title="IBUS_KEY_L5">IBUS_KEY_L5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F16:CAPS" title="IBUS_KEY_F16">IBUS_KEY_F16</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L6:CAPS" title="IBUS_KEY_L6">IBUS_KEY_L6</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F17:CAPS" title="IBUS_KEY_F17">IBUS_KEY_F17</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L7:CAPS" title="IBUS_KEY_L7">IBUS_KEY_L7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F18:CAPS" title="IBUS_KEY_F18">IBUS_KEY_F18</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L8:CAPS" title="IBUS_KEY_L8">IBUS_KEY_L8</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F19:CAPS" title="IBUS_KEY_F19">IBUS_KEY_F19</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L9:CAPS" title="IBUS_KEY_L9">IBUS_KEY_L9</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F20:CAPS" title="IBUS_KEY_F20">IBUS_KEY_F20</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L10:CAPS" title="IBUS_KEY_L10">IBUS_KEY_L10</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F21:CAPS" title="IBUS_KEY_F21">IBUS_KEY_F21</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R1:CAPS" title="IBUS_KEY_R1">IBUS_KEY_R1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F22:CAPS" title="IBUS_KEY_F22">IBUS_KEY_F22</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R2:CAPS" title="IBUS_KEY_R2">IBUS_KEY_R2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F23:CAPS" title="IBUS_KEY_F23">IBUS_KEY_F23</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R3:CAPS" title="IBUS_KEY_R3">IBUS_KEY_R3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F24:CAPS" title="IBUS_KEY_F24">IBUS_KEY_F24</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R4:CAPS" title="IBUS_KEY_R4">IBUS_KEY_R4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F25:CAPS" title="IBUS_KEY_F25">IBUS_KEY_F25</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R5:CAPS" title="IBUS_KEY_R5">IBUS_KEY_R5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F26:CAPS" title="IBUS_KEY_F26">IBUS_KEY_F26</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R6:CAPS" title="IBUS_KEY_R6">IBUS_KEY_R6</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F27:CAPS" title="IBUS_KEY_F27">IBUS_KEY_F27</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R7:CAPS" title="IBUS_KEY_R7">IBUS_KEY_R7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F28:CAPS" title="IBUS_KEY_F28">IBUS_KEY_F28</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R8:CAPS" title="IBUS_KEY_R8">IBUS_KEY_R8</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F29:CAPS" title="IBUS_KEY_F29">IBUS_KEY_F29</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R9:CAPS" title="IBUS_KEY_R9">IBUS_KEY_R9</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F30:CAPS" title="IBUS_KEY_F30">IBUS_KEY_F30</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R10:CAPS" title="IBUS_KEY_R10">IBUS_KEY_R10</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F31:CAPS" title="IBUS_KEY_F31">IBUS_KEY_F31</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R11:CAPS" title="IBUS_KEY_R11">IBUS_KEY_R11</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F32:CAPS" title="IBUS_KEY_F32">IBUS_KEY_F32</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R12:CAPS" title="IBUS_KEY_R12">IBUS_KEY_R12</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F33:CAPS" title="IBUS_KEY_F33">IBUS_KEY_F33</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R13:CAPS" title="IBUS_KEY_R13">IBUS_KEY_R13</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F34:CAPS" title="IBUS_KEY_F34">IBUS_KEY_F34</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R14:CAPS" title="IBUS_KEY_R14">IBUS_KEY_R14</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F35:CAPS" title="IBUS_KEY_F35">IBUS_KEY_F35</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R15:CAPS" title="IBUS_KEY_R15">IBUS_KEY_R15</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Shift-L" title="IBUS_KEY_Shift_L">IBUS_KEY_Shift_L</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Shift-R" title="IBUS_KEY_Shift_R">IBUS_KEY_Shift_R</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Control-L" title="IBUS_KEY_Control_L">IBUS_KEY_Control_L</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Control-R" title="IBUS_KEY_Control_R">IBUS_KEY_Control_R</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Caps-Lock" title="IBUS_KEY_Caps_Lock">IBUS_KEY_Caps_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Shift-Lock" title="IBUS_KEY_Shift_Lock">IBUS_KEY_Shift_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Meta-L" title="IBUS_KEY_Meta_L">IBUS_KEY_Meta_L</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Meta-R" title="IBUS_KEY_Meta_R">IBUS_KEY_Meta_R</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Alt-L" title="IBUS_KEY_Alt_L">IBUS_KEY_Alt_L</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Alt-R" title="IBUS_KEY_Alt_R">IBUS_KEY_Alt_R</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Super-L" title="IBUS_KEY_Super_L">IBUS_KEY_Super_L</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Super-R" title="IBUS_KEY_Super_R">IBUS_KEY_Super_R</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hyper-L" title="IBUS_KEY_Hyper_L">IBUS_KEY_Hyper_L</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hyper-R" title="IBUS_KEY_Hyper_R">IBUS_KEY_Hyper_R</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Lock" title="IBUS_KEY_ISO_Lock">IBUS_KEY_ISO_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level2-Latch" title="IBUS_KEY_ISO_Level2_Latch">IBUS_KEY_ISO_Level2_Latch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Shift" title="IBUS_KEY_ISO_Level3_Shift">IBUS_KEY_ISO_Level3_Shift</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Latch" title="IBUS_KEY_ISO_Level3_Latch">IBUS_KEY_ISO_Level3_Latch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Lock" title="IBUS_KEY_ISO_Level3_Lock">IBUS_KEY_ISO_Level3_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Shift" title="IBUS_KEY_ISO_Level5_Shift">IBUS_KEY_ISO_Level5_Shift</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Latch" title="IBUS_KEY_ISO_Level5_Latch">IBUS_KEY_ISO_Level5_Latch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Lock" title="IBUS_KEY_ISO_Level5_Lock">IBUS_KEY_ISO_Level5_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Shift" title="IBUS_KEY_ISO_Group_Shift">IBUS_KEY_ISO_Group_Shift</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Latch" title="IBUS_KEY_ISO_Group_Latch">IBUS_KEY_ISO_Group_Latch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Lock" title="IBUS_KEY_ISO_Group_Lock">IBUS_KEY_ISO_Group_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Next-Group" title="IBUS_KEY_ISO_Next_Group">IBUS_KEY_ISO_Next_Group</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Next-Group-Lock" title="IBUS_KEY_ISO_Next_Group_Lock">IBUS_KEY_ISO_Next_Group_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Prev-Group" title="IBUS_KEY_ISO_Prev_Group">IBUS_KEY_ISO_Prev_Group</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Prev-Group-Lock" title="IBUS_KEY_ISO_Prev_Group_Lock">IBUS_KEY_ISO_Prev_Group_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-First-Group" title="IBUS_KEY_ISO_First_Group">IBUS_KEY_ISO_First_Group</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-First-Group-Lock" title="IBUS_KEY_ISO_First_Group_Lock">IBUS_KEY_ISO_First_Group_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Last-Group" title="IBUS_KEY_ISO_Last_Group">IBUS_KEY_ISO_Last_Group</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Last-Group-Lock" title="IBUS_KEY_ISO_Last_Group_Lock">IBUS_KEY_ISO_Last_Group_Lock</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Left-Tab" title="IBUS_KEY_ISO_Left_Tab">IBUS_KEY_ISO_Left_Tab</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Move-Line-Up" title="IBUS_KEY_ISO_Move_Line_Up">IBUS_KEY_ISO_Move_Line_Up</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Move-Line-Down" title="IBUS_KEY_ISO_Move_Line_Down">IBUS_KEY_ISO_Move_Line_Down</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Line-Up" title="IBUS_KEY_ISO_Partial_Line_Up">IBUS_KEY_ISO_Partial_Line_Up</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Line-Down" title="IBUS_KEY_ISO_Partial_Line_Down">IBUS_KEY_ISO_Partial_Line_Down</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Space-Left" title="IBUS_KEY_ISO_Partial_Space_Left">IBUS_KEY_ISO_Partial_Space_Left</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Space-Right" title="IBUS_KEY_ISO_Partial_Space_Right">IBUS_KEY_ISO_Partial_Space_Right</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Set-Margin-Left" title="IBUS_KEY_ISO_Set_Margin_Left">IBUS_KEY_ISO_Set_Margin_Left</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Set-Margin-Right" title="IBUS_KEY_ISO_Set_Margin_Right">IBUS_KEY_ISO_Set_Margin_Right</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Margin-Left" title="IBUS_KEY_ISO_Release_Margin_Left">IBUS_KEY_ISO_Release_Margin_Left</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Margin-Right" title="IBUS_KEY_ISO_Release_Margin_Right">IBUS_KEY_ISO_Release_Margin_Right</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Both-Margins" title="IBUS_KEY_ISO_Release_Both_Margins">IBUS_KEY_ISO_Release_Both_Margins</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Left" title="IBUS_KEY_ISO_Fast_Cursor_Left">IBUS_KEY_ISO_Fast_Cursor_Left</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Right" title="IBUS_KEY_ISO_Fast_Cursor_Right">IBUS_KEY_ISO_Fast_Cursor_Right</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Up" title="IBUS_KEY_ISO_Fast_Cursor_Up">IBUS_KEY_ISO_Fast_Cursor_Up</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Down" title="IBUS_KEY_ISO_Fast_Cursor_Down">IBUS_KEY_ISO_Fast_Cursor_Down</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Continuous-Underline" title="IBUS_KEY_ISO_Continuous_Underline">IBUS_KEY_ISO_Continuous_Underline</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Discontinuous-Underline" title="IBUS_KEY_ISO_Discontinuous_Underline">IBUS_KEY_ISO_Discontinuous_Underline</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Emphasize" title="IBUS_KEY_ISO_Emphasize">IBUS_KEY_ISO_Emphasize</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Center-Object" title="IBUS_KEY_ISO_Center_Object">IBUS_KEY_ISO_Center_Object</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Enter" title="IBUS_KEY_ISO_Enter">IBUS_KEY_ISO_Enter</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-grave" title="IBUS_KEY_dead_grave">IBUS_KEY_dead_grave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-acute" title="IBUS_KEY_dead_acute">IBUS_KEY_dead_acute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-circumflex" title="IBUS_KEY_dead_circumflex">IBUS_KEY_dead_circumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-tilde" title="IBUS_KEY_dead_tilde">IBUS_KEY_dead_tilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-perispomeni" title="IBUS_KEY_dead_perispomeni">IBUS_KEY_dead_perispomeni</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-macron" title="IBUS_KEY_dead_macron">IBUS_KEY_dead_macron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-breve" title="IBUS_KEY_dead_breve">IBUS_KEY_dead_breve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovedot" title="IBUS_KEY_dead_abovedot">IBUS_KEY_dead_abovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-diaeresis" title="IBUS_KEY_dead_diaeresis">IBUS_KEY_dead_diaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovering" title="IBUS_KEY_dead_abovering">IBUS_KEY_dead_abovering</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-doubleacute" title="IBUS_KEY_dead_doubleacute">IBUS_KEY_dead_doubleacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-caron" title="IBUS_KEY_dead_caron">IBUS_KEY_dead_caron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-cedilla" title="IBUS_KEY_dead_cedilla">IBUS_KEY_dead_cedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-ogonek" title="IBUS_KEY_dead_ogonek">IBUS_KEY_dead_ogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-iota" title="IBUS_KEY_dead_iota">IBUS_KEY_dead_iota</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-voiced-sound" title="IBUS_KEY_dead_voiced_sound">IBUS_KEY_dead_voiced_sound</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-semivoiced-sound" title="IBUS_KEY_dead_semivoiced_sound">IBUS_KEY_dead_semivoiced_sound</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowdot" title="IBUS_KEY_dead_belowdot">IBUS_KEY_dead_belowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-hook" title="IBUS_KEY_dead_hook">IBUS_KEY_dead_hook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-horn" title="IBUS_KEY_dead_horn">IBUS_KEY_dead_horn</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-stroke" title="IBUS_KEY_dead_stroke">IBUS_KEY_dead_stroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovecomma" title="IBUS_KEY_dead_abovecomma">IBUS_KEY_dead_abovecomma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-psili" title="IBUS_KEY_dead_psili">IBUS_KEY_dead_psili</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovereversedcomma" title="IBUS_KEY_dead_abovereversedcomma">IBUS_KEY_dead_abovereversedcomma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-dasia" title="IBUS_KEY_dead_dasia">IBUS_KEY_dead_dasia</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-doublegrave" title="IBUS_KEY_dead_doublegrave">IBUS_KEY_dead_doublegrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowring" title="IBUS_KEY_dead_belowring">IBUS_KEY_dead_belowring</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowmacron" title="IBUS_KEY_dead_belowmacron">IBUS_KEY_dead_belowmacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowcircumflex" title="IBUS_KEY_dead_belowcircumflex">IBUS_KEY_dead_belowcircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowtilde" title="IBUS_KEY_dead_belowtilde">IBUS_KEY_dead_belowtilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowbreve" title="IBUS_KEY_dead_belowbreve">IBUS_KEY_dead_belowbreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowdiaeresis" title="IBUS_KEY_dead_belowdiaeresis">IBUS_KEY_dead_belowdiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-invertedbreve" title="IBUS_KEY_dead_invertedbreve">IBUS_KEY_dead_invertedbreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowcomma" title="IBUS_KEY_dead_belowcomma">IBUS_KEY_dead_belowcomma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-currency" title="IBUS_KEY_dead_currency">IBUS_KEY_dead_currency</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-a" title="IBUS_KEY_dead_a">IBUS_KEY_dead_a</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-A" title="IBUS_KEY_dead_A">IBUS_KEY_dead_A</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-e" title="IBUS_KEY_dead_e">IBUS_KEY_dead_e</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-E" title="IBUS_KEY_dead_E">IBUS_KEY_dead_E</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-i" title="IBUS_KEY_dead_i">IBUS_KEY_dead_i</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-I" title="IBUS_KEY_dead_I">IBUS_KEY_dead_I</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-o" title="IBUS_KEY_dead_o">IBUS_KEY_dead_o</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-O" title="IBUS_KEY_dead_O">IBUS_KEY_dead_O</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-u" title="IBUS_KEY_dead_u">IBUS_KEY_dead_u</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-U" title="IBUS_KEY_dead_U">IBUS_KEY_dead_U</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-small-schwa" title="IBUS_KEY_dead_small_schwa">IBUS_KEY_dead_small_schwa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dead-capital-schwa" title="IBUS_KEY_dead_capital_schwa">IBUS_KEY_dead_capital_schwa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-First-Virtual-Screen" title="IBUS_KEY_First_Virtual_Screen">IBUS_KEY_First_Virtual_Screen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Prev-Virtual-Screen" title="IBUS_KEY_Prev_Virtual_Screen">IBUS_KEY_Prev_Virtual_Screen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Next-Virtual-Screen" title="IBUS_KEY_Next_Virtual_Screen">IBUS_KEY_Next_Virtual_Screen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Last-Virtual-Screen" title="IBUS_KEY_Last_Virtual_Screen">IBUS_KEY_Last_Virtual_Screen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Terminate-Server" title="IBUS_KEY_Terminate_Server">IBUS_KEY_Terminate_Server</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-AccessX-Enable" title="IBUS_KEY_AccessX_Enable">IBUS_KEY_AccessX_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-AccessX-Feedback-Enable" title="IBUS_KEY_AccessX_Feedback_Enable">IBUS_KEY_AccessX_Feedback_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-RepeatKeys-Enable" title="IBUS_KEY_RepeatKeys_Enable">IBUS_KEY_RepeatKeys_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-SlowKeys-Enable" title="IBUS_KEY_SlowKeys_Enable">IBUS_KEY_SlowKeys_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-BounceKeys-Enable" title="IBUS_KEY_BounceKeys_Enable">IBUS_KEY_BounceKeys_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-StickyKeys-Enable" title="IBUS_KEY_StickyKeys_Enable">IBUS_KEY_StickyKeys_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-MouseKeys-Enable" title="IBUS_KEY_MouseKeys_Enable">IBUS_KEY_MouseKeys_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-MouseKeys-Accel-Enable" title="IBUS_KEY_MouseKeys_Accel_Enable">IBUS_KEY_MouseKeys_Accel_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Overlay1-Enable" title="IBUS_KEY_Overlay1_Enable">IBUS_KEY_Overlay1_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Overlay2-Enable" title="IBUS_KEY_Overlay2_Enable">IBUS_KEY_Overlay2_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-AudibleBell-Enable" title="IBUS_KEY_AudibleBell_Enable">IBUS_KEY_AudibleBell_Enable</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Left" title="IBUS_KEY_Pointer_Left">IBUS_KEY_Pointer_Left</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Right" title="IBUS_KEY_Pointer_Right">IBUS_KEY_Pointer_Right</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Up" title="IBUS_KEY_Pointer_Up">IBUS_KEY_Pointer_Up</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Down" title="IBUS_KEY_Pointer_Down">IBUS_KEY_Pointer_Down</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-UpLeft" title="IBUS_KEY_Pointer_UpLeft">IBUS_KEY_Pointer_UpLeft</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-UpRight" title="IBUS_KEY_Pointer_UpRight">IBUS_KEY_Pointer_UpRight</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DownLeft" title="IBUS_KEY_Pointer_DownLeft">IBUS_KEY_Pointer_DownLeft</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DownRight" title="IBUS_KEY_Pointer_DownRight">IBUS_KEY_Pointer_DownRight</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button-Dflt" title="IBUS_KEY_Pointer_Button_Dflt">IBUS_KEY_Pointer_Button_Dflt</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button1" title="IBUS_KEY_Pointer_Button1">IBUS_KEY_Pointer_Button1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button2" title="IBUS_KEY_Pointer_Button2">IBUS_KEY_Pointer_Button2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button3" title="IBUS_KEY_Pointer_Button3">IBUS_KEY_Pointer_Button3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button4" title="IBUS_KEY_Pointer_Button4">IBUS_KEY_Pointer_Button4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button5" title="IBUS_KEY_Pointer_Button5">IBUS_KEY_Pointer_Button5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick-Dflt" title="IBUS_KEY_Pointer_DblClick_Dflt">IBUS_KEY_Pointer_DblClick_Dflt</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick1" title="IBUS_KEY_Pointer_DblClick1">IBUS_KEY_Pointer_DblClick1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick2" title="IBUS_KEY_Pointer_DblClick2">IBUS_KEY_Pointer_DblClick2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick3" title="IBUS_KEY_Pointer_DblClick3">IBUS_KEY_Pointer_DblClick3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick4" title="IBUS_KEY_Pointer_DblClick4">IBUS_KEY_Pointer_DblClick4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick5" title="IBUS_KEY_Pointer_DblClick5">IBUS_KEY_Pointer_DblClick5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag-Dflt" title="IBUS_KEY_Pointer_Drag_Dflt">IBUS_KEY_Pointer_Drag_Dflt</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag1" title="IBUS_KEY_Pointer_Drag1">IBUS_KEY_Pointer_Drag1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag2" title="IBUS_KEY_Pointer_Drag2">IBUS_KEY_Pointer_Drag2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag3" title="IBUS_KEY_Pointer_Drag3">IBUS_KEY_Pointer_Drag3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag4" title="IBUS_KEY_Pointer_Drag4">IBUS_KEY_Pointer_Drag4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag5" title="IBUS_KEY_Pointer_Drag5">IBUS_KEY_Pointer_Drag5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-EnableKeys" title="IBUS_KEY_Pointer_EnableKeys">IBUS_KEY_Pointer_EnableKeys</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Accelerate" title="IBUS_KEY_Pointer_Accelerate">IBUS_KEY_Pointer_Accelerate</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DfltBtnNext" title="IBUS_KEY_Pointer_DfltBtnNext">IBUS_KEY_Pointer_DfltBtnNext</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DfltBtnPrev" title="IBUS_KEY_Pointer_DfltBtnPrev">IBUS_KEY_Pointer_DfltBtnPrev</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ch" title="IBUS_KEY_ch">IBUS_KEY_ch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ch" title="IBUS_KEY_Ch">IBUS_KEY_Ch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-CH:CAPS" title="IBUS_KEY_CH">IBUS_KEY_CH</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-c-h" title="IBUS_KEY_c_h">IBUS_KEY_c_h</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-C-h" title="IBUS_KEY_C_h">IBUS_KEY_C_h</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-C-H:CAPS" title="IBUS_KEY_C_H">IBUS_KEY_C_H</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Duplicate" title="IBUS_KEY_3270_Duplicate">IBUS_KEY_3270_Duplicate</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-FieldMark" title="IBUS_KEY_3270_FieldMark">IBUS_KEY_3270_FieldMark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Right2" title="IBUS_KEY_3270_Right2">IBUS_KEY_3270_Right2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Left2" title="IBUS_KEY_3270_Left2">IBUS_KEY_3270_Left2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-BackTab" title="IBUS_KEY_3270_BackTab">IBUS_KEY_3270_BackTab</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-EraseEOF" title="IBUS_KEY_3270_EraseEOF">IBUS_KEY_3270_EraseEOF</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-EraseInput" title="IBUS_KEY_3270_EraseInput">IBUS_KEY_3270_EraseInput</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Reset" title="IBUS_KEY_3270_Reset">IBUS_KEY_3270_Reset</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Quit" title="IBUS_KEY_3270_Quit">IBUS_KEY_3270_Quit</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-PA1:CAPS" title="IBUS_KEY_3270_PA1">IBUS_KEY_3270_PA1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-PA2:CAPS" title="IBUS_KEY_3270_PA2">IBUS_KEY_3270_PA2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-PA3:CAPS" title="IBUS_KEY_3270_PA3">IBUS_KEY_3270_PA3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Test" title="IBUS_KEY_3270_Test">IBUS_KEY_3270_Test</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Attn" title="IBUS_KEY_3270_Attn">IBUS_KEY_3270_Attn</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-CursorBlink" title="IBUS_KEY_3270_CursorBlink">IBUS_KEY_3270_CursorBlink</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-AltCursor" title="IBUS_KEY_3270_AltCursor">IBUS_KEY_3270_AltCursor</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-KeyClick" title="IBUS_KEY_3270_KeyClick">IBUS_KEY_3270_KeyClick</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Jump" title="IBUS_KEY_3270_Jump">IBUS_KEY_3270_Jump</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Ident" title="IBUS_KEY_3270_Ident">IBUS_KEY_3270_Ident</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Rule" title="IBUS_KEY_3270_Rule">IBUS_KEY_3270_Rule</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Copy" title="IBUS_KEY_3270_Copy">IBUS_KEY_3270_Copy</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Play" title="IBUS_KEY_3270_Play">IBUS_KEY_3270_Play</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Setup" title="IBUS_KEY_3270_Setup">IBUS_KEY_3270_Setup</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Record" title="IBUS_KEY_3270_Record">IBUS_KEY_3270_Record</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-ChangeScreen" title="IBUS_KEY_3270_ChangeScreen">IBUS_KEY_3270_ChangeScreen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-DeleteWord" title="IBUS_KEY_3270_DeleteWord">IBUS_KEY_3270_DeleteWord</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-ExSelect" title="IBUS_KEY_3270_ExSelect">IBUS_KEY_3270_ExSelect</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-CursorSelect" title="IBUS_KEY_3270_CursorSelect">IBUS_KEY_3270_CursorSelect</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-PrintScreen" title="IBUS_KEY_3270_PrintScreen">IBUS_KEY_3270_PrintScreen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3270-Enter" title="IBUS_KEY_3270_Enter">IBUS_KEY_3270_Enter</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-space" title="IBUS_KEY_space">IBUS_KEY_space</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-exclam" title="IBUS_KEY_exclam">IBUS_KEY_exclam</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-quotedbl" title="IBUS_KEY_quotedbl">IBUS_KEY_quotedbl</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-numbersign" title="IBUS_KEY_numbersign">IBUS_KEY_numbersign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dollar" title="IBUS_KEY_dollar">IBUS_KEY_dollar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-percent" title="IBUS_KEY_percent">IBUS_KEY_percent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ampersand" title="IBUS_KEY_ampersand">IBUS_KEY_ampersand</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-apostrophe" title="IBUS_KEY_apostrophe">IBUS_KEY_apostrophe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-quoteright" title="IBUS_KEY_quoteright">IBUS_KEY_quoteright</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-parenleft" title="IBUS_KEY_parenleft">IBUS_KEY_parenleft</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-parenright" title="IBUS_KEY_parenright">IBUS_KEY_parenright</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-asterisk" title="IBUS_KEY_asterisk">IBUS_KEY_asterisk</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-plus" title="IBUS_KEY_plus">IBUS_KEY_plus</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-comma" title="IBUS_KEY_comma">IBUS_KEY_comma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-minus" title="IBUS_KEY_minus">IBUS_KEY_minus</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-period" title="IBUS_KEY_period">IBUS_KEY_period</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-slash" title="IBUS_KEY_slash">IBUS_KEY_slash</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-0:CAPS" title="IBUS_KEY_0">IBUS_KEY_0</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-1:CAPS" title="IBUS_KEY_1">IBUS_KEY_1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-2:CAPS" title="IBUS_KEY_2">IBUS_KEY_2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-3:CAPS" title="IBUS_KEY_3">IBUS_KEY_3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-4:CAPS" title="IBUS_KEY_4">IBUS_KEY_4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-5:CAPS" title="IBUS_KEY_5">IBUS_KEY_5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-6:CAPS" title="IBUS_KEY_6">IBUS_KEY_6</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-7:CAPS" title="IBUS_KEY_7">IBUS_KEY_7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-8:CAPS" title="IBUS_KEY_8">IBUS_KEY_8</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-9:CAPS" title="IBUS_KEY_9">IBUS_KEY_9</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-colon" title="IBUS_KEY_colon">IBUS_KEY_colon</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-semicolon" title="IBUS_KEY_semicolon">IBUS_KEY_semicolon</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-less" title="IBUS_KEY_less">IBUS_KEY_less</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-equal" title="IBUS_KEY_equal">IBUS_KEY_equal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-greater" title="IBUS_KEY_greater">IBUS_KEY_greater</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-question" title="IBUS_KEY_question">IBUS_KEY_question</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-at" title="IBUS_KEY_at">IBUS_KEY_at</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-A:CAPS" title="IBUS_KEY_A">IBUS_KEY_A</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-B:CAPS" title="IBUS_KEY_B">IBUS_KEY_B</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-C:CAPS" title="IBUS_KEY_C">IBUS_KEY_C</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-D:CAPS" title="IBUS_KEY_D">IBUS_KEY_D</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-E:CAPS" title="IBUS_KEY_E">IBUS_KEY_E</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-F:CAPS" title="IBUS_KEY_F">IBUS_KEY_F</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-G:CAPS" title="IBUS_KEY_G">IBUS_KEY_G</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-H:CAPS" title="IBUS_KEY_H">IBUS_KEY_H</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-I:CAPS" title="IBUS_KEY_I">IBUS_KEY_I</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-J:CAPS" title="IBUS_KEY_J">IBUS_KEY_J</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-K:CAPS" title="IBUS_KEY_K">IBUS_KEY_K</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-L:CAPS" title="IBUS_KEY_L">IBUS_KEY_L</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-M:CAPS" title="IBUS_KEY_M">IBUS_KEY_M</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-N:CAPS" title="IBUS_KEY_N">IBUS_KEY_N</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-O:CAPS" title="IBUS_KEY_O">IBUS_KEY_O</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-P:CAPS" title="IBUS_KEY_P">IBUS_KEY_P</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Q:CAPS" title="IBUS_KEY_Q">IBUS_KEY_Q</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-R:CAPS" title="IBUS_KEY_R">IBUS_KEY_R</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-S:CAPS" title="IBUS_KEY_S">IBUS_KEY_S</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-T:CAPS" title="IBUS_KEY_T">IBUS_KEY_T</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-U:CAPS" title="IBUS_KEY_U">IBUS_KEY_U</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-V:CAPS" title="IBUS_KEY_V">IBUS_KEY_V</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-W:CAPS" title="IBUS_KEY_W">IBUS_KEY_W</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-X:CAPS" title="IBUS_KEY_X">IBUS_KEY_X</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Y:CAPS" title="IBUS_KEY_Y">IBUS_KEY_Y</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Z:CAPS" title="IBUS_KEY_Z">IBUS_KEY_Z</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-bracketleft" title="IBUS_KEY_bracketleft">IBUS_KEY_bracketleft</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-backslash" title="IBUS_KEY_backslash">IBUS_KEY_backslash</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-bracketright" title="IBUS_KEY_bracketright">IBUS_KEY_bracketright</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-asciicircum" title="IBUS_KEY_asciicircum">IBUS_KEY_asciicircum</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-underscore" title="IBUS_KEY_underscore">IBUS_KEY_underscore</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-grave" title="IBUS_KEY_grave">IBUS_KEY_grave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-quoteleft" title="IBUS_KEY_quoteleft">IBUS_KEY_quoteleft</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-a" title="IBUS_KEY_a">IBUS_KEY_a</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-b" title="IBUS_KEY_b">IBUS_KEY_b</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-c" title="IBUS_KEY_c">IBUS_KEY_c</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-d" title="IBUS_KEY_d">IBUS_KEY_d</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-e" title="IBUS_KEY_e">IBUS_KEY_e</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-f" title="IBUS_KEY_f">IBUS_KEY_f</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-g" title="IBUS_KEY_g">IBUS_KEY_g</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-h" title="IBUS_KEY_h">IBUS_KEY_h</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-i" title="IBUS_KEY_i">IBUS_KEY_i</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-j" title="IBUS_KEY_j">IBUS_KEY_j</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-k" title="IBUS_KEY_k">IBUS_KEY_k</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-l" title="IBUS_KEY_l">IBUS_KEY_l</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-m" title="IBUS_KEY_m">IBUS_KEY_m</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-n" title="IBUS_KEY_n">IBUS_KEY_n</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-o" title="IBUS_KEY_o">IBUS_KEY_o</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-p" title="IBUS_KEY_p">IBUS_KEY_p</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-q" title="IBUS_KEY_q">IBUS_KEY_q</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-r" title="IBUS_KEY_r">IBUS_KEY_r</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-s" title="IBUS_KEY_s">IBUS_KEY_s</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-t" title="IBUS_KEY_t">IBUS_KEY_t</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-u" title="IBUS_KEY_u">IBUS_KEY_u</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-v" title="IBUS_KEY_v">IBUS_KEY_v</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-w" title="IBUS_KEY_w">IBUS_KEY_w</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-x" title="IBUS_KEY_x">IBUS_KEY_x</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-y" title="IBUS_KEY_y">IBUS_KEY_y</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-z" title="IBUS_KEY_z">IBUS_KEY_z</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braceleft" title="IBUS_KEY_braceleft">IBUS_KEY_braceleft</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-bar" title="IBUS_KEY_bar">IBUS_KEY_bar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braceright" title="IBUS_KEY_braceright">IBUS_KEY_braceright</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-asciitilde" title="IBUS_KEY_asciitilde">IBUS_KEY_asciitilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-nobreakspace" title="IBUS_KEY_nobreakspace">IBUS_KEY_nobreakspace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-exclamdown" title="IBUS_KEY_exclamdown">IBUS_KEY_exclamdown</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cent" title="IBUS_KEY_cent">IBUS_KEY_cent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sterling" title="IBUS_KEY_sterling">IBUS_KEY_sterling</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-currency" title="IBUS_KEY_currency">IBUS_KEY_currency</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-yen" title="IBUS_KEY_yen">IBUS_KEY_yen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-brokenbar" title="IBUS_KEY_brokenbar">IBUS_KEY_brokenbar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-section" title="IBUS_KEY_section">IBUS_KEY_section</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-diaeresis" title="IBUS_KEY_diaeresis">IBUS_KEY_diaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-copyright" title="IBUS_KEY_copyright">IBUS_KEY_copyright</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ordfeminine" title="IBUS_KEY_ordfeminine">IBUS_KEY_ordfeminine</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-guillemotleft" title="IBUS_KEY_guillemotleft">IBUS_KEY_guillemotleft</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notsign" title="IBUS_KEY_notsign">IBUS_KEY_notsign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hyphen" title="IBUS_KEY_hyphen">IBUS_KEY_hyphen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-registered" title="IBUS_KEY_registered">IBUS_KEY_registered</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-macron" title="IBUS_KEY_macron">IBUS_KEY_macron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-degree" title="IBUS_KEY_degree">IBUS_KEY_degree</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-plusminus" title="IBUS_KEY_plusminus">IBUS_KEY_plusminus</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-twosuperior" title="IBUS_KEY_twosuperior">IBUS_KEY_twosuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threesuperior" title="IBUS_KEY_threesuperior">IBUS_KEY_threesuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acute" title="IBUS_KEY_acute">IBUS_KEY_acute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-mu" title="IBUS_KEY_mu">IBUS_KEY_mu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-paragraph" title="IBUS_KEY_paragraph">IBUS_KEY_paragraph</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-periodcentered" title="IBUS_KEY_periodcentered">IBUS_KEY_periodcentered</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cedilla" title="IBUS_KEY_cedilla">IBUS_KEY_cedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onesuperior" title="IBUS_KEY_onesuperior">IBUS_KEY_onesuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-masculine" title="IBUS_KEY_masculine">IBUS_KEY_masculine</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-guillemotright" title="IBUS_KEY_guillemotright">IBUS_KEY_guillemotright</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onequarter" title="IBUS_KEY_onequarter">IBUS_KEY_onequarter</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onehalf" title="IBUS_KEY_onehalf">IBUS_KEY_onehalf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threequarters" title="IBUS_KEY_threequarters">IBUS_KEY_threequarters</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-questiondown" title="IBUS_KEY_questiondown">IBUS_KEY_questiondown</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Agrave" title="IBUS_KEY_Agrave">IBUS_KEY_Agrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Aacute" title="IBUS_KEY_Aacute">IBUS_KEY_Aacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflex" title="IBUS_KEY_Acircumflex">IBUS_KEY_Acircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Atilde" title="IBUS_KEY_Atilde">IBUS_KEY_Atilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Adiaeresis" title="IBUS_KEY_Adiaeresis">IBUS_KEY_Adiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Aring" title="IBUS_KEY_Aring">IBUS_KEY_Aring</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-AE:CAPS" title="IBUS_KEY_AE">IBUS_KEY_AE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ccedilla" title="IBUS_KEY_Ccedilla">IBUS_KEY_Ccedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Egrave" title="IBUS_KEY_Egrave">IBUS_KEY_Egrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eacute" title="IBUS_KEY_Eacute">IBUS_KEY_Eacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflex" title="IBUS_KEY_Ecircumflex">IBUS_KEY_Ecircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ediaeresis" title="IBUS_KEY_Ediaeresis">IBUS_KEY_Ediaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Igrave" title="IBUS_KEY_Igrave">IBUS_KEY_Igrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Iacute" title="IBUS_KEY_Iacute">IBUS_KEY_Iacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Icircumflex" title="IBUS_KEY_Icircumflex">IBUS_KEY_Icircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Idiaeresis" title="IBUS_KEY_Idiaeresis">IBUS_KEY_Idiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ETH:CAPS" title="IBUS_KEY_ETH">IBUS_KEY_ETH</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eth" title="IBUS_KEY_Eth">IBUS_KEY_Eth</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ntilde" title="IBUS_KEY_Ntilde">IBUS_KEY_Ntilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ograve" title="IBUS_KEY_Ograve">IBUS_KEY_Ograve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Oacute" title="IBUS_KEY_Oacute">IBUS_KEY_Oacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflex" title="IBUS_KEY_Ocircumflex">IBUS_KEY_Ocircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Otilde" title="IBUS_KEY_Otilde">IBUS_KEY_Otilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Odiaeresis" title="IBUS_KEY_Odiaeresis">IBUS_KEY_Odiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-multiply" title="IBUS_KEY_multiply">IBUS_KEY_multiply</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Oslash" title="IBUS_KEY_Oslash">IBUS_KEY_Oslash</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ooblique" title="IBUS_KEY_Ooblique">IBUS_KEY_Ooblique</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ugrave" title="IBUS_KEY_Ugrave">IBUS_KEY_Ugrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uacute" title="IBUS_KEY_Uacute">IBUS_KEY_Uacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ucircumflex" title="IBUS_KEY_Ucircumflex">IBUS_KEY_Ucircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Udiaeresis" title="IBUS_KEY_Udiaeresis">IBUS_KEY_Udiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Yacute" title="IBUS_KEY_Yacute">IBUS_KEY_Yacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-THORN:CAPS" title="IBUS_KEY_THORN">IBUS_KEY_THORN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thorn" title="IBUS_KEY_Thorn">IBUS_KEY_Thorn</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ssharp" title="IBUS_KEY_ssharp">IBUS_KEY_ssharp</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-agrave" title="IBUS_KEY_agrave">IBUS_KEY_agrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-aacute" title="IBUS_KEY_aacute">IBUS_KEY_aacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflex" title="IBUS_KEY_acircumflex">IBUS_KEY_acircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-atilde" title="IBUS_KEY_atilde">IBUS_KEY_atilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-adiaeresis" title="IBUS_KEY_adiaeresis">IBUS_KEY_adiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-aring" title="IBUS_KEY_aring">IBUS_KEY_aring</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ae" title="IBUS_KEY_ae">IBUS_KEY_ae</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ccedilla" title="IBUS_KEY_ccedilla">IBUS_KEY_ccedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-egrave" title="IBUS_KEY_egrave">IBUS_KEY_egrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eacute" title="IBUS_KEY_eacute">IBUS_KEY_eacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflex" title="IBUS_KEY_ecircumflex">IBUS_KEY_ecircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ediaeresis" title="IBUS_KEY_ediaeresis">IBUS_KEY_ediaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-igrave" title="IBUS_KEY_igrave">IBUS_KEY_igrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-iacute" title="IBUS_KEY_iacute">IBUS_KEY_iacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-icircumflex" title="IBUS_KEY_icircumflex">IBUS_KEY_icircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-idiaeresis" title="IBUS_KEY_idiaeresis">IBUS_KEY_idiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eth" title="IBUS_KEY_eth">IBUS_KEY_eth</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ntilde" title="IBUS_KEY_ntilde">IBUS_KEY_ntilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ograve" title="IBUS_KEY_ograve">IBUS_KEY_ograve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-oacute" title="IBUS_KEY_oacute">IBUS_KEY_oacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflex" title="IBUS_KEY_ocircumflex">IBUS_KEY_ocircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-otilde" title="IBUS_KEY_otilde">IBUS_KEY_otilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-odiaeresis" title="IBUS_KEY_odiaeresis">IBUS_KEY_odiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-division" title="IBUS_KEY_division">IBUS_KEY_division</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-oslash" title="IBUS_KEY_oslash">IBUS_KEY_oslash</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ooblique" title="IBUS_KEY_ooblique">IBUS_KEY_ooblique</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ugrave" title="IBUS_KEY_ugrave">IBUS_KEY_ugrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uacute" title="IBUS_KEY_uacute">IBUS_KEY_uacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ucircumflex" title="IBUS_KEY_ucircumflex">IBUS_KEY_ucircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-udiaeresis" title="IBUS_KEY_udiaeresis">IBUS_KEY_udiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-yacute" title="IBUS_KEY_yacute">IBUS_KEY_yacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-thorn" title="IBUS_KEY_thorn">IBUS_KEY_thorn</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ydiaeresis" title="IBUS_KEY_ydiaeresis">IBUS_KEY_ydiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Aogonek" title="IBUS_KEY_Aogonek">IBUS_KEY_Aogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-breve" title="IBUS_KEY_breve">IBUS_KEY_breve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lstroke" title="IBUS_KEY_Lstroke">IBUS_KEY_Lstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lcaron" title="IBUS_KEY_Lcaron">IBUS_KEY_Lcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sacute" title="IBUS_KEY_Sacute">IBUS_KEY_Sacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Scaron" title="IBUS_KEY_Scaron">IBUS_KEY_Scaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Scedilla" title="IBUS_KEY_Scedilla">IBUS_KEY_Scedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tcaron" title="IBUS_KEY_Tcaron">IBUS_KEY_Tcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zacute" title="IBUS_KEY_Zacute">IBUS_KEY_Zacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zcaron" title="IBUS_KEY_Zcaron">IBUS_KEY_Zcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zabovedot" title="IBUS_KEY_Zabovedot">IBUS_KEY_Zabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-aogonek" title="IBUS_KEY_aogonek">IBUS_KEY_aogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ogonek" title="IBUS_KEY_ogonek">IBUS_KEY_ogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lstroke" title="IBUS_KEY_lstroke">IBUS_KEY_lstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lcaron" title="IBUS_KEY_lcaron">IBUS_KEY_lcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sacute" title="IBUS_KEY_sacute">IBUS_KEY_sacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-caron" title="IBUS_KEY_caron">IBUS_KEY_caron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-scaron" title="IBUS_KEY_scaron">IBUS_KEY_scaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-scedilla" title="IBUS_KEY_scedilla">IBUS_KEY_scedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tcaron" title="IBUS_KEY_tcaron">IBUS_KEY_tcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zacute" title="IBUS_KEY_zacute">IBUS_KEY_zacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-doubleacute" title="IBUS_KEY_doubleacute">IBUS_KEY_doubleacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zcaron" title="IBUS_KEY_zcaron">IBUS_KEY_zcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zabovedot" title="IBUS_KEY_zabovedot">IBUS_KEY_zabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Racute" title="IBUS_KEY_Racute">IBUS_KEY_Racute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abreve" title="IBUS_KEY_Abreve">IBUS_KEY_Abreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lacute" title="IBUS_KEY_Lacute">IBUS_KEY_Lacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cacute" title="IBUS_KEY_Cacute">IBUS_KEY_Cacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ccaron" title="IBUS_KEY_Ccaron">IBUS_KEY_Ccaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eogonek" title="IBUS_KEY_Eogonek">IBUS_KEY_Eogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecaron" title="IBUS_KEY_Ecaron">IBUS_KEY_Ecaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Dcaron" title="IBUS_KEY_Dcaron">IBUS_KEY_Dcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Dstroke" title="IBUS_KEY_Dstroke">IBUS_KEY_Dstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Nacute" title="IBUS_KEY_Nacute">IBUS_KEY_Nacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ncaron" title="IBUS_KEY_Ncaron">IBUS_KEY_Ncaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Odoubleacute" title="IBUS_KEY_Odoubleacute">IBUS_KEY_Odoubleacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Rcaron" title="IBUS_KEY_Rcaron">IBUS_KEY_Rcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uring" title="IBUS_KEY_Uring">IBUS_KEY_Uring</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Udoubleacute" title="IBUS_KEY_Udoubleacute">IBUS_KEY_Udoubleacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tcedilla" title="IBUS_KEY_Tcedilla">IBUS_KEY_Tcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-racute" title="IBUS_KEY_racute">IBUS_KEY_racute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abreve" title="IBUS_KEY_abreve">IBUS_KEY_abreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lacute" title="IBUS_KEY_lacute">IBUS_KEY_lacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cacute" title="IBUS_KEY_cacute">IBUS_KEY_cacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ccaron" title="IBUS_KEY_ccaron">IBUS_KEY_ccaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eogonek" title="IBUS_KEY_eogonek">IBUS_KEY_eogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecaron" title="IBUS_KEY_ecaron">IBUS_KEY_ecaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dcaron" title="IBUS_KEY_dcaron">IBUS_KEY_dcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dstroke" title="IBUS_KEY_dstroke">IBUS_KEY_dstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-nacute" title="IBUS_KEY_nacute">IBUS_KEY_nacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ncaron" title="IBUS_KEY_ncaron">IBUS_KEY_ncaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-odoubleacute" title="IBUS_KEY_odoubleacute">IBUS_KEY_odoubleacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rcaron" title="IBUS_KEY_rcaron">IBUS_KEY_rcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uring" title="IBUS_KEY_uring">IBUS_KEY_uring</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-udoubleacute" title="IBUS_KEY_udoubleacute">IBUS_KEY_udoubleacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tcedilla" title="IBUS_KEY_tcedilla">IBUS_KEY_tcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abovedot" title="IBUS_KEY_abovedot">IBUS_KEY_abovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hstroke" title="IBUS_KEY_Hstroke">IBUS_KEY_Hstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hcircumflex" title="IBUS_KEY_Hcircumflex">IBUS_KEY_Hcircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Iabovedot" title="IBUS_KEY_Iabovedot">IBUS_KEY_Iabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gbreve" title="IBUS_KEY_Gbreve">IBUS_KEY_Gbreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Jcircumflex" title="IBUS_KEY_Jcircumflex">IBUS_KEY_Jcircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hstroke" title="IBUS_KEY_hstroke">IBUS_KEY_hstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hcircumflex" title="IBUS_KEY_hcircumflex">IBUS_KEY_hcircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-idotless" title="IBUS_KEY_idotless">IBUS_KEY_idotless</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gbreve" title="IBUS_KEY_gbreve">IBUS_KEY_gbreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-jcircumflex" title="IBUS_KEY_jcircumflex">IBUS_KEY_jcircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cabovedot" title="IBUS_KEY_Cabovedot">IBUS_KEY_Cabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ccircumflex" title="IBUS_KEY_Ccircumflex">IBUS_KEY_Ccircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gabovedot" title="IBUS_KEY_Gabovedot">IBUS_KEY_Gabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gcircumflex" title="IBUS_KEY_Gcircumflex">IBUS_KEY_Gcircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ubreve" title="IBUS_KEY_Ubreve">IBUS_KEY_Ubreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Scircumflex" title="IBUS_KEY_Scircumflex">IBUS_KEY_Scircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cabovedot" title="IBUS_KEY_cabovedot">IBUS_KEY_cabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ccircumflex" title="IBUS_KEY_ccircumflex">IBUS_KEY_ccircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gabovedot" title="IBUS_KEY_gabovedot">IBUS_KEY_gabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gcircumflex" title="IBUS_KEY_gcircumflex">IBUS_KEY_gcircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ubreve" title="IBUS_KEY_ubreve">IBUS_KEY_ubreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-scircumflex" title="IBUS_KEY_scircumflex">IBUS_KEY_scircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kra" title="IBUS_KEY_kra">IBUS_KEY_kra</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kappa" title="IBUS_KEY_kappa">IBUS_KEY_kappa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Rcedilla" title="IBUS_KEY_Rcedilla">IBUS_KEY_Rcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Itilde" title="IBUS_KEY_Itilde">IBUS_KEY_Itilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lcedilla" title="IBUS_KEY_Lcedilla">IBUS_KEY_Lcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Emacron" title="IBUS_KEY_Emacron">IBUS_KEY_Emacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gcedilla" title="IBUS_KEY_Gcedilla">IBUS_KEY_Gcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tslash" title="IBUS_KEY_Tslash">IBUS_KEY_Tslash</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rcedilla" title="IBUS_KEY_rcedilla">IBUS_KEY_rcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-itilde" title="IBUS_KEY_itilde">IBUS_KEY_itilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lcedilla" title="IBUS_KEY_lcedilla">IBUS_KEY_lcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emacron" title="IBUS_KEY_emacron">IBUS_KEY_emacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gcedilla" title="IBUS_KEY_gcedilla">IBUS_KEY_gcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tslash" title="IBUS_KEY_tslash">IBUS_KEY_tslash</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ENG:CAPS" title="IBUS_KEY_ENG">IBUS_KEY_ENG</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eng" title="IBUS_KEY_eng">IBUS_KEY_eng</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Amacron" title="IBUS_KEY_Amacron">IBUS_KEY_Amacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Iogonek" title="IBUS_KEY_Iogonek">IBUS_KEY_Iogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Eabovedot" title="IBUS_KEY_Eabovedot">IBUS_KEY_Eabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Imacron" title="IBUS_KEY_Imacron">IBUS_KEY_Imacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ncedilla" title="IBUS_KEY_Ncedilla">IBUS_KEY_Ncedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Omacron" title="IBUS_KEY_Omacron">IBUS_KEY_Omacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Kcedilla" title="IBUS_KEY_Kcedilla">IBUS_KEY_Kcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uogonek" title="IBUS_KEY_Uogonek">IBUS_KEY_Uogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Utilde" title="IBUS_KEY_Utilde">IBUS_KEY_Utilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Umacron" title="IBUS_KEY_Umacron">IBUS_KEY_Umacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-amacron" title="IBUS_KEY_amacron">IBUS_KEY_amacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-iogonek" title="IBUS_KEY_iogonek">IBUS_KEY_iogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eabovedot" title="IBUS_KEY_eabovedot">IBUS_KEY_eabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-imacron" title="IBUS_KEY_imacron">IBUS_KEY_imacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ncedilla" title="IBUS_KEY_ncedilla">IBUS_KEY_ncedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-omacron" title="IBUS_KEY_omacron">IBUS_KEY_omacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kcedilla" title="IBUS_KEY_kcedilla">IBUS_KEY_kcedilla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uogonek" title="IBUS_KEY_uogonek">IBUS_KEY_uogonek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-utilde" title="IBUS_KEY_utilde">IBUS_KEY_utilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-umacron" title="IBUS_KEY_umacron">IBUS_KEY_umacron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Wcircumflex" title="IBUS_KEY_Wcircumflex">IBUS_KEY_Wcircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-wcircumflex" title="IBUS_KEY_wcircumflex">IBUS_KEY_wcircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ycircumflex" title="IBUS_KEY_Ycircumflex">IBUS_KEY_Ycircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ycircumflex" title="IBUS_KEY_ycircumflex">IBUS_KEY_ycircumflex</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Babovedot" title="IBUS_KEY_Babovedot">IBUS_KEY_Babovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-babovedot" title="IBUS_KEY_babovedot">IBUS_KEY_babovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Dabovedot" title="IBUS_KEY_Dabovedot">IBUS_KEY_Dabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dabovedot" title="IBUS_KEY_dabovedot">IBUS_KEY_dabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Fabovedot" title="IBUS_KEY_Fabovedot">IBUS_KEY_Fabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fabovedot" title="IBUS_KEY_fabovedot">IBUS_KEY_fabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Mabovedot" title="IBUS_KEY_Mabovedot">IBUS_KEY_Mabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-mabovedot" title="IBUS_KEY_mabovedot">IBUS_KEY_mabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Pabovedot" title="IBUS_KEY_Pabovedot">IBUS_KEY_Pabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-pabovedot" title="IBUS_KEY_pabovedot">IBUS_KEY_pabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sabovedot" title="IBUS_KEY_Sabovedot">IBUS_KEY_Sabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sabovedot" title="IBUS_KEY_sabovedot">IBUS_KEY_sabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Tabovedot" title="IBUS_KEY_Tabovedot">IBUS_KEY_Tabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tabovedot" title="IBUS_KEY_tabovedot">IBUS_KEY_tabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Wgrave" title="IBUS_KEY_Wgrave">IBUS_KEY_Wgrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-wgrave" title="IBUS_KEY_wgrave">IBUS_KEY_wgrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Wacute" title="IBUS_KEY_Wacute">IBUS_KEY_Wacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-wacute" title="IBUS_KEY_wacute">IBUS_KEY_wacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Wdiaeresis" title="IBUS_KEY_Wdiaeresis">IBUS_KEY_Wdiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-wdiaeresis" title="IBUS_KEY_wdiaeresis">IBUS_KEY_wdiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ygrave" title="IBUS_KEY_Ygrave">IBUS_KEY_Ygrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ygrave" title="IBUS_KEY_ygrave">IBUS_KEY_ygrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-OE:CAPS" title="IBUS_KEY_OE">IBUS_KEY_OE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-oe" title="IBUS_KEY_oe">IBUS_KEY_oe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ydiaeresis" title="IBUS_KEY_Ydiaeresis">IBUS_KEY_Ydiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-overline" title="IBUS_KEY_overline">IBUS_KEY_overline</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-fullstop" title="IBUS_KEY_kana_fullstop">IBUS_KEY_kana_fullstop</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-openingbracket" title="IBUS_KEY_kana_openingbracket">IBUS_KEY_kana_openingbracket</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-closingbracket" title="IBUS_KEY_kana_closingbracket">IBUS_KEY_kana_closingbracket</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-comma" title="IBUS_KEY_kana_comma">IBUS_KEY_kana_comma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-conjunctive" title="IBUS_KEY_kana_conjunctive">IBUS_KEY_kana_conjunctive</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-middledot" title="IBUS_KEY_kana_middledot">IBUS_KEY_kana_middledot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-WO" title="IBUS_KEY_kana_WO">IBUS_KEY_kana_WO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-a" title="IBUS_KEY_kana_a">IBUS_KEY_kana_a</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-i" title="IBUS_KEY_kana_i">IBUS_KEY_kana_i</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-u" title="IBUS_KEY_kana_u">IBUS_KEY_kana_u</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-e" title="IBUS_KEY_kana_e">IBUS_KEY_kana_e</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-o" title="IBUS_KEY_kana_o">IBUS_KEY_kana_o</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-ya" title="IBUS_KEY_kana_ya">IBUS_KEY_kana_ya</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-yu" title="IBUS_KEY_kana_yu">IBUS_KEY_kana_yu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-yo" title="IBUS_KEY_kana_yo">IBUS_KEY_kana_yo</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-tsu" title="IBUS_KEY_kana_tsu">IBUS_KEY_kana_tsu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-tu" title="IBUS_KEY_kana_tu">IBUS_KEY_kana_tu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-prolongedsound" title="IBUS_KEY_prolongedsound">IBUS_KEY_prolongedsound</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-A" title="IBUS_KEY_kana_A">IBUS_KEY_kana_A</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-I" title="IBUS_KEY_kana_I">IBUS_KEY_kana_I</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-U" title="IBUS_KEY_kana_U">IBUS_KEY_kana_U</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-E" title="IBUS_KEY_kana_E">IBUS_KEY_kana_E</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-O" title="IBUS_KEY_kana_O">IBUS_KEY_kana_O</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KA" title="IBUS_KEY_kana_KA">IBUS_KEY_kana_KA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KI" title="IBUS_KEY_kana_KI">IBUS_KEY_kana_KI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KU" title="IBUS_KEY_kana_KU">IBUS_KEY_kana_KU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KE" title="IBUS_KEY_kana_KE">IBUS_KEY_kana_KE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-KO" title="IBUS_KEY_kana_KO">IBUS_KEY_kana_KO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SA" title="IBUS_KEY_kana_SA">IBUS_KEY_kana_SA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SHI" title="IBUS_KEY_kana_SHI">IBUS_KEY_kana_SHI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SU" title="IBUS_KEY_kana_SU">IBUS_KEY_kana_SU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SE" title="IBUS_KEY_kana_SE">IBUS_KEY_kana_SE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-SO" title="IBUS_KEY_kana_SO">IBUS_KEY_kana_SO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TA" title="IBUS_KEY_kana_TA">IBUS_KEY_kana_TA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-CHI" title="IBUS_KEY_kana_CHI">IBUS_KEY_kana_CHI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TI" title="IBUS_KEY_kana_TI">IBUS_KEY_kana_TI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TSU" title="IBUS_KEY_kana_TSU">IBUS_KEY_kana_TSU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TU" title="IBUS_KEY_kana_TU">IBUS_KEY_kana_TU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TE" title="IBUS_KEY_kana_TE">IBUS_KEY_kana_TE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-TO" title="IBUS_KEY_kana_TO">IBUS_KEY_kana_TO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NA" title="IBUS_KEY_kana_NA">IBUS_KEY_kana_NA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NI" title="IBUS_KEY_kana_NI">IBUS_KEY_kana_NI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NU" title="IBUS_KEY_kana_NU">IBUS_KEY_kana_NU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NE" title="IBUS_KEY_kana_NE">IBUS_KEY_kana_NE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-NO" title="IBUS_KEY_kana_NO">IBUS_KEY_kana_NO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HA" title="IBUS_KEY_kana_HA">IBUS_KEY_kana_HA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HI" title="IBUS_KEY_kana_HI">IBUS_KEY_kana_HI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-FU" title="IBUS_KEY_kana_FU">IBUS_KEY_kana_FU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HU" title="IBUS_KEY_kana_HU">IBUS_KEY_kana_HU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HE" title="IBUS_KEY_kana_HE">IBUS_KEY_kana_HE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-HO" title="IBUS_KEY_kana_HO">IBUS_KEY_kana_HO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-MA" title="IBUS_KEY_kana_MA">IBUS_KEY_kana_MA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-MI" title="IBUS_KEY_kana_MI">IBUS_KEY_kana_MI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-MU" title="IBUS_KEY_kana_MU">IBUS_KEY_kana_MU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-ME" title="IBUS_KEY_kana_ME">IBUS_KEY_kana_ME</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-MO" title="IBUS_KEY_kana_MO">IBUS_KEY_kana_MO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-YA" title="IBUS_KEY_kana_YA">IBUS_KEY_kana_YA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-YU" title="IBUS_KEY_kana_YU">IBUS_KEY_kana_YU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-YO" title="IBUS_KEY_kana_YO">IBUS_KEY_kana_YO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RA" title="IBUS_KEY_kana_RA">IBUS_KEY_kana_RA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RI" title="IBUS_KEY_kana_RI">IBUS_KEY_kana_RI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RU" title="IBUS_KEY_kana_RU">IBUS_KEY_kana_RU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RE" title="IBUS_KEY_kana_RE">IBUS_KEY_kana_RE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-RO" title="IBUS_KEY_kana_RO">IBUS_KEY_kana_RO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-WA" title="IBUS_KEY_kana_WA">IBUS_KEY_kana_WA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-N" title="IBUS_KEY_kana_N">IBUS_KEY_kana_N</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-voicedsound" title="IBUS_KEY_voicedsound">IBUS_KEY_voicedsound</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-semivoicedsound" title="IBUS_KEY_semivoicedsound">IBUS_KEY_semivoicedsound</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-kana-switch" title="IBUS_KEY_kana_switch">IBUS_KEY_kana_switch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-0" title="IBUS_KEY_Farsi_0">IBUS_KEY_Farsi_0</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-1" title="IBUS_KEY_Farsi_1">IBUS_KEY_Farsi_1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-2" title="IBUS_KEY_Farsi_2">IBUS_KEY_Farsi_2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-3" title="IBUS_KEY_Farsi_3">IBUS_KEY_Farsi_3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-4" title="IBUS_KEY_Farsi_4">IBUS_KEY_Farsi_4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-5" title="IBUS_KEY_Farsi_5">IBUS_KEY_Farsi_5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-6" title="IBUS_KEY_Farsi_6">IBUS_KEY_Farsi_6</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-7" title="IBUS_KEY_Farsi_7">IBUS_KEY_Farsi_7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-8" title="IBUS_KEY_Farsi_8">IBUS_KEY_Farsi_8</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-9" title="IBUS_KEY_Farsi_9">IBUS_KEY_Farsi_9</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-percent" title="IBUS_KEY_Arabic_percent">IBUS_KEY_Arabic_percent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-superscript-alef" title="IBUS_KEY_Arabic_superscript_alef">IBUS_KEY_Arabic_superscript_alef</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tteh" title="IBUS_KEY_Arabic_tteh">IBUS_KEY_Arabic_tteh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-peh" title="IBUS_KEY_Arabic_peh">IBUS_KEY_Arabic_peh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tcheh" title="IBUS_KEY_Arabic_tcheh">IBUS_KEY_Arabic_tcheh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ddal" title="IBUS_KEY_Arabic_ddal">IBUS_KEY_Arabic_ddal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-rreh" title="IBUS_KEY_Arabic_rreh">IBUS_KEY_Arabic_rreh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-comma" title="IBUS_KEY_Arabic_comma">IBUS_KEY_Arabic_comma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fullstop" title="IBUS_KEY_Arabic_fullstop">IBUS_KEY_Arabic_fullstop</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-0" title="IBUS_KEY_Arabic_0">IBUS_KEY_Arabic_0</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-1" title="IBUS_KEY_Arabic_1">IBUS_KEY_Arabic_1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-2" title="IBUS_KEY_Arabic_2">IBUS_KEY_Arabic_2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-3" title="IBUS_KEY_Arabic_3">IBUS_KEY_Arabic_3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-4" title="IBUS_KEY_Arabic_4">IBUS_KEY_Arabic_4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-5" title="IBUS_KEY_Arabic_5">IBUS_KEY_Arabic_5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-6" title="IBUS_KEY_Arabic_6">IBUS_KEY_Arabic_6</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-7" title="IBUS_KEY_Arabic_7">IBUS_KEY_Arabic_7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-8" title="IBUS_KEY_Arabic_8">IBUS_KEY_Arabic_8</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-9" title="IBUS_KEY_Arabic_9">IBUS_KEY_Arabic_9</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-semicolon" title="IBUS_KEY_Arabic_semicolon">IBUS_KEY_Arabic_semicolon</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-question-mark" title="IBUS_KEY_Arabic_question_mark">IBUS_KEY_Arabic_question_mark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza" title="IBUS_KEY_Arabic_hamza">IBUS_KEY_Arabic_hamza</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-maddaonalef" title="IBUS_KEY_Arabic_maddaonalef">IBUS_KEY_Arabic_maddaonalef</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonalef" title="IBUS_KEY_Arabic_hamzaonalef">IBUS_KEY_Arabic_hamzaonalef</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonwaw" title="IBUS_KEY_Arabic_hamzaonwaw">IBUS_KEY_Arabic_hamzaonwaw</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaunderalef" title="IBUS_KEY_Arabic_hamzaunderalef">IBUS_KEY_Arabic_hamzaunderalef</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonyeh" title="IBUS_KEY_Arabic_hamzaonyeh">IBUS_KEY_Arabic_hamzaonyeh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-alef" title="IBUS_KEY_Arabic_alef">IBUS_KEY_Arabic_alef</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-beh" title="IBUS_KEY_Arabic_beh">IBUS_KEY_Arabic_beh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tehmarbuta" title="IBUS_KEY_Arabic_tehmarbuta">IBUS_KEY_Arabic_tehmarbuta</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-teh" title="IBUS_KEY_Arabic_teh">IBUS_KEY_Arabic_teh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-theh" title="IBUS_KEY_Arabic_theh">IBUS_KEY_Arabic_theh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-jeem" title="IBUS_KEY_Arabic_jeem">IBUS_KEY_Arabic_jeem</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hah" title="IBUS_KEY_Arabic_hah">IBUS_KEY_Arabic_hah</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-khah" title="IBUS_KEY_Arabic_khah">IBUS_KEY_Arabic_khah</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dal" title="IBUS_KEY_Arabic_dal">IBUS_KEY_Arabic_dal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-thal" title="IBUS_KEY_Arabic_thal">IBUS_KEY_Arabic_thal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ra" title="IBUS_KEY_Arabic_ra">IBUS_KEY_Arabic_ra</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-zain" title="IBUS_KEY_Arabic_zain">IBUS_KEY_Arabic_zain</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-seen" title="IBUS_KEY_Arabic_seen">IBUS_KEY_Arabic_seen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sheen" title="IBUS_KEY_Arabic_sheen">IBUS_KEY_Arabic_sheen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sad" title="IBUS_KEY_Arabic_sad">IBUS_KEY_Arabic_sad</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dad" title="IBUS_KEY_Arabic_dad">IBUS_KEY_Arabic_dad</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tah" title="IBUS_KEY_Arabic_tah">IBUS_KEY_Arabic_tah</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-zah" title="IBUS_KEY_Arabic_zah">IBUS_KEY_Arabic_zah</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ain" title="IBUS_KEY_Arabic_ain">IBUS_KEY_Arabic_ain</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ghain" title="IBUS_KEY_Arabic_ghain">IBUS_KEY_Arabic_ghain</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tatweel" title="IBUS_KEY_Arabic_tatweel">IBUS_KEY_Arabic_tatweel</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-feh" title="IBUS_KEY_Arabic_feh">IBUS_KEY_Arabic_feh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-qaf" title="IBUS_KEY_Arabic_qaf">IBUS_KEY_Arabic_qaf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kaf" title="IBUS_KEY_Arabic_kaf">IBUS_KEY_Arabic_kaf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-lam" title="IBUS_KEY_Arabic_lam">IBUS_KEY_Arabic_lam</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-meem" title="IBUS_KEY_Arabic_meem">IBUS_KEY_Arabic_meem</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-noon" title="IBUS_KEY_Arabic_noon">IBUS_KEY_Arabic_noon</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ha" title="IBUS_KEY_Arabic_ha">IBUS_KEY_Arabic_ha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh" title="IBUS_KEY_Arabic_heh">IBUS_KEY_Arabic_heh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-waw" title="IBUS_KEY_Arabic_waw">IBUS_KEY_Arabic_waw</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-alefmaksura" title="IBUS_KEY_Arabic_alefmaksura">IBUS_KEY_Arabic_alefmaksura</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-yeh" title="IBUS_KEY_Arabic_yeh">IBUS_KEY_Arabic_yeh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fathatan" title="IBUS_KEY_Arabic_fathatan">IBUS_KEY_Arabic_fathatan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dammatan" title="IBUS_KEY_Arabic_dammatan">IBUS_KEY_Arabic_dammatan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kasratan" title="IBUS_KEY_Arabic_kasratan">IBUS_KEY_Arabic_kasratan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fatha" title="IBUS_KEY_Arabic_fatha">IBUS_KEY_Arabic_fatha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-damma" title="IBUS_KEY_Arabic_damma">IBUS_KEY_Arabic_damma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kasra" title="IBUS_KEY_Arabic_kasra">IBUS_KEY_Arabic_kasra</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-shadda" title="IBUS_KEY_Arabic_shadda">IBUS_KEY_Arabic_shadda</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sukun" title="IBUS_KEY_Arabic_sukun">IBUS_KEY_Arabic_sukun</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-madda-above" title="IBUS_KEY_Arabic_madda_above">IBUS_KEY_Arabic_madda_above</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza-above" title="IBUS_KEY_Arabic_hamza_above">IBUS_KEY_Arabic_hamza_above</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza-below" title="IBUS_KEY_Arabic_hamza_below">IBUS_KEY_Arabic_hamza_below</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-jeh" title="IBUS_KEY_Arabic_jeh">IBUS_KEY_Arabic_jeh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-veh" title="IBUS_KEY_Arabic_veh">IBUS_KEY_Arabic_veh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-keheh" title="IBUS_KEY_Arabic_keheh">IBUS_KEY_Arabic_keheh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-gaf" title="IBUS_KEY_Arabic_gaf">IBUS_KEY_Arabic_gaf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-noon-ghunna" title="IBUS_KEY_Arabic_noon_ghunna">IBUS_KEY_Arabic_noon_ghunna</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh-doachashmee" title="IBUS_KEY_Arabic_heh_doachashmee">IBUS_KEY_Arabic_heh_doachashmee</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-yeh" title="IBUS_KEY_Farsi_yeh">IBUS_KEY_Farsi_yeh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-farsi-yeh" title="IBUS_KEY_Arabic_farsi_yeh">IBUS_KEY_Arabic_farsi_yeh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-yeh-baree" title="IBUS_KEY_Arabic_yeh_baree">IBUS_KEY_Arabic_yeh_baree</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh-goal" title="IBUS_KEY_Arabic_heh_goal">IBUS_KEY_Arabic_heh_goal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-switch" title="IBUS_KEY_Arabic_switch">IBUS_KEY_Arabic_switch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-GHE-bar" title="IBUS_KEY_Cyrillic_GHE_bar">IBUS_KEY_Cyrillic_GHE_bar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ghe-bar" title="IBUS_KEY_Cyrillic_ghe_bar">IBUS_KEY_Cyrillic_ghe_bar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZHE-descender" title="IBUS_KEY_Cyrillic_ZHE_descender">IBUS_KEY_Cyrillic_ZHE_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-zhe-descender" title="IBUS_KEY_Cyrillic_zhe_descender">IBUS_KEY_Cyrillic_zhe_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA-descender" title="IBUS_KEY_Cyrillic_KA_descender">IBUS_KEY_Cyrillic_KA_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka-descender" title="IBUS_KEY_Cyrillic_ka_descender">IBUS_KEY_Cyrillic_ka_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA-vertstroke" title="IBUS_KEY_Cyrillic_KA_vertstroke">IBUS_KEY_Cyrillic_KA_vertstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka-vertstroke" title="IBUS_KEY_Cyrillic_ka_vertstroke">IBUS_KEY_Cyrillic_ka_vertstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EN-descender" title="IBUS_KEY_Cyrillic_EN_descender">IBUS_KEY_Cyrillic_EN_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-en-descender" title="IBUS_KEY_Cyrillic_en_descender">IBUS_KEY_Cyrillic_en_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-straight" title="IBUS_KEY_Cyrillic_U_straight">IBUS_KEY_Cyrillic_U_straight</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-straight" title="IBUS_KEY_Cyrillic_u_straight">IBUS_KEY_Cyrillic_u_straight</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-straight-bar" title="IBUS_KEY_Cyrillic_U_straight_bar">IBUS_KEY_Cyrillic_U_straight_bar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-straight-bar" title="IBUS_KEY_Cyrillic_u_straight_bar">IBUS_KEY_Cyrillic_u_straight_bar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HA-descender" title="IBUS_KEY_Cyrillic_HA_descender">IBUS_KEY_Cyrillic_HA_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ha-descender" title="IBUS_KEY_Cyrillic_ha_descender">IBUS_KEY_Cyrillic_ha_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE-descender" title="IBUS_KEY_Cyrillic_CHE_descender">IBUS_KEY_Cyrillic_CHE_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che-descender" title="IBUS_KEY_Cyrillic_che_descender">IBUS_KEY_Cyrillic_che_descender</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE-vertstroke" title="IBUS_KEY_Cyrillic_CHE_vertstroke">IBUS_KEY_Cyrillic_CHE_vertstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che-vertstroke" title="IBUS_KEY_Cyrillic_che_vertstroke">IBUS_KEY_Cyrillic_che_vertstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHHA" title="IBUS_KEY_Cyrillic_SHHA">IBUS_KEY_Cyrillic_SHHA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shha" title="IBUS_KEY_Cyrillic_shha">IBUS_KEY_Cyrillic_shha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SCHWA" title="IBUS_KEY_Cyrillic_SCHWA">IBUS_KEY_Cyrillic_SCHWA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-schwa" title="IBUS_KEY_Cyrillic_schwa">IBUS_KEY_Cyrillic_schwa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-I-macron" title="IBUS_KEY_Cyrillic_I_macron">IBUS_KEY_Cyrillic_I_macron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-i-macron" title="IBUS_KEY_Cyrillic_i_macron">IBUS_KEY_Cyrillic_i_macron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-O-bar" title="IBUS_KEY_Cyrillic_O_bar">IBUS_KEY_Cyrillic_O_bar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-o-bar" title="IBUS_KEY_Cyrillic_o_bar">IBUS_KEY_Cyrillic_o_bar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-macron" title="IBUS_KEY_Cyrillic_U_macron">IBUS_KEY_Cyrillic_U_macron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-macron" title="IBUS_KEY_Cyrillic_u_macron">IBUS_KEY_Cyrillic_u_macron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-dje" title="IBUS_KEY_Serbian_dje">IBUS_KEY_Serbian_dje</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-gje" title="IBUS_KEY_Macedonia_gje">IBUS_KEY_Macedonia_gje</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-io" title="IBUS_KEY_Cyrillic_io">IBUS_KEY_Cyrillic_io</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-ie" title="IBUS_KEY_Ukrainian_ie">IBUS_KEY_Ukrainian_ie</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-je" title="IBUS_KEY_Ukranian_je">IBUS_KEY_Ukranian_je</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-dse" title="IBUS_KEY_Macedonia_dse">IBUS_KEY_Macedonia_dse</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-i" title="IBUS_KEY_Ukrainian_i">IBUS_KEY_Ukrainian_i</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-i" title="IBUS_KEY_Ukranian_i">IBUS_KEY_Ukranian_i</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-yi" title="IBUS_KEY_Ukrainian_yi">IBUS_KEY_Ukrainian_yi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-yi" title="IBUS_KEY_Ukranian_yi">IBUS_KEY_Ukranian_yi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-je" title="IBUS_KEY_Cyrillic_je">IBUS_KEY_Cyrillic_je</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-je" title="IBUS_KEY_Serbian_je">IBUS_KEY_Serbian_je</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-lje" title="IBUS_KEY_Cyrillic_lje">IBUS_KEY_Cyrillic_lje</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-lje" title="IBUS_KEY_Serbian_lje">IBUS_KEY_Serbian_lje</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-nje" title="IBUS_KEY_Cyrillic_nje">IBUS_KEY_Cyrillic_nje</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-nje" title="IBUS_KEY_Serbian_nje">IBUS_KEY_Serbian_nje</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-tshe" title="IBUS_KEY_Serbian_tshe">IBUS_KEY_Serbian_tshe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-kje" title="IBUS_KEY_Macedonia_kje">IBUS_KEY_Macedonia_kje</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-ghe-with-upturn" title="IBUS_KEY_Ukrainian_ghe_with_upturn">IBUS_KEY_Ukrainian_ghe_with_upturn</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Byelorussian-shortu" title="IBUS_KEY_Byelorussian_shortu">IBUS_KEY_Byelorussian_shortu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-dzhe" title="IBUS_KEY_Cyrillic_dzhe">IBUS_KEY_Cyrillic_dzhe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-dze" title="IBUS_KEY_Serbian_dze">IBUS_KEY_Serbian_dze</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-numerosign" title="IBUS_KEY_numerosign">IBUS_KEY_numerosign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-DJE" title="IBUS_KEY_Serbian_DJE">IBUS_KEY_Serbian_DJE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-GJE" title="IBUS_KEY_Macedonia_GJE">IBUS_KEY_Macedonia_GJE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-IO" title="IBUS_KEY_Cyrillic_IO">IBUS_KEY_Cyrillic_IO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-IE" title="IBUS_KEY_Ukrainian_IE">IBUS_KEY_Ukrainian_IE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-JE" title="IBUS_KEY_Ukranian_JE">IBUS_KEY_Ukranian_JE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-DSE" title="IBUS_KEY_Macedonia_DSE">IBUS_KEY_Macedonia_DSE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-I" title="IBUS_KEY_Ukrainian_I">IBUS_KEY_Ukrainian_I</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-I" title="IBUS_KEY_Ukranian_I">IBUS_KEY_Ukranian_I</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-YI" title="IBUS_KEY_Ukrainian_YI">IBUS_KEY_Ukrainian_YI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-YI" title="IBUS_KEY_Ukranian_YI">IBUS_KEY_Ukranian_YI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-JE" title="IBUS_KEY_Cyrillic_JE">IBUS_KEY_Cyrillic_JE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-JE" title="IBUS_KEY_Serbian_JE">IBUS_KEY_Serbian_JE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-LJE" title="IBUS_KEY_Cyrillic_LJE">IBUS_KEY_Cyrillic_LJE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-LJE" title="IBUS_KEY_Serbian_LJE">IBUS_KEY_Serbian_LJE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-NJE" title="IBUS_KEY_Cyrillic_NJE">IBUS_KEY_Cyrillic_NJE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-NJE" title="IBUS_KEY_Serbian_NJE">IBUS_KEY_Serbian_NJE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-TSHE" title="IBUS_KEY_Serbian_TSHE">IBUS_KEY_Serbian_TSHE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-KJE" title="IBUS_KEY_Macedonia_KJE">IBUS_KEY_Macedonia_KJE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-GHE-WITH-UPTURN" title="IBUS_KEY_Ukrainian_GHE_WITH_UPTURN">IBUS_KEY_Ukrainian_GHE_WITH_UPTURN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Byelorussian-SHORTU" title="IBUS_KEY_Byelorussian_SHORTU">IBUS_KEY_Byelorussian_SHORTU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-DZHE" title="IBUS_KEY_Cyrillic_DZHE">IBUS_KEY_Cyrillic_DZHE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-DZE" title="IBUS_KEY_Serbian_DZE">IBUS_KEY_Serbian_DZE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-yu" title="IBUS_KEY_Cyrillic_yu">IBUS_KEY_Cyrillic_yu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-a" title="IBUS_KEY_Cyrillic_a">IBUS_KEY_Cyrillic_a</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-be" title="IBUS_KEY_Cyrillic_be">IBUS_KEY_Cyrillic_be</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-tse" title="IBUS_KEY_Cyrillic_tse">IBUS_KEY_Cyrillic_tse</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-de" title="IBUS_KEY_Cyrillic_de">IBUS_KEY_Cyrillic_de</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ie" title="IBUS_KEY_Cyrillic_ie">IBUS_KEY_Cyrillic_ie</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ef" title="IBUS_KEY_Cyrillic_ef">IBUS_KEY_Cyrillic_ef</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ghe" title="IBUS_KEY_Cyrillic_ghe">IBUS_KEY_Cyrillic_ghe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ha" title="IBUS_KEY_Cyrillic_ha">IBUS_KEY_Cyrillic_ha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-i" title="IBUS_KEY_Cyrillic_i">IBUS_KEY_Cyrillic_i</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shorti" title="IBUS_KEY_Cyrillic_shorti">IBUS_KEY_Cyrillic_shorti</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka" title="IBUS_KEY_Cyrillic_ka">IBUS_KEY_Cyrillic_ka</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-el" title="IBUS_KEY_Cyrillic_el">IBUS_KEY_Cyrillic_el</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-em" title="IBUS_KEY_Cyrillic_em">IBUS_KEY_Cyrillic_em</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-en" title="IBUS_KEY_Cyrillic_en">IBUS_KEY_Cyrillic_en</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-o" title="IBUS_KEY_Cyrillic_o">IBUS_KEY_Cyrillic_o</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-pe" title="IBUS_KEY_Cyrillic_pe">IBUS_KEY_Cyrillic_pe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ya" title="IBUS_KEY_Cyrillic_ya">IBUS_KEY_Cyrillic_ya</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-er" title="IBUS_KEY_Cyrillic_er">IBUS_KEY_Cyrillic_er</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-es" title="IBUS_KEY_Cyrillic_es">IBUS_KEY_Cyrillic_es</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-te" title="IBUS_KEY_Cyrillic_te">IBUS_KEY_Cyrillic_te</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u" title="IBUS_KEY_Cyrillic_u">IBUS_KEY_Cyrillic_u</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-zhe" title="IBUS_KEY_Cyrillic_zhe">IBUS_KEY_Cyrillic_zhe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ve" title="IBUS_KEY_Cyrillic_ve">IBUS_KEY_Cyrillic_ve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-softsign" title="IBUS_KEY_Cyrillic_softsign">IBUS_KEY_Cyrillic_softsign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-yeru" title="IBUS_KEY_Cyrillic_yeru">IBUS_KEY_Cyrillic_yeru</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ze" title="IBUS_KEY_Cyrillic_ze">IBUS_KEY_Cyrillic_ze</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-sha" title="IBUS_KEY_Cyrillic_sha">IBUS_KEY_Cyrillic_sha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-e" title="IBUS_KEY_Cyrillic_e">IBUS_KEY_Cyrillic_e</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shcha" title="IBUS_KEY_Cyrillic_shcha">IBUS_KEY_Cyrillic_shcha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che" title="IBUS_KEY_Cyrillic_che">IBUS_KEY_Cyrillic_che</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-hardsign" title="IBUS_KEY_Cyrillic_hardsign">IBUS_KEY_Cyrillic_hardsign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YU" title="IBUS_KEY_Cyrillic_YU">IBUS_KEY_Cyrillic_YU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-A" title="IBUS_KEY_Cyrillic_A">IBUS_KEY_Cyrillic_A</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-BE" title="IBUS_KEY_Cyrillic_BE">IBUS_KEY_Cyrillic_BE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-TSE" title="IBUS_KEY_Cyrillic_TSE">IBUS_KEY_Cyrillic_TSE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-DE" title="IBUS_KEY_Cyrillic_DE">IBUS_KEY_Cyrillic_DE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-IE" title="IBUS_KEY_Cyrillic_IE">IBUS_KEY_Cyrillic_IE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EF" title="IBUS_KEY_Cyrillic_EF">IBUS_KEY_Cyrillic_EF</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-GHE" title="IBUS_KEY_Cyrillic_GHE">IBUS_KEY_Cyrillic_GHE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HA" title="IBUS_KEY_Cyrillic_HA">IBUS_KEY_Cyrillic_HA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-I" title="IBUS_KEY_Cyrillic_I">IBUS_KEY_Cyrillic_I</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHORTI" title="IBUS_KEY_Cyrillic_SHORTI">IBUS_KEY_Cyrillic_SHORTI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA" title="IBUS_KEY_Cyrillic_KA">IBUS_KEY_Cyrillic_KA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EL" title="IBUS_KEY_Cyrillic_EL">IBUS_KEY_Cyrillic_EL</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EM" title="IBUS_KEY_Cyrillic_EM">IBUS_KEY_Cyrillic_EM</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EN" title="IBUS_KEY_Cyrillic_EN">IBUS_KEY_Cyrillic_EN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-O" title="IBUS_KEY_Cyrillic_O">IBUS_KEY_Cyrillic_O</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-PE" title="IBUS_KEY_Cyrillic_PE">IBUS_KEY_Cyrillic_PE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YA" title="IBUS_KEY_Cyrillic_YA">IBUS_KEY_Cyrillic_YA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ER" title="IBUS_KEY_Cyrillic_ER">IBUS_KEY_Cyrillic_ER</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ES" title="IBUS_KEY_Cyrillic_ES">IBUS_KEY_Cyrillic_ES</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-TE" title="IBUS_KEY_Cyrillic_TE">IBUS_KEY_Cyrillic_TE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U" title="IBUS_KEY_Cyrillic_U">IBUS_KEY_Cyrillic_U</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZHE" title="IBUS_KEY_Cyrillic_ZHE">IBUS_KEY_Cyrillic_ZHE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-VE" title="IBUS_KEY_Cyrillic_VE">IBUS_KEY_Cyrillic_VE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SOFTSIGN" title="IBUS_KEY_Cyrillic_SOFTSIGN">IBUS_KEY_Cyrillic_SOFTSIGN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YERU" title="IBUS_KEY_Cyrillic_YERU">IBUS_KEY_Cyrillic_YERU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZE" title="IBUS_KEY_Cyrillic_ZE">IBUS_KEY_Cyrillic_ZE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHA" title="IBUS_KEY_Cyrillic_SHA">IBUS_KEY_Cyrillic_SHA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-E" title="IBUS_KEY_Cyrillic_E">IBUS_KEY_Cyrillic_E</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHCHA" title="IBUS_KEY_Cyrillic_SHCHA">IBUS_KEY_Cyrillic_SHCHA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE" title="IBUS_KEY_Cyrillic_CHE">IBUS_KEY_Cyrillic_CHE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HARDSIGN" title="IBUS_KEY_Cyrillic_HARDSIGN">IBUS_KEY_Cyrillic_HARDSIGN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ALPHAaccent" title="IBUS_KEY_Greek_ALPHAaccent">IBUS_KEY_Greek_ALPHAaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-EPSILONaccent" title="IBUS_KEY_Greek_EPSILONaccent">IBUS_KEY_Greek_EPSILONaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ETAaccent" title="IBUS_KEY_Greek_ETAaccent">IBUS_KEY_Greek_ETAaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAaccent" title="IBUS_KEY_Greek_IOTAaccent">IBUS_KEY_Greek_IOTAaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAdieresis" title="IBUS_KEY_Greek_IOTAdieresis">IBUS_KEY_Greek_IOTAdieresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAdiaeresis" title="IBUS_KEY_Greek_IOTAdiaeresis">IBUS_KEY_Greek_IOTAdiaeresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMICRONaccent" title="IBUS_KEY_Greek_OMICRONaccent">IBUS_KEY_Greek_OMICRONaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILONaccent" title="IBUS_KEY_Greek_UPSILONaccent">IBUS_KEY_Greek_UPSILONaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILONdieresis" title="IBUS_KEY_Greek_UPSILONdieresis">IBUS_KEY_Greek_UPSILONdieresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMEGAaccent" title="IBUS_KEY_Greek_OMEGAaccent">IBUS_KEY_Greek_OMEGAaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-accentdieresis" title="IBUS_KEY_Greek_accentdieresis">IBUS_KEY_Greek_accentdieresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-horizbar" title="IBUS_KEY_Greek_horizbar">IBUS_KEY_Greek_horizbar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-alphaaccent" title="IBUS_KEY_Greek_alphaaccent">IBUS_KEY_Greek_alphaaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-epsilonaccent" title="IBUS_KEY_Greek_epsilonaccent">IBUS_KEY_Greek_epsilonaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-etaaccent" title="IBUS_KEY_Greek_etaaccent">IBUS_KEY_Greek_etaaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotaaccent" title="IBUS_KEY_Greek_iotaaccent">IBUS_KEY_Greek_iotaaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotadieresis" title="IBUS_KEY_Greek_iotadieresis">IBUS_KEY_Greek_iotadieresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotaaccentdieresis" title="IBUS_KEY_Greek_iotaaccentdieresis">IBUS_KEY_Greek_iotaaccentdieresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omicronaccent" title="IBUS_KEY_Greek_omicronaccent">IBUS_KEY_Greek_omicronaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilonaccent" title="IBUS_KEY_Greek_upsilonaccent">IBUS_KEY_Greek_upsilonaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilondieresis" title="IBUS_KEY_Greek_upsilondieresis">IBUS_KEY_Greek_upsilondieresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilonaccentdieresis" title="IBUS_KEY_Greek_upsilonaccentdieresis">IBUS_KEY_Greek_upsilonaccentdieresis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omegaaccent" title="IBUS_KEY_Greek_omegaaccent">IBUS_KEY_Greek_omegaaccent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ALPHA" title="IBUS_KEY_Greek_ALPHA">IBUS_KEY_Greek_ALPHA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-BETA" title="IBUS_KEY_Greek_BETA">IBUS_KEY_Greek_BETA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-GAMMA" title="IBUS_KEY_Greek_GAMMA">IBUS_KEY_Greek_GAMMA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-DELTA" title="IBUS_KEY_Greek_DELTA">IBUS_KEY_Greek_DELTA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-EPSILON" title="IBUS_KEY_Greek_EPSILON">IBUS_KEY_Greek_EPSILON</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ZETA" title="IBUS_KEY_Greek_ZETA">IBUS_KEY_Greek_ZETA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ETA" title="IBUS_KEY_Greek_ETA">IBUS_KEY_Greek_ETA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-THETA" title="IBUS_KEY_Greek_THETA">IBUS_KEY_Greek_THETA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTA" title="IBUS_KEY_Greek_IOTA">IBUS_KEY_Greek_IOTA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-KAPPA" title="IBUS_KEY_Greek_KAPPA">IBUS_KEY_Greek_KAPPA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-LAMDA" title="IBUS_KEY_Greek_LAMDA">IBUS_KEY_Greek_LAMDA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-LAMBDA" title="IBUS_KEY_Greek_LAMBDA">IBUS_KEY_Greek_LAMBDA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-MU" title="IBUS_KEY_Greek_MU">IBUS_KEY_Greek_MU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-NU" title="IBUS_KEY_Greek_NU">IBUS_KEY_Greek_NU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-XI" title="IBUS_KEY_Greek_XI">IBUS_KEY_Greek_XI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMICRON" title="IBUS_KEY_Greek_OMICRON">IBUS_KEY_Greek_OMICRON</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-PI" title="IBUS_KEY_Greek_PI">IBUS_KEY_Greek_PI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-RHO" title="IBUS_KEY_Greek_RHO">IBUS_KEY_Greek_RHO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-SIGMA" title="IBUS_KEY_Greek_SIGMA">IBUS_KEY_Greek_SIGMA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-TAU" title="IBUS_KEY_Greek_TAU">IBUS_KEY_Greek_TAU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILON" title="IBUS_KEY_Greek_UPSILON">IBUS_KEY_Greek_UPSILON</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-PHI" title="IBUS_KEY_Greek_PHI">IBUS_KEY_Greek_PHI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-CHI" title="IBUS_KEY_Greek_CHI">IBUS_KEY_Greek_CHI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-PSI" title="IBUS_KEY_Greek_PSI">IBUS_KEY_Greek_PSI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMEGA" title="IBUS_KEY_Greek_OMEGA">IBUS_KEY_Greek_OMEGA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-alpha" title="IBUS_KEY_Greek_alpha">IBUS_KEY_Greek_alpha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-beta" title="IBUS_KEY_Greek_beta">IBUS_KEY_Greek_beta</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-gamma" title="IBUS_KEY_Greek_gamma">IBUS_KEY_Greek_gamma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-delta" title="IBUS_KEY_Greek_delta">IBUS_KEY_Greek_delta</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-epsilon" title="IBUS_KEY_Greek_epsilon">IBUS_KEY_Greek_epsilon</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-zeta" title="IBUS_KEY_Greek_zeta">IBUS_KEY_Greek_zeta</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-eta" title="IBUS_KEY_Greek_eta">IBUS_KEY_Greek_eta</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-theta" title="IBUS_KEY_Greek_theta">IBUS_KEY_Greek_theta</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iota" title="IBUS_KEY_Greek_iota">IBUS_KEY_Greek_iota</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-kappa" title="IBUS_KEY_Greek_kappa">IBUS_KEY_Greek_kappa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-lamda" title="IBUS_KEY_Greek_lamda">IBUS_KEY_Greek_lamda</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-lambda" title="IBUS_KEY_Greek_lambda">IBUS_KEY_Greek_lambda</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-mu" title="IBUS_KEY_Greek_mu">IBUS_KEY_Greek_mu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-nu" title="IBUS_KEY_Greek_nu">IBUS_KEY_Greek_nu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-xi" title="IBUS_KEY_Greek_xi">IBUS_KEY_Greek_xi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omicron" title="IBUS_KEY_Greek_omicron">IBUS_KEY_Greek_omicron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-pi" title="IBUS_KEY_Greek_pi">IBUS_KEY_Greek_pi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-rho" title="IBUS_KEY_Greek_rho">IBUS_KEY_Greek_rho</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-sigma" title="IBUS_KEY_Greek_sigma">IBUS_KEY_Greek_sigma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-finalsmallsigma" title="IBUS_KEY_Greek_finalsmallsigma">IBUS_KEY_Greek_finalsmallsigma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-tau" title="IBUS_KEY_Greek_tau">IBUS_KEY_Greek_tau</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilon" title="IBUS_KEY_Greek_upsilon">IBUS_KEY_Greek_upsilon</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-phi" title="IBUS_KEY_Greek_phi">IBUS_KEY_Greek_phi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-chi" title="IBUS_KEY_Greek_chi">IBUS_KEY_Greek_chi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-psi" title="IBUS_KEY_Greek_psi">IBUS_KEY_Greek_psi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omega" title="IBUS_KEY_Greek_omega">IBUS_KEY_Greek_omega</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Greek-switch" title="IBUS_KEY_Greek_switch">IBUS_KEY_Greek_switch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftradical" title="IBUS_KEY_leftradical">IBUS_KEY_leftradical</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topleftradical" title="IBUS_KEY_topleftradical">IBUS_KEY_topleftradical</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizconnector" title="IBUS_KEY_horizconnector">IBUS_KEY_horizconnector</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topintegral" title="IBUS_KEY_topintegral">IBUS_KEY_topintegral</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botintegral" title="IBUS_KEY_botintegral">IBUS_KEY_botintegral</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-vertconnector" title="IBUS_KEY_vertconnector">IBUS_KEY_vertconnector</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topleftsqbracket" title="IBUS_KEY_topleftsqbracket">IBUS_KEY_topleftsqbracket</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botleftsqbracket" title="IBUS_KEY_botleftsqbracket">IBUS_KEY_botleftsqbracket</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-toprightsqbracket" title="IBUS_KEY_toprightsqbracket">IBUS_KEY_toprightsqbracket</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botrightsqbracket" title="IBUS_KEY_botrightsqbracket">IBUS_KEY_botrightsqbracket</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topleftparens" title="IBUS_KEY_topleftparens">IBUS_KEY_topleftparens</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botleftparens" title="IBUS_KEY_botleftparens">IBUS_KEY_botleftparens</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-toprightparens" title="IBUS_KEY_toprightparens">IBUS_KEY_toprightparens</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botrightparens" title="IBUS_KEY_botrightparens">IBUS_KEY_botrightparens</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftmiddlecurlybrace" title="IBUS_KEY_leftmiddlecurlybrace">IBUS_KEY_leftmiddlecurlybrace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightmiddlecurlybrace" title="IBUS_KEY_rightmiddlecurlybrace">IBUS_KEY_rightmiddlecurlybrace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topleftsummation" title="IBUS_KEY_topleftsummation">IBUS_KEY_topleftsummation</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botleftsummation" title="IBUS_KEY_botleftsummation">IBUS_KEY_botleftsummation</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topvertsummationconnector" title="IBUS_KEY_topvertsummationconnector">IBUS_KEY_topvertsummationconnector</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botvertsummationconnector" title="IBUS_KEY_botvertsummationconnector">IBUS_KEY_botvertsummationconnector</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-toprightsummation" title="IBUS_KEY_toprightsummation">IBUS_KEY_toprightsummation</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-botrightsummation" title="IBUS_KEY_botrightsummation">IBUS_KEY_botrightsummation</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightmiddlesummation" title="IBUS_KEY_rightmiddlesummation">IBUS_KEY_rightmiddlesummation</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lessthanequal" title="IBUS_KEY_lessthanequal">IBUS_KEY_lessthanequal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notequal" title="IBUS_KEY_notequal">IBUS_KEY_notequal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-greaterthanequal" title="IBUS_KEY_greaterthanequal">IBUS_KEY_greaterthanequal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-integral" title="IBUS_KEY_integral">IBUS_KEY_integral</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-therefore" title="IBUS_KEY_therefore">IBUS_KEY_therefore</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-variation" title="IBUS_KEY_variation">IBUS_KEY_variation</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-infinity" title="IBUS_KEY_infinity">IBUS_KEY_infinity</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-nabla" title="IBUS_KEY_nabla">IBUS_KEY_nabla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-approximate" title="IBUS_KEY_approximate">IBUS_KEY_approximate</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-similarequal" title="IBUS_KEY_similarequal">IBUS_KEY_similarequal</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ifonlyif" title="IBUS_KEY_ifonlyif">IBUS_KEY_ifonlyif</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-implies" title="IBUS_KEY_implies">IBUS_KEY_implies</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-identical" title="IBUS_KEY_identical">IBUS_KEY_identical</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-radical" title="IBUS_KEY_radical">IBUS_KEY_radical</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-includedin" title="IBUS_KEY_includedin">IBUS_KEY_includedin</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-includes" title="IBUS_KEY_includes">IBUS_KEY_includes</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-intersection" title="IBUS_KEY_intersection">IBUS_KEY_intersection</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-union" title="IBUS_KEY_union">IBUS_KEY_union</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-logicaland" title="IBUS_KEY_logicaland">IBUS_KEY_logicaland</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-logicalor" title="IBUS_KEY_logicalor">IBUS_KEY_logicalor</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-partialderivative" title="IBUS_KEY_partialderivative">IBUS_KEY_partialderivative</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-function" title="IBUS_KEY_function">IBUS_KEY_function</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftarrow" title="IBUS_KEY_leftarrow">IBUS_KEY_leftarrow</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uparrow" title="IBUS_KEY_uparrow">IBUS_KEY_uparrow</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightarrow" title="IBUS_KEY_rightarrow">IBUS_KEY_rightarrow</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downarrow" title="IBUS_KEY_downarrow">IBUS_KEY_downarrow</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-blank" title="IBUS_KEY_blank">IBUS_KEY_blank</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-soliddiamond" title="IBUS_KEY_soliddiamond">IBUS_KEY_soliddiamond</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-checkerboard" title="IBUS_KEY_checkerboard">IBUS_KEY_checkerboard</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ht" title="IBUS_KEY_ht">IBUS_KEY_ht</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ff" title="IBUS_KEY_ff">IBUS_KEY_ff</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cr" title="IBUS_KEY_cr">IBUS_KEY_cr</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lf" title="IBUS_KEY_lf">IBUS_KEY_lf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-nl" title="IBUS_KEY_nl">IBUS_KEY_nl</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-vt" title="IBUS_KEY_vt">IBUS_KEY_vt</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lowrightcorner" title="IBUS_KEY_lowrightcorner">IBUS_KEY_lowrightcorner</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uprightcorner" title="IBUS_KEY_uprightcorner">IBUS_KEY_uprightcorner</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-upleftcorner" title="IBUS_KEY_upleftcorner">IBUS_KEY_upleftcorner</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lowleftcorner" title="IBUS_KEY_lowleftcorner">IBUS_KEY_lowleftcorner</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-crossinglines" title="IBUS_KEY_crossinglines">IBUS_KEY_crossinglines</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan1" title="IBUS_KEY_horizlinescan1">IBUS_KEY_horizlinescan1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan3" title="IBUS_KEY_horizlinescan3">IBUS_KEY_horizlinescan3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan5" title="IBUS_KEY_horizlinescan5">IBUS_KEY_horizlinescan5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan7" title="IBUS_KEY_horizlinescan7">IBUS_KEY_horizlinescan7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan9" title="IBUS_KEY_horizlinescan9">IBUS_KEY_horizlinescan9</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftt" title="IBUS_KEY_leftt">IBUS_KEY_leftt</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightt" title="IBUS_KEY_rightt">IBUS_KEY_rightt</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-bott" title="IBUS_KEY_bott">IBUS_KEY_bott</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-topt" title="IBUS_KEY_topt">IBUS_KEY_topt</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-vertbar" title="IBUS_KEY_vertbar">IBUS_KEY_vertbar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emspace" title="IBUS_KEY_emspace">IBUS_KEY_emspace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enspace" title="IBUS_KEY_enspace">IBUS_KEY_enspace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-em3space" title="IBUS_KEY_em3space">IBUS_KEY_em3space</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-em4space" title="IBUS_KEY_em4space">IBUS_KEY_em4space</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-digitspace" title="IBUS_KEY_digitspace">IBUS_KEY_digitspace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-punctspace" title="IBUS_KEY_punctspace">IBUS_KEY_punctspace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-thinspace" title="IBUS_KEY_thinspace">IBUS_KEY_thinspace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hairspace" title="IBUS_KEY_hairspace">IBUS_KEY_hairspace</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emdash" title="IBUS_KEY_emdash">IBUS_KEY_emdash</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-endash" title="IBUS_KEY_endash">IBUS_KEY_endash</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-signifblank" title="IBUS_KEY_signifblank">IBUS_KEY_signifblank</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ellipsis" title="IBUS_KEY_ellipsis">IBUS_KEY_ellipsis</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-doubbaselinedot" title="IBUS_KEY_doubbaselinedot">IBUS_KEY_doubbaselinedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onethird" title="IBUS_KEY_onethird">IBUS_KEY_onethird</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-twothirds" title="IBUS_KEY_twothirds">IBUS_KEY_twothirds</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onefifth" title="IBUS_KEY_onefifth">IBUS_KEY_onefifth</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-twofifths" title="IBUS_KEY_twofifths">IBUS_KEY_twofifths</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threefifths" title="IBUS_KEY_threefifths">IBUS_KEY_threefifths</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fourfifths" title="IBUS_KEY_fourfifths">IBUS_KEY_fourfifths</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onesixth" title="IBUS_KEY_onesixth">IBUS_KEY_onesixth</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fivesixths" title="IBUS_KEY_fivesixths">IBUS_KEY_fivesixths</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-careof" title="IBUS_KEY_careof">IBUS_KEY_careof</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-figdash" title="IBUS_KEY_figdash">IBUS_KEY_figdash</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftanglebracket" title="IBUS_KEY_leftanglebracket">IBUS_KEY_leftanglebracket</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-decimalpoint" title="IBUS_KEY_decimalpoint">IBUS_KEY_decimalpoint</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightanglebracket" title="IBUS_KEY_rightanglebracket">IBUS_KEY_rightanglebracket</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-marker" title="IBUS_KEY_marker">IBUS_KEY_marker</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-oneeighth" title="IBUS_KEY_oneeighth">IBUS_KEY_oneeighth</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threeeighths" title="IBUS_KEY_threeeighths">IBUS_KEY_threeeighths</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fiveeighths" title="IBUS_KEY_fiveeighths">IBUS_KEY_fiveeighths</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-seveneighths" title="IBUS_KEY_seveneighths">IBUS_KEY_seveneighths</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-trademark" title="IBUS_KEY_trademark">IBUS_KEY_trademark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-signaturemark" title="IBUS_KEY_signaturemark">IBUS_KEY_signaturemark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-trademarkincircle" title="IBUS_KEY_trademarkincircle">IBUS_KEY_trademarkincircle</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftopentriangle" title="IBUS_KEY_leftopentriangle">IBUS_KEY_leftopentriangle</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightopentriangle" title="IBUS_KEY_rightopentriangle">IBUS_KEY_rightopentriangle</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emopencircle" title="IBUS_KEY_emopencircle">IBUS_KEY_emopencircle</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emopenrectangle" title="IBUS_KEY_emopenrectangle">IBUS_KEY_emopenrectangle</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftsinglequotemark" title="IBUS_KEY_leftsinglequotemark">IBUS_KEY_leftsinglequotemark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightsinglequotemark" title="IBUS_KEY_rightsinglequotemark">IBUS_KEY_rightsinglequotemark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftdoublequotemark" title="IBUS_KEY_leftdoublequotemark">IBUS_KEY_leftdoublequotemark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightdoublequotemark" title="IBUS_KEY_rightdoublequotemark">IBUS_KEY_rightdoublequotemark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-prescription" title="IBUS_KEY_prescription">IBUS_KEY_prescription</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-minutes" title="IBUS_KEY_minutes">IBUS_KEY_minutes</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-seconds" title="IBUS_KEY_seconds">IBUS_KEY_seconds</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-latincross" title="IBUS_KEY_latincross">IBUS_KEY_latincross</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hexagram" title="IBUS_KEY_hexagram">IBUS_KEY_hexagram</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledrectbullet" title="IBUS_KEY_filledrectbullet">IBUS_KEY_filledrectbullet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledlefttribullet" title="IBUS_KEY_filledlefttribullet">IBUS_KEY_filledlefttribullet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledrighttribullet" title="IBUS_KEY_filledrighttribullet">IBUS_KEY_filledrighttribullet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emfilledcircle" title="IBUS_KEY_emfilledcircle">IBUS_KEY_emfilledcircle</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emfilledrect" title="IBUS_KEY_emfilledrect">IBUS_KEY_emfilledrect</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enopencircbullet" title="IBUS_KEY_enopencircbullet">IBUS_KEY_enopencircbullet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enopensquarebullet" title="IBUS_KEY_enopensquarebullet">IBUS_KEY_enopensquarebullet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-openrectbullet" title="IBUS_KEY_openrectbullet">IBUS_KEY_openrectbullet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-opentribulletup" title="IBUS_KEY_opentribulletup">IBUS_KEY_opentribulletup</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-opentribulletdown" title="IBUS_KEY_opentribulletdown">IBUS_KEY_opentribulletdown</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-openstar" title="IBUS_KEY_openstar">IBUS_KEY_openstar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enfilledcircbullet" title="IBUS_KEY_enfilledcircbullet">IBUS_KEY_enfilledcircbullet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-enfilledsqbullet" title="IBUS_KEY_enfilledsqbullet">IBUS_KEY_enfilledsqbullet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledtribulletup" title="IBUS_KEY_filledtribulletup">IBUS_KEY_filledtribulletup</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-filledtribulletdown" title="IBUS_KEY_filledtribulletdown">IBUS_KEY_filledtribulletdown</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftpointer" title="IBUS_KEY_leftpointer">IBUS_KEY_leftpointer</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightpointer" title="IBUS_KEY_rightpointer">IBUS_KEY_rightpointer</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-club" title="IBUS_KEY_club">IBUS_KEY_club</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-diamond" title="IBUS_KEY_diamond">IBUS_KEY_diamond</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-heart" title="IBUS_KEY_heart">IBUS_KEY_heart</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-maltesecross" title="IBUS_KEY_maltesecross">IBUS_KEY_maltesecross</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dagger" title="IBUS_KEY_dagger">IBUS_KEY_dagger</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-doubledagger" title="IBUS_KEY_doubledagger">IBUS_KEY_doubledagger</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-checkmark" title="IBUS_KEY_checkmark">IBUS_KEY_checkmark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ballotcross" title="IBUS_KEY_ballotcross">IBUS_KEY_ballotcross</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-musicalsharp" title="IBUS_KEY_musicalsharp">IBUS_KEY_musicalsharp</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-musicalflat" title="IBUS_KEY_musicalflat">IBUS_KEY_musicalflat</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-malesymbol" title="IBUS_KEY_malesymbol">IBUS_KEY_malesymbol</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-femalesymbol" title="IBUS_KEY_femalesymbol">IBUS_KEY_femalesymbol</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-telephone" title="IBUS_KEY_telephone">IBUS_KEY_telephone</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-telephonerecorder" title="IBUS_KEY_telephonerecorder">IBUS_KEY_telephonerecorder</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-phonographcopyright" title="IBUS_KEY_phonographcopyright">IBUS_KEY_phonographcopyright</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-caret" title="IBUS_KEY_caret">IBUS_KEY_caret</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-singlelowquotemark" title="IBUS_KEY_singlelowquotemark">IBUS_KEY_singlelowquotemark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-doublelowquotemark" title="IBUS_KEY_doublelowquotemark">IBUS_KEY_doublelowquotemark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cursor" title="IBUS_KEY_cursor">IBUS_KEY_cursor</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftcaret" title="IBUS_KEY_leftcaret">IBUS_KEY_leftcaret</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightcaret" title="IBUS_KEY_rightcaret">IBUS_KEY_rightcaret</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downcaret" title="IBUS_KEY_downcaret">IBUS_KEY_downcaret</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-upcaret" title="IBUS_KEY_upcaret">IBUS_KEY_upcaret</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-overbar" title="IBUS_KEY_overbar">IBUS_KEY_overbar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downtack" title="IBUS_KEY_downtack">IBUS_KEY_downtack</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-upshoe" title="IBUS_KEY_upshoe">IBUS_KEY_upshoe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downstile" title="IBUS_KEY_downstile">IBUS_KEY_downstile</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-underbar" title="IBUS_KEY_underbar">IBUS_KEY_underbar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-jot" title="IBUS_KEY_jot">IBUS_KEY_jot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-quad" title="IBUS_KEY_quad">IBUS_KEY_quad</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uptack" title="IBUS_KEY_uptack">IBUS_KEY_uptack</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-circle" title="IBUS_KEY_circle">IBUS_KEY_circle</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-upstile" title="IBUS_KEY_upstile">IBUS_KEY_upstile</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-downshoe" title="IBUS_KEY_downshoe">IBUS_KEY_downshoe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-rightshoe" title="IBUS_KEY_rightshoe">IBUS_KEY_rightshoe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-leftshoe" title="IBUS_KEY_leftshoe">IBUS_KEY_leftshoe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lefttack" title="IBUS_KEY_lefttack">IBUS_KEY_lefttack</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-righttack" title="IBUS_KEY_righttack">IBUS_KEY_righttack</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-doublelowline" title="IBUS_KEY_hebrew_doublelowline">IBUS_KEY_hebrew_doublelowline</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-aleph" title="IBUS_KEY_hebrew_aleph">IBUS_KEY_hebrew_aleph</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-bet" title="IBUS_KEY_hebrew_bet">IBUS_KEY_hebrew_bet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-beth" title="IBUS_KEY_hebrew_beth">IBUS_KEY_hebrew_beth</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-gimel" title="IBUS_KEY_hebrew_gimel">IBUS_KEY_hebrew_gimel</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-gimmel" title="IBUS_KEY_hebrew_gimmel">IBUS_KEY_hebrew_gimmel</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-dalet" title="IBUS_KEY_hebrew_dalet">IBUS_KEY_hebrew_dalet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-daleth" title="IBUS_KEY_hebrew_daleth">IBUS_KEY_hebrew_daleth</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-he" title="IBUS_KEY_hebrew_he">IBUS_KEY_hebrew_he</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-waw" title="IBUS_KEY_hebrew_waw">IBUS_KEY_hebrew_waw</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zain" title="IBUS_KEY_hebrew_zain">IBUS_KEY_hebrew_zain</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zayin" title="IBUS_KEY_hebrew_zayin">IBUS_KEY_hebrew_zayin</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-chet" title="IBUS_KEY_hebrew_chet">IBUS_KEY_hebrew_chet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-het" title="IBUS_KEY_hebrew_het">IBUS_KEY_hebrew_het</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-tet" title="IBUS_KEY_hebrew_tet">IBUS_KEY_hebrew_tet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-teth" title="IBUS_KEY_hebrew_teth">IBUS_KEY_hebrew_teth</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-yod" title="IBUS_KEY_hebrew_yod">IBUS_KEY_hebrew_yod</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalkaph" title="IBUS_KEY_hebrew_finalkaph">IBUS_KEY_hebrew_finalkaph</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-kaph" title="IBUS_KEY_hebrew_kaph">IBUS_KEY_hebrew_kaph</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-lamed" title="IBUS_KEY_hebrew_lamed">IBUS_KEY_hebrew_lamed</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalmem" title="IBUS_KEY_hebrew_finalmem">IBUS_KEY_hebrew_finalmem</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-mem" title="IBUS_KEY_hebrew_mem">IBUS_KEY_hebrew_mem</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalnun" title="IBUS_KEY_hebrew_finalnun">IBUS_KEY_hebrew_finalnun</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-nun" title="IBUS_KEY_hebrew_nun">IBUS_KEY_hebrew_nun</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-samech" title="IBUS_KEY_hebrew_samech">IBUS_KEY_hebrew_samech</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-samekh" title="IBUS_KEY_hebrew_samekh">IBUS_KEY_hebrew_samekh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-ayin" title="IBUS_KEY_hebrew_ayin">IBUS_KEY_hebrew_ayin</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalpe" title="IBUS_KEY_hebrew_finalpe">IBUS_KEY_hebrew_finalpe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-pe" title="IBUS_KEY_hebrew_pe">IBUS_KEY_hebrew_pe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalzade" title="IBUS_KEY_hebrew_finalzade">IBUS_KEY_hebrew_finalzade</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalzadi" title="IBUS_KEY_hebrew_finalzadi">IBUS_KEY_hebrew_finalzadi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zade" title="IBUS_KEY_hebrew_zade">IBUS_KEY_hebrew_zade</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zadi" title="IBUS_KEY_hebrew_zadi">IBUS_KEY_hebrew_zadi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-qoph" title="IBUS_KEY_hebrew_qoph">IBUS_KEY_hebrew_qoph</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-kuf" title="IBUS_KEY_hebrew_kuf">IBUS_KEY_hebrew_kuf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-resh" title="IBUS_KEY_hebrew_resh">IBUS_KEY_hebrew_resh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-shin" title="IBUS_KEY_hebrew_shin">IBUS_KEY_hebrew_shin</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-taw" title="IBUS_KEY_hebrew_taw">IBUS_KEY_hebrew_taw</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-taf" title="IBUS_KEY_hebrew_taf">IBUS_KEY_hebrew_taf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hebrew-switch" title="IBUS_KEY_Hebrew_switch">IBUS_KEY_Hebrew_switch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-kokai" title="IBUS_KEY_Thai_kokai">IBUS_KEY_Thai_kokai</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhai" title="IBUS_KEY_Thai_khokhai">IBUS_KEY_Thai_khokhai</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhuat" title="IBUS_KEY_Thai_khokhuat">IBUS_KEY_Thai_khokhuat</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhwai" title="IBUS_KEY_Thai_khokhwai">IBUS_KEY_Thai_khokhwai</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhon" title="IBUS_KEY_Thai_khokhon">IBUS_KEY_Thai_khokhon</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khorakhang" title="IBUS_KEY_Thai_khorakhang">IBUS_KEY_Thai_khorakhang</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-ngongu" title="IBUS_KEY_Thai_ngongu">IBUS_KEY_Thai_ngongu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochan" title="IBUS_KEY_Thai_chochan">IBUS_KEY_Thai_chochan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-choching" title="IBUS_KEY_Thai_choching">IBUS_KEY_Thai_choching</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochang" title="IBUS_KEY_Thai_chochang">IBUS_KEY_Thai_chochang</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-soso" title="IBUS_KEY_Thai_soso">IBUS_KEY_Thai_soso</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochoe" title="IBUS_KEY_Thai_chochoe">IBUS_KEY_Thai_chochoe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-yoying" title="IBUS_KEY_Thai_yoying">IBUS_KEY_Thai_yoying</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-dochada" title="IBUS_KEY_Thai_dochada">IBUS_KEY_Thai_dochada</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-topatak" title="IBUS_KEY_Thai_topatak">IBUS_KEY_Thai_topatak</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothan" title="IBUS_KEY_Thai_thothan">IBUS_KEY_Thai_thothan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thonangmontho" title="IBUS_KEY_Thai_thonangmontho">IBUS_KEY_Thai_thonangmontho</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thophuthao" title="IBUS_KEY_Thai_thophuthao">IBUS_KEY_Thai_thophuthao</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-nonen" title="IBUS_KEY_Thai_nonen">IBUS_KEY_Thai_nonen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-dodek" title="IBUS_KEY_Thai_dodek">IBUS_KEY_Thai_dodek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-totao" title="IBUS_KEY_Thai_totao">IBUS_KEY_Thai_totao</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothung" title="IBUS_KEY_Thai_thothung">IBUS_KEY_Thai_thothung</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothahan" title="IBUS_KEY_Thai_thothahan">IBUS_KEY_Thai_thothahan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothong" title="IBUS_KEY_Thai_thothong">IBUS_KEY_Thai_thothong</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-nonu" title="IBUS_KEY_Thai_nonu">IBUS_KEY_Thai_nonu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-bobaimai" title="IBUS_KEY_Thai_bobaimai">IBUS_KEY_Thai_bobaimai</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-popla" title="IBUS_KEY_Thai_popla">IBUS_KEY_Thai_popla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phophung" title="IBUS_KEY_Thai_phophung">IBUS_KEY_Thai_phophung</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-fofa" title="IBUS_KEY_Thai_fofa">IBUS_KEY_Thai_fofa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phophan" title="IBUS_KEY_Thai_phophan">IBUS_KEY_Thai_phophan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-fofan" title="IBUS_KEY_Thai_fofan">IBUS_KEY_Thai_fofan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phosamphao" title="IBUS_KEY_Thai_phosamphao">IBUS_KEY_Thai_phosamphao</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-moma" title="IBUS_KEY_Thai_moma">IBUS_KEY_Thai_moma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-yoyak" title="IBUS_KEY_Thai_yoyak">IBUS_KEY_Thai_yoyak</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-rorua" title="IBUS_KEY_Thai_rorua">IBUS_KEY_Thai_rorua</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-ru" title="IBUS_KEY_Thai_ru">IBUS_KEY_Thai_ru</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-loling" title="IBUS_KEY_Thai_loling">IBUS_KEY_Thai_loling</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lu" title="IBUS_KEY_Thai_lu">IBUS_KEY_Thai_lu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-wowaen" title="IBUS_KEY_Thai_wowaen">IBUS_KEY_Thai_wowaen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sosala" title="IBUS_KEY_Thai_sosala">IBUS_KEY_Thai_sosala</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sorusi" title="IBUS_KEY_Thai_sorusi">IBUS_KEY_Thai_sorusi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sosua" title="IBUS_KEY_Thai_sosua">IBUS_KEY_Thai_sosua</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-hohip" title="IBUS_KEY_Thai_hohip">IBUS_KEY_Thai_hohip</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lochula" title="IBUS_KEY_Thai_lochula">IBUS_KEY_Thai_lochula</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-oang" title="IBUS_KEY_Thai_oang">IBUS_KEY_Thai_oang</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-honokhuk" title="IBUS_KEY_Thai_honokhuk">IBUS_KEY_Thai_honokhuk</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-paiyannoi" title="IBUS_KEY_Thai_paiyannoi">IBUS_KEY_Thai_paiyannoi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraa" title="IBUS_KEY_Thai_saraa">IBUS_KEY_Thai_saraa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maihanakat" title="IBUS_KEY_Thai_maihanakat">IBUS_KEY_Thai_maihanakat</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaa" title="IBUS_KEY_Thai_saraaa">IBUS_KEY_Thai_saraaa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraam" title="IBUS_KEY_Thai_saraam">IBUS_KEY_Thai_saraam</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarai" title="IBUS_KEY_Thai_sarai">IBUS_KEY_Thai_sarai</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraii" title="IBUS_KEY_Thai_saraii">IBUS_KEY_Thai_saraii</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraue" title="IBUS_KEY_Thai_saraue">IBUS_KEY_Thai_saraue</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarauee" title="IBUS_KEY_Thai_sarauee">IBUS_KEY_Thai_sarauee</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarau" title="IBUS_KEY_Thai_sarau">IBUS_KEY_Thai_sarau</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarauu" title="IBUS_KEY_Thai_sarauu">IBUS_KEY_Thai_sarauu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phinthu" title="IBUS_KEY_Thai_phinthu">IBUS_KEY_Thai_phinthu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maihanakat-maitho" title="IBUS_KEY_Thai_maihanakat_maitho">IBUS_KEY_Thai_maihanakat_maitho</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-baht" title="IBUS_KEY_Thai_baht">IBUS_KEY_Thai_baht</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarae" title="IBUS_KEY_Thai_sarae">IBUS_KEY_Thai_sarae</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraae" title="IBUS_KEY_Thai_saraae">IBUS_KEY_Thai_saraae</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarao" title="IBUS_KEY_Thai_sarao">IBUS_KEY_Thai_sarao</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaimaimuan" title="IBUS_KEY_Thai_saraaimaimuan">IBUS_KEY_Thai_saraaimaimuan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaimaimalai" title="IBUS_KEY_Thai_saraaimaimalai">IBUS_KEY_Thai_saraaimaimalai</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lakkhangyao" title="IBUS_KEY_Thai_lakkhangyao">IBUS_KEY_Thai_lakkhangyao</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maiyamok" title="IBUS_KEY_Thai_maiyamok">IBUS_KEY_Thai_maiyamok</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitaikhu" title="IBUS_KEY_Thai_maitaikhu">IBUS_KEY_Thai_maitaikhu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maiek" title="IBUS_KEY_Thai_maiek">IBUS_KEY_Thai_maiek</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitho" title="IBUS_KEY_Thai_maitho">IBUS_KEY_Thai_maitho</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitri" title="IBUS_KEY_Thai_maitri">IBUS_KEY_Thai_maitri</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maichattawa" title="IBUS_KEY_Thai_maichattawa">IBUS_KEY_Thai_maichattawa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thanthakhat" title="IBUS_KEY_Thai_thanthakhat">IBUS_KEY_Thai_thanthakhat</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-nikhahit" title="IBUS_KEY_Thai_nikhahit">IBUS_KEY_Thai_nikhahit</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksun" title="IBUS_KEY_Thai_leksun">IBUS_KEY_Thai_leksun</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leknung" title="IBUS_KEY_Thai_leknung">IBUS_KEY_Thai_leknung</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksong" title="IBUS_KEY_Thai_leksong">IBUS_KEY_Thai_leksong</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksam" title="IBUS_KEY_Thai_leksam">IBUS_KEY_Thai_leksam</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksi" title="IBUS_KEY_Thai_leksi">IBUS_KEY_Thai_leksi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekha" title="IBUS_KEY_Thai_lekha">IBUS_KEY_Thai_lekha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekhok" title="IBUS_KEY_Thai_lekhok">IBUS_KEY_Thai_lekhok</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekchet" title="IBUS_KEY_Thai_lekchet">IBUS_KEY_Thai_lekchet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekpaet" title="IBUS_KEY_Thai_lekpaet">IBUS_KEY_Thai_lekpaet</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekkao" title="IBUS_KEY_Thai_lekkao">IBUS_KEY_Thai_lekkao</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul" title="IBUS_KEY_Hangul">IBUS_KEY_Hangul</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Start" title="IBUS_KEY_Hangul_Start">IBUS_KEY_Hangul_Start</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-End" title="IBUS_KEY_Hangul_End">IBUS_KEY_Hangul_End</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Hanja" title="IBUS_KEY_Hangul_Hanja">IBUS_KEY_Hangul_Hanja</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jamo" title="IBUS_KEY_Hangul_Jamo">IBUS_KEY_Hangul_Jamo</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Romaja" title="IBUS_KEY_Hangul_Romaja">IBUS_KEY_Hangul_Romaja</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Codeinput" title="IBUS_KEY_Hangul_Codeinput">IBUS_KEY_Hangul_Codeinput</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jeonja" title="IBUS_KEY_Hangul_Jeonja">IBUS_KEY_Hangul_Jeonja</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Banja" title="IBUS_KEY_Hangul_Banja">IBUS_KEY_Hangul_Banja</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PreHanja" title="IBUS_KEY_Hangul_PreHanja">IBUS_KEY_Hangul_PreHanja</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PostHanja" title="IBUS_KEY_Hangul_PostHanja">IBUS_KEY_Hangul_PostHanja</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SingleCandidate" title="IBUS_KEY_Hangul_SingleCandidate">IBUS_KEY_Hangul_SingleCandidate</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-MultipleCandidate" title="IBUS_KEY_Hangul_MultipleCandidate">IBUS_KEY_Hangul_MultipleCandidate</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PreviousCandidate" title="IBUS_KEY_Hangul_PreviousCandidate">IBUS_KEY_Hangul_PreviousCandidate</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Special" title="IBUS_KEY_Hangul_Special">IBUS_KEY_Hangul_Special</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-switch" title="IBUS_KEY_Hangul_switch">IBUS_KEY_Hangul_switch</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Kiyeog" title="IBUS_KEY_Hangul_Kiyeog">IBUS_KEY_Hangul_Kiyeog</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangKiyeog" title="IBUS_KEY_Hangul_SsangKiyeog">IBUS_KEY_Hangul_SsangKiyeog</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-KiyeogSios" title="IBUS_KEY_Hangul_KiyeogSios">IBUS_KEY_Hangul_KiyeogSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Nieun" title="IBUS_KEY_Hangul_Nieun">IBUS_KEY_Hangul_Nieun</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-NieunJieuj" title="IBUS_KEY_Hangul_NieunJieuj">IBUS_KEY_Hangul_NieunJieuj</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-NieunHieuh" title="IBUS_KEY_Hangul_NieunHieuh">IBUS_KEY_Hangul_NieunHieuh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Dikeud" title="IBUS_KEY_Hangul_Dikeud">IBUS_KEY_Hangul_Dikeud</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangDikeud" title="IBUS_KEY_Hangul_SsangDikeud">IBUS_KEY_Hangul_SsangDikeud</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Rieul" title="IBUS_KEY_Hangul_Rieul">IBUS_KEY_Hangul_Rieul</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulKiyeog" title="IBUS_KEY_Hangul_RieulKiyeog">IBUS_KEY_Hangul_RieulKiyeog</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulMieum" title="IBUS_KEY_Hangul_RieulMieum">IBUS_KEY_Hangul_RieulMieum</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulPieub" title="IBUS_KEY_Hangul_RieulPieub">IBUS_KEY_Hangul_RieulPieub</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulSios" title="IBUS_KEY_Hangul_RieulSios">IBUS_KEY_Hangul_RieulSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulTieut" title="IBUS_KEY_Hangul_RieulTieut">IBUS_KEY_Hangul_RieulTieut</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulPhieuf" title="IBUS_KEY_Hangul_RieulPhieuf">IBUS_KEY_Hangul_RieulPhieuf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulHieuh" title="IBUS_KEY_Hangul_RieulHieuh">IBUS_KEY_Hangul_RieulHieuh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Mieum" title="IBUS_KEY_Hangul_Mieum">IBUS_KEY_Hangul_Mieum</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Pieub" title="IBUS_KEY_Hangul_Pieub">IBUS_KEY_Hangul_Pieub</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangPieub" title="IBUS_KEY_Hangul_SsangPieub">IBUS_KEY_Hangul_SsangPieub</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PieubSios" title="IBUS_KEY_Hangul_PieubSios">IBUS_KEY_Hangul_PieubSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Sios" title="IBUS_KEY_Hangul_Sios">IBUS_KEY_Hangul_Sios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangSios" title="IBUS_KEY_Hangul_SsangSios">IBUS_KEY_Hangul_SsangSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Ieung" title="IBUS_KEY_Hangul_Ieung">IBUS_KEY_Hangul_Ieung</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jieuj" title="IBUS_KEY_Hangul_Jieuj">IBUS_KEY_Hangul_Jieuj</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangJieuj" title="IBUS_KEY_Hangul_SsangJieuj">IBUS_KEY_Hangul_SsangJieuj</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Cieuc" title="IBUS_KEY_Hangul_Cieuc">IBUS_KEY_Hangul_Cieuc</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Khieuq" title="IBUS_KEY_Hangul_Khieuq">IBUS_KEY_Hangul_Khieuq</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Tieut" title="IBUS_KEY_Hangul_Tieut">IBUS_KEY_Hangul_Tieut</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Phieuf" title="IBUS_KEY_Hangul_Phieuf">IBUS_KEY_Hangul_Phieuf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Hieuh" title="IBUS_KEY_Hangul_Hieuh">IBUS_KEY_Hangul_Hieuh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-A" title="IBUS_KEY_Hangul_A">IBUS_KEY_Hangul_A</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AE" title="IBUS_KEY_Hangul_AE">IBUS_KEY_Hangul_AE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YA" title="IBUS_KEY_Hangul_YA">IBUS_KEY_Hangul_YA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YAE" title="IBUS_KEY_Hangul_YAE">IBUS_KEY_Hangul_YAE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-EO" title="IBUS_KEY_Hangul_EO">IBUS_KEY_Hangul_EO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-E" title="IBUS_KEY_Hangul_E">IBUS_KEY_Hangul_E</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YEO" title="IBUS_KEY_Hangul_YEO">IBUS_KEY_Hangul_YEO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YE" title="IBUS_KEY_Hangul_YE">IBUS_KEY_Hangul_YE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-O" title="IBUS_KEY_Hangul_O">IBUS_KEY_Hangul_O</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WA" title="IBUS_KEY_Hangul_WA">IBUS_KEY_Hangul_WA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WAE" title="IBUS_KEY_Hangul_WAE">IBUS_KEY_Hangul_WAE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-OE" title="IBUS_KEY_Hangul_OE">IBUS_KEY_Hangul_OE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YO" title="IBUS_KEY_Hangul_YO">IBUS_KEY_Hangul_YO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-U" title="IBUS_KEY_Hangul_U">IBUS_KEY_Hangul_U</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WEO" title="IBUS_KEY_Hangul_WEO">IBUS_KEY_Hangul_WEO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WE" title="IBUS_KEY_Hangul_WE">IBUS_KEY_Hangul_WE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WI" title="IBUS_KEY_Hangul_WI">IBUS_KEY_Hangul_WI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YU" title="IBUS_KEY_Hangul_YU">IBUS_KEY_Hangul_YU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-EU" title="IBUS_KEY_Hangul_EU">IBUS_KEY_Hangul_EU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YI" title="IBUS_KEY_Hangul_YI">IBUS_KEY_Hangul_YI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-I" title="IBUS_KEY_Hangul_I">IBUS_KEY_Hangul_I</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Kiyeog" title="IBUS_KEY_Hangul_J_Kiyeog">IBUS_KEY_Hangul_J_Kiyeog</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-SsangKiyeog" title="IBUS_KEY_Hangul_J_SsangKiyeog">IBUS_KEY_Hangul_J_SsangKiyeog</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-KiyeogSios" title="IBUS_KEY_Hangul_J_KiyeogSios">IBUS_KEY_Hangul_J_KiyeogSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Nieun" title="IBUS_KEY_Hangul_J_Nieun">IBUS_KEY_Hangul_J_Nieun</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-NieunJieuj" title="IBUS_KEY_Hangul_J_NieunJieuj">IBUS_KEY_Hangul_J_NieunJieuj</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-NieunHieuh" title="IBUS_KEY_Hangul_J_NieunHieuh">IBUS_KEY_Hangul_J_NieunHieuh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Dikeud" title="IBUS_KEY_Hangul_J_Dikeud">IBUS_KEY_Hangul_J_Dikeud</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Rieul" title="IBUS_KEY_Hangul_J_Rieul">IBUS_KEY_Hangul_J_Rieul</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulKiyeog" title="IBUS_KEY_Hangul_J_RieulKiyeog">IBUS_KEY_Hangul_J_RieulKiyeog</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulMieum" title="IBUS_KEY_Hangul_J_RieulMieum">IBUS_KEY_Hangul_J_RieulMieum</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulPieub" title="IBUS_KEY_Hangul_J_RieulPieub">IBUS_KEY_Hangul_J_RieulPieub</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulSios" title="IBUS_KEY_Hangul_J_RieulSios">IBUS_KEY_Hangul_J_RieulSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulTieut" title="IBUS_KEY_Hangul_J_RieulTieut">IBUS_KEY_Hangul_J_RieulTieut</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulPhieuf" title="IBUS_KEY_Hangul_J_RieulPhieuf">IBUS_KEY_Hangul_J_RieulPhieuf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulHieuh" title="IBUS_KEY_Hangul_J_RieulHieuh">IBUS_KEY_Hangul_J_RieulHieuh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Mieum" title="IBUS_KEY_Hangul_J_Mieum">IBUS_KEY_Hangul_J_Mieum</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Pieub" title="IBUS_KEY_Hangul_J_Pieub">IBUS_KEY_Hangul_J_Pieub</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-PieubSios" title="IBUS_KEY_Hangul_J_PieubSios">IBUS_KEY_Hangul_J_PieubSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Sios" title="IBUS_KEY_Hangul_J_Sios">IBUS_KEY_Hangul_J_Sios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-SsangSios" title="IBUS_KEY_Hangul_J_SsangSios">IBUS_KEY_Hangul_J_SsangSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Ieung" title="IBUS_KEY_Hangul_J_Ieung">IBUS_KEY_Hangul_J_Ieung</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Jieuj" title="IBUS_KEY_Hangul_J_Jieuj">IBUS_KEY_Hangul_J_Jieuj</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Cieuc" title="IBUS_KEY_Hangul_J_Cieuc">IBUS_KEY_Hangul_J_Cieuc</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Khieuq" title="IBUS_KEY_Hangul_J_Khieuq">IBUS_KEY_Hangul_J_Khieuq</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Tieut" title="IBUS_KEY_Hangul_J_Tieut">IBUS_KEY_Hangul_J_Tieut</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Phieuf" title="IBUS_KEY_Hangul_J_Phieuf">IBUS_KEY_Hangul_J_Phieuf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Hieuh" title="IBUS_KEY_Hangul_J_Hieuh">IBUS_KEY_Hangul_J_Hieuh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulYeorinHieuh" title="IBUS_KEY_Hangul_RieulYeorinHieuh">IBUS_KEY_Hangul_RieulYeorinHieuh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumMieum" title="IBUS_KEY_Hangul_SunkyeongeumMieum">IBUS_KEY_Hangul_SunkyeongeumMieum</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumPieub" title="IBUS_KEY_Hangul_SunkyeongeumPieub">IBUS_KEY_Hangul_SunkyeongeumPieub</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PanSios" title="IBUS_KEY_Hangul_PanSios">IBUS_KEY_Hangul_PanSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-KkogjiDalrinIeung" title="IBUS_KEY_Hangul_KkogjiDalrinIeung">IBUS_KEY_Hangul_KkogjiDalrinIeung</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumPhieuf" title="IBUS_KEY_Hangul_SunkyeongeumPhieuf">IBUS_KEY_Hangul_SunkyeongeumPhieuf</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YeorinHieuh" title="IBUS_KEY_Hangul_YeorinHieuh">IBUS_KEY_Hangul_YeorinHieuh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AraeA" title="IBUS_KEY_Hangul_AraeA">IBUS_KEY_Hangul_AraeA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AraeAE" title="IBUS_KEY_Hangul_AraeAE">IBUS_KEY_Hangul_AraeAE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-PanSios" title="IBUS_KEY_Hangul_J_PanSios">IBUS_KEY_Hangul_J_PanSios</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-KkogjiDalrinIeung" title="IBUS_KEY_Hangul_J_KkogjiDalrinIeung">IBUS_KEY_Hangul_J_KkogjiDalrinIeung</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-YeorinHieuh" title="IBUS_KEY_Hangul_J_YeorinHieuh">IBUS_KEY_Hangul_J_YeorinHieuh</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Korean-Won" title="IBUS_KEY_Korean_Won">IBUS_KEY_Korean_Won</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ligature-ew" title="IBUS_KEY_Armenian_ligature_ew">IBUS_KEY_Armenian_ligature_ew</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-full-stop" title="IBUS_KEY_Armenian_full_stop">IBUS_KEY_Armenian_full_stop</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-verjaket" title="IBUS_KEY_Armenian_verjaket">IBUS_KEY_Armenian_verjaket</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-separation-mark" title="IBUS_KEY_Armenian_separation_mark">IBUS_KEY_Armenian_separation_mark</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-but" title="IBUS_KEY_Armenian_but">IBUS_KEY_Armenian_but</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-hyphen" title="IBUS_KEY_Armenian_hyphen">IBUS_KEY_Armenian_hyphen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-yentamna" title="IBUS_KEY_Armenian_yentamna">IBUS_KEY_Armenian_yentamna</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-exclam" title="IBUS_KEY_Armenian_exclam">IBUS_KEY_Armenian_exclam</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-amanak" title="IBUS_KEY_Armenian_amanak">IBUS_KEY_Armenian_amanak</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-accent" title="IBUS_KEY_Armenian_accent">IBUS_KEY_Armenian_accent</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-shesht" title="IBUS_KEY_Armenian_shesht">IBUS_KEY_Armenian_shesht</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-question" title="IBUS_KEY_Armenian_question">IBUS_KEY_Armenian_question</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-paruyk" title="IBUS_KEY_Armenian_paruyk">IBUS_KEY_Armenian_paruyk</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-AYB" title="IBUS_KEY_Armenian_AYB">IBUS_KEY_Armenian_AYB</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ayb" title="IBUS_KEY_Armenian_ayb">IBUS_KEY_Armenian_ayb</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-BEN" title="IBUS_KEY_Armenian_BEN">IBUS_KEY_Armenian_BEN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ben" title="IBUS_KEY_Armenian_ben">IBUS_KEY_Armenian_ben</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-GIM" title="IBUS_KEY_Armenian_GIM">IBUS_KEY_Armenian_GIM</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-gim" title="IBUS_KEY_Armenian_gim">IBUS_KEY_Armenian_gim</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-DA" title="IBUS_KEY_Armenian_DA">IBUS_KEY_Armenian_DA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-da" title="IBUS_KEY_Armenian_da">IBUS_KEY_Armenian_da</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-YECH" title="IBUS_KEY_Armenian_YECH">IBUS_KEY_Armenian_YECH</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-yech" title="IBUS_KEY_Armenian_yech">IBUS_KEY_Armenian_yech</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ZA" title="IBUS_KEY_Armenian_ZA">IBUS_KEY_Armenian_ZA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-za" title="IBUS_KEY_Armenian_za">IBUS_KEY_Armenian_za</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-E" title="IBUS_KEY_Armenian_E">IBUS_KEY_Armenian_E</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-e" title="IBUS_KEY_Armenian_e">IBUS_KEY_Armenian_e</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-AT" title="IBUS_KEY_Armenian_AT">IBUS_KEY_Armenian_AT</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-at" title="IBUS_KEY_Armenian_at">IBUS_KEY_Armenian_at</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TO" title="IBUS_KEY_Armenian_TO">IBUS_KEY_Armenian_TO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-to" title="IBUS_KEY_Armenian_to">IBUS_KEY_Armenian_to</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ZHE" title="IBUS_KEY_Armenian_ZHE">IBUS_KEY_Armenian_ZHE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-zhe" title="IBUS_KEY_Armenian_zhe">IBUS_KEY_Armenian_zhe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-INI" title="IBUS_KEY_Armenian_INI">IBUS_KEY_Armenian_INI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ini" title="IBUS_KEY_Armenian_ini">IBUS_KEY_Armenian_ini</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-LYUN" title="IBUS_KEY_Armenian_LYUN">IBUS_KEY_Armenian_LYUN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-lyun" title="IBUS_KEY_Armenian_lyun">IBUS_KEY_Armenian_lyun</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KHE" title="IBUS_KEY_Armenian_KHE">IBUS_KEY_Armenian_KHE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-khe" title="IBUS_KEY_Armenian_khe">IBUS_KEY_Armenian_khe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TSA" title="IBUS_KEY_Armenian_TSA">IBUS_KEY_Armenian_TSA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tsa" title="IBUS_KEY_Armenian_tsa">IBUS_KEY_Armenian_tsa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KEN" title="IBUS_KEY_Armenian_KEN">IBUS_KEY_Armenian_KEN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ken" title="IBUS_KEY_Armenian_ken">IBUS_KEY_Armenian_ken</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-HO" title="IBUS_KEY_Armenian_HO">IBUS_KEY_Armenian_HO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ho" title="IBUS_KEY_Armenian_ho">IBUS_KEY_Armenian_ho</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-DZA" title="IBUS_KEY_Armenian_DZA">IBUS_KEY_Armenian_DZA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-dza" title="IBUS_KEY_Armenian_dza">IBUS_KEY_Armenian_dza</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-GHAT" title="IBUS_KEY_Armenian_GHAT">IBUS_KEY_Armenian_GHAT</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ghat" title="IBUS_KEY_Armenian_ghat">IBUS_KEY_Armenian_ghat</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TCHE" title="IBUS_KEY_Armenian_TCHE">IBUS_KEY_Armenian_TCHE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tche" title="IBUS_KEY_Armenian_tche">IBUS_KEY_Armenian_tche</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-MEN" title="IBUS_KEY_Armenian_MEN">IBUS_KEY_Armenian_MEN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-men" title="IBUS_KEY_Armenian_men">IBUS_KEY_Armenian_men</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-HI" title="IBUS_KEY_Armenian_HI">IBUS_KEY_Armenian_HI</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-hi" title="IBUS_KEY_Armenian_hi">IBUS_KEY_Armenian_hi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-NU" title="IBUS_KEY_Armenian_NU">IBUS_KEY_Armenian_NU</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-nu" title="IBUS_KEY_Armenian_nu">IBUS_KEY_Armenian_nu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-SHA" title="IBUS_KEY_Armenian_SHA">IBUS_KEY_Armenian_SHA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-sha" title="IBUS_KEY_Armenian_sha">IBUS_KEY_Armenian_sha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VO" title="IBUS_KEY_Armenian_VO">IBUS_KEY_Armenian_VO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vo" title="IBUS_KEY_Armenian_vo">IBUS_KEY_Armenian_vo</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-CHA" title="IBUS_KEY_Armenian_CHA">IBUS_KEY_Armenian_CHA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-cha" title="IBUS_KEY_Armenian_cha">IBUS_KEY_Armenian_cha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-PE" title="IBUS_KEY_Armenian_PE">IBUS_KEY_Armenian_PE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-pe" title="IBUS_KEY_Armenian_pe">IBUS_KEY_Armenian_pe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-JE" title="IBUS_KEY_Armenian_JE">IBUS_KEY_Armenian_JE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-je" title="IBUS_KEY_Armenian_je">IBUS_KEY_Armenian_je</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-RA" title="IBUS_KEY_Armenian_RA">IBUS_KEY_Armenian_RA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ra" title="IBUS_KEY_Armenian_ra">IBUS_KEY_Armenian_ra</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-SE" title="IBUS_KEY_Armenian_SE">IBUS_KEY_Armenian_SE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-se" title="IBUS_KEY_Armenian_se">IBUS_KEY_Armenian_se</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VEV" title="IBUS_KEY_Armenian_VEV">IBUS_KEY_Armenian_VEV</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vev" title="IBUS_KEY_Armenian_vev">IBUS_KEY_Armenian_vev</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TYUN" title="IBUS_KEY_Armenian_TYUN">IBUS_KEY_Armenian_TYUN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tyun" title="IBUS_KEY_Armenian_tyun">IBUS_KEY_Armenian_tyun</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-RE" title="IBUS_KEY_Armenian_RE">IBUS_KEY_Armenian_RE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-re" title="IBUS_KEY_Armenian_re">IBUS_KEY_Armenian_re</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TSO" title="IBUS_KEY_Armenian_TSO">IBUS_KEY_Armenian_TSO</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tso" title="IBUS_KEY_Armenian_tso">IBUS_KEY_Armenian_tso</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VYUN" title="IBUS_KEY_Armenian_VYUN">IBUS_KEY_Armenian_VYUN</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vyun" title="IBUS_KEY_Armenian_vyun">IBUS_KEY_Armenian_vyun</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-PYUR" title="IBUS_KEY_Armenian_PYUR">IBUS_KEY_Armenian_PYUR</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-pyur" title="IBUS_KEY_Armenian_pyur">IBUS_KEY_Armenian_pyur</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KE" title="IBUS_KEY_Armenian_KE">IBUS_KEY_Armenian_KE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ke" title="IBUS_KEY_Armenian_ke">IBUS_KEY_Armenian_ke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-O" title="IBUS_KEY_Armenian_O">IBUS_KEY_Armenian_O</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-o" title="IBUS_KEY_Armenian_o">IBUS_KEY_Armenian_o</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-FE" title="IBUS_KEY_Armenian_FE">IBUS_KEY_Armenian_FE</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-fe" title="IBUS_KEY_Armenian_fe">IBUS_KEY_Armenian_fe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-apostrophe" title="IBUS_KEY_Armenian_apostrophe">IBUS_KEY_Armenian_apostrophe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-an" title="IBUS_KEY_Georgian_an">IBUS_KEY_Georgian_an</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-ban" title="IBUS_KEY_Georgian_ban">IBUS_KEY_Georgian_ban</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-gan" title="IBUS_KEY_Georgian_gan">IBUS_KEY_Georgian_gan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-don" title="IBUS_KEY_Georgian_don">IBUS_KEY_Georgian_don</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-en" title="IBUS_KEY_Georgian_en">IBUS_KEY_Georgian_en</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-vin" title="IBUS_KEY_Georgian_vin">IBUS_KEY_Georgian_vin</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-zen" title="IBUS_KEY_Georgian_zen">IBUS_KEY_Georgian_zen</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-tan" title="IBUS_KEY_Georgian_tan">IBUS_KEY_Georgian_tan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-in" title="IBUS_KEY_Georgian_in">IBUS_KEY_Georgian_in</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-kan" title="IBUS_KEY_Georgian_kan">IBUS_KEY_Georgian_kan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-las" title="IBUS_KEY_Georgian_las">IBUS_KEY_Georgian_las</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-man" title="IBUS_KEY_Georgian_man">IBUS_KEY_Georgian_man</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-nar" title="IBUS_KEY_Georgian_nar">IBUS_KEY_Georgian_nar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-on" title="IBUS_KEY_Georgian_on">IBUS_KEY_Georgian_on</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-par" title="IBUS_KEY_Georgian_par">IBUS_KEY_Georgian_par</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-zhar" title="IBUS_KEY_Georgian_zhar">IBUS_KEY_Georgian_zhar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-rae" title="IBUS_KEY_Georgian_rae">IBUS_KEY_Georgian_rae</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-san" title="IBUS_KEY_Georgian_san">IBUS_KEY_Georgian_san</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-tar" title="IBUS_KEY_Georgian_tar">IBUS_KEY_Georgian_tar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-un" title="IBUS_KEY_Georgian_un">IBUS_KEY_Georgian_un</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-phar" title="IBUS_KEY_Georgian_phar">IBUS_KEY_Georgian_phar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-khar" title="IBUS_KEY_Georgian_khar">IBUS_KEY_Georgian_khar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-ghan" title="IBUS_KEY_Georgian_ghan">IBUS_KEY_Georgian_ghan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-qar" title="IBUS_KEY_Georgian_qar">IBUS_KEY_Georgian_qar</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-shin" title="IBUS_KEY_Georgian_shin">IBUS_KEY_Georgian_shin</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-chin" title="IBUS_KEY_Georgian_chin">IBUS_KEY_Georgian_chin</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-can" title="IBUS_KEY_Georgian_can">IBUS_KEY_Georgian_can</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-jil" title="IBUS_KEY_Georgian_jil">IBUS_KEY_Georgian_jil</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-cil" title="IBUS_KEY_Georgian_cil">IBUS_KEY_Georgian_cil</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-char" title="IBUS_KEY_Georgian_char">IBUS_KEY_Georgian_char</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-xan" title="IBUS_KEY_Georgian_xan">IBUS_KEY_Georgian_xan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-jhan" title="IBUS_KEY_Georgian_jhan">IBUS_KEY_Georgian_jhan</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hae" title="IBUS_KEY_Georgian_hae">IBUS_KEY_Georgian_hae</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-he" title="IBUS_KEY_Georgian_he">IBUS_KEY_Georgian_he</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hie" title="IBUS_KEY_Georgian_hie">IBUS_KEY_Georgian_hie</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-we" title="IBUS_KEY_Georgian_we">IBUS_KEY_Georgian_we</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-har" title="IBUS_KEY_Georgian_har">IBUS_KEY_Georgian_har</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hoe" title="IBUS_KEY_Georgian_hoe">IBUS_KEY_Georgian_hoe</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-fi" title="IBUS_KEY_Georgian_fi">IBUS_KEY_Georgian_fi</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Xabovedot" title="IBUS_KEY_Xabovedot">IBUS_KEY_Xabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ibreve" title="IBUS_KEY_Ibreve">IBUS_KEY_Ibreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Zstroke" title="IBUS_KEY_Zstroke">IBUS_KEY_Zstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Gcaron" title="IBUS_KEY_Gcaron">IBUS_KEY_Gcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocaron" title="IBUS_KEY_Ocaron">IBUS_KEY_Ocaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Obarred" title="IBUS_KEY_Obarred">IBUS_KEY_Obarred</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-xabovedot" title="IBUS_KEY_xabovedot">IBUS_KEY_xabovedot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ibreve" title="IBUS_KEY_ibreve">IBUS_KEY_ibreve</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zstroke" title="IBUS_KEY_zstroke">IBUS_KEY_zstroke</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-gcaron" title="IBUS_KEY_gcaron">IBUS_KEY_gcaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocaron" title="IBUS_KEY_ocaron">IBUS_KEY_ocaron</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-obarred" title="IBUS_KEY_obarred">IBUS_KEY_obarred</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-SCHWA:CAPS" title="IBUS_KEY_SCHWA">IBUS_KEY_SCHWA</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-schwa" title="IBUS_KEY_schwa">IBUS_KEY_schwa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Lbelowdot" title="IBUS_KEY_Lbelowdot">IBUS_KEY_Lbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-lbelowdot" title="IBUS_KEY_lbelowdot">IBUS_KEY_lbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abelowdot" title="IBUS_KEY_Abelowdot">IBUS_KEY_Abelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abelowdot" title="IBUS_KEY_abelowdot">IBUS_KEY_abelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ahook" title="IBUS_KEY_Ahook">IBUS_KEY_Ahook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ahook" title="IBUS_KEY_ahook">IBUS_KEY_ahook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexacute" title="IBUS_KEY_Acircumflexacute">IBUS_KEY_Acircumflexacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexacute" title="IBUS_KEY_acircumflexacute">IBUS_KEY_acircumflexacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexgrave" title="IBUS_KEY_Acircumflexgrave">IBUS_KEY_Acircumflexgrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexgrave" title="IBUS_KEY_acircumflexgrave">IBUS_KEY_acircumflexgrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexhook" title="IBUS_KEY_Acircumflexhook">IBUS_KEY_Acircumflexhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexhook" title="IBUS_KEY_acircumflexhook">IBUS_KEY_acircumflexhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflextilde" title="IBUS_KEY_Acircumflextilde">IBUS_KEY_Acircumflextilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflextilde" title="IBUS_KEY_acircumflextilde">IBUS_KEY_acircumflextilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexbelowdot" title="IBUS_KEY_Acircumflexbelowdot">IBUS_KEY_Acircumflexbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexbelowdot" title="IBUS_KEY_acircumflexbelowdot">IBUS_KEY_acircumflexbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abreveacute" title="IBUS_KEY_Abreveacute">IBUS_KEY_Abreveacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abreveacute" title="IBUS_KEY_abreveacute">IBUS_KEY_abreveacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abrevegrave" title="IBUS_KEY_Abrevegrave">IBUS_KEY_Abrevegrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abrevegrave" title="IBUS_KEY_abrevegrave">IBUS_KEY_abrevegrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abrevehook" title="IBUS_KEY_Abrevehook">IBUS_KEY_Abrevehook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abrevehook" title="IBUS_KEY_abrevehook">IBUS_KEY_abrevehook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abrevetilde" title="IBUS_KEY_Abrevetilde">IBUS_KEY_Abrevetilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abrevetilde" title="IBUS_KEY_abrevetilde">IBUS_KEY_abrevetilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Abrevebelowdot" title="IBUS_KEY_Abrevebelowdot">IBUS_KEY_Abrevebelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-abrevebelowdot" title="IBUS_KEY_abrevebelowdot">IBUS_KEY_abrevebelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ebelowdot" title="IBUS_KEY_Ebelowdot">IBUS_KEY_Ebelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ebelowdot" title="IBUS_KEY_ebelowdot">IBUS_KEY_ebelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ehook" title="IBUS_KEY_Ehook">IBUS_KEY_Ehook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ehook" title="IBUS_KEY_ehook">IBUS_KEY_ehook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Etilde" title="IBUS_KEY_Etilde">IBUS_KEY_Etilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-etilde" title="IBUS_KEY_etilde">IBUS_KEY_etilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexacute" title="IBUS_KEY_Ecircumflexacute">IBUS_KEY_Ecircumflexacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexacute" title="IBUS_KEY_ecircumflexacute">IBUS_KEY_ecircumflexacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexgrave" title="IBUS_KEY_Ecircumflexgrave">IBUS_KEY_Ecircumflexgrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexgrave" title="IBUS_KEY_ecircumflexgrave">IBUS_KEY_ecircumflexgrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexhook" title="IBUS_KEY_Ecircumflexhook">IBUS_KEY_Ecircumflexhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexhook" title="IBUS_KEY_ecircumflexhook">IBUS_KEY_ecircumflexhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflextilde" title="IBUS_KEY_Ecircumflextilde">IBUS_KEY_Ecircumflextilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflextilde" title="IBUS_KEY_ecircumflextilde">IBUS_KEY_ecircumflextilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexbelowdot" title="IBUS_KEY_Ecircumflexbelowdot">IBUS_KEY_Ecircumflexbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexbelowdot" title="IBUS_KEY_ecircumflexbelowdot">IBUS_KEY_ecircumflexbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ihook" title="IBUS_KEY_Ihook">IBUS_KEY_Ihook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ihook" title="IBUS_KEY_ihook">IBUS_KEY_ihook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ibelowdot" title="IBUS_KEY_Ibelowdot">IBUS_KEY_Ibelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ibelowdot" title="IBUS_KEY_ibelowdot">IBUS_KEY_ibelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Obelowdot" title="IBUS_KEY_Obelowdot">IBUS_KEY_Obelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-obelowdot" title="IBUS_KEY_obelowdot">IBUS_KEY_obelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohook" title="IBUS_KEY_Ohook">IBUS_KEY_Ohook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohook" title="IBUS_KEY_ohook">IBUS_KEY_ohook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexacute" title="IBUS_KEY_Ocircumflexacute">IBUS_KEY_Ocircumflexacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexacute" title="IBUS_KEY_ocircumflexacute">IBUS_KEY_ocircumflexacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexgrave" title="IBUS_KEY_Ocircumflexgrave">IBUS_KEY_Ocircumflexgrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexgrave" title="IBUS_KEY_ocircumflexgrave">IBUS_KEY_ocircumflexgrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexhook" title="IBUS_KEY_Ocircumflexhook">IBUS_KEY_Ocircumflexhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexhook" title="IBUS_KEY_ocircumflexhook">IBUS_KEY_ocircumflexhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflextilde" title="IBUS_KEY_Ocircumflextilde">IBUS_KEY_Ocircumflextilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflextilde" title="IBUS_KEY_ocircumflextilde">IBUS_KEY_ocircumflextilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexbelowdot" title="IBUS_KEY_Ocircumflexbelowdot">IBUS_KEY_Ocircumflexbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexbelowdot" title="IBUS_KEY_ocircumflexbelowdot">IBUS_KEY_ocircumflexbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohornacute" title="IBUS_KEY_Ohornacute">IBUS_KEY_Ohornacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohornacute" title="IBUS_KEY_ohornacute">IBUS_KEY_ohornacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohorngrave" title="IBUS_KEY_Ohorngrave">IBUS_KEY_Ohorngrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohorngrave" title="IBUS_KEY_ohorngrave">IBUS_KEY_ohorngrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohornhook" title="IBUS_KEY_Ohornhook">IBUS_KEY_Ohornhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohornhook" title="IBUS_KEY_ohornhook">IBUS_KEY_ohornhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohorntilde" title="IBUS_KEY_Ohorntilde">IBUS_KEY_Ohorntilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohorntilde" title="IBUS_KEY_ohorntilde">IBUS_KEY_ohorntilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohornbelowdot" title="IBUS_KEY_Ohornbelowdot">IBUS_KEY_Ohornbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohornbelowdot" title="IBUS_KEY_ohornbelowdot">IBUS_KEY_ohornbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ubelowdot" title="IBUS_KEY_Ubelowdot">IBUS_KEY_Ubelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ubelowdot" title="IBUS_KEY_ubelowdot">IBUS_KEY_ubelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhook" title="IBUS_KEY_Uhook">IBUS_KEY_Uhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhook" title="IBUS_KEY_uhook">IBUS_KEY_uhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhornacute" title="IBUS_KEY_Uhornacute">IBUS_KEY_Uhornacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhornacute" title="IBUS_KEY_uhornacute">IBUS_KEY_uhornacute</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhorngrave" title="IBUS_KEY_Uhorngrave">IBUS_KEY_Uhorngrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhorngrave" title="IBUS_KEY_uhorngrave">IBUS_KEY_uhorngrave</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhornhook" title="IBUS_KEY_Uhornhook">IBUS_KEY_Uhornhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhornhook" title="IBUS_KEY_uhornhook">IBUS_KEY_uhornhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhorntilde" title="IBUS_KEY_Uhorntilde">IBUS_KEY_Uhorntilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhorntilde" title="IBUS_KEY_uhorntilde">IBUS_KEY_uhorntilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhornbelowdot" title="IBUS_KEY_Uhornbelowdot">IBUS_KEY_Uhornbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhornbelowdot" title="IBUS_KEY_uhornbelowdot">IBUS_KEY_uhornbelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ybelowdot" title="IBUS_KEY_Ybelowdot">IBUS_KEY_Ybelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ybelowdot" title="IBUS_KEY_ybelowdot">IBUS_KEY_ybelowdot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Yhook" title="IBUS_KEY_Yhook">IBUS_KEY_Yhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-yhook" title="IBUS_KEY_yhook">IBUS_KEY_yhook</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ytilde" title="IBUS_KEY_Ytilde">IBUS_KEY_Ytilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ytilde" title="IBUS_KEY_ytilde">IBUS_KEY_ytilde</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Ohorn" title="IBUS_KEY_Ohorn">IBUS_KEY_Ohorn</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ohorn" title="IBUS_KEY_ohorn">IBUS_KEY_ohorn</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Uhorn" title="IBUS_KEY_Uhorn">IBUS_KEY_Uhorn</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-uhorn" title="IBUS_KEY_uhorn">IBUS_KEY_uhorn</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-EcuSign" title="IBUS_KEY_EcuSign">IBUS_KEY_EcuSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ColonSign" title="IBUS_KEY_ColonSign">IBUS_KEY_ColonSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-CruzeiroSign" title="IBUS_KEY_CruzeiroSign">IBUS_KEY_CruzeiroSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-FFrancSign" title="IBUS_KEY_FFrancSign">IBUS_KEY_FFrancSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-LiraSign" title="IBUS_KEY_LiraSign">IBUS_KEY_LiraSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-MillSign" title="IBUS_KEY_MillSign">IBUS_KEY_MillSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-NairaSign" title="IBUS_KEY_NairaSign">IBUS_KEY_NairaSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-PesetaSign" title="IBUS_KEY_PesetaSign">IBUS_KEY_PesetaSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-RupeeSign" title="IBUS_KEY_RupeeSign">IBUS_KEY_RupeeSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-WonSign" title="IBUS_KEY_WonSign">IBUS_KEY_WonSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-NewSheqelSign" title="IBUS_KEY_NewSheqelSign">IBUS_KEY_NewSheqelSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-DongSign" title="IBUS_KEY_DongSign">IBUS_KEY_DongSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-EuroSign" title="IBUS_KEY_EuroSign">IBUS_KEY_EuroSign</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zerosuperior" title="IBUS_KEY_zerosuperior">IBUS_KEY_zerosuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-foursuperior" title="IBUS_KEY_foursuperior">IBUS_KEY_foursuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fivesuperior" title="IBUS_KEY_fivesuperior">IBUS_KEY_fivesuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sixsuperior" title="IBUS_KEY_sixsuperior">IBUS_KEY_sixsuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sevensuperior" title="IBUS_KEY_sevensuperior">IBUS_KEY_sevensuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eightsuperior" title="IBUS_KEY_eightsuperior">IBUS_KEY_eightsuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ninesuperior" title="IBUS_KEY_ninesuperior">IBUS_KEY_ninesuperior</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-zerosubscript" title="IBUS_KEY_zerosubscript">IBUS_KEY_zerosubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-onesubscript" title="IBUS_KEY_onesubscript">IBUS_KEY_onesubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-twosubscript" title="IBUS_KEY_twosubscript">IBUS_KEY_twosubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-threesubscript" title="IBUS_KEY_threesubscript">IBUS_KEY_threesubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-foursubscript" title="IBUS_KEY_foursubscript">IBUS_KEY_foursubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fivesubscript" title="IBUS_KEY_fivesubscript">IBUS_KEY_fivesubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sixsubscript" title="IBUS_KEY_sixsubscript">IBUS_KEY_sixsubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-sevensubscript" title="IBUS_KEY_sevensubscript">IBUS_KEY_sevensubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-eightsubscript" title="IBUS_KEY_eightsubscript">IBUS_KEY_eightsubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-ninesubscript" title="IBUS_KEY_ninesubscript">IBUS_KEY_ninesubscript</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-partdifferential" title="IBUS_KEY_partdifferential">IBUS_KEY_partdifferential</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-emptyset" title="IBUS_KEY_emptyset">IBUS_KEY_emptyset</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-elementof" title="IBUS_KEY_elementof">IBUS_KEY_elementof</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notelementof" title="IBUS_KEY_notelementof">IBUS_KEY_notelementof</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-containsas" title="IBUS_KEY_containsas">IBUS_KEY_containsas</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-squareroot" title="IBUS_KEY_squareroot">IBUS_KEY_squareroot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-cuberoot" title="IBUS_KEY_cuberoot">IBUS_KEY_cuberoot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-fourthroot" title="IBUS_KEY_fourthroot">IBUS_KEY_fourthroot</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-dintegral" title="IBUS_KEY_dintegral">IBUS_KEY_dintegral</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-tintegral" title="IBUS_KEY_tintegral">IBUS_KEY_tintegral</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-because" title="IBUS_KEY_because">IBUS_KEY_because</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-approxeq" title="IBUS_KEY_approxeq">IBUS_KEY_approxeq</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notapproxeq" title="IBUS_KEY_notapproxeq">IBUS_KEY_notapproxeq</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-notidentical" title="IBUS_KEY_notidentical">IBUS_KEY_notidentical</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-stricteq" title="IBUS_KEY_stricteq">IBUS_KEY_stricteq</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-1" title="IBUS_KEY_braille_dot_1">IBUS_KEY_braille_dot_1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-2" title="IBUS_KEY_braille_dot_2">IBUS_KEY_braille_dot_2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-3" title="IBUS_KEY_braille_dot_3">IBUS_KEY_braille_dot_3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-4" title="IBUS_KEY_braille_dot_4">IBUS_KEY_braille_dot_4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-5" title="IBUS_KEY_braille_dot_5">IBUS_KEY_braille_dot_5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-6" title="IBUS_KEY_braille_dot_6">IBUS_KEY_braille_dot_6</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-7" title="IBUS_KEY_braille_dot_7">IBUS_KEY_braille_dot_7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-8" title="IBUS_KEY_braille_dot_8">IBUS_KEY_braille_dot_8</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-9" title="IBUS_KEY_braille_dot_9">IBUS_KEY_braille_dot_9</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-10" title="IBUS_KEY_braille_dot_10">IBUS_KEY_braille_dot_10</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-blank" title="IBUS_KEY_braille_blank">IBUS_KEY_braille_blank</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1" title="IBUS_KEY_braille_dots_1">IBUS_KEY_braille_dots_1</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2" title="IBUS_KEY_braille_dots_2">IBUS_KEY_braille_dots_2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12" title="IBUS_KEY_braille_dots_12">IBUS_KEY_braille_dots_12</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3" title="IBUS_KEY_braille_dots_3">IBUS_KEY_braille_dots_3</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13" title="IBUS_KEY_braille_dots_13">IBUS_KEY_braille_dots_13</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23" title="IBUS_KEY_braille_dots_23">IBUS_KEY_braille_dots_23</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123" title="IBUS_KEY_braille_dots_123">IBUS_KEY_braille_dots_123</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4" title="IBUS_KEY_braille_dots_4">IBUS_KEY_braille_dots_4</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14" title="IBUS_KEY_braille_dots_14">IBUS_KEY_braille_dots_14</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24" title="IBUS_KEY_braille_dots_24">IBUS_KEY_braille_dots_24</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124" title="IBUS_KEY_braille_dots_124">IBUS_KEY_braille_dots_124</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34" title="IBUS_KEY_braille_dots_34">IBUS_KEY_braille_dots_34</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134" title="IBUS_KEY_braille_dots_134">IBUS_KEY_braille_dots_134</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234" title="IBUS_KEY_braille_dots_234">IBUS_KEY_braille_dots_234</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234" title="IBUS_KEY_braille_dots_1234">IBUS_KEY_braille_dots_1234</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-5" title="IBUS_KEY_braille_dots_5">IBUS_KEY_braille_dots_5</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-15" title="IBUS_KEY_braille_dots_15">IBUS_KEY_braille_dots_15</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-25" title="IBUS_KEY_braille_dots_25">IBUS_KEY_braille_dots_25</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-125" title="IBUS_KEY_braille_dots_125">IBUS_KEY_braille_dots_125</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-35" title="IBUS_KEY_braille_dots_35">IBUS_KEY_braille_dots_35</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-135" title="IBUS_KEY_braille_dots_135">IBUS_KEY_braille_dots_135</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-235" title="IBUS_KEY_braille_dots_235">IBUS_KEY_braille_dots_235</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1235" title="IBUS_KEY_braille_dots_1235">IBUS_KEY_braille_dots_1235</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-45" title="IBUS_KEY_braille_dots_45">IBUS_KEY_braille_dots_45</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-145" title="IBUS_KEY_braille_dots_145">IBUS_KEY_braille_dots_145</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-245" title="IBUS_KEY_braille_dots_245">IBUS_KEY_braille_dots_245</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1245" title="IBUS_KEY_braille_dots_1245">IBUS_KEY_braille_dots_1245</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-345" title="IBUS_KEY_braille_dots_345">IBUS_KEY_braille_dots_345</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1345" title="IBUS_KEY_braille_dots_1345">IBUS_KEY_braille_dots_1345</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2345" title="IBUS_KEY_braille_dots_2345">IBUS_KEY_braille_dots_2345</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12345" title="IBUS_KEY_braille_dots_12345">IBUS_KEY_braille_dots_12345</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-6" title="IBUS_KEY_braille_dots_6">IBUS_KEY_braille_dots_6</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-16" title="IBUS_KEY_braille_dots_16">IBUS_KEY_braille_dots_16</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-26" title="IBUS_KEY_braille_dots_26">IBUS_KEY_braille_dots_26</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-126" title="IBUS_KEY_braille_dots_126">IBUS_KEY_braille_dots_126</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-36" title="IBUS_KEY_braille_dots_36">IBUS_KEY_braille_dots_36</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-136" title="IBUS_KEY_braille_dots_136">IBUS_KEY_braille_dots_136</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-236" title="IBUS_KEY_braille_dots_236">IBUS_KEY_braille_dots_236</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1236" title="IBUS_KEY_braille_dots_1236">IBUS_KEY_braille_dots_1236</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-46" title="IBUS_KEY_braille_dots_46">IBUS_KEY_braille_dots_46</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-146" title="IBUS_KEY_braille_dots_146">IBUS_KEY_braille_dots_146</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-246" title="IBUS_KEY_braille_dots_246">IBUS_KEY_braille_dots_246</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1246" title="IBUS_KEY_braille_dots_1246">IBUS_KEY_braille_dots_1246</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-346" title="IBUS_KEY_braille_dots_346">IBUS_KEY_braille_dots_346</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1346" title="IBUS_KEY_braille_dots_1346">IBUS_KEY_braille_dots_1346</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2346" title="IBUS_KEY_braille_dots_2346">IBUS_KEY_braille_dots_2346</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12346" title="IBUS_KEY_braille_dots_12346">IBUS_KEY_braille_dots_12346</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-56" title="IBUS_KEY_braille_dots_56">IBUS_KEY_braille_dots_56</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-156" title="IBUS_KEY_braille_dots_156">IBUS_KEY_braille_dots_156</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-256" title="IBUS_KEY_braille_dots_256">IBUS_KEY_braille_dots_256</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1256" title="IBUS_KEY_braille_dots_1256">IBUS_KEY_braille_dots_1256</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-356" title="IBUS_KEY_braille_dots_356">IBUS_KEY_braille_dots_356</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1356" title="IBUS_KEY_braille_dots_1356">IBUS_KEY_braille_dots_1356</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2356" title="IBUS_KEY_braille_dots_2356">IBUS_KEY_braille_dots_2356</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12356" title="IBUS_KEY_braille_dots_12356">IBUS_KEY_braille_dots_12356</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-456" title="IBUS_KEY_braille_dots_456">IBUS_KEY_braille_dots_456</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1456" title="IBUS_KEY_braille_dots_1456">IBUS_KEY_braille_dots_1456</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2456" title="IBUS_KEY_braille_dots_2456">IBUS_KEY_braille_dots_2456</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12456" title="IBUS_KEY_braille_dots_12456">IBUS_KEY_braille_dots_12456</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3456" title="IBUS_KEY_braille_dots_3456">IBUS_KEY_braille_dots_3456</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13456" title="IBUS_KEY_braille_dots_13456">IBUS_KEY_braille_dots_13456</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23456" title="IBUS_KEY_braille_dots_23456">IBUS_KEY_braille_dots_23456</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123456" title="IBUS_KEY_braille_dots_123456">IBUS_KEY_braille_dots_123456</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-7" title="IBUS_KEY_braille_dots_7">IBUS_KEY_braille_dots_7</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-17" title="IBUS_KEY_braille_dots_17">IBUS_KEY_braille_dots_17</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-27" title="IBUS_KEY_braille_dots_27">IBUS_KEY_braille_dots_27</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-127" title="IBUS_KEY_braille_dots_127">IBUS_KEY_braille_dots_127</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-37" title="IBUS_KEY_braille_dots_37">IBUS_KEY_braille_dots_37</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-137" title="IBUS_KEY_braille_dots_137">IBUS_KEY_braille_dots_137</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-237" title="IBUS_KEY_braille_dots_237">IBUS_KEY_braille_dots_237</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1237" title="IBUS_KEY_braille_dots_1237">IBUS_KEY_braille_dots_1237</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-47" title="IBUS_KEY_braille_dots_47">IBUS_KEY_braille_dots_47</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-147" title="IBUS_KEY_braille_dots_147">IBUS_KEY_braille_dots_147</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-247" title="IBUS_KEY_braille_dots_247">IBUS_KEY_braille_dots_247</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1247" title="IBUS_KEY_braille_dots_1247">IBUS_KEY_braille_dots_1247</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-347" title="IBUS_KEY_braille_dots_347">IBUS_KEY_braille_dots_347</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1347" title="IBUS_KEY_braille_dots_1347">IBUS_KEY_braille_dots_1347</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2347" title="IBUS_KEY_braille_dots_2347">IBUS_KEY_braille_dots_2347</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12347" title="IBUS_KEY_braille_dots_12347">IBUS_KEY_braille_dots_12347</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-57" title="IBUS_KEY_braille_dots_57">IBUS_KEY_braille_dots_57</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-157" title="IBUS_KEY_braille_dots_157">IBUS_KEY_braille_dots_157</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-257" title="IBUS_KEY_braille_dots_257">IBUS_KEY_braille_dots_257</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1257" title="IBUS_KEY_braille_dots_1257">IBUS_KEY_braille_dots_1257</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-357" title="IBUS_KEY_braille_dots_357">IBUS_KEY_braille_dots_357</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1357" title="IBUS_KEY_braille_dots_1357">IBUS_KEY_braille_dots_1357</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2357" title="IBUS_KEY_braille_dots_2357">IBUS_KEY_braille_dots_2357</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12357" title="IBUS_KEY_braille_dots_12357">IBUS_KEY_braille_dots_12357</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-457" title="IBUS_KEY_braille_dots_457">IBUS_KEY_braille_dots_457</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1457" title="IBUS_KEY_braille_dots_1457">IBUS_KEY_braille_dots_1457</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2457" title="IBUS_KEY_braille_dots_2457">IBUS_KEY_braille_dots_2457</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12457" title="IBUS_KEY_braille_dots_12457">IBUS_KEY_braille_dots_12457</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3457" title="IBUS_KEY_braille_dots_3457">IBUS_KEY_braille_dots_3457</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13457" title="IBUS_KEY_braille_dots_13457">IBUS_KEY_braille_dots_13457</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23457" title="IBUS_KEY_braille_dots_23457">IBUS_KEY_braille_dots_23457</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123457" title="IBUS_KEY_braille_dots_123457">IBUS_KEY_braille_dots_123457</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-67" title="IBUS_KEY_braille_dots_67">IBUS_KEY_braille_dots_67</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-167" title="IBUS_KEY_braille_dots_167">IBUS_KEY_braille_dots_167</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-267" title="IBUS_KEY_braille_dots_267">IBUS_KEY_braille_dots_267</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1267" title="IBUS_KEY_braille_dots_1267">IBUS_KEY_braille_dots_1267</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-367" title="IBUS_KEY_braille_dots_367">IBUS_KEY_braille_dots_367</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1367" title="IBUS_KEY_braille_dots_1367">IBUS_KEY_braille_dots_1367</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2367" title="IBUS_KEY_braille_dots_2367">IBUS_KEY_braille_dots_2367</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12367" title="IBUS_KEY_braille_dots_12367">IBUS_KEY_braille_dots_12367</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-467" title="IBUS_KEY_braille_dots_467">IBUS_KEY_braille_dots_467</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1467" title="IBUS_KEY_braille_dots_1467">IBUS_KEY_braille_dots_1467</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2467" title="IBUS_KEY_braille_dots_2467">IBUS_KEY_braille_dots_2467</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12467" title="IBUS_KEY_braille_dots_12467">IBUS_KEY_braille_dots_12467</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3467" title="IBUS_KEY_braille_dots_3467">IBUS_KEY_braille_dots_3467</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13467" title="IBUS_KEY_braille_dots_13467">IBUS_KEY_braille_dots_13467</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23467" title="IBUS_KEY_braille_dots_23467">IBUS_KEY_braille_dots_23467</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123467" title="IBUS_KEY_braille_dots_123467">IBUS_KEY_braille_dots_123467</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-567" title="IBUS_KEY_braille_dots_567">IBUS_KEY_braille_dots_567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1567" title="IBUS_KEY_braille_dots_1567">IBUS_KEY_braille_dots_1567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2567" title="IBUS_KEY_braille_dots_2567">IBUS_KEY_braille_dots_2567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12567" title="IBUS_KEY_braille_dots_12567">IBUS_KEY_braille_dots_12567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3567" title="IBUS_KEY_braille_dots_3567">IBUS_KEY_braille_dots_3567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13567" title="IBUS_KEY_braille_dots_13567">IBUS_KEY_braille_dots_13567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23567" title="IBUS_KEY_braille_dots_23567">IBUS_KEY_braille_dots_23567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123567" title="IBUS_KEY_braille_dots_123567">IBUS_KEY_braille_dots_123567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4567" title="IBUS_KEY_braille_dots_4567">IBUS_KEY_braille_dots_4567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14567" title="IBUS_KEY_braille_dots_14567">IBUS_KEY_braille_dots_14567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24567" title="IBUS_KEY_braille_dots_24567">IBUS_KEY_braille_dots_24567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124567" title="IBUS_KEY_braille_dots_124567">IBUS_KEY_braille_dots_124567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34567" title="IBUS_KEY_braille_dots_34567">IBUS_KEY_braille_dots_34567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134567" title="IBUS_KEY_braille_dots_134567">IBUS_KEY_braille_dots_134567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234567" title="IBUS_KEY_braille_dots_234567">IBUS_KEY_braille_dots_234567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234567" title="IBUS_KEY_braille_dots_1234567">IBUS_KEY_braille_dots_1234567</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-8" title="IBUS_KEY_braille_dots_8">IBUS_KEY_braille_dots_8</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-18" title="IBUS_KEY_braille_dots_18">IBUS_KEY_braille_dots_18</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-28" title="IBUS_KEY_braille_dots_28">IBUS_KEY_braille_dots_28</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-128" title="IBUS_KEY_braille_dots_128">IBUS_KEY_braille_dots_128</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-38" title="IBUS_KEY_braille_dots_38">IBUS_KEY_braille_dots_38</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-138" title="IBUS_KEY_braille_dots_138">IBUS_KEY_braille_dots_138</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-238" title="IBUS_KEY_braille_dots_238">IBUS_KEY_braille_dots_238</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1238" title="IBUS_KEY_braille_dots_1238">IBUS_KEY_braille_dots_1238</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-48" title="IBUS_KEY_braille_dots_48">IBUS_KEY_braille_dots_48</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-148" title="IBUS_KEY_braille_dots_148">IBUS_KEY_braille_dots_148</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-248" title="IBUS_KEY_braille_dots_248">IBUS_KEY_braille_dots_248</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1248" title="IBUS_KEY_braille_dots_1248">IBUS_KEY_braille_dots_1248</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-348" title="IBUS_KEY_braille_dots_348">IBUS_KEY_braille_dots_348</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1348" title="IBUS_KEY_braille_dots_1348">IBUS_KEY_braille_dots_1348</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2348" title="IBUS_KEY_braille_dots_2348">IBUS_KEY_braille_dots_2348</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12348" title="IBUS_KEY_braille_dots_12348">IBUS_KEY_braille_dots_12348</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-58" title="IBUS_KEY_braille_dots_58">IBUS_KEY_braille_dots_58</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-158" title="IBUS_KEY_braille_dots_158">IBUS_KEY_braille_dots_158</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-258" title="IBUS_KEY_braille_dots_258">IBUS_KEY_braille_dots_258</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1258" title="IBUS_KEY_braille_dots_1258">IBUS_KEY_braille_dots_1258</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-358" title="IBUS_KEY_braille_dots_358">IBUS_KEY_braille_dots_358</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1358" title="IBUS_KEY_braille_dots_1358">IBUS_KEY_braille_dots_1358</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2358" title="IBUS_KEY_braille_dots_2358">IBUS_KEY_braille_dots_2358</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12358" title="IBUS_KEY_braille_dots_12358">IBUS_KEY_braille_dots_12358</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-458" title="IBUS_KEY_braille_dots_458">IBUS_KEY_braille_dots_458</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1458" title="IBUS_KEY_braille_dots_1458">IBUS_KEY_braille_dots_1458</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2458" title="IBUS_KEY_braille_dots_2458">IBUS_KEY_braille_dots_2458</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12458" title="IBUS_KEY_braille_dots_12458">IBUS_KEY_braille_dots_12458</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3458" title="IBUS_KEY_braille_dots_3458">IBUS_KEY_braille_dots_3458</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13458" title="IBUS_KEY_braille_dots_13458">IBUS_KEY_braille_dots_13458</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23458" title="IBUS_KEY_braille_dots_23458">IBUS_KEY_braille_dots_23458</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123458" title="IBUS_KEY_braille_dots_123458">IBUS_KEY_braille_dots_123458</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-68" title="IBUS_KEY_braille_dots_68">IBUS_KEY_braille_dots_68</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-168" title="IBUS_KEY_braille_dots_168">IBUS_KEY_braille_dots_168</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-268" title="IBUS_KEY_braille_dots_268">IBUS_KEY_braille_dots_268</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1268" title="IBUS_KEY_braille_dots_1268">IBUS_KEY_braille_dots_1268</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-368" title="IBUS_KEY_braille_dots_368">IBUS_KEY_braille_dots_368</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1368" title="IBUS_KEY_braille_dots_1368">IBUS_KEY_braille_dots_1368</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2368" title="IBUS_KEY_braille_dots_2368">IBUS_KEY_braille_dots_2368</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12368" title="IBUS_KEY_braille_dots_12368">IBUS_KEY_braille_dots_12368</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-468" title="IBUS_KEY_braille_dots_468">IBUS_KEY_braille_dots_468</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1468" title="IBUS_KEY_braille_dots_1468">IBUS_KEY_braille_dots_1468</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2468" title="IBUS_KEY_braille_dots_2468">IBUS_KEY_braille_dots_2468</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12468" title="IBUS_KEY_braille_dots_12468">IBUS_KEY_braille_dots_12468</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3468" title="IBUS_KEY_braille_dots_3468">IBUS_KEY_braille_dots_3468</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13468" title="IBUS_KEY_braille_dots_13468">IBUS_KEY_braille_dots_13468</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23468" title="IBUS_KEY_braille_dots_23468">IBUS_KEY_braille_dots_23468</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123468" title="IBUS_KEY_braille_dots_123468">IBUS_KEY_braille_dots_123468</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-568" title="IBUS_KEY_braille_dots_568">IBUS_KEY_braille_dots_568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1568" title="IBUS_KEY_braille_dots_1568">IBUS_KEY_braille_dots_1568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2568" title="IBUS_KEY_braille_dots_2568">IBUS_KEY_braille_dots_2568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12568" title="IBUS_KEY_braille_dots_12568">IBUS_KEY_braille_dots_12568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3568" title="IBUS_KEY_braille_dots_3568">IBUS_KEY_braille_dots_3568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13568" title="IBUS_KEY_braille_dots_13568">IBUS_KEY_braille_dots_13568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23568" title="IBUS_KEY_braille_dots_23568">IBUS_KEY_braille_dots_23568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123568" title="IBUS_KEY_braille_dots_123568">IBUS_KEY_braille_dots_123568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4568" title="IBUS_KEY_braille_dots_4568">IBUS_KEY_braille_dots_4568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14568" title="IBUS_KEY_braille_dots_14568">IBUS_KEY_braille_dots_14568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24568" title="IBUS_KEY_braille_dots_24568">IBUS_KEY_braille_dots_24568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124568" title="IBUS_KEY_braille_dots_124568">IBUS_KEY_braille_dots_124568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34568" title="IBUS_KEY_braille_dots_34568">IBUS_KEY_braille_dots_34568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134568" title="IBUS_KEY_braille_dots_134568">IBUS_KEY_braille_dots_134568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234568" title="IBUS_KEY_braille_dots_234568">IBUS_KEY_braille_dots_234568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234568" title="IBUS_KEY_braille_dots_1234568">IBUS_KEY_braille_dots_1234568</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-78" title="IBUS_KEY_braille_dots_78">IBUS_KEY_braille_dots_78</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-178" title="IBUS_KEY_braille_dots_178">IBUS_KEY_braille_dots_178</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-278" title="IBUS_KEY_braille_dots_278">IBUS_KEY_braille_dots_278</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1278" title="IBUS_KEY_braille_dots_1278">IBUS_KEY_braille_dots_1278</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-378" title="IBUS_KEY_braille_dots_378">IBUS_KEY_braille_dots_378</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1378" title="IBUS_KEY_braille_dots_1378">IBUS_KEY_braille_dots_1378</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2378" title="IBUS_KEY_braille_dots_2378">IBUS_KEY_braille_dots_2378</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12378" title="IBUS_KEY_braille_dots_12378">IBUS_KEY_braille_dots_12378</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-478" title="IBUS_KEY_braille_dots_478">IBUS_KEY_braille_dots_478</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1478" title="IBUS_KEY_braille_dots_1478">IBUS_KEY_braille_dots_1478</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2478" title="IBUS_KEY_braille_dots_2478">IBUS_KEY_braille_dots_2478</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12478" title="IBUS_KEY_braille_dots_12478">IBUS_KEY_braille_dots_12478</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3478" title="IBUS_KEY_braille_dots_3478">IBUS_KEY_braille_dots_3478</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13478" title="IBUS_KEY_braille_dots_13478">IBUS_KEY_braille_dots_13478</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23478" title="IBUS_KEY_braille_dots_23478">IBUS_KEY_braille_dots_23478</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123478" title="IBUS_KEY_braille_dots_123478">IBUS_KEY_braille_dots_123478</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-578" title="IBUS_KEY_braille_dots_578">IBUS_KEY_braille_dots_578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1578" title="IBUS_KEY_braille_dots_1578">IBUS_KEY_braille_dots_1578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2578" title="IBUS_KEY_braille_dots_2578">IBUS_KEY_braille_dots_2578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12578" title="IBUS_KEY_braille_dots_12578">IBUS_KEY_braille_dots_12578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3578" title="IBUS_KEY_braille_dots_3578">IBUS_KEY_braille_dots_3578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13578" title="IBUS_KEY_braille_dots_13578">IBUS_KEY_braille_dots_13578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23578" title="IBUS_KEY_braille_dots_23578">IBUS_KEY_braille_dots_23578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123578" title="IBUS_KEY_braille_dots_123578">IBUS_KEY_braille_dots_123578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4578" title="IBUS_KEY_braille_dots_4578">IBUS_KEY_braille_dots_4578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14578" title="IBUS_KEY_braille_dots_14578">IBUS_KEY_braille_dots_14578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24578" title="IBUS_KEY_braille_dots_24578">IBUS_KEY_braille_dots_24578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124578" title="IBUS_KEY_braille_dots_124578">IBUS_KEY_braille_dots_124578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34578" title="IBUS_KEY_braille_dots_34578">IBUS_KEY_braille_dots_34578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134578" title="IBUS_KEY_braille_dots_134578">IBUS_KEY_braille_dots_134578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234578" title="IBUS_KEY_braille_dots_234578">IBUS_KEY_braille_dots_234578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234578" title="IBUS_KEY_braille_dots_1234578">IBUS_KEY_braille_dots_1234578</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-678" title="IBUS_KEY_braille_dots_678">IBUS_KEY_braille_dots_678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1678" title="IBUS_KEY_braille_dots_1678">IBUS_KEY_braille_dots_1678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2678" title="IBUS_KEY_braille_dots_2678">IBUS_KEY_braille_dots_2678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12678" title="IBUS_KEY_braille_dots_12678">IBUS_KEY_braille_dots_12678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3678" title="IBUS_KEY_braille_dots_3678">IBUS_KEY_braille_dots_3678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13678" title="IBUS_KEY_braille_dots_13678">IBUS_KEY_braille_dots_13678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23678" title="IBUS_KEY_braille_dots_23678">IBUS_KEY_braille_dots_23678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123678" title="IBUS_KEY_braille_dots_123678">IBUS_KEY_braille_dots_123678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4678" title="IBUS_KEY_braille_dots_4678">IBUS_KEY_braille_dots_4678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14678" title="IBUS_KEY_braille_dots_14678">IBUS_KEY_braille_dots_14678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24678" title="IBUS_KEY_braille_dots_24678">IBUS_KEY_braille_dots_24678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124678" title="IBUS_KEY_braille_dots_124678">IBUS_KEY_braille_dots_124678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34678" title="IBUS_KEY_braille_dots_34678">IBUS_KEY_braille_dots_34678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134678" title="IBUS_KEY_braille_dots_134678">IBUS_KEY_braille_dots_134678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234678" title="IBUS_KEY_braille_dots_234678">IBUS_KEY_braille_dots_234678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234678" title="IBUS_KEY_braille_dots_1234678">IBUS_KEY_braille_dots_1234678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-5678" title="IBUS_KEY_braille_dots_5678">IBUS_KEY_braille_dots_5678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-15678" title="IBUS_KEY_braille_dots_15678">IBUS_KEY_braille_dots_15678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-25678" title="IBUS_KEY_braille_dots_25678">IBUS_KEY_braille_dots_25678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-125678" title="IBUS_KEY_braille_dots_125678">IBUS_KEY_braille_dots_125678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-35678" title="IBUS_KEY_braille_dots_35678">IBUS_KEY_braille_dots_35678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-135678" title="IBUS_KEY_braille_dots_135678">IBUS_KEY_braille_dots_135678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-235678" title="IBUS_KEY_braille_dots_235678">IBUS_KEY_braille_dots_235678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1235678" title="IBUS_KEY_braille_dots_1235678">IBUS_KEY_braille_dots_1235678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-45678" title="IBUS_KEY_braille_dots_45678">IBUS_KEY_braille_dots_45678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-145678" title="IBUS_KEY_braille_dots_145678">IBUS_KEY_braille_dots_145678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-245678" title="IBUS_KEY_braille_dots_245678">IBUS_KEY_braille_dots_245678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1245678" title="IBUS_KEY_braille_dots_1245678">IBUS_KEY_braille_dots_1245678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-345678" title="IBUS_KEY_braille_dots_345678">IBUS_KEY_braille_dots_345678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1345678" title="IBUS_KEY_braille_dots_1345678">IBUS_KEY_braille_dots_1345678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2345678" title="IBUS_KEY_braille_dots_2345678">IBUS_KEY_braille_dots_2345678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12345678" title="IBUS_KEY_braille_dots_12345678">IBUS_KEY_braille_dots_12345678</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ng" title="IBUS_KEY_Sinh_ng">IBUS_KEY_Sinh_ng</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-h2" title="IBUS_KEY_Sinh_h2">IBUS_KEY_Sinh_h2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-a" title="IBUS_KEY_Sinh_a">IBUS_KEY_Sinh_a</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aa" title="IBUS_KEY_Sinh_aa">IBUS_KEY_Sinh_aa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ae" title="IBUS_KEY_Sinh_ae">IBUS_KEY_Sinh_ae</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aee" title="IBUS_KEY_Sinh_aee">IBUS_KEY_Sinh_aee</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-i" title="IBUS_KEY_Sinh_i">IBUS_KEY_Sinh_i</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ii" title="IBUS_KEY_Sinh_ii">IBUS_KEY_Sinh_ii</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-u" title="IBUS_KEY_Sinh_u">IBUS_KEY_Sinh_u</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-uu" title="IBUS_KEY_Sinh_uu">IBUS_KEY_Sinh_uu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ri" title="IBUS_KEY_Sinh_ri">IBUS_KEY_Sinh_ri</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-rii" title="IBUS_KEY_Sinh_rii">IBUS_KEY_Sinh_rii</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lu" title="IBUS_KEY_Sinh_lu">IBUS_KEY_Sinh_lu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-luu" title="IBUS_KEY_Sinh_luu">IBUS_KEY_Sinh_luu</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-e" title="IBUS_KEY_Sinh_e">IBUS_KEY_Sinh_e</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ee" title="IBUS_KEY_Sinh_ee">IBUS_KEY_Sinh_ee</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ai" title="IBUS_KEY_Sinh_ai">IBUS_KEY_Sinh_ai</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-o" title="IBUS_KEY_Sinh_o">IBUS_KEY_Sinh_o</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-oo" title="IBUS_KEY_Sinh_oo">IBUS_KEY_Sinh_oo</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-au" title="IBUS_KEY_Sinh_au">IBUS_KEY_Sinh_au</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ka" title="IBUS_KEY_Sinh_ka">IBUS_KEY_Sinh_ka</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-kha" title="IBUS_KEY_Sinh_kha">IBUS_KEY_Sinh_kha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ga" title="IBUS_KEY_Sinh_ga">IBUS_KEY_Sinh_ga</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-gha" title="IBUS_KEY_Sinh_gha">IBUS_KEY_Sinh_gha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ng2" title="IBUS_KEY_Sinh_ng2">IBUS_KEY_Sinh_ng2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nga" title="IBUS_KEY_Sinh_nga">IBUS_KEY_Sinh_nga</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ca" title="IBUS_KEY_Sinh_ca">IBUS_KEY_Sinh_ca</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-cha" title="IBUS_KEY_Sinh_cha">IBUS_KEY_Sinh_cha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ja" title="IBUS_KEY_Sinh_ja">IBUS_KEY_Sinh_ja</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-jha" title="IBUS_KEY_Sinh_jha">IBUS_KEY_Sinh_jha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nya" title="IBUS_KEY_Sinh_nya">IBUS_KEY_Sinh_nya</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-jnya" title="IBUS_KEY_Sinh_jnya">IBUS_KEY_Sinh_jnya</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nja" title="IBUS_KEY_Sinh_nja">IBUS_KEY_Sinh_nja</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-tta" title="IBUS_KEY_Sinh_tta">IBUS_KEY_Sinh_tta</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ttha" title="IBUS_KEY_Sinh_ttha">IBUS_KEY_Sinh_ttha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dda" title="IBUS_KEY_Sinh_dda">IBUS_KEY_Sinh_dda</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ddha" title="IBUS_KEY_Sinh_ddha">IBUS_KEY_Sinh_ddha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nna" title="IBUS_KEY_Sinh_nna">IBUS_KEY_Sinh_nna</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ndda" title="IBUS_KEY_Sinh_ndda">IBUS_KEY_Sinh_ndda</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-tha" title="IBUS_KEY_Sinh_tha">IBUS_KEY_Sinh_tha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-thha" title="IBUS_KEY_Sinh_thha">IBUS_KEY_Sinh_thha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dha" title="IBUS_KEY_Sinh_dha">IBUS_KEY_Sinh_dha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dhha" title="IBUS_KEY_Sinh_dhha">IBUS_KEY_Sinh_dhha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-na" title="IBUS_KEY_Sinh_na">IBUS_KEY_Sinh_na</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ndha" title="IBUS_KEY_Sinh_ndha">IBUS_KEY_Sinh_ndha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-pa" title="IBUS_KEY_Sinh_pa">IBUS_KEY_Sinh_pa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-pha" title="IBUS_KEY_Sinh_pha">IBUS_KEY_Sinh_pha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ba" title="IBUS_KEY_Sinh_ba">IBUS_KEY_Sinh_ba</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-bha" title="IBUS_KEY_Sinh_bha">IBUS_KEY_Sinh_bha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ma" title="IBUS_KEY_Sinh_ma">IBUS_KEY_Sinh_ma</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-mba" title="IBUS_KEY_Sinh_mba">IBUS_KEY_Sinh_mba</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ya" title="IBUS_KEY_Sinh_ya">IBUS_KEY_Sinh_ya</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ra" title="IBUS_KEY_Sinh_ra">IBUS_KEY_Sinh_ra</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-la" title="IBUS_KEY_Sinh_la">IBUS_KEY_Sinh_la</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-va" title="IBUS_KEY_Sinh_va">IBUS_KEY_Sinh_va</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-sha" title="IBUS_KEY_Sinh_sha">IBUS_KEY_Sinh_sha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ssha" title="IBUS_KEY_Sinh_ssha">IBUS_KEY_Sinh_ssha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-sa" title="IBUS_KEY_Sinh_sa">IBUS_KEY_Sinh_sa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ha" title="IBUS_KEY_Sinh_ha">IBUS_KEY_Sinh_ha</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lla" title="IBUS_KEY_Sinh_lla">IBUS_KEY_Sinh_lla</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-fa" title="IBUS_KEY_Sinh_fa">IBUS_KEY_Sinh_fa</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-al" title="IBUS_KEY_Sinh_al">IBUS_KEY_Sinh_al</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aa2" title="IBUS_KEY_Sinh_aa2">IBUS_KEY_Sinh_aa2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ae2" title="IBUS_KEY_Sinh_ae2">IBUS_KEY_Sinh_ae2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aee2" title="IBUS_KEY_Sinh_aee2">IBUS_KEY_Sinh_aee2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-i2" title="IBUS_KEY_Sinh_i2">IBUS_KEY_Sinh_i2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ii2" title="IBUS_KEY_Sinh_ii2">IBUS_KEY_Sinh_ii2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-u2" title="IBUS_KEY_Sinh_u2">IBUS_KEY_Sinh_u2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-uu2" title="IBUS_KEY_Sinh_uu2">IBUS_KEY_Sinh_uu2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ru2" title="IBUS_KEY_Sinh_ru2">IBUS_KEY_Sinh_ru2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-e2" title="IBUS_KEY_Sinh_e2">IBUS_KEY_Sinh_e2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ee2" title="IBUS_KEY_Sinh_ee2">IBUS_KEY_Sinh_ee2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ai2" title="IBUS_KEY_Sinh_ai2">IBUS_KEY_Sinh_ai2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-o2" title="IBUS_KEY_Sinh_o2">IBUS_KEY_Sinh_o2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-oo2" title="IBUS_KEY_Sinh_oo2">IBUS_KEY_Sinh_oo2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-au2" title="IBUS_KEY_Sinh_au2">IBUS_KEY_Sinh_au2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lu2" title="IBUS_KEY_Sinh_lu2">IBUS_KEY_Sinh_lu2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ruu2" title="IBUS_KEY_Sinh_ruu2">IBUS_KEY_Sinh_ruu2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-luu2" title="IBUS_KEY_Sinh_luu2">IBUS_KEY_Sinh_luu2</a>
+#define             <a class="link" href="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-kunddaliya" title="IBUS_KEY_Sinh_kunddaliya">IBUS_KEY_Sinh_kunddaliya</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-IBusKeysyms.description"></a><h2>Description</h2>
+<p>
+This section defines the key symbols (keysym) used in IBus.
+Those keysym data is converted from keysymdef.h in
+FreeDesktop.
+</p>
+<p>
+Most of the key symbols are not explicit documented,
+because they are self-explaining.
+</p>
+<p>
+<em class="parameter"><code>see_also</code></em>: <a class="link" href="IBusKeymap.html" title="IBusKeymap"><span class="type">IBusKeymap</span></a>, <a class="link" href="IBusHotkeyProfile.html" title="IBusHotkeyProfile"><span class="type">IBusHotkeyProfile</span></a>
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-IBusKeysyms.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBUS-KEY-VoidSymbol"></a><h3>IBUS_KEY_VoidSymbol</h3>
+<pre class="programlisting">#define IBUS_KEY_VoidSymbol 0xffffff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-BackSpace"></a><h3>IBUS_KEY_BackSpace</h3>
+<pre class="programlisting">#define IBUS_KEY_BackSpace 0xff08
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Tab"></a><h3>IBUS_KEY_Tab</h3>
+<pre class="programlisting">#define IBUS_KEY_Tab 0xff09
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Linefeed"></a><h3>IBUS_KEY_Linefeed</h3>
+<pre class="programlisting">#define IBUS_KEY_Linefeed 0xff0a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Clear"></a><h3>IBUS_KEY_Clear</h3>
+<pre class="programlisting">#define IBUS_KEY_Clear 0xff0b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Return"></a><h3>IBUS_KEY_Return</h3>
+<pre class="programlisting">#define IBUS_KEY_Return 0xff0d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pause"></a><h3>IBUS_KEY_Pause</h3>
+<pre class="programlisting">#define IBUS_KEY_Pause 0xff13
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Scroll-Lock"></a><h3>IBUS_KEY_Scroll_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_Scroll_Lock 0xff14
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sys-Req"></a><h3>IBUS_KEY_Sys_Req</h3>
+<pre class="programlisting">#define IBUS_KEY_Sys_Req 0xff15
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Escape"></a><h3>IBUS_KEY_Escape</h3>
+<pre class="programlisting">#define IBUS_KEY_Escape 0xff1b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Delete"></a><h3>IBUS_KEY_Delete</h3>
+<pre class="programlisting">#define IBUS_KEY_Delete 0xffff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Multi-key"></a><h3>IBUS_KEY_Multi_key</h3>
+<pre class="programlisting">#define IBUS_KEY_Multi_key 0xff20
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Codeinput"></a><h3>IBUS_KEY_Codeinput</h3>
+<pre class="programlisting">#define IBUS_KEY_Codeinput 0xff37
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-SingleCandidate"></a><h3>IBUS_KEY_SingleCandidate</h3>
+<pre class="programlisting">#define IBUS_KEY_SingleCandidate 0xff3c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-MultipleCandidate"></a><h3>IBUS_KEY_MultipleCandidate</h3>
+<pre class="programlisting">#define IBUS_KEY_MultipleCandidate 0xff3d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-PreviousCandidate"></a><h3>IBUS_KEY_PreviousCandidate</h3>
+<pre class="programlisting">#define IBUS_KEY_PreviousCandidate 0xff3e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Kanji"></a><h3>IBUS_KEY_Kanji</h3>
+<pre class="programlisting">#define IBUS_KEY_Kanji 0xff21
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Muhenkan"></a><h3>IBUS_KEY_Muhenkan</h3>
+<pre class="programlisting">#define IBUS_KEY_Muhenkan 0xff22
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Henkan-Mode"></a><h3>IBUS_KEY_Henkan_Mode</h3>
+<pre class="programlisting">#define IBUS_KEY_Henkan_Mode 0xff23
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Henkan"></a><h3>IBUS_KEY_Henkan</h3>
+<pre class="programlisting">#define IBUS_KEY_Henkan 0xff23
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Romaji"></a><h3>IBUS_KEY_Romaji</h3>
+<pre class="programlisting">#define IBUS_KEY_Romaji 0xff24
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hiragana"></a><h3>IBUS_KEY_Hiragana</h3>
+<pre class="programlisting">#define IBUS_KEY_Hiragana 0xff25
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Katakana"></a><h3>IBUS_KEY_Katakana</h3>
+<pre class="programlisting">#define IBUS_KEY_Katakana 0xff26
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hiragana-Katakana"></a><h3>IBUS_KEY_Hiragana_Katakana</h3>
+<pre class="programlisting">#define IBUS_KEY_Hiragana_Katakana 0xff27
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Zenkaku"></a><h3>IBUS_KEY_Zenkaku</h3>
+<pre class="programlisting">#define IBUS_KEY_Zenkaku 0xff28
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hankaku"></a><h3>IBUS_KEY_Hankaku</h3>
+<pre class="programlisting">#define IBUS_KEY_Hankaku 0xff29
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Zenkaku-Hankaku"></a><h3>IBUS_KEY_Zenkaku_Hankaku</h3>
+<pre class="programlisting">#define IBUS_KEY_Zenkaku_Hankaku 0xff2a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Touroku"></a><h3>IBUS_KEY_Touroku</h3>
+<pre class="programlisting">#define IBUS_KEY_Touroku 0xff2b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Massyo"></a><h3>IBUS_KEY_Massyo</h3>
+<pre class="programlisting">#define IBUS_KEY_Massyo 0xff2c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Kana-Lock"></a><h3>IBUS_KEY_Kana_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_Kana_Lock 0xff2d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Kana-Shift"></a><h3>IBUS_KEY_Kana_Shift</h3>
+<pre class="programlisting">#define IBUS_KEY_Kana_Shift 0xff2e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Eisu-Shift"></a><h3>IBUS_KEY_Eisu_Shift</h3>
+<pre class="programlisting">#define IBUS_KEY_Eisu_Shift 0xff2f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Eisu-toggle"></a><h3>IBUS_KEY_Eisu_toggle</h3>
+<pre class="programlisting">#define IBUS_KEY_Eisu_toggle 0xff30
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Kanji-Bangou"></a><h3>IBUS_KEY_Kanji_Bangou</h3>
+<pre class="programlisting">#define IBUS_KEY_Kanji_Bangou 0xff37
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Zen-Koho"></a><h3>IBUS_KEY_Zen_Koho</h3>
+<pre class="programlisting">#define IBUS_KEY_Zen_Koho 0xff3d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Mae-Koho"></a><h3>IBUS_KEY_Mae_Koho</h3>
+<pre class="programlisting">#define IBUS_KEY_Mae_Koho 0xff3e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Home"></a><h3>IBUS_KEY_Home</h3>
+<pre class="programlisting">#define IBUS_KEY_Home 0xff50
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Left"></a><h3>IBUS_KEY_Left</h3>
+<pre class="programlisting">#define IBUS_KEY_Left 0xff51
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Up"></a><h3>IBUS_KEY_Up</h3>
+<pre class="programlisting">#define IBUS_KEY_Up 0xff52
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Right"></a><h3>IBUS_KEY_Right</h3>
+<pre class="programlisting">#define IBUS_KEY_Right 0xff53
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Down"></a><h3>IBUS_KEY_Down</h3>
+<pre class="programlisting">#define IBUS_KEY_Down 0xff54
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Prior"></a><h3>IBUS_KEY_Prior</h3>
+<pre class="programlisting">#define IBUS_KEY_Prior 0xff55
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Page-Up"></a><h3>IBUS_KEY_Page_Up</h3>
+<pre class="programlisting">#define IBUS_KEY_Page_Up 0xff55
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Next"></a><h3>IBUS_KEY_Next</h3>
+<pre class="programlisting">#define IBUS_KEY_Next 0xff56
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Page-Down"></a><h3>IBUS_KEY_Page_Down</h3>
+<pre class="programlisting">#define IBUS_KEY_Page_Down 0xff56
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-End"></a><h3>IBUS_KEY_End</h3>
+<pre class="programlisting">#define IBUS_KEY_End 0xff57
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Begin"></a><h3>IBUS_KEY_Begin</h3>
+<pre class="programlisting">#define IBUS_KEY_Begin 0xff58
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Select"></a><h3>IBUS_KEY_Select</h3>
+<pre class="programlisting">#define IBUS_KEY_Select 0xff60
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Print"></a><h3>IBUS_KEY_Print</h3>
+<pre class="programlisting">#define IBUS_KEY_Print 0xff61
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Execute"></a><h3>IBUS_KEY_Execute</h3>
+<pre class="programlisting">#define IBUS_KEY_Execute 0xff62
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Insert"></a><h3>IBUS_KEY_Insert</h3>
+<pre class="programlisting">#define IBUS_KEY_Insert 0xff63
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Undo"></a><h3>IBUS_KEY_Undo</h3>
+<pre class="programlisting">#define IBUS_KEY_Undo 0xff65
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Redo"></a><h3>IBUS_KEY_Redo</h3>
+<pre class="programlisting">#define IBUS_KEY_Redo 0xff66
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Menu"></a><h3>IBUS_KEY_Menu</h3>
+<pre class="programlisting">#define IBUS_KEY_Menu 0xff67
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Find"></a><h3>IBUS_KEY_Find</h3>
+<pre class="programlisting">#define IBUS_KEY_Find 0xff68
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cancel"></a><h3>IBUS_KEY_Cancel</h3>
+<pre class="programlisting">#define IBUS_KEY_Cancel 0xff69
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Help"></a><h3>IBUS_KEY_Help</h3>
+<pre class="programlisting">#define IBUS_KEY_Help 0xff6a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Break"></a><h3>IBUS_KEY_Break</h3>
+<pre class="programlisting">#define IBUS_KEY_Break 0xff6b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Mode-switch"></a><h3>IBUS_KEY_Mode_switch</h3>
+<pre class="programlisting">#define IBUS_KEY_Mode_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-script-switch"></a><h3>IBUS_KEY_script_switch</h3>
+<pre class="programlisting">#define IBUS_KEY_script_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Num-Lock"></a><h3>IBUS_KEY_Num_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_Num_Lock 0xff7f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Space"></a><h3>IBUS_KEY_KP_Space</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Space 0xff80
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Tab"></a><h3>IBUS_KEY_KP_Tab</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Tab 0xff89
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Enter"></a><h3>IBUS_KEY_KP_Enter</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Enter 0xff8d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-F1:CAPS"></a><h3>IBUS_KEY_KP_F1</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_F1 0xff91
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-F2:CAPS"></a><h3>IBUS_KEY_KP_F2</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_F2 0xff92
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-F3:CAPS"></a><h3>IBUS_KEY_KP_F3</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_F3 0xff93
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-F4:CAPS"></a><h3>IBUS_KEY_KP_F4</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_F4 0xff94
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Home"></a><h3>IBUS_KEY_KP_Home</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Home 0xff95
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Left"></a><h3>IBUS_KEY_KP_Left</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Left 0xff96
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Up"></a><h3>IBUS_KEY_KP_Up</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Up 0xff97
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Right"></a><h3>IBUS_KEY_KP_Right</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Right 0xff98
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Down"></a><h3>IBUS_KEY_KP_Down</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Down 0xff99
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Prior"></a><h3>IBUS_KEY_KP_Prior</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Prior 0xff9a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Page-Up"></a><h3>IBUS_KEY_KP_Page_Up</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Page_Up 0xff9a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Next"></a><h3>IBUS_KEY_KP_Next</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Next 0xff9b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Page-Down"></a><h3>IBUS_KEY_KP_Page_Down</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Page_Down 0xff9b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-End"></a><h3>IBUS_KEY_KP_End</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_End 0xff9c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Begin"></a><h3>IBUS_KEY_KP_Begin</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Begin 0xff9d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Insert"></a><h3>IBUS_KEY_KP_Insert</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Insert 0xff9e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Delete"></a><h3>IBUS_KEY_KP_Delete</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Delete 0xff9f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Equal"></a><h3>IBUS_KEY_KP_Equal</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Equal 0xffbd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Multiply"></a><h3>IBUS_KEY_KP_Multiply</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Multiply 0xffaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Add"></a><h3>IBUS_KEY_KP_Add</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Add 0xffab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Separator"></a><h3>IBUS_KEY_KP_Separator</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Separator 0xffac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Subtract"></a><h3>IBUS_KEY_KP_Subtract</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Subtract 0xffad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Decimal"></a><h3>IBUS_KEY_KP_Decimal</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Decimal 0xffae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-Divide"></a><h3>IBUS_KEY_KP_Divide</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_Divide 0xffaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-0:CAPS"></a><h3>IBUS_KEY_KP_0</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_0 0xffb0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-1:CAPS"></a><h3>IBUS_KEY_KP_1</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_1 0xffb1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-2:CAPS"></a><h3>IBUS_KEY_KP_2</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_2 0xffb2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-3:CAPS"></a><h3>IBUS_KEY_KP_3</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_3 0xffb3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-4:CAPS"></a><h3>IBUS_KEY_KP_4</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_4 0xffb4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-5:CAPS"></a><h3>IBUS_KEY_KP_5</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_5 0xffb5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-6:CAPS"></a><h3>IBUS_KEY_KP_6</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_6 0xffb6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-7:CAPS"></a><h3>IBUS_KEY_KP_7</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_7 0xffb7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-8:CAPS"></a><h3>IBUS_KEY_KP_8</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_8 0xffb8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-KP-9:CAPS"></a><h3>IBUS_KEY_KP_9</h3>
+<pre class="programlisting">#define IBUS_KEY_KP_9 0xffb9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F1:CAPS"></a><h3>IBUS_KEY_F1</h3>
+<pre class="programlisting">#define IBUS_KEY_F1 0xffbe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F2:CAPS"></a><h3>IBUS_KEY_F2</h3>
+<pre class="programlisting">#define IBUS_KEY_F2 0xffbf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F3:CAPS"></a><h3>IBUS_KEY_F3</h3>
+<pre class="programlisting">#define IBUS_KEY_F3 0xffc0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F4:CAPS"></a><h3>IBUS_KEY_F4</h3>
+<pre class="programlisting">#define IBUS_KEY_F4 0xffc1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F5:CAPS"></a><h3>IBUS_KEY_F5</h3>
+<pre class="programlisting">#define IBUS_KEY_F5 0xffc2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F6:CAPS"></a><h3>IBUS_KEY_F6</h3>
+<pre class="programlisting">#define IBUS_KEY_F6 0xffc3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F7:CAPS"></a><h3>IBUS_KEY_F7</h3>
+<pre class="programlisting">#define IBUS_KEY_F7 0xffc4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F8:CAPS"></a><h3>IBUS_KEY_F8</h3>
+<pre class="programlisting">#define IBUS_KEY_F8 0xffc5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F9:CAPS"></a><h3>IBUS_KEY_F9</h3>
+<pre class="programlisting">#define IBUS_KEY_F9 0xffc6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F10:CAPS"></a><h3>IBUS_KEY_F10</h3>
+<pre class="programlisting">#define IBUS_KEY_F10 0xffc7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F11:CAPS"></a><h3>IBUS_KEY_F11</h3>
+<pre class="programlisting">#define IBUS_KEY_F11 0xffc8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L1:CAPS"></a><h3>IBUS_KEY_L1</h3>
+<pre class="programlisting">#define IBUS_KEY_L1 0xffc8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F12:CAPS"></a><h3>IBUS_KEY_F12</h3>
+<pre class="programlisting">#define IBUS_KEY_F12 0xffc9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L2:CAPS"></a><h3>IBUS_KEY_L2</h3>
+<pre class="programlisting">#define IBUS_KEY_L2 0xffc9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F13:CAPS"></a><h3>IBUS_KEY_F13</h3>
+<pre class="programlisting">#define IBUS_KEY_F13 0xffca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L3:CAPS"></a><h3>IBUS_KEY_L3</h3>
+<pre class="programlisting">#define IBUS_KEY_L3 0xffca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F14:CAPS"></a><h3>IBUS_KEY_F14</h3>
+<pre class="programlisting">#define IBUS_KEY_F14 0xffcb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L4:CAPS"></a><h3>IBUS_KEY_L4</h3>
+<pre class="programlisting">#define IBUS_KEY_L4 0xffcb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F15:CAPS"></a><h3>IBUS_KEY_F15</h3>
+<pre class="programlisting">#define IBUS_KEY_F15 0xffcc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L5:CAPS"></a><h3>IBUS_KEY_L5</h3>
+<pre class="programlisting">#define IBUS_KEY_L5 0xffcc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F16:CAPS"></a><h3>IBUS_KEY_F16</h3>
+<pre class="programlisting">#define IBUS_KEY_F16 0xffcd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L6:CAPS"></a><h3>IBUS_KEY_L6</h3>
+<pre class="programlisting">#define IBUS_KEY_L6 0xffcd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F17:CAPS"></a><h3>IBUS_KEY_F17</h3>
+<pre class="programlisting">#define IBUS_KEY_F17 0xffce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L7:CAPS"></a><h3>IBUS_KEY_L7</h3>
+<pre class="programlisting">#define IBUS_KEY_L7 0xffce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F18:CAPS"></a><h3>IBUS_KEY_F18</h3>
+<pre class="programlisting">#define IBUS_KEY_F18 0xffcf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L8:CAPS"></a><h3>IBUS_KEY_L8</h3>
+<pre class="programlisting">#define IBUS_KEY_L8 0xffcf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F19:CAPS"></a><h3>IBUS_KEY_F19</h3>
+<pre class="programlisting">#define IBUS_KEY_F19 0xffd0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L9:CAPS"></a><h3>IBUS_KEY_L9</h3>
+<pre class="programlisting">#define IBUS_KEY_L9 0xffd0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F20:CAPS"></a><h3>IBUS_KEY_F20</h3>
+<pre class="programlisting">#define IBUS_KEY_F20 0xffd1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L10:CAPS"></a><h3>IBUS_KEY_L10</h3>
+<pre class="programlisting">#define IBUS_KEY_L10 0xffd1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F21:CAPS"></a><h3>IBUS_KEY_F21</h3>
+<pre class="programlisting">#define IBUS_KEY_F21 0xffd2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R1:CAPS"></a><h3>IBUS_KEY_R1</h3>
+<pre class="programlisting">#define IBUS_KEY_R1 0xffd2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F22:CAPS"></a><h3>IBUS_KEY_F22</h3>
+<pre class="programlisting">#define IBUS_KEY_F22 0xffd3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R2:CAPS"></a><h3>IBUS_KEY_R2</h3>
+<pre class="programlisting">#define IBUS_KEY_R2 0xffd3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F23:CAPS"></a><h3>IBUS_KEY_F23</h3>
+<pre class="programlisting">#define IBUS_KEY_F23 0xffd4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R3:CAPS"></a><h3>IBUS_KEY_R3</h3>
+<pre class="programlisting">#define IBUS_KEY_R3 0xffd4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F24:CAPS"></a><h3>IBUS_KEY_F24</h3>
+<pre class="programlisting">#define IBUS_KEY_F24 0xffd5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R4:CAPS"></a><h3>IBUS_KEY_R4</h3>
+<pre class="programlisting">#define IBUS_KEY_R4 0xffd5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F25:CAPS"></a><h3>IBUS_KEY_F25</h3>
+<pre class="programlisting">#define IBUS_KEY_F25 0xffd6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R5:CAPS"></a><h3>IBUS_KEY_R5</h3>
+<pre class="programlisting">#define IBUS_KEY_R5 0xffd6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F26:CAPS"></a><h3>IBUS_KEY_F26</h3>
+<pre class="programlisting">#define IBUS_KEY_F26 0xffd7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R6:CAPS"></a><h3>IBUS_KEY_R6</h3>
+<pre class="programlisting">#define IBUS_KEY_R6 0xffd7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F27:CAPS"></a><h3>IBUS_KEY_F27</h3>
+<pre class="programlisting">#define IBUS_KEY_F27 0xffd8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R7:CAPS"></a><h3>IBUS_KEY_R7</h3>
+<pre class="programlisting">#define IBUS_KEY_R7 0xffd8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F28:CAPS"></a><h3>IBUS_KEY_F28</h3>
+<pre class="programlisting">#define IBUS_KEY_F28 0xffd9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R8:CAPS"></a><h3>IBUS_KEY_R8</h3>
+<pre class="programlisting">#define IBUS_KEY_R8 0xffd9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F29:CAPS"></a><h3>IBUS_KEY_F29</h3>
+<pre class="programlisting">#define IBUS_KEY_F29 0xffda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R9:CAPS"></a><h3>IBUS_KEY_R9</h3>
+<pre class="programlisting">#define IBUS_KEY_R9 0xffda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F30:CAPS"></a><h3>IBUS_KEY_F30</h3>
+<pre class="programlisting">#define IBUS_KEY_F30 0xffdb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R10:CAPS"></a><h3>IBUS_KEY_R10</h3>
+<pre class="programlisting">#define IBUS_KEY_R10 0xffdb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F31:CAPS"></a><h3>IBUS_KEY_F31</h3>
+<pre class="programlisting">#define IBUS_KEY_F31 0xffdc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R11:CAPS"></a><h3>IBUS_KEY_R11</h3>
+<pre class="programlisting">#define IBUS_KEY_R11 0xffdc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F32:CAPS"></a><h3>IBUS_KEY_F32</h3>
+<pre class="programlisting">#define IBUS_KEY_F32 0xffdd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R12:CAPS"></a><h3>IBUS_KEY_R12</h3>
+<pre class="programlisting">#define IBUS_KEY_R12 0xffdd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F33:CAPS"></a><h3>IBUS_KEY_F33</h3>
+<pre class="programlisting">#define IBUS_KEY_F33 0xffde
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R13:CAPS"></a><h3>IBUS_KEY_R13</h3>
+<pre class="programlisting">#define IBUS_KEY_R13 0xffde
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F34:CAPS"></a><h3>IBUS_KEY_F34</h3>
+<pre class="programlisting">#define IBUS_KEY_F34 0xffdf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R14:CAPS"></a><h3>IBUS_KEY_R14</h3>
+<pre class="programlisting">#define IBUS_KEY_R14 0xffdf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F35:CAPS"></a><h3>IBUS_KEY_F35</h3>
+<pre class="programlisting">#define IBUS_KEY_F35 0xffe0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R15:CAPS"></a><h3>IBUS_KEY_R15</h3>
+<pre class="programlisting">#define IBUS_KEY_R15 0xffe0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Shift-L"></a><h3>IBUS_KEY_Shift_L</h3>
+<pre class="programlisting">#define IBUS_KEY_Shift_L 0xffe1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Shift-R"></a><h3>IBUS_KEY_Shift_R</h3>
+<pre class="programlisting">#define IBUS_KEY_Shift_R 0xffe2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Control-L"></a><h3>IBUS_KEY_Control_L</h3>
+<pre class="programlisting">#define IBUS_KEY_Control_L 0xffe3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Control-R"></a><h3>IBUS_KEY_Control_R</h3>
+<pre class="programlisting">#define IBUS_KEY_Control_R 0xffe4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Caps-Lock"></a><h3>IBUS_KEY_Caps_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_Caps_Lock 0xffe5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Shift-Lock"></a><h3>IBUS_KEY_Shift_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_Shift_Lock 0xffe6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Meta-L"></a><h3>IBUS_KEY_Meta_L</h3>
+<pre class="programlisting">#define IBUS_KEY_Meta_L 0xffe7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Meta-R"></a><h3>IBUS_KEY_Meta_R</h3>
+<pre class="programlisting">#define IBUS_KEY_Meta_R 0xffe8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Alt-L"></a><h3>IBUS_KEY_Alt_L</h3>
+<pre class="programlisting">#define IBUS_KEY_Alt_L 0xffe9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Alt-R"></a><h3>IBUS_KEY_Alt_R</h3>
+<pre class="programlisting">#define IBUS_KEY_Alt_R 0xffea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Super-L"></a><h3>IBUS_KEY_Super_L</h3>
+<pre class="programlisting">#define IBUS_KEY_Super_L 0xffeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Super-R"></a><h3>IBUS_KEY_Super_R</h3>
+<pre class="programlisting">#define IBUS_KEY_Super_R 0xffec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hyper-L"></a><h3>IBUS_KEY_Hyper_L</h3>
+<pre class="programlisting">#define IBUS_KEY_Hyper_L 0xffed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hyper-R"></a><h3>IBUS_KEY_Hyper_R</h3>
+<pre class="programlisting">#define IBUS_KEY_Hyper_R 0xffee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Lock"></a><h3>IBUS_KEY_ISO_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Lock 0xfe01
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Level2-Latch"></a><h3>IBUS_KEY_ISO_Level2_Latch</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Level2_Latch 0xfe02
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Level3-Shift"></a><h3>IBUS_KEY_ISO_Level3_Shift</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Level3_Shift 0xfe03
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Level3-Latch"></a><h3>IBUS_KEY_ISO_Level3_Latch</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Level3_Latch 0xfe04
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Level3-Lock"></a><h3>IBUS_KEY_ISO_Level3_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Level3_Lock 0xfe05
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Level5-Shift"></a><h3>IBUS_KEY_ISO_Level5_Shift</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Level5_Shift 0xfe11
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Level5-Latch"></a><h3>IBUS_KEY_ISO_Level5_Latch</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Level5_Latch 0xfe12
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Level5-Lock"></a><h3>IBUS_KEY_ISO_Level5_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Level5_Lock 0xfe13
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Group-Shift"></a><h3>IBUS_KEY_ISO_Group_Shift</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Group_Shift 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Group-Latch"></a><h3>IBUS_KEY_ISO_Group_Latch</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Group_Latch 0xfe06
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Group-Lock"></a><h3>IBUS_KEY_ISO_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Group_Lock 0xfe07
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Next-Group"></a><h3>IBUS_KEY_ISO_Next_Group</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Next_Group 0xfe08
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Next-Group-Lock"></a><h3>IBUS_KEY_ISO_Next_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Next_Group_Lock 0xfe09
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Prev-Group"></a><h3>IBUS_KEY_ISO_Prev_Group</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Prev_Group 0xfe0a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Prev-Group-Lock"></a><h3>IBUS_KEY_ISO_Prev_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Prev_Group_Lock 0xfe0b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-First-Group"></a><h3>IBUS_KEY_ISO_First_Group</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_First_Group 0xfe0c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-First-Group-Lock"></a><h3>IBUS_KEY_ISO_First_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_First_Group_Lock 0xfe0d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Last-Group"></a><h3>IBUS_KEY_ISO_Last_Group</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Last_Group 0xfe0e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Last-Group-Lock"></a><h3>IBUS_KEY_ISO_Last_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Last_Group_Lock 0xfe0f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Left-Tab"></a><h3>IBUS_KEY_ISO_Left_Tab</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Left_Tab 0xfe20
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Move-Line-Up"></a><h3>IBUS_KEY_ISO_Move_Line_Up</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Move_Line_Up 0xfe21
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Move-Line-Down"></a><h3>IBUS_KEY_ISO_Move_Line_Down</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Move_Line_Down 0xfe22
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Partial-Line-Up"></a><h3>IBUS_KEY_ISO_Partial_Line_Up</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Partial_Line_Up 0xfe23
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Partial-Line-Down"></a><h3>IBUS_KEY_ISO_Partial_Line_Down</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Partial_Line_Down 0xfe24
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Partial-Space-Left"></a><h3>IBUS_KEY_ISO_Partial_Space_Left</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Partial_Space_Left 0xfe25
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Partial-Space-Right"></a><h3>IBUS_KEY_ISO_Partial_Space_Right</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Partial_Space_Right 0xfe26
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Set-Margin-Left"></a><h3>IBUS_KEY_ISO_Set_Margin_Left</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Set_Margin_Left 0xfe27
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Set-Margin-Right"></a><h3>IBUS_KEY_ISO_Set_Margin_Right</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Set_Margin_Right 0xfe28
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Release-Margin-Left"></a><h3>IBUS_KEY_ISO_Release_Margin_Left</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Release_Margin_Left 0xfe29
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Release-Margin-Right"></a><h3>IBUS_KEY_ISO_Release_Margin_Right</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Release_Margin_Right 0xfe2a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Release-Both-Margins"></a><h3>IBUS_KEY_ISO_Release_Both_Margins</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Release_Both_Margins 0xfe2b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Fast-Cursor-Left"></a><h3>IBUS_KEY_ISO_Fast_Cursor_Left</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Fast_Cursor_Left 0xfe2c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Fast-Cursor-Right"></a><h3>IBUS_KEY_ISO_Fast_Cursor_Right</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Fast_Cursor_Right 0xfe2d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Fast-Cursor-Up"></a><h3>IBUS_KEY_ISO_Fast_Cursor_Up</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Fast_Cursor_Up 0xfe2e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Fast-Cursor-Down"></a><h3>IBUS_KEY_ISO_Fast_Cursor_Down</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Fast_Cursor_Down 0xfe2f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Continuous-Underline"></a><h3>IBUS_KEY_ISO_Continuous_Underline</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Continuous_Underline 0xfe30
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Discontinuous-Underline"></a><h3>IBUS_KEY_ISO_Discontinuous_Underline</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Discontinuous_Underline 0xfe31
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Emphasize"></a><h3>IBUS_KEY_ISO_Emphasize</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Emphasize 0xfe32
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Center-Object"></a><h3>IBUS_KEY_ISO_Center_Object</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Center_Object 0xfe33
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ISO-Enter"></a><h3>IBUS_KEY_ISO_Enter</h3>
+<pre class="programlisting">#define IBUS_KEY_ISO_Enter 0xfe34
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-grave"></a><h3>IBUS_KEY_dead_grave</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_grave 0xfe50
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-acute"></a><h3>IBUS_KEY_dead_acute</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_acute 0xfe51
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-circumflex"></a><h3>IBUS_KEY_dead_circumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_circumflex 0xfe52
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-tilde"></a><h3>IBUS_KEY_dead_tilde</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_tilde 0xfe53
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-perispomeni"></a><h3>IBUS_KEY_dead_perispomeni</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_perispomeni 0xfe53
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-macron"></a><h3>IBUS_KEY_dead_macron</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_macron 0xfe54
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-breve"></a><h3>IBUS_KEY_dead_breve</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_breve 0xfe55
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-abovedot"></a><h3>IBUS_KEY_dead_abovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_abovedot 0xfe56
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-diaeresis"></a><h3>IBUS_KEY_dead_diaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_diaeresis 0xfe57
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-abovering"></a><h3>IBUS_KEY_dead_abovering</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_abovering 0xfe58
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-doubleacute"></a><h3>IBUS_KEY_dead_doubleacute</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_doubleacute 0xfe59
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-caron"></a><h3>IBUS_KEY_dead_caron</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_caron 0xfe5a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-cedilla"></a><h3>IBUS_KEY_dead_cedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_cedilla 0xfe5b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-ogonek"></a><h3>IBUS_KEY_dead_ogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_ogonek 0xfe5c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-iota"></a><h3>IBUS_KEY_dead_iota</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_iota 0xfe5d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-voiced-sound"></a><h3>IBUS_KEY_dead_voiced_sound</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_voiced_sound 0xfe5e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-semivoiced-sound"></a><h3>IBUS_KEY_dead_semivoiced_sound</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_semivoiced_sound 0xfe5f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-belowdot"></a><h3>IBUS_KEY_dead_belowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_belowdot 0xfe60
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-hook"></a><h3>IBUS_KEY_dead_hook</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_hook 0xfe61
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-horn"></a><h3>IBUS_KEY_dead_horn</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_horn 0xfe62
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-stroke"></a><h3>IBUS_KEY_dead_stroke</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_stroke 0xfe63
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-abovecomma"></a><h3>IBUS_KEY_dead_abovecomma</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_abovecomma 0xfe64
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-psili"></a><h3>IBUS_KEY_dead_psili</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_psili 0xfe64
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-abovereversedcomma"></a><h3>IBUS_KEY_dead_abovereversedcomma</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_abovereversedcomma 0xfe65
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-dasia"></a><h3>IBUS_KEY_dead_dasia</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_dasia 0xfe65
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-doublegrave"></a><h3>IBUS_KEY_dead_doublegrave</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_doublegrave 0xfe66
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-belowring"></a><h3>IBUS_KEY_dead_belowring</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_belowring 0xfe67
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-belowmacron"></a><h3>IBUS_KEY_dead_belowmacron</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_belowmacron 0xfe68
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-belowcircumflex"></a><h3>IBUS_KEY_dead_belowcircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_belowcircumflex 0xfe69
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-belowtilde"></a><h3>IBUS_KEY_dead_belowtilde</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_belowtilde 0xfe6a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-belowbreve"></a><h3>IBUS_KEY_dead_belowbreve</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_belowbreve 0xfe6b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-belowdiaeresis"></a><h3>IBUS_KEY_dead_belowdiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_belowdiaeresis 0xfe6c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-invertedbreve"></a><h3>IBUS_KEY_dead_invertedbreve</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_invertedbreve 0xfe6d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-belowcomma"></a><h3>IBUS_KEY_dead_belowcomma</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_belowcomma 0xfe6e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-currency"></a><h3>IBUS_KEY_dead_currency</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_currency 0xfe6f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-a"></a><h3>IBUS_KEY_dead_a</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_a 0xfe80
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-A"></a><h3>IBUS_KEY_dead_A</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_A 0xfe81
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-e"></a><h3>IBUS_KEY_dead_e</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_e 0xfe82
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-E"></a><h3>IBUS_KEY_dead_E</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_E 0xfe83
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-i"></a><h3>IBUS_KEY_dead_i</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_i 0xfe84
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-I"></a><h3>IBUS_KEY_dead_I</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_I 0xfe85
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-o"></a><h3>IBUS_KEY_dead_o</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_o 0xfe86
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-O"></a><h3>IBUS_KEY_dead_O</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_O 0xfe87
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-u"></a><h3>IBUS_KEY_dead_u</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_u 0xfe88
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-U"></a><h3>IBUS_KEY_dead_U</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_U 0xfe89
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-small-schwa"></a><h3>IBUS_KEY_dead_small_schwa</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_small_schwa 0xfe8a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dead-capital-schwa"></a><h3>IBUS_KEY_dead_capital_schwa</h3>
+<pre class="programlisting">#define IBUS_KEY_dead_capital_schwa 0xfe8b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-First-Virtual-Screen"></a><h3>IBUS_KEY_First_Virtual_Screen</h3>
+<pre class="programlisting">#define IBUS_KEY_First_Virtual_Screen 0xfed0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Prev-Virtual-Screen"></a><h3>IBUS_KEY_Prev_Virtual_Screen</h3>
+<pre class="programlisting">#define IBUS_KEY_Prev_Virtual_Screen 0xfed1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Next-Virtual-Screen"></a><h3>IBUS_KEY_Next_Virtual_Screen</h3>
+<pre class="programlisting">#define IBUS_KEY_Next_Virtual_Screen 0xfed2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Last-Virtual-Screen"></a><h3>IBUS_KEY_Last_Virtual_Screen</h3>
+<pre class="programlisting">#define IBUS_KEY_Last_Virtual_Screen 0xfed4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Terminate-Server"></a><h3>IBUS_KEY_Terminate_Server</h3>
+<pre class="programlisting">#define IBUS_KEY_Terminate_Server 0xfed5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-AccessX-Enable"></a><h3>IBUS_KEY_AccessX_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_AccessX_Enable 0xfe70
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-AccessX-Feedback-Enable"></a><h3>IBUS_KEY_AccessX_Feedback_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_AccessX_Feedback_Enable 0xfe71
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-RepeatKeys-Enable"></a><h3>IBUS_KEY_RepeatKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_RepeatKeys_Enable 0xfe72
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-SlowKeys-Enable"></a><h3>IBUS_KEY_SlowKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_SlowKeys_Enable 0xfe73
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-BounceKeys-Enable"></a><h3>IBUS_KEY_BounceKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_BounceKeys_Enable 0xfe74
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-StickyKeys-Enable"></a><h3>IBUS_KEY_StickyKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_StickyKeys_Enable 0xfe75
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-MouseKeys-Enable"></a><h3>IBUS_KEY_MouseKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_MouseKeys_Enable 0xfe76
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-MouseKeys-Accel-Enable"></a><h3>IBUS_KEY_MouseKeys_Accel_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_MouseKeys_Accel_Enable 0xfe77
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Overlay1-Enable"></a><h3>IBUS_KEY_Overlay1_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_Overlay1_Enable 0xfe78
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Overlay2-Enable"></a><h3>IBUS_KEY_Overlay2_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_Overlay2_Enable 0xfe79
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-AudibleBell-Enable"></a><h3>IBUS_KEY_AudibleBell_Enable</h3>
+<pre class="programlisting">#define IBUS_KEY_AudibleBell_Enable 0xfe7a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Left"></a><h3>IBUS_KEY_Pointer_Left</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Left 0xfee0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Right"></a><h3>IBUS_KEY_Pointer_Right</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Right 0xfee1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Up"></a><h3>IBUS_KEY_Pointer_Up</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Up 0xfee2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Down"></a><h3>IBUS_KEY_Pointer_Down</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Down 0xfee3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-UpLeft"></a><h3>IBUS_KEY_Pointer_UpLeft</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_UpLeft 0xfee4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-UpRight"></a><h3>IBUS_KEY_Pointer_UpRight</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_UpRight 0xfee5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DownLeft"></a><h3>IBUS_KEY_Pointer_DownLeft</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DownLeft 0xfee6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DownRight"></a><h3>IBUS_KEY_Pointer_DownRight</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DownRight 0xfee7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Button-Dflt"></a><h3>IBUS_KEY_Pointer_Button_Dflt</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Button_Dflt 0xfee8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Button1"></a><h3>IBUS_KEY_Pointer_Button1</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Button1 0xfee9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Button2"></a><h3>IBUS_KEY_Pointer_Button2</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Button2 0xfeea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Button3"></a><h3>IBUS_KEY_Pointer_Button3</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Button3 0xfeeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Button4"></a><h3>IBUS_KEY_Pointer_Button4</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Button4 0xfeec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Button5"></a><h3>IBUS_KEY_Pointer_Button5</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Button5 0xfeed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DblClick-Dflt"></a><h3>IBUS_KEY_Pointer_DblClick_Dflt</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DblClick_Dflt 0xfeee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DblClick1"></a><h3>IBUS_KEY_Pointer_DblClick1</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DblClick1 0xfeef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DblClick2"></a><h3>IBUS_KEY_Pointer_DblClick2</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DblClick2 0xfef0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DblClick3"></a><h3>IBUS_KEY_Pointer_DblClick3</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DblClick3 0xfef1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DblClick4"></a><h3>IBUS_KEY_Pointer_DblClick4</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DblClick4 0xfef2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DblClick5"></a><h3>IBUS_KEY_Pointer_DblClick5</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DblClick5 0xfef3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Drag-Dflt"></a><h3>IBUS_KEY_Pointer_Drag_Dflt</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Drag_Dflt 0xfef4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Drag1"></a><h3>IBUS_KEY_Pointer_Drag1</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Drag1 0xfef5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Drag2"></a><h3>IBUS_KEY_Pointer_Drag2</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Drag2 0xfef6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Drag3"></a><h3>IBUS_KEY_Pointer_Drag3</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Drag3 0xfef7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Drag4"></a><h3>IBUS_KEY_Pointer_Drag4</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Drag4 0xfef8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Drag5"></a><h3>IBUS_KEY_Pointer_Drag5</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Drag5 0xfefd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-EnableKeys"></a><h3>IBUS_KEY_Pointer_EnableKeys</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_EnableKeys 0xfef9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-Accelerate"></a><h3>IBUS_KEY_Pointer_Accelerate</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_Accelerate 0xfefa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DfltBtnNext"></a><h3>IBUS_KEY_Pointer_DfltBtnNext</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DfltBtnNext 0xfefb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pointer-DfltBtnPrev"></a><h3>IBUS_KEY_Pointer_DfltBtnPrev</h3>
+<pre class="programlisting">#define IBUS_KEY_Pointer_DfltBtnPrev 0xfefc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ch"></a><h3>IBUS_KEY_ch</h3>
+<pre class="programlisting">#define IBUS_KEY_ch 0xfea0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ch"></a><h3>IBUS_KEY_Ch</h3>
+<pre class="programlisting">#define IBUS_KEY_Ch 0xfea1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-CH:CAPS"></a><h3>IBUS_KEY_CH</h3>
+<pre class="programlisting">#define IBUS_KEY_CH 0xfea2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-c-h"></a><h3>IBUS_KEY_c_h</h3>
+<pre class="programlisting">#define IBUS_KEY_c_h 0xfea3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-C-h"></a><h3>IBUS_KEY_C_h</h3>
+<pre class="programlisting">#define IBUS_KEY_C_h 0xfea4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-C-H:CAPS"></a><h3>IBUS_KEY_C_H</h3>
+<pre class="programlisting">#define IBUS_KEY_C_H 0xfea5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Duplicate"></a><h3>IBUS_KEY_3270_Duplicate</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Duplicate 0xfd01
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-FieldMark"></a><h3>IBUS_KEY_3270_FieldMark</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_FieldMark 0xfd02
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Right2"></a><h3>IBUS_KEY_3270_Right2</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Right2 0xfd03
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Left2"></a><h3>IBUS_KEY_3270_Left2</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Left2 0xfd04
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-BackTab"></a><h3>IBUS_KEY_3270_BackTab</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_BackTab 0xfd05
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-EraseEOF"></a><h3>IBUS_KEY_3270_EraseEOF</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_EraseEOF 0xfd06
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-EraseInput"></a><h3>IBUS_KEY_3270_EraseInput</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_EraseInput 0xfd07
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Reset"></a><h3>IBUS_KEY_3270_Reset</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Reset 0xfd08
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Quit"></a><h3>IBUS_KEY_3270_Quit</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Quit 0xfd09
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-PA1:CAPS"></a><h3>IBUS_KEY_3270_PA1</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_PA1 0xfd0a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-PA2:CAPS"></a><h3>IBUS_KEY_3270_PA2</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_PA2 0xfd0b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-PA3:CAPS"></a><h3>IBUS_KEY_3270_PA3</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_PA3 0xfd0c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Test"></a><h3>IBUS_KEY_3270_Test</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Test 0xfd0d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Attn"></a><h3>IBUS_KEY_3270_Attn</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Attn 0xfd0e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-CursorBlink"></a><h3>IBUS_KEY_3270_CursorBlink</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_CursorBlink 0xfd0f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-AltCursor"></a><h3>IBUS_KEY_3270_AltCursor</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_AltCursor 0xfd10
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-KeyClick"></a><h3>IBUS_KEY_3270_KeyClick</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_KeyClick 0xfd11
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Jump"></a><h3>IBUS_KEY_3270_Jump</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Jump 0xfd12
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Ident"></a><h3>IBUS_KEY_3270_Ident</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Ident 0xfd13
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Rule"></a><h3>IBUS_KEY_3270_Rule</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Rule 0xfd14
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Copy"></a><h3>IBUS_KEY_3270_Copy</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Copy 0xfd15
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Play"></a><h3>IBUS_KEY_3270_Play</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Play 0xfd16
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Setup"></a><h3>IBUS_KEY_3270_Setup</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Setup 0xfd17
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Record"></a><h3>IBUS_KEY_3270_Record</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Record 0xfd18
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-ChangeScreen"></a><h3>IBUS_KEY_3270_ChangeScreen</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_ChangeScreen 0xfd19
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-DeleteWord"></a><h3>IBUS_KEY_3270_DeleteWord</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_DeleteWord 0xfd1a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-ExSelect"></a><h3>IBUS_KEY_3270_ExSelect</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_ExSelect 0xfd1b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-CursorSelect"></a><h3>IBUS_KEY_3270_CursorSelect</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_CursorSelect 0xfd1c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-PrintScreen"></a><h3>IBUS_KEY_3270_PrintScreen</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_PrintScreen 0xfd1d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3270-Enter"></a><h3>IBUS_KEY_3270_Enter</h3>
+<pre class="programlisting">#define IBUS_KEY_3270_Enter 0xfd1e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-space"></a><h3>IBUS_KEY_space</h3>
+<pre class="programlisting">#define IBUS_KEY_space 0x020
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-exclam"></a><h3>IBUS_KEY_exclam</h3>
+<pre class="programlisting">#define IBUS_KEY_exclam 0x021
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-quotedbl"></a><h3>IBUS_KEY_quotedbl</h3>
+<pre class="programlisting">#define IBUS_KEY_quotedbl 0x022
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-numbersign"></a><h3>IBUS_KEY_numbersign</h3>
+<pre class="programlisting">#define IBUS_KEY_numbersign 0x023
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dollar"></a><h3>IBUS_KEY_dollar</h3>
+<pre class="programlisting">#define IBUS_KEY_dollar 0x024
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-percent"></a><h3>IBUS_KEY_percent</h3>
+<pre class="programlisting">#define IBUS_KEY_percent 0x025
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ampersand"></a><h3>IBUS_KEY_ampersand</h3>
+<pre class="programlisting">#define IBUS_KEY_ampersand 0x026
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-apostrophe"></a><h3>IBUS_KEY_apostrophe</h3>
+<pre class="programlisting">#define IBUS_KEY_apostrophe 0x027
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-quoteright"></a><h3>IBUS_KEY_quoteright</h3>
+<pre class="programlisting">#define IBUS_KEY_quoteright 0x027
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-parenleft"></a><h3>IBUS_KEY_parenleft</h3>
+<pre class="programlisting">#define IBUS_KEY_parenleft 0x028
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-parenright"></a><h3>IBUS_KEY_parenright</h3>
+<pre class="programlisting">#define IBUS_KEY_parenright 0x029
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-asterisk"></a><h3>IBUS_KEY_asterisk</h3>
+<pre class="programlisting">#define IBUS_KEY_asterisk 0x02a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-plus"></a><h3>IBUS_KEY_plus</h3>
+<pre class="programlisting">#define IBUS_KEY_plus 0x02b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-comma"></a><h3>IBUS_KEY_comma</h3>
+<pre class="programlisting">#define IBUS_KEY_comma 0x02c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-minus"></a><h3>IBUS_KEY_minus</h3>
+<pre class="programlisting">#define IBUS_KEY_minus 0x02d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-period"></a><h3>IBUS_KEY_period</h3>
+<pre class="programlisting">#define IBUS_KEY_period 0x02e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-slash"></a><h3>IBUS_KEY_slash</h3>
+<pre class="programlisting">#define IBUS_KEY_slash 0x02f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-0:CAPS"></a><h3>IBUS_KEY_0</h3>
+<pre class="programlisting">#define IBUS_KEY_0 0x030
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-1:CAPS"></a><h3>IBUS_KEY_1</h3>
+<pre class="programlisting">#define IBUS_KEY_1 0x031
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-2:CAPS"></a><h3>IBUS_KEY_2</h3>
+<pre class="programlisting">#define IBUS_KEY_2 0x032
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-3:CAPS"></a><h3>IBUS_KEY_3</h3>
+<pre class="programlisting">#define IBUS_KEY_3 0x033
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-4:CAPS"></a><h3>IBUS_KEY_4</h3>
+<pre class="programlisting">#define IBUS_KEY_4 0x034
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-5:CAPS"></a><h3>IBUS_KEY_5</h3>
+<pre class="programlisting">#define IBUS_KEY_5 0x035
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-6:CAPS"></a><h3>IBUS_KEY_6</h3>
+<pre class="programlisting">#define IBUS_KEY_6 0x036
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-7:CAPS"></a><h3>IBUS_KEY_7</h3>
+<pre class="programlisting">#define IBUS_KEY_7 0x037
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-8:CAPS"></a><h3>IBUS_KEY_8</h3>
+<pre class="programlisting">#define IBUS_KEY_8 0x038
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-9:CAPS"></a><h3>IBUS_KEY_9</h3>
+<pre class="programlisting">#define IBUS_KEY_9 0x039
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-colon"></a><h3>IBUS_KEY_colon</h3>
+<pre class="programlisting">#define IBUS_KEY_colon 0x03a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-semicolon"></a><h3>IBUS_KEY_semicolon</h3>
+<pre class="programlisting">#define IBUS_KEY_semicolon 0x03b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-less"></a><h3>IBUS_KEY_less</h3>
+<pre class="programlisting">#define IBUS_KEY_less 0x03c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-equal"></a><h3>IBUS_KEY_equal</h3>
+<pre class="programlisting">#define IBUS_KEY_equal 0x03d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-greater"></a><h3>IBUS_KEY_greater</h3>
+<pre class="programlisting">#define IBUS_KEY_greater 0x03e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-question"></a><h3>IBUS_KEY_question</h3>
+<pre class="programlisting">#define IBUS_KEY_question 0x03f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-at"></a><h3>IBUS_KEY_at</h3>
+<pre class="programlisting">#define IBUS_KEY_at 0x040
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-A:CAPS"></a><h3>IBUS_KEY_A</h3>
+<pre class="programlisting">#define IBUS_KEY_A 0x041
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-B:CAPS"></a><h3>IBUS_KEY_B</h3>
+<pre class="programlisting">#define IBUS_KEY_B 0x042
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-C:CAPS"></a><h3>IBUS_KEY_C</h3>
+<pre class="programlisting">#define IBUS_KEY_C 0x043
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-D:CAPS"></a><h3>IBUS_KEY_D</h3>
+<pre class="programlisting">#define IBUS_KEY_D 0x044
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-E:CAPS"></a><h3>IBUS_KEY_E</h3>
+<pre class="programlisting">#define IBUS_KEY_E 0x045
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-F:CAPS"></a><h3>IBUS_KEY_F</h3>
+<pre class="programlisting">#define IBUS_KEY_F 0x046
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-G:CAPS"></a><h3>IBUS_KEY_G</h3>
+<pre class="programlisting">#define IBUS_KEY_G 0x047
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-H:CAPS"></a><h3>IBUS_KEY_H</h3>
+<pre class="programlisting">#define IBUS_KEY_H 0x048
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-I:CAPS"></a><h3>IBUS_KEY_I</h3>
+<pre class="programlisting">#define IBUS_KEY_I 0x049
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-J:CAPS"></a><h3>IBUS_KEY_J</h3>
+<pre class="programlisting">#define IBUS_KEY_J 0x04a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-K:CAPS"></a><h3>IBUS_KEY_K</h3>
+<pre class="programlisting">#define IBUS_KEY_K 0x04b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-L:CAPS"></a><h3>IBUS_KEY_L</h3>
+<pre class="programlisting">#define IBUS_KEY_L 0x04c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-M:CAPS"></a><h3>IBUS_KEY_M</h3>
+<pre class="programlisting">#define IBUS_KEY_M 0x04d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-N:CAPS"></a><h3>IBUS_KEY_N</h3>
+<pre class="programlisting">#define IBUS_KEY_N 0x04e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-O:CAPS"></a><h3>IBUS_KEY_O</h3>
+<pre class="programlisting">#define IBUS_KEY_O 0x04f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-P:CAPS"></a><h3>IBUS_KEY_P</h3>
+<pre class="programlisting">#define IBUS_KEY_P 0x050
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Q:CAPS"></a><h3>IBUS_KEY_Q</h3>
+<pre class="programlisting">#define IBUS_KEY_Q 0x051
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-R:CAPS"></a><h3>IBUS_KEY_R</h3>
+<pre class="programlisting">#define IBUS_KEY_R 0x052
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-S:CAPS"></a><h3>IBUS_KEY_S</h3>
+<pre class="programlisting">#define IBUS_KEY_S 0x053
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-T:CAPS"></a><h3>IBUS_KEY_T</h3>
+<pre class="programlisting">#define IBUS_KEY_T 0x054
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-U:CAPS"></a><h3>IBUS_KEY_U</h3>
+<pre class="programlisting">#define IBUS_KEY_U 0x055
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-V:CAPS"></a><h3>IBUS_KEY_V</h3>
+<pre class="programlisting">#define IBUS_KEY_V 0x056
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-W:CAPS"></a><h3>IBUS_KEY_W</h3>
+<pre class="programlisting">#define IBUS_KEY_W 0x057
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-X:CAPS"></a><h3>IBUS_KEY_X</h3>
+<pre class="programlisting">#define IBUS_KEY_X 0x058
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Y:CAPS"></a><h3>IBUS_KEY_Y</h3>
+<pre class="programlisting">#define IBUS_KEY_Y 0x059
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Z:CAPS"></a><h3>IBUS_KEY_Z</h3>
+<pre class="programlisting">#define IBUS_KEY_Z 0x05a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-bracketleft"></a><h3>IBUS_KEY_bracketleft</h3>
+<pre class="programlisting">#define IBUS_KEY_bracketleft 0x05b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-backslash"></a><h3>IBUS_KEY_backslash</h3>
+<pre class="programlisting">#define IBUS_KEY_backslash 0x05c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-bracketright"></a><h3>IBUS_KEY_bracketright</h3>
+<pre class="programlisting">#define IBUS_KEY_bracketright 0x05d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-asciicircum"></a><h3>IBUS_KEY_asciicircum</h3>
+<pre class="programlisting">#define IBUS_KEY_asciicircum 0x05e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-underscore"></a><h3>IBUS_KEY_underscore</h3>
+<pre class="programlisting">#define IBUS_KEY_underscore 0x05f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-grave"></a><h3>IBUS_KEY_grave</h3>
+<pre class="programlisting">#define IBUS_KEY_grave 0x060
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-quoteleft"></a><h3>IBUS_KEY_quoteleft</h3>
+<pre class="programlisting">#define IBUS_KEY_quoteleft 0x060
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-a"></a><h3>IBUS_KEY_a</h3>
+<pre class="programlisting">#define IBUS_KEY_a 0x061
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-b"></a><h3>IBUS_KEY_b</h3>
+<pre class="programlisting">#define IBUS_KEY_b 0x062
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-c"></a><h3>IBUS_KEY_c</h3>
+<pre class="programlisting">#define IBUS_KEY_c 0x063
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-d"></a><h3>IBUS_KEY_d</h3>
+<pre class="programlisting">#define IBUS_KEY_d 0x064
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-e"></a><h3>IBUS_KEY_e</h3>
+<pre class="programlisting">#define IBUS_KEY_e 0x065
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-f"></a><h3>IBUS_KEY_f</h3>
+<pre class="programlisting">#define IBUS_KEY_f 0x066
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-g"></a><h3>IBUS_KEY_g</h3>
+<pre class="programlisting">#define IBUS_KEY_g 0x067
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-h"></a><h3>IBUS_KEY_h</h3>
+<pre class="programlisting">#define IBUS_KEY_h 0x068
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-i"></a><h3>IBUS_KEY_i</h3>
+<pre class="programlisting">#define IBUS_KEY_i 0x069
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-j"></a><h3>IBUS_KEY_j</h3>
+<pre class="programlisting">#define IBUS_KEY_j 0x06a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-k"></a><h3>IBUS_KEY_k</h3>
+<pre class="programlisting">#define IBUS_KEY_k 0x06b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-l"></a><h3>IBUS_KEY_l</h3>
+<pre class="programlisting">#define IBUS_KEY_l 0x06c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-m"></a><h3>IBUS_KEY_m</h3>
+<pre class="programlisting">#define IBUS_KEY_m 0x06d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-n"></a><h3>IBUS_KEY_n</h3>
+<pre class="programlisting">#define IBUS_KEY_n 0x06e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-o"></a><h3>IBUS_KEY_o</h3>
+<pre class="programlisting">#define IBUS_KEY_o 0x06f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-p"></a><h3>IBUS_KEY_p</h3>
+<pre class="programlisting">#define IBUS_KEY_p 0x070
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-q"></a><h3>IBUS_KEY_q</h3>
+<pre class="programlisting">#define IBUS_KEY_q 0x071
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-r"></a><h3>IBUS_KEY_r</h3>
+<pre class="programlisting">#define IBUS_KEY_r 0x072
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-s"></a><h3>IBUS_KEY_s</h3>
+<pre class="programlisting">#define IBUS_KEY_s 0x073
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-t"></a><h3>IBUS_KEY_t</h3>
+<pre class="programlisting">#define IBUS_KEY_t 0x074
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-u"></a><h3>IBUS_KEY_u</h3>
+<pre class="programlisting">#define IBUS_KEY_u 0x075
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-v"></a><h3>IBUS_KEY_v</h3>
+<pre class="programlisting">#define IBUS_KEY_v 0x076
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-w"></a><h3>IBUS_KEY_w</h3>
+<pre class="programlisting">#define IBUS_KEY_w 0x077
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-x"></a><h3>IBUS_KEY_x</h3>
+<pre class="programlisting">#define IBUS_KEY_x 0x078
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-y"></a><h3>IBUS_KEY_y</h3>
+<pre class="programlisting">#define IBUS_KEY_y 0x079
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-z"></a><h3>IBUS_KEY_z</h3>
+<pre class="programlisting">#define IBUS_KEY_z 0x07a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braceleft"></a><h3>IBUS_KEY_braceleft</h3>
+<pre class="programlisting">#define IBUS_KEY_braceleft 0x07b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-bar"></a><h3>IBUS_KEY_bar</h3>
+<pre class="programlisting">#define IBUS_KEY_bar 0x07c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braceright"></a><h3>IBUS_KEY_braceright</h3>
+<pre class="programlisting">#define IBUS_KEY_braceright 0x07d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-asciitilde"></a><h3>IBUS_KEY_asciitilde</h3>
+<pre class="programlisting">#define IBUS_KEY_asciitilde 0x07e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-nobreakspace"></a><h3>IBUS_KEY_nobreakspace</h3>
+<pre class="programlisting">#define IBUS_KEY_nobreakspace 0x0a0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-exclamdown"></a><h3>IBUS_KEY_exclamdown</h3>
+<pre class="programlisting">#define IBUS_KEY_exclamdown 0x0a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-cent"></a><h3>IBUS_KEY_cent</h3>
+<pre class="programlisting">#define IBUS_KEY_cent 0x0a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-sterling"></a><h3>IBUS_KEY_sterling</h3>
+<pre class="programlisting">#define IBUS_KEY_sterling 0x0a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-currency"></a><h3>IBUS_KEY_currency</h3>
+<pre class="programlisting">#define IBUS_KEY_currency 0x0a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-yen"></a><h3>IBUS_KEY_yen</h3>
+<pre class="programlisting">#define IBUS_KEY_yen 0x0a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-brokenbar"></a><h3>IBUS_KEY_brokenbar</h3>
+<pre class="programlisting">#define IBUS_KEY_brokenbar 0x0a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-section"></a><h3>IBUS_KEY_section</h3>
+<pre class="programlisting">#define IBUS_KEY_section 0x0a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-diaeresis"></a><h3>IBUS_KEY_diaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_diaeresis 0x0a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-copyright"></a><h3>IBUS_KEY_copyright</h3>
+<pre class="programlisting">#define IBUS_KEY_copyright 0x0a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ordfeminine"></a><h3>IBUS_KEY_ordfeminine</h3>
+<pre class="programlisting">#define IBUS_KEY_ordfeminine 0x0aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-guillemotleft"></a><h3>IBUS_KEY_guillemotleft</h3>
+<pre class="programlisting">#define IBUS_KEY_guillemotleft 0x0ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-notsign"></a><h3>IBUS_KEY_notsign</h3>
+<pre class="programlisting">#define IBUS_KEY_notsign 0x0ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hyphen"></a><h3>IBUS_KEY_hyphen</h3>
+<pre class="programlisting">#define IBUS_KEY_hyphen 0x0ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-registered"></a><h3>IBUS_KEY_registered</h3>
+<pre class="programlisting">#define IBUS_KEY_registered 0x0ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-macron"></a><h3>IBUS_KEY_macron</h3>
+<pre class="programlisting">#define IBUS_KEY_macron 0x0af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-degree"></a><h3>IBUS_KEY_degree</h3>
+<pre class="programlisting">#define IBUS_KEY_degree 0x0b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-plusminus"></a><h3>IBUS_KEY_plusminus</h3>
+<pre class="programlisting">#define IBUS_KEY_plusminus 0x0b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-twosuperior"></a><h3>IBUS_KEY_twosuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_twosuperior 0x0b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-threesuperior"></a><h3>IBUS_KEY_threesuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_threesuperior 0x0b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-acute"></a><h3>IBUS_KEY_acute</h3>
+<pre class="programlisting">#define IBUS_KEY_acute 0x0b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-mu"></a><h3>IBUS_KEY_mu</h3>
+<pre class="programlisting">#define IBUS_KEY_mu 0x0b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-paragraph"></a><h3>IBUS_KEY_paragraph</h3>
+<pre class="programlisting">#define IBUS_KEY_paragraph 0x0b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-periodcentered"></a><h3>IBUS_KEY_periodcentered</h3>
+<pre class="programlisting">#define IBUS_KEY_periodcentered 0x0b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-cedilla"></a><h3>IBUS_KEY_cedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_cedilla 0x0b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-onesuperior"></a><h3>IBUS_KEY_onesuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_onesuperior 0x0b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-masculine"></a><h3>IBUS_KEY_masculine</h3>
+<pre class="programlisting">#define IBUS_KEY_masculine 0x0ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-guillemotright"></a><h3>IBUS_KEY_guillemotright</h3>
+<pre class="programlisting">#define IBUS_KEY_guillemotright 0x0bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-onequarter"></a><h3>IBUS_KEY_onequarter</h3>
+<pre class="programlisting">#define IBUS_KEY_onequarter 0x0bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-onehalf"></a><h3>IBUS_KEY_onehalf</h3>
+<pre class="programlisting">#define IBUS_KEY_onehalf 0x0bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-threequarters"></a><h3>IBUS_KEY_threequarters</h3>
+<pre class="programlisting">#define IBUS_KEY_threequarters 0x0be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-questiondown"></a><h3>IBUS_KEY_questiondown</h3>
+<pre class="programlisting">#define IBUS_KEY_questiondown 0x0bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Agrave"></a><h3>IBUS_KEY_Agrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Agrave 0x0c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Aacute"></a><h3>IBUS_KEY_Aacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Aacute 0x0c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Acircumflex"></a><h3>IBUS_KEY_Acircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Acircumflex 0x0c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Atilde"></a><h3>IBUS_KEY_Atilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Atilde 0x0c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Adiaeresis"></a><h3>IBUS_KEY_Adiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Adiaeresis 0x0c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Aring"></a><h3>IBUS_KEY_Aring</h3>
+<pre class="programlisting">#define IBUS_KEY_Aring 0x0c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-AE:CAPS"></a><h3>IBUS_KEY_AE</h3>
+<pre class="programlisting">#define IBUS_KEY_AE 0x0c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ccedilla"></a><h3>IBUS_KEY_Ccedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_Ccedilla 0x0c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Egrave"></a><h3>IBUS_KEY_Egrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Egrave 0x0c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Eacute"></a><h3>IBUS_KEY_Eacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Eacute 0x0c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ecircumflex"></a><h3>IBUS_KEY_Ecircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Ecircumflex 0x0ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ediaeresis"></a><h3>IBUS_KEY_Ediaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Ediaeresis 0x0cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Igrave"></a><h3>IBUS_KEY_Igrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Igrave 0x0cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Iacute"></a><h3>IBUS_KEY_Iacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Iacute 0x0cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Icircumflex"></a><h3>IBUS_KEY_Icircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Icircumflex 0x0ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Idiaeresis"></a><h3>IBUS_KEY_Idiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Idiaeresis 0x0cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ETH:CAPS"></a><h3>IBUS_KEY_ETH</h3>
+<pre class="programlisting">#define IBUS_KEY_ETH 0x0d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Eth"></a><h3>IBUS_KEY_Eth</h3>
+<pre class="programlisting">#define IBUS_KEY_Eth 0x0d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ntilde"></a><h3>IBUS_KEY_Ntilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Ntilde 0x0d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ograve"></a><h3>IBUS_KEY_Ograve</h3>
+<pre class="programlisting">#define IBUS_KEY_Ograve 0x0d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Oacute"></a><h3>IBUS_KEY_Oacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Oacute 0x0d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ocircumflex"></a><h3>IBUS_KEY_Ocircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Ocircumflex 0x0d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Otilde"></a><h3>IBUS_KEY_Otilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Otilde 0x0d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Odiaeresis"></a><h3>IBUS_KEY_Odiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Odiaeresis 0x0d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-multiply"></a><h3>IBUS_KEY_multiply</h3>
+<pre class="programlisting">#define IBUS_KEY_multiply 0x0d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Oslash"></a><h3>IBUS_KEY_Oslash</h3>
+<pre class="programlisting">#define IBUS_KEY_Oslash 0x0d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ooblique"></a><h3>IBUS_KEY_Ooblique</h3>
+<pre class="programlisting">#define IBUS_KEY_Ooblique 0x0d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ugrave"></a><h3>IBUS_KEY_Ugrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Ugrave 0x0d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uacute"></a><h3>IBUS_KEY_Uacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Uacute 0x0da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ucircumflex"></a><h3>IBUS_KEY_Ucircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Ucircumflex 0x0db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Udiaeresis"></a><h3>IBUS_KEY_Udiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Udiaeresis 0x0dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Yacute"></a><h3>IBUS_KEY_Yacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Yacute 0x0dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-THORN:CAPS"></a><h3>IBUS_KEY_THORN</h3>
+<pre class="programlisting">#define IBUS_KEY_THORN 0x0de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thorn"></a><h3>IBUS_KEY_Thorn</h3>
+<pre class="programlisting">#define IBUS_KEY_Thorn 0x0de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ssharp"></a><h3>IBUS_KEY_ssharp</h3>
+<pre class="programlisting">#define IBUS_KEY_ssharp 0x0df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-agrave"></a><h3>IBUS_KEY_agrave</h3>
+<pre class="programlisting">#define IBUS_KEY_agrave 0x0e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-aacute"></a><h3>IBUS_KEY_aacute</h3>
+<pre class="programlisting">#define IBUS_KEY_aacute 0x0e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-acircumflex"></a><h3>IBUS_KEY_acircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_acircumflex 0x0e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-atilde"></a><h3>IBUS_KEY_atilde</h3>
+<pre class="programlisting">#define IBUS_KEY_atilde 0x0e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-adiaeresis"></a><h3>IBUS_KEY_adiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_adiaeresis 0x0e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-aring"></a><h3>IBUS_KEY_aring</h3>
+<pre class="programlisting">#define IBUS_KEY_aring 0x0e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ae"></a><h3>IBUS_KEY_ae</h3>
+<pre class="programlisting">#define IBUS_KEY_ae 0x0e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ccedilla"></a><h3>IBUS_KEY_ccedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_ccedilla 0x0e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-egrave"></a><h3>IBUS_KEY_egrave</h3>
+<pre class="programlisting">#define IBUS_KEY_egrave 0x0e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-eacute"></a><h3>IBUS_KEY_eacute</h3>
+<pre class="programlisting">#define IBUS_KEY_eacute 0x0e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ecircumflex"></a><h3>IBUS_KEY_ecircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_ecircumflex 0x0ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ediaeresis"></a><h3>IBUS_KEY_ediaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_ediaeresis 0x0eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-igrave"></a><h3>IBUS_KEY_igrave</h3>
+<pre class="programlisting">#define IBUS_KEY_igrave 0x0ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-iacute"></a><h3>IBUS_KEY_iacute</h3>
+<pre class="programlisting">#define IBUS_KEY_iacute 0x0ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-icircumflex"></a><h3>IBUS_KEY_icircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_icircumflex 0x0ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-idiaeresis"></a><h3>IBUS_KEY_idiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_idiaeresis 0x0ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-eth"></a><h3>IBUS_KEY_eth</h3>
+<pre class="programlisting">#define IBUS_KEY_eth 0x0f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ntilde"></a><h3>IBUS_KEY_ntilde</h3>
+<pre class="programlisting">#define IBUS_KEY_ntilde 0x0f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ograve"></a><h3>IBUS_KEY_ograve</h3>
+<pre class="programlisting">#define IBUS_KEY_ograve 0x0f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-oacute"></a><h3>IBUS_KEY_oacute</h3>
+<pre class="programlisting">#define IBUS_KEY_oacute 0x0f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ocircumflex"></a><h3>IBUS_KEY_ocircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_ocircumflex 0x0f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-otilde"></a><h3>IBUS_KEY_otilde</h3>
+<pre class="programlisting">#define IBUS_KEY_otilde 0x0f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-odiaeresis"></a><h3>IBUS_KEY_odiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_odiaeresis 0x0f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-division"></a><h3>IBUS_KEY_division</h3>
+<pre class="programlisting">#define IBUS_KEY_division 0x0f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-oslash"></a><h3>IBUS_KEY_oslash</h3>
+<pre class="programlisting">#define IBUS_KEY_oslash 0x0f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ooblique"></a><h3>IBUS_KEY_ooblique</h3>
+<pre class="programlisting">#define IBUS_KEY_ooblique 0x0f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ugrave"></a><h3>IBUS_KEY_ugrave</h3>
+<pre class="programlisting">#define IBUS_KEY_ugrave 0x0f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uacute"></a><h3>IBUS_KEY_uacute</h3>
+<pre class="programlisting">#define IBUS_KEY_uacute 0x0fa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ucircumflex"></a><h3>IBUS_KEY_ucircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_ucircumflex 0x0fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-udiaeresis"></a><h3>IBUS_KEY_udiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_udiaeresis 0x0fc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-yacute"></a><h3>IBUS_KEY_yacute</h3>
+<pre class="programlisting">#define IBUS_KEY_yacute 0x0fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-thorn"></a><h3>IBUS_KEY_thorn</h3>
+<pre class="programlisting">#define IBUS_KEY_thorn 0x0fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ydiaeresis"></a><h3>IBUS_KEY_ydiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_ydiaeresis 0x0ff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Aogonek"></a><h3>IBUS_KEY_Aogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_Aogonek 0x1a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-breve"></a><h3>IBUS_KEY_breve</h3>
+<pre class="programlisting">#define IBUS_KEY_breve 0x1a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Lstroke"></a><h3>IBUS_KEY_Lstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_Lstroke 0x1a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Lcaron"></a><h3>IBUS_KEY_Lcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Lcaron 0x1a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sacute"></a><h3>IBUS_KEY_Sacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Sacute 0x1a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Scaron"></a><h3>IBUS_KEY_Scaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Scaron 0x1a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Scedilla"></a><h3>IBUS_KEY_Scedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_Scedilla 0x1aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Tcaron"></a><h3>IBUS_KEY_Tcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Tcaron 0x1ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Zacute"></a><h3>IBUS_KEY_Zacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Zacute 0x1ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Zcaron"></a><h3>IBUS_KEY_Zcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Zcaron 0x1ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Zabovedot"></a><h3>IBUS_KEY_Zabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Zabovedot 0x1af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-aogonek"></a><h3>IBUS_KEY_aogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_aogonek 0x1b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ogonek"></a><h3>IBUS_KEY_ogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_ogonek 0x1b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lstroke"></a><h3>IBUS_KEY_lstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_lstroke 0x1b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lcaron"></a><h3>IBUS_KEY_lcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_lcaron 0x1b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-sacute"></a><h3>IBUS_KEY_sacute</h3>
+<pre class="programlisting">#define IBUS_KEY_sacute 0x1b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-caron"></a><h3>IBUS_KEY_caron</h3>
+<pre class="programlisting">#define IBUS_KEY_caron 0x1b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-scaron"></a><h3>IBUS_KEY_scaron</h3>
+<pre class="programlisting">#define IBUS_KEY_scaron 0x1b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-scedilla"></a><h3>IBUS_KEY_scedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_scedilla 0x1ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-tcaron"></a><h3>IBUS_KEY_tcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_tcaron 0x1bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-zacute"></a><h3>IBUS_KEY_zacute</h3>
+<pre class="programlisting">#define IBUS_KEY_zacute 0x1bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-doubleacute"></a><h3>IBUS_KEY_doubleacute</h3>
+<pre class="programlisting">#define IBUS_KEY_doubleacute 0x1bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-zcaron"></a><h3>IBUS_KEY_zcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_zcaron 0x1be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-zabovedot"></a><h3>IBUS_KEY_zabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_zabovedot 0x1bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Racute"></a><h3>IBUS_KEY_Racute</h3>
+<pre class="programlisting">#define IBUS_KEY_Racute 0x1c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Abreve"></a><h3>IBUS_KEY_Abreve</h3>
+<pre class="programlisting">#define IBUS_KEY_Abreve 0x1c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Lacute"></a><h3>IBUS_KEY_Lacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Lacute 0x1c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cacute"></a><h3>IBUS_KEY_Cacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Cacute 0x1c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ccaron"></a><h3>IBUS_KEY_Ccaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Ccaron 0x1c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Eogonek"></a><h3>IBUS_KEY_Eogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_Eogonek 0x1ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ecaron"></a><h3>IBUS_KEY_Ecaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Ecaron 0x1cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Dcaron"></a><h3>IBUS_KEY_Dcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Dcaron 0x1cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Dstroke"></a><h3>IBUS_KEY_Dstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_Dstroke 0x1d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Nacute"></a><h3>IBUS_KEY_Nacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Nacute 0x1d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ncaron"></a><h3>IBUS_KEY_Ncaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Ncaron 0x1d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Odoubleacute"></a><h3>IBUS_KEY_Odoubleacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Odoubleacute 0x1d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Rcaron"></a><h3>IBUS_KEY_Rcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Rcaron 0x1d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uring"></a><h3>IBUS_KEY_Uring</h3>
+<pre class="programlisting">#define IBUS_KEY_Uring 0x1d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Udoubleacute"></a><h3>IBUS_KEY_Udoubleacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Udoubleacute 0x1db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Tcedilla"></a><h3>IBUS_KEY_Tcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_Tcedilla 0x1de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-racute"></a><h3>IBUS_KEY_racute</h3>
+<pre class="programlisting">#define IBUS_KEY_racute 0x1e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-abreve"></a><h3>IBUS_KEY_abreve</h3>
+<pre class="programlisting">#define IBUS_KEY_abreve 0x1e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lacute"></a><h3>IBUS_KEY_lacute</h3>
+<pre class="programlisting">#define IBUS_KEY_lacute 0x1e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-cacute"></a><h3>IBUS_KEY_cacute</h3>
+<pre class="programlisting">#define IBUS_KEY_cacute 0x1e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ccaron"></a><h3>IBUS_KEY_ccaron</h3>
+<pre class="programlisting">#define IBUS_KEY_ccaron 0x1e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-eogonek"></a><h3>IBUS_KEY_eogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_eogonek 0x1ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ecaron"></a><h3>IBUS_KEY_ecaron</h3>
+<pre class="programlisting">#define IBUS_KEY_ecaron 0x1ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dcaron"></a><h3>IBUS_KEY_dcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_dcaron 0x1ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dstroke"></a><h3>IBUS_KEY_dstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_dstroke 0x1f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-nacute"></a><h3>IBUS_KEY_nacute</h3>
+<pre class="programlisting">#define IBUS_KEY_nacute 0x1f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ncaron"></a><h3>IBUS_KEY_ncaron</h3>
+<pre class="programlisting">#define IBUS_KEY_ncaron 0x1f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-odoubleacute"></a><h3>IBUS_KEY_odoubleacute</h3>
+<pre class="programlisting">#define IBUS_KEY_odoubleacute 0x1f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rcaron"></a><h3>IBUS_KEY_rcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_rcaron 0x1f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uring"></a><h3>IBUS_KEY_uring</h3>
+<pre class="programlisting">#define IBUS_KEY_uring 0x1f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-udoubleacute"></a><h3>IBUS_KEY_udoubleacute</h3>
+<pre class="programlisting">#define IBUS_KEY_udoubleacute 0x1fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-tcedilla"></a><h3>IBUS_KEY_tcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_tcedilla 0x1fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-abovedot"></a><h3>IBUS_KEY_abovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_abovedot 0x1ff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hstroke"></a><h3>IBUS_KEY_Hstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_Hstroke 0x2a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hcircumflex"></a><h3>IBUS_KEY_Hcircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Hcircumflex 0x2a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Iabovedot"></a><h3>IBUS_KEY_Iabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Iabovedot 0x2a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Gbreve"></a><h3>IBUS_KEY_Gbreve</h3>
+<pre class="programlisting">#define IBUS_KEY_Gbreve 0x2ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Jcircumflex"></a><h3>IBUS_KEY_Jcircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Jcircumflex 0x2ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hstroke"></a><h3>IBUS_KEY_hstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_hstroke 0x2b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hcircumflex"></a><h3>IBUS_KEY_hcircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_hcircumflex 0x2b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-idotless"></a><h3>IBUS_KEY_idotless</h3>
+<pre class="programlisting">#define IBUS_KEY_idotless 0x2b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-gbreve"></a><h3>IBUS_KEY_gbreve</h3>
+<pre class="programlisting">#define IBUS_KEY_gbreve 0x2bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-jcircumflex"></a><h3>IBUS_KEY_jcircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_jcircumflex 0x2bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cabovedot"></a><h3>IBUS_KEY_Cabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Cabovedot 0x2c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ccircumflex"></a><h3>IBUS_KEY_Ccircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Ccircumflex 0x2c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Gabovedot"></a><h3>IBUS_KEY_Gabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Gabovedot 0x2d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Gcircumflex"></a><h3>IBUS_KEY_Gcircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Gcircumflex 0x2d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ubreve"></a><h3>IBUS_KEY_Ubreve</h3>
+<pre class="programlisting">#define IBUS_KEY_Ubreve 0x2dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Scircumflex"></a><h3>IBUS_KEY_Scircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Scircumflex 0x2de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-cabovedot"></a><h3>IBUS_KEY_cabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_cabovedot 0x2e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ccircumflex"></a><h3>IBUS_KEY_ccircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_ccircumflex 0x2e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-gabovedot"></a><h3>IBUS_KEY_gabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_gabovedot 0x2f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-gcircumflex"></a><h3>IBUS_KEY_gcircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_gcircumflex 0x2f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ubreve"></a><h3>IBUS_KEY_ubreve</h3>
+<pre class="programlisting">#define IBUS_KEY_ubreve 0x2fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-scircumflex"></a><h3>IBUS_KEY_scircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_scircumflex 0x2fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kra"></a><h3>IBUS_KEY_kra</h3>
+<pre class="programlisting">#define IBUS_KEY_kra 0x3a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kappa"></a><h3>IBUS_KEY_kappa</h3>
+<pre class="programlisting">#define IBUS_KEY_kappa 0x3a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Rcedilla"></a><h3>IBUS_KEY_Rcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_Rcedilla 0x3a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Itilde"></a><h3>IBUS_KEY_Itilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Itilde 0x3a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Lcedilla"></a><h3>IBUS_KEY_Lcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_Lcedilla 0x3a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Emacron"></a><h3>IBUS_KEY_Emacron</h3>
+<pre class="programlisting">#define IBUS_KEY_Emacron 0x3aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Gcedilla"></a><h3>IBUS_KEY_Gcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_Gcedilla 0x3ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Tslash"></a><h3>IBUS_KEY_Tslash</h3>
+<pre class="programlisting">#define IBUS_KEY_Tslash 0x3ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rcedilla"></a><h3>IBUS_KEY_rcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_rcedilla 0x3b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-itilde"></a><h3>IBUS_KEY_itilde</h3>
+<pre class="programlisting">#define IBUS_KEY_itilde 0x3b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lcedilla"></a><h3>IBUS_KEY_lcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_lcedilla 0x3b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-emacron"></a><h3>IBUS_KEY_emacron</h3>
+<pre class="programlisting">#define IBUS_KEY_emacron 0x3ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-gcedilla"></a><h3>IBUS_KEY_gcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_gcedilla 0x3bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-tslash"></a><h3>IBUS_KEY_tslash</h3>
+<pre class="programlisting">#define IBUS_KEY_tslash 0x3bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ENG:CAPS"></a><h3>IBUS_KEY_ENG</h3>
+<pre class="programlisting">#define IBUS_KEY_ENG 0x3bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-eng"></a><h3>IBUS_KEY_eng</h3>
+<pre class="programlisting">#define IBUS_KEY_eng 0x3bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Amacron"></a><h3>IBUS_KEY_Amacron</h3>
+<pre class="programlisting">#define IBUS_KEY_Amacron 0x3c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Iogonek"></a><h3>IBUS_KEY_Iogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_Iogonek 0x3c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Eabovedot"></a><h3>IBUS_KEY_Eabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Eabovedot 0x3cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Imacron"></a><h3>IBUS_KEY_Imacron</h3>
+<pre class="programlisting">#define IBUS_KEY_Imacron 0x3cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ncedilla"></a><h3>IBUS_KEY_Ncedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_Ncedilla 0x3d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Omacron"></a><h3>IBUS_KEY_Omacron</h3>
+<pre class="programlisting">#define IBUS_KEY_Omacron 0x3d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Kcedilla"></a><h3>IBUS_KEY_Kcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_Kcedilla 0x3d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uogonek"></a><h3>IBUS_KEY_Uogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_Uogonek 0x3d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Utilde"></a><h3>IBUS_KEY_Utilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Utilde 0x3dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Umacron"></a><h3>IBUS_KEY_Umacron</h3>
+<pre class="programlisting">#define IBUS_KEY_Umacron 0x3de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-amacron"></a><h3>IBUS_KEY_amacron</h3>
+<pre class="programlisting">#define IBUS_KEY_amacron 0x3e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-iogonek"></a><h3>IBUS_KEY_iogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_iogonek 0x3e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-eabovedot"></a><h3>IBUS_KEY_eabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_eabovedot 0x3ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-imacron"></a><h3>IBUS_KEY_imacron</h3>
+<pre class="programlisting">#define IBUS_KEY_imacron 0x3ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ncedilla"></a><h3>IBUS_KEY_ncedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_ncedilla 0x3f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-omacron"></a><h3>IBUS_KEY_omacron</h3>
+<pre class="programlisting">#define IBUS_KEY_omacron 0x3f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kcedilla"></a><h3>IBUS_KEY_kcedilla</h3>
+<pre class="programlisting">#define IBUS_KEY_kcedilla 0x3f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uogonek"></a><h3>IBUS_KEY_uogonek</h3>
+<pre class="programlisting">#define IBUS_KEY_uogonek 0x3f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-utilde"></a><h3>IBUS_KEY_utilde</h3>
+<pre class="programlisting">#define IBUS_KEY_utilde 0x3fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-umacron"></a><h3>IBUS_KEY_umacron</h3>
+<pre class="programlisting">#define IBUS_KEY_umacron 0x3fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Wcircumflex"></a><h3>IBUS_KEY_Wcircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Wcircumflex 0x1000174
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-wcircumflex"></a><h3>IBUS_KEY_wcircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_wcircumflex 0x1000175
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ycircumflex"></a><h3>IBUS_KEY_Ycircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_Ycircumflex 0x1000176
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ycircumflex"></a><h3>IBUS_KEY_ycircumflex</h3>
+<pre class="programlisting">#define IBUS_KEY_ycircumflex 0x1000177
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Babovedot"></a><h3>IBUS_KEY_Babovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Babovedot 0x1001e02
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-babovedot"></a><h3>IBUS_KEY_babovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_babovedot 0x1001e03
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Dabovedot"></a><h3>IBUS_KEY_Dabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Dabovedot 0x1001e0a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dabovedot"></a><h3>IBUS_KEY_dabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_dabovedot 0x1001e0b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Fabovedot"></a><h3>IBUS_KEY_Fabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Fabovedot 0x1001e1e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-fabovedot"></a><h3>IBUS_KEY_fabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_fabovedot 0x1001e1f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Mabovedot"></a><h3>IBUS_KEY_Mabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Mabovedot 0x1001e40
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-mabovedot"></a><h3>IBUS_KEY_mabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_mabovedot 0x1001e41
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Pabovedot"></a><h3>IBUS_KEY_Pabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Pabovedot 0x1001e56
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-pabovedot"></a><h3>IBUS_KEY_pabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_pabovedot 0x1001e57
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sabovedot"></a><h3>IBUS_KEY_Sabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Sabovedot 0x1001e60
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-sabovedot"></a><h3>IBUS_KEY_sabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_sabovedot 0x1001e61
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Tabovedot"></a><h3>IBUS_KEY_Tabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Tabovedot 0x1001e6a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-tabovedot"></a><h3>IBUS_KEY_tabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_tabovedot 0x1001e6b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Wgrave"></a><h3>IBUS_KEY_Wgrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Wgrave 0x1001e80
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-wgrave"></a><h3>IBUS_KEY_wgrave</h3>
+<pre class="programlisting">#define IBUS_KEY_wgrave 0x1001e81
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Wacute"></a><h3>IBUS_KEY_Wacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Wacute 0x1001e82
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-wacute"></a><h3>IBUS_KEY_wacute</h3>
+<pre class="programlisting">#define IBUS_KEY_wacute 0x1001e83
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Wdiaeresis"></a><h3>IBUS_KEY_Wdiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Wdiaeresis 0x1001e84
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-wdiaeresis"></a><h3>IBUS_KEY_wdiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_wdiaeresis 0x1001e85
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ygrave"></a><h3>IBUS_KEY_Ygrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Ygrave 0x1001ef2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ygrave"></a><h3>IBUS_KEY_ygrave</h3>
+<pre class="programlisting">#define IBUS_KEY_ygrave 0x1001ef3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-OE:CAPS"></a><h3>IBUS_KEY_OE</h3>
+<pre class="programlisting">#define IBUS_KEY_OE 0x13bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-oe"></a><h3>IBUS_KEY_oe</h3>
+<pre class="programlisting">#define IBUS_KEY_oe 0x13bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ydiaeresis"></a><h3>IBUS_KEY_Ydiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Ydiaeresis 0x13be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-overline"></a><h3>IBUS_KEY_overline</h3>
+<pre class="programlisting">#define IBUS_KEY_overline 0x47e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-fullstop"></a><h3>IBUS_KEY_kana_fullstop</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_fullstop 0x4a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-openingbracket"></a><h3>IBUS_KEY_kana_openingbracket</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_openingbracket 0x4a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-closingbracket"></a><h3>IBUS_KEY_kana_closingbracket</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_closingbracket 0x4a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-comma"></a><h3>IBUS_KEY_kana_comma</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_comma 0x4a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-conjunctive"></a><h3>IBUS_KEY_kana_conjunctive</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_conjunctive 0x4a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-middledot"></a><h3>IBUS_KEY_kana_middledot</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_middledot 0x4a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-WO"></a><h3>IBUS_KEY_kana_WO</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_WO 0x4a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-a"></a><h3>IBUS_KEY_kana_a</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_a 0x4a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-i"></a><h3>IBUS_KEY_kana_i</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_i 0x4a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-u"></a><h3>IBUS_KEY_kana_u</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_u 0x4a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-e"></a><h3>IBUS_KEY_kana_e</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_e 0x4aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-o"></a><h3>IBUS_KEY_kana_o</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_o 0x4ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-ya"></a><h3>IBUS_KEY_kana_ya</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_ya 0x4ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-yu"></a><h3>IBUS_KEY_kana_yu</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_yu 0x4ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-yo"></a><h3>IBUS_KEY_kana_yo</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_yo 0x4ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-tsu"></a><h3>IBUS_KEY_kana_tsu</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_tsu 0x4af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-tu"></a><h3>IBUS_KEY_kana_tu</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_tu 0x4af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-prolongedsound"></a><h3>IBUS_KEY_prolongedsound</h3>
+<pre class="programlisting">#define IBUS_KEY_prolongedsound 0x4b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-A"></a><h3>IBUS_KEY_kana_A</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_A 0x4b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-I"></a><h3>IBUS_KEY_kana_I</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_I 0x4b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-U"></a><h3>IBUS_KEY_kana_U</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_U 0x4b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-E"></a><h3>IBUS_KEY_kana_E</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_E 0x4b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-O"></a><h3>IBUS_KEY_kana_O</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_O 0x4b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-KA"></a><h3>IBUS_KEY_kana_KA</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_KA 0x4b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-KI"></a><h3>IBUS_KEY_kana_KI</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_KI 0x4b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-KU"></a><h3>IBUS_KEY_kana_KU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_KU 0x4b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-KE"></a><h3>IBUS_KEY_kana_KE</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_KE 0x4b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-KO"></a><h3>IBUS_KEY_kana_KO</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_KO 0x4ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-SA"></a><h3>IBUS_KEY_kana_SA</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_SA 0x4bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-SHI"></a><h3>IBUS_KEY_kana_SHI</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_SHI 0x4bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-SU"></a><h3>IBUS_KEY_kana_SU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_SU 0x4bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-SE"></a><h3>IBUS_KEY_kana_SE</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_SE 0x4be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-SO"></a><h3>IBUS_KEY_kana_SO</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_SO 0x4bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-TA"></a><h3>IBUS_KEY_kana_TA</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_TA 0x4c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-CHI"></a><h3>IBUS_KEY_kana_CHI</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_CHI 0x4c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-TI"></a><h3>IBUS_KEY_kana_TI</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_TI 0x4c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-TSU"></a><h3>IBUS_KEY_kana_TSU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_TSU 0x4c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-TU"></a><h3>IBUS_KEY_kana_TU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_TU 0x4c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-TE"></a><h3>IBUS_KEY_kana_TE</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_TE 0x4c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-TO"></a><h3>IBUS_KEY_kana_TO</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_TO 0x4c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-NA"></a><h3>IBUS_KEY_kana_NA</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_NA 0x4c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-NI"></a><h3>IBUS_KEY_kana_NI</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_NI 0x4c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-NU"></a><h3>IBUS_KEY_kana_NU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_NU 0x4c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-NE"></a><h3>IBUS_KEY_kana_NE</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_NE 0x4c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-NO"></a><h3>IBUS_KEY_kana_NO</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_NO 0x4c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-HA"></a><h3>IBUS_KEY_kana_HA</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_HA 0x4ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-HI"></a><h3>IBUS_KEY_kana_HI</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_HI 0x4cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-FU"></a><h3>IBUS_KEY_kana_FU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_FU 0x4cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-HU"></a><h3>IBUS_KEY_kana_HU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_HU 0x4cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-HE"></a><h3>IBUS_KEY_kana_HE</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_HE 0x4cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-HO"></a><h3>IBUS_KEY_kana_HO</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_HO 0x4ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-MA"></a><h3>IBUS_KEY_kana_MA</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_MA 0x4cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-MI"></a><h3>IBUS_KEY_kana_MI</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_MI 0x4d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-MU"></a><h3>IBUS_KEY_kana_MU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_MU 0x4d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-ME"></a><h3>IBUS_KEY_kana_ME</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_ME 0x4d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-MO"></a><h3>IBUS_KEY_kana_MO</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_MO 0x4d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-YA"></a><h3>IBUS_KEY_kana_YA</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_YA 0x4d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-YU"></a><h3>IBUS_KEY_kana_YU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_YU 0x4d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-YO"></a><h3>IBUS_KEY_kana_YO</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_YO 0x4d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-RA"></a><h3>IBUS_KEY_kana_RA</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_RA 0x4d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-RI"></a><h3>IBUS_KEY_kana_RI</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_RI 0x4d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-RU"></a><h3>IBUS_KEY_kana_RU</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_RU 0x4d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-RE"></a><h3>IBUS_KEY_kana_RE</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_RE 0x4da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-RO"></a><h3>IBUS_KEY_kana_RO</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_RO 0x4db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-WA"></a><h3>IBUS_KEY_kana_WA</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_WA 0x4dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-N"></a><h3>IBUS_KEY_kana_N</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_N 0x4dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-voicedsound"></a><h3>IBUS_KEY_voicedsound</h3>
+<pre class="programlisting">#define IBUS_KEY_voicedsound 0x4de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-semivoicedsound"></a><h3>IBUS_KEY_semivoicedsound</h3>
+<pre class="programlisting">#define IBUS_KEY_semivoicedsound 0x4df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-kana-switch"></a><h3>IBUS_KEY_kana_switch</h3>
+<pre class="programlisting">#define IBUS_KEY_kana_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-0"></a><h3>IBUS_KEY_Farsi_0</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_0 0x10006f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-1"></a><h3>IBUS_KEY_Farsi_1</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_1 0x10006f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-2"></a><h3>IBUS_KEY_Farsi_2</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_2 0x10006f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-3"></a><h3>IBUS_KEY_Farsi_3</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_3 0x10006f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-4"></a><h3>IBUS_KEY_Farsi_4</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_4 0x10006f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-5"></a><h3>IBUS_KEY_Farsi_5</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_5 0x10006f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-6"></a><h3>IBUS_KEY_Farsi_6</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_6 0x10006f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-7"></a><h3>IBUS_KEY_Farsi_7</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_7 0x10006f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-8"></a><h3>IBUS_KEY_Farsi_8</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_8 0x10006f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-9"></a><h3>IBUS_KEY_Farsi_9</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_9 0x10006f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-percent"></a><h3>IBUS_KEY_Arabic_percent</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_percent 0x100066a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-superscript-alef"></a><h3>IBUS_KEY_Arabic_superscript_alef</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_superscript_alef 0x1000670
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-tteh"></a><h3>IBUS_KEY_Arabic_tteh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_tteh 0x1000679
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-peh"></a><h3>IBUS_KEY_Arabic_peh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_peh 0x100067e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-tcheh"></a><h3>IBUS_KEY_Arabic_tcheh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_tcheh 0x1000686
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-ddal"></a><h3>IBUS_KEY_Arabic_ddal</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_ddal 0x1000688
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-rreh"></a><h3>IBUS_KEY_Arabic_rreh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_rreh 0x1000691
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-comma"></a><h3>IBUS_KEY_Arabic_comma</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_comma 0x5ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-fullstop"></a><h3>IBUS_KEY_Arabic_fullstop</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_fullstop 0x10006d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-0"></a><h3>IBUS_KEY_Arabic_0</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_0 0x1000660
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-1"></a><h3>IBUS_KEY_Arabic_1</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_1 0x1000661
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-2"></a><h3>IBUS_KEY_Arabic_2</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_2 0x1000662
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-3"></a><h3>IBUS_KEY_Arabic_3</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_3 0x1000663
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-4"></a><h3>IBUS_KEY_Arabic_4</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_4 0x1000664
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-5"></a><h3>IBUS_KEY_Arabic_5</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_5 0x1000665
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-6"></a><h3>IBUS_KEY_Arabic_6</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_6 0x1000666
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-7"></a><h3>IBUS_KEY_Arabic_7</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_7 0x1000667
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-8"></a><h3>IBUS_KEY_Arabic_8</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_8 0x1000668
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-9"></a><h3>IBUS_KEY_Arabic_9</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_9 0x1000669
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-semicolon"></a><h3>IBUS_KEY_Arabic_semicolon</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_semicolon 0x5bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-question-mark"></a><h3>IBUS_KEY_Arabic_question_mark</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_question_mark 0x5bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-hamza"></a><h3>IBUS_KEY_Arabic_hamza</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_hamza 0x5c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-maddaonalef"></a><h3>IBUS_KEY_Arabic_maddaonalef</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_maddaonalef 0x5c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-hamzaonalef"></a><h3>IBUS_KEY_Arabic_hamzaonalef</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_hamzaonalef 0x5c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-hamzaonwaw"></a><h3>IBUS_KEY_Arabic_hamzaonwaw</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_hamzaonwaw 0x5c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-hamzaunderalef"></a><h3>IBUS_KEY_Arabic_hamzaunderalef</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_hamzaunderalef 0x5c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-hamzaonyeh"></a><h3>IBUS_KEY_Arabic_hamzaonyeh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_hamzaonyeh 0x5c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-alef"></a><h3>IBUS_KEY_Arabic_alef</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_alef 0x5c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-beh"></a><h3>IBUS_KEY_Arabic_beh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_beh 0x5c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-tehmarbuta"></a><h3>IBUS_KEY_Arabic_tehmarbuta</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_tehmarbuta 0x5c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-teh"></a><h3>IBUS_KEY_Arabic_teh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_teh 0x5ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-theh"></a><h3>IBUS_KEY_Arabic_theh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_theh 0x5cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-jeem"></a><h3>IBUS_KEY_Arabic_jeem</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_jeem 0x5cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-hah"></a><h3>IBUS_KEY_Arabic_hah</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_hah 0x5cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-khah"></a><h3>IBUS_KEY_Arabic_khah</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_khah 0x5ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-dal"></a><h3>IBUS_KEY_Arabic_dal</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_dal 0x5cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-thal"></a><h3>IBUS_KEY_Arabic_thal</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_thal 0x5d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-ra"></a><h3>IBUS_KEY_Arabic_ra</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_ra 0x5d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-zain"></a><h3>IBUS_KEY_Arabic_zain</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_zain 0x5d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-seen"></a><h3>IBUS_KEY_Arabic_seen</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_seen 0x5d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-sheen"></a><h3>IBUS_KEY_Arabic_sheen</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_sheen 0x5d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-sad"></a><h3>IBUS_KEY_Arabic_sad</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_sad 0x5d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-dad"></a><h3>IBUS_KEY_Arabic_dad</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_dad 0x5d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-tah"></a><h3>IBUS_KEY_Arabic_tah</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_tah 0x5d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-zah"></a><h3>IBUS_KEY_Arabic_zah</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_zah 0x5d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-ain"></a><h3>IBUS_KEY_Arabic_ain</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_ain 0x5d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-ghain"></a><h3>IBUS_KEY_Arabic_ghain</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_ghain 0x5da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-tatweel"></a><h3>IBUS_KEY_Arabic_tatweel</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_tatweel 0x5e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-feh"></a><h3>IBUS_KEY_Arabic_feh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_feh 0x5e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-qaf"></a><h3>IBUS_KEY_Arabic_qaf</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_qaf 0x5e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-kaf"></a><h3>IBUS_KEY_Arabic_kaf</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_kaf 0x5e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-lam"></a><h3>IBUS_KEY_Arabic_lam</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_lam 0x5e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-meem"></a><h3>IBUS_KEY_Arabic_meem</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_meem 0x5e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-noon"></a><h3>IBUS_KEY_Arabic_noon</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_noon 0x5e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-ha"></a><h3>IBUS_KEY_Arabic_ha</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_ha 0x5e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-heh"></a><h3>IBUS_KEY_Arabic_heh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_heh 0x5e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-waw"></a><h3>IBUS_KEY_Arabic_waw</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_waw 0x5e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-alefmaksura"></a><h3>IBUS_KEY_Arabic_alefmaksura</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_alefmaksura 0x5e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-yeh"></a><h3>IBUS_KEY_Arabic_yeh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_yeh 0x5ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-fathatan"></a><h3>IBUS_KEY_Arabic_fathatan</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_fathatan 0x5eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-dammatan"></a><h3>IBUS_KEY_Arabic_dammatan</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_dammatan 0x5ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-kasratan"></a><h3>IBUS_KEY_Arabic_kasratan</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_kasratan 0x5ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-fatha"></a><h3>IBUS_KEY_Arabic_fatha</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_fatha 0x5ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-damma"></a><h3>IBUS_KEY_Arabic_damma</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_damma 0x5ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-kasra"></a><h3>IBUS_KEY_Arabic_kasra</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_kasra 0x5f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-shadda"></a><h3>IBUS_KEY_Arabic_shadda</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_shadda 0x5f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-sukun"></a><h3>IBUS_KEY_Arabic_sukun</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_sukun 0x5f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-madda-above"></a><h3>IBUS_KEY_Arabic_madda_above</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_madda_above 0x1000653
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-hamza-above"></a><h3>IBUS_KEY_Arabic_hamza_above</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_hamza_above 0x1000654
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-hamza-below"></a><h3>IBUS_KEY_Arabic_hamza_below</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_hamza_below 0x1000655
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-jeh"></a><h3>IBUS_KEY_Arabic_jeh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_jeh 0x1000698
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-veh"></a><h3>IBUS_KEY_Arabic_veh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_veh 0x10006a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-keheh"></a><h3>IBUS_KEY_Arabic_keheh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_keheh 0x10006a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-gaf"></a><h3>IBUS_KEY_Arabic_gaf</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_gaf 0x10006af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-noon-ghunna"></a><h3>IBUS_KEY_Arabic_noon_ghunna</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_noon_ghunna 0x10006ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-heh-doachashmee"></a><h3>IBUS_KEY_Arabic_heh_doachashmee</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_heh_doachashmee 0x10006be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Farsi-yeh"></a><h3>IBUS_KEY_Farsi_yeh</h3>
+<pre class="programlisting">#define IBUS_KEY_Farsi_yeh 0x10006cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-farsi-yeh"></a><h3>IBUS_KEY_Arabic_farsi_yeh</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_farsi_yeh 0x10006cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-yeh-baree"></a><h3>IBUS_KEY_Arabic_yeh_baree</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_yeh_baree 0x10006d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-heh-goal"></a><h3>IBUS_KEY_Arabic_heh_goal</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_heh_goal 0x10006c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Arabic-switch"></a><h3>IBUS_KEY_Arabic_switch</h3>
+<pre class="programlisting">#define IBUS_KEY_Arabic_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-GHE-bar"></a><h3>IBUS_KEY_Cyrillic_GHE_bar</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_GHE_bar 0x1000492
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ghe-bar"></a><h3>IBUS_KEY_Cyrillic_ghe_bar</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ghe_bar 0x1000493
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ZHE-descender"></a><h3>IBUS_KEY_Cyrillic_ZHE_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ZHE_descender 0x1000496
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-zhe-descender"></a><h3>IBUS_KEY_Cyrillic_zhe_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_zhe_descender 0x1000497
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-KA-descender"></a><h3>IBUS_KEY_Cyrillic_KA_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_KA_descender 0x100049a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ka-descender"></a><h3>IBUS_KEY_Cyrillic_ka_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ka_descender 0x100049b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-KA-vertstroke"></a><h3>IBUS_KEY_Cyrillic_KA_vertstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_KA_vertstroke 0x100049c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ka-vertstroke"></a><h3>IBUS_KEY_Cyrillic_ka_vertstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ka_vertstroke 0x100049d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-EN-descender"></a><h3>IBUS_KEY_Cyrillic_EN_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_EN_descender 0x10004a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-en-descender"></a><h3>IBUS_KEY_Cyrillic_en_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_en_descender 0x10004a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-U-straight"></a><h3>IBUS_KEY_Cyrillic_U_straight</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_U_straight 0x10004ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-u-straight"></a><h3>IBUS_KEY_Cyrillic_u_straight</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_u_straight 0x10004af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-U-straight-bar"></a><h3>IBUS_KEY_Cyrillic_U_straight_bar</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_U_straight_bar 0x10004b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-u-straight-bar"></a><h3>IBUS_KEY_Cyrillic_u_straight_bar</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_u_straight_bar 0x10004b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-HA-descender"></a><h3>IBUS_KEY_Cyrillic_HA_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_HA_descender 0x10004b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ha-descender"></a><h3>IBUS_KEY_Cyrillic_ha_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ha_descender 0x10004b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-CHE-descender"></a><h3>IBUS_KEY_Cyrillic_CHE_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_CHE_descender 0x10004b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-che-descender"></a><h3>IBUS_KEY_Cyrillic_che_descender</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_che_descender 0x10004b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-CHE-vertstroke"></a><h3>IBUS_KEY_Cyrillic_CHE_vertstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_CHE_vertstroke 0x10004b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-che-vertstroke"></a><h3>IBUS_KEY_Cyrillic_che_vertstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_che_vertstroke 0x10004b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-SHHA"></a><h3>IBUS_KEY_Cyrillic_SHHA</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_SHHA 0x10004ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-shha"></a><h3>IBUS_KEY_Cyrillic_shha</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_shha 0x10004bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-SCHWA"></a><h3>IBUS_KEY_Cyrillic_SCHWA</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_SCHWA 0x10004d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-schwa"></a><h3>IBUS_KEY_Cyrillic_schwa</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_schwa 0x10004d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-I-macron"></a><h3>IBUS_KEY_Cyrillic_I_macron</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_I_macron 0x10004e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-i-macron"></a><h3>IBUS_KEY_Cyrillic_i_macron</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_i_macron 0x10004e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-O-bar"></a><h3>IBUS_KEY_Cyrillic_O_bar</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_O_bar 0x10004e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-o-bar"></a><h3>IBUS_KEY_Cyrillic_o_bar</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_o_bar 0x10004e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-U-macron"></a><h3>IBUS_KEY_Cyrillic_U_macron</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_U_macron 0x10004ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-u-macron"></a><h3>IBUS_KEY_Cyrillic_u_macron</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_u_macron 0x10004ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-dje"></a><h3>IBUS_KEY_Serbian_dje</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_dje 0x6a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Macedonia-gje"></a><h3>IBUS_KEY_Macedonia_gje</h3>
+<pre class="programlisting">#define IBUS_KEY_Macedonia_gje 0x6a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-io"></a><h3>IBUS_KEY_Cyrillic_io</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_io 0x6a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukrainian-ie"></a><h3>IBUS_KEY_Ukrainian_ie</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukrainian_ie 0x6a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukranian-je"></a><h3>IBUS_KEY_Ukranian_je</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukranian_je 0x6a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Macedonia-dse"></a><h3>IBUS_KEY_Macedonia_dse</h3>
+<pre class="programlisting">#define IBUS_KEY_Macedonia_dse 0x6a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukrainian-i"></a><h3>IBUS_KEY_Ukrainian_i</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukrainian_i 0x6a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukranian-i"></a><h3>IBUS_KEY_Ukranian_i</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukranian_i 0x6a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukrainian-yi"></a><h3>IBUS_KEY_Ukrainian_yi</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukrainian_yi 0x6a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukranian-yi"></a><h3>IBUS_KEY_Ukranian_yi</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukranian_yi 0x6a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-je"></a><h3>IBUS_KEY_Cyrillic_je</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_je 0x6a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-je"></a><h3>IBUS_KEY_Serbian_je</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_je 0x6a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-lje"></a><h3>IBUS_KEY_Cyrillic_lje</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_lje 0x6a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-lje"></a><h3>IBUS_KEY_Serbian_lje</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_lje 0x6a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-nje"></a><h3>IBUS_KEY_Cyrillic_nje</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_nje 0x6aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-nje"></a><h3>IBUS_KEY_Serbian_nje</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_nje 0x6aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-tshe"></a><h3>IBUS_KEY_Serbian_tshe</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_tshe 0x6ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Macedonia-kje"></a><h3>IBUS_KEY_Macedonia_kje</h3>
+<pre class="programlisting">#define IBUS_KEY_Macedonia_kje 0x6ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukrainian-ghe-with-upturn"></a><h3>IBUS_KEY_Ukrainian_ghe_with_upturn</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukrainian_ghe_with_upturn 0x6ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Byelorussian-shortu"></a><h3>IBUS_KEY_Byelorussian_shortu</h3>
+<pre class="programlisting">#define IBUS_KEY_Byelorussian_shortu 0x6ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-dzhe"></a><h3>IBUS_KEY_Cyrillic_dzhe</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_dzhe 0x6af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-dze"></a><h3>IBUS_KEY_Serbian_dze</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_dze 0x6af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-numerosign"></a><h3>IBUS_KEY_numerosign</h3>
+<pre class="programlisting">#define IBUS_KEY_numerosign 0x6b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-DJE"></a><h3>IBUS_KEY_Serbian_DJE</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_DJE 0x6b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Macedonia-GJE"></a><h3>IBUS_KEY_Macedonia_GJE</h3>
+<pre class="programlisting">#define IBUS_KEY_Macedonia_GJE 0x6b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-IO"></a><h3>IBUS_KEY_Cyrillic_IO</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_IO 0x6b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukrainian-IE"></a><h3>IBUS_KEY_Ukrainian_IE</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukrainian_IE 0x6b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukranian-JE"></a><h3>IBUS_KEY_Ukranian_JE</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukranian_JE 0x6b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Macedonia-DSE"></a><h3>IBUS_KEY_Macedonia_DSE</h3>
+<pre class="programlisting">#define IBUS_KEY_Macedonia_DSE 0x6b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukrainian-I"></a><h3>IBUS_KEY_Ukrainian_I</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukrainian_I 0x6b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukranian-I"></a><h3>IBUS_KEY_Ukranian_I</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukranian_I 0x6b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukrainian-YI"></a><h3>IBUS_KEY_Ukrainian_YI</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukrainian_YI 0x6b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukranian-YI"></a><h3>IBUS_KEY_Ukranian_YI</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukranian_YI 0x6b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-JE"></a><h3>IBUS_KEY_Cyrillic_JE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_JE 0x6b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-JE"></a><h3>IBUS_KEY_Serbian_JE</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_JE 0x6b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-LJE"></a><h3>IBUS_KEY_Cyrillic_LJE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_LJE 0x6b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-LJE"></a><h3>IBUS_KEY_Serbian_LJE</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_LJE 0x6b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-NJE"></a><h3>IBUS_KEY_Cyrillic_NJE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_NJE 0x6ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-NJE"></a><h3>IBUS_KEY_Serbian_NJE</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_NJE 0x6ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-TSHE"></a><h3>IBUS_KEY_Serbian_TSHE</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_TSHE 0x6bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Macedonia-KJE"></a><h3>IBUS_KEY_Macedonia_KJE</h3>
+<pre class="programlisting">#define IBUS_KEY_Macedonia_KJE 0x6bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ukrainian-GHE-WITH-UPTURN"></a><h3>IBUS_KEY_Ukrainian_GHE_WITH_UPTURN</h3>
+<pre class="programlisting">#define IBUS_KEY_Ukrainian_GHE_WITH_UPTURN 0x6bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Byelorussian-SHORTU"></a><h3>IBUS_KEY_Byelorussian_SHORTU</h3>
+<pre class="programlisting">#define IBUS_KEY_Byelorussian_SHORTU 0x6be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-DZHE"></a><h3>IBUS_KEY_Cyrillic_DZHE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_DZHE 0x6bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Serbian-DZE"></a><h3>IBUS_KEY_Serbian_DZE</h3>
+<pre class="programlisting">#define IBUS_KEY_Serbian_DZE 0x6bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-yu"></a><h3>IBUS_KEY_Cyrillic_yu</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_yu 0x6c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-a"></a><h3>IBUS_KEY_Cyrillic_a</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_a 0x6c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-be"></a><h3>IBUS_KEY_Cyrillic_be</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_be 0x6c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-tse"></a><h3>IBUS_KEY_Cyrillic_tse</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_tse 0x6c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-de"></a><h3>IBUS_KEY_Cyrillic_de</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_de 0x6c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ie"></a><h3>IBUS_KEY_Cyrillic_ie</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ie 0x6c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ef"></a><h3>IBUS_KEY_Cyrillic_ef</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ef 0x6c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ghe"></a><h3>IBUS_KEY_Cyrillic_ghe</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ghe 0x6c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ha"></a><h3>IBUS_KEY_Cyrillic_ha</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ha 0x6c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-i"></a><h3>IBUS_KEY_Cyrillic_i</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_i 0x6c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-shorti"></a><h3>IBUS_KEY_Cyrillic_shorti</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_shorti 0x6ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ka"></a><h3>IBUS_KEY_Cyrillic_ka</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ka 0x6cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-el"></a><h3>IBUS_KEY_Cyrillic_el</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_el 0x6cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-em"></a><h3>IBUS_KEY_Cyrillic_em</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_em 0x6cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-en"></a><h3>IBUS_KEY_Cyrillic_en</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_en 0x6ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-o"></a><h3>IBUS_KEY_Cyrillic_o</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_o 0x6cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-pe"></a><h3>IBUS_KEY_Cyrillic_pe</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_pe 0x6d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ya"></a><h3>IBUS_KEY_Cyrillic_ya</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ya 0x6d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-er"></a><h3>IBUS_KEY_Cyrillic_er</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_er 0x6d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-es"></a><h3>IBUS_KEY_Cyrillic_es</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_es 0x6d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-te"></a><h3>IBUS_KEY_Cyrillic_te</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_te 0x6d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-u"></a><h3>IBUS_KEY_Cyrillic_u</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_u 0x6d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-zhe"></a><h3>IBUS_KEY_Cyrillic_zhe</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_zhe 0x6d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ve"></a><h3>IBUS_KEY_Cyrillic_ve</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ve 0x6d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-softsign"></a><h3>IBUS_KEY_Cyrillic_softsign</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_softsign 0x6d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-yeru"></a><h3>IBUS_KEY_Cyrillic_yeru</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_yeru 0x6d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ze"></a><h3>IBUS_KEY_Cyrillic_ze</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ze 0x6da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-sha"></a><h3>IBUS_KEY_Cyrillic_sha</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_sha 0x6db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-e"></a><h3>IBUS_KEY_Cyrillic_e</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_e 0x6dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-shcha"></a><h3>IBUS_KEY_Cyrillic_shcha</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_shcha 0x6dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-che"></a><h3>IBUS_KEY_Cyrillic_che</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_che 0x6de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-hardsign"></a><h3>IBUS_KEY_Cyrillic_hardsign</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_hardsign 0x6df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-YU"></a><h3>IBUS_KEY_Cyrillic_YU</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_YU 0x6e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-A"></a><h3>IBUS_KEY_Cyrillic_A</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_A 0x6e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-BE"></a><h3>IBUS_KEY_Cyrillic_BE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_BE 0x6e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-TSE"></a><h3>IBUS_KEY_Cyrillic_TSE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_TSE 0x6e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-DE"></a><h3>IBUS_KEY_Cyrillic_DE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_DE 0x6e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-IE"></a><h3>IBUS_KEY_Cyrillic_IE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_IE 0x6e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-EF"></a><h3>IBUS_KEY_Cyrillic_EF</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_EF 0x6e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-GHE"></a><h3>IBUS_KEY_Cyrillic_GHE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_GHE 0x6e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-HA"></a><h3>IBUS_KEY_Cyrillic_HA</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_HA 0x6e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-I"></a><h3>IBUS_KEY_Cyrillic_I</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_I 0x6e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-SHORTI"></a><h3>IBUS_KEY_Cyrillic_SHORTI</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_SHORTI 0x6ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-KA"></a><h3>IBUS_KEY_Cyrillic_KA</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_KA 0x6eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-EL"></a><h3>IBUS_KEY_Cyrillic_EL</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_EL 0x6ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-EM"></a><h3>IBUS_KEY_Cyrillic_EM</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_EM 0x6ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-EN"></a><h3>IBUS_KEY_Cyrillic_EN</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_EN 0x6ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-O"></a><h3>IBUS_KEY_Cyrillic_O</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_O 0x6ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-PE"></a><h3>IBUS_KEY_Cyrillic_PE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_PE 0x6f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-YA"></a><h3>IBUS_KEY_Cyrillic_YA</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_YA 0x6f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ER"></a><h3>IBUS_KEY_Cyrillic_ER</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ER 0x6f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ES"></a><h3>IBUS_KEY_Cyrillic_ES</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ES 0x6f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-TE"></a><h3>IBUS_KEY_Cyrillic_TE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_TE 0x6f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-U"></a><h3>IBUS_KEY_Cyrillic_U</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_U 0x6f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ZHE"></a><h3>IBUS_KEY_Cyrillic_ZHE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ZHE 0x6f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-VE"></a><h3>IBUS_KEY_Cyrillic_VE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_VE 0x6f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-SOFTSIGN"></a><h3>IBUS_KEY_Cyrillic_SOFTSIGN</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_SOFTSIGN 0x6f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-YERU"></a><h3>IBUS_KEY_Cyrillic_YERU</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_YERU 0x6f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-ZE"></a><h3>IBUS_KEY_Cyrillic_ZE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_ZE 0x6fa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-SHA"></a><h3>IBUS_KEY_Cyrillic_SHA</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_SHA 0x6fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-E"></a><h3>IBUS_KEY_Cyrillic_E</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_E 0x6fc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-SHCHA"></a><h3>IBUS_KEY_Cyrillic_SHCHA</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_SHCHA 0x6fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-CHE"></a><h3>IBUS_KEY_Cyrillic_CHE</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_CHE 0x6fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Cyrillic-HARDSIGN"></a><h3>IBUS_KEY_Cyrillic_HARDSIGN</h3>
+<pre class="programlisting">#define IBUS_KEY_Cyrillic_HARDSIGN 0x6ff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-ALPHAaccent"></a><h3>IBUS_KEY_Greek_ALPHAaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_ALPHAaccent 0x7a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-EPSILONaccent"></a><h3>IBUS_KEY_Greek_EPSILONaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_EPSILONaccent 0x7a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-ETAaccent"></a><h3>IBUS_KEY_Greek_ETAaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_ETAaccent 0x7a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-IOTAaccent"></a><h3>IBUS_KEY_Greek_IOTAaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_IOTAaccent 0x7a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-IOTAdieresis"></a><h3>IBUS_KEY_Greek_IOTAdieresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_IOTAdieresis 0x7a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-IOTAdiaeresis"></a><h3>IBUS_KEY_Greek_IOTAdiaeresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_IOTAdiaeresis 0x7a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-OMICRONaccent"></a><h3>IBUS_KEY_Greek_OMICRONaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_OMICRONaccent 0x7a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-UPSILONaccent"></a><h3>IBUS_KEY_Greek_UPSILONaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_UPSILONaccent 0x7a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-UPSILONdieresis"></a><h3>IBUS_KEY_Greek_UPSILONdieresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_UPSILONdieresis 0x7a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-OMEGAaccent"></a><h3>IBUS_KEY_Greek_OMEGAaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_OMEGAaccent 0x7ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-accentdieresis"></a><h3>IBUS_KEY_Greek_accentdieresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_accentdieresis 0x7ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-horizbar"></a><h3>IBUS_KEY_Greek_horizbar</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_horizbar 0x7af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-alphaaccent"></a><h3>IBUS_KEY_Greek_alphaaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_alphaaccent 0x7b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-epsilonaccent"></a><h3>IBUS_KEY_Greek_epsilonaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_epsilonaccent 0x7b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-etaaccent"></a><h3>IBUS_KEY_Greek_etaaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_etaaccent 0x7b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-iotaaccent"></a><h3>IBUS_KEY_Greek_iotaaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_iotaaccent 0x7b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-iotadieresis"></a><h3>IBUS_KEY_Greek_iotadieresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_iotadieresis 0x7b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-iotaaccentdieresis"></a><h3>IBUS_KEY_Greek_iotaaccentdieresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_iotaaccentdieresis 0x7b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-omicronaccent"></a><h3>IBUS_KEY_Greek_omicronaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_omicronaccent 0x7b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-upsilonaccent"></a><h3>IBUS_KEY_Greek_upsilonaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_upsilonaccent 0x7b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-upsilondieresis"></a><h3>IBUS_KEY_Greek_upsilondieresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_upsilondieresis 0x7b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-upsilonaccentdieresis"></a><h3>IBUS_KEY_Greek_upsilonaccentdieresis</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_upsilonaccentdieresis 0x7ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-omegaaccent"></a><h3>IBUS_KEY_Greek_omegaaccent</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_omegaaccent 0x7bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-ALPHA"></a><h3>IBUS_KEY_Greek_ALPHA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_ALPHA 0x7c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-BETA"></a><h3>IBUS_KEY_Greek_BETA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_BETA 0x7c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-GAMMA"></a><h3>IBUS_KEY_Greek_GAMMA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_GAMMA 0x7c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-DELTA"></a><h3>IBUS_KEY_Greek_DELTA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_DELTA 0x7c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-EPSILON"></a><h3>IBUS_KEY_Greek_EPSILON</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_EPSILON 0x7c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-ZETA"></a><h3>IBUS_KEY_Greek_ZETA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_ZETA 0x7c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-ETA"></a><h3>IBUS_KEY_Greek_ETA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_ETA 0x7c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-THETA"></a><h3>IBUS_KEY_Greek_THETA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_THETA 0x7c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-IOTA"></a><h3>IBUS_KEY_Greek_IOTA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_IOTA 0x7c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-KAPPA"></a><h3>IBUS_KEY_Greek_KAPPA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_KAPPA 0x7ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-LAMDA"></a><h3>IBUS_KEY_Greek_LAMDA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_LAMDA 0x7cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-LAMBDA"></a><h3>IBUS_KEY_Greek_LAMBDA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_LAMBDA 0x7cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-MU"></a><h3>IBUS_KEY_Greek_MU</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_MU 0x7cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-NU"></a><h3>IBUS_KEY_Greek_NU</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_NU 0x7cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-XI"></a><h3>IBUS_KEY_Greek_XI</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_XI 0x7ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-OMICRON"></a><h3>IBUS_KEY_Greek_OMICRON</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_OMICRON 0x7cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-PI"></a><h3>IBUS_KEY_Greek_PI</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_PI 0x7d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-RHO"></a><h3>IBUS_KEY_Greek_RHO</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_RHO 0x7d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-SIGMA"></a><h3>IBUS_KEY_Greek_SIGMA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_SIGMA 0x7d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-TAU"></a><h3>IBUS_KEY_Greek_TAU</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_TAU 0x7d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-UPSILON"></a><h3>IBUS_KEY_Greek_UPSILON</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_UPSILON 0x7d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-PHI"></a><h3>IBUS_KEY_Greek_PHI</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_PHI 0x7d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-CHI"></a><h3>IBUS_KEY_Greek_CHI</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_CHI 0x7d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-PSI"></a><h3>IBUS_KEY_Greek_PSI</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_PSI 0x7d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-OMEGA"></a><h3>IBUS_KEY_Greek_OMEGA</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_OMEGA 0x7d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-alpha"></a><h3>IBUS_KEY_Greek_alpha</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_alpha 0x7e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-beta"></a><h3>IBUS_KEY_Greek_beta</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_beta 0x7e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-gamma"></a><h3>IBUS_KEY_Greek_gamma</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_gamma 0x7e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-delta"></a><h3>IBUS_KEY_Greek_delta</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_delta 0x7e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-epsilon"></a><h3>IBUS_KEY_Greek_epsilon</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_epsilon 0x7e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-zeta"></a><h3>IBUS_KEY_Greek_zeta</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_zeta 0x7e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-eta"></a><h3>IBUS_KEY_Greek_eta</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_eta 0x7e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-theta"></a><h3>IBUS_KEY_Greek_theta</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_theta 0x7e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-iota"></a><h3>IBUS_KEY_Greek_iota</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_iota 0x7e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-kappa"></a><h3>IBUS_KEY_Greek_kappa</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_kappa 0x7ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-lamda"></a><h3>IBUS_KEY_Greek_lamda</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_lamda 0x7eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-lambda"></a><h3>IBUS_KEY_Greek_lambda</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_lambda 0x7eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-mu"></a><h3>IBUS_KEY_Greek_mu</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_mu 0x7ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-nu"></a><h3>IBUS_KEY_Greek_nu</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_nu 0x7ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-xi"></a><h3>IBUS_KEY_Greek_xi</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_xi 0x7ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-omicron"></a><h3>IBUS_KEY_Greek_omicron</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_omicron 0x7ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-pi"></a><h3>IBUS_KEY_Greek_pi</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_pi 0x7f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-rho"></a><h3>IBUS_KEY_Greek_rho</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_rho 0x7f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-sigma"></a><h3>IBUS_KEY_Greek_sigma</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_sigma 0x7f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-finalsmallsigma"></a><h3>IBUS_KEY_Greek_finalsmallsigma</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_finalsmallsigma 0x7f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-tau"></a><h3>IBUS_KEY_Greek_tau</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_tau 0x7f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-upsilon"></a><h3>IBUS_KEY_Greek_upsilon</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_upsilon 0x7f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-phi"></a><h3>IBUS_KEY_Greek_phi</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_phi 0x7f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-chi"></a><h3>IBUS_KEY_Greek_chi</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_chi 0x7f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-psi"></a><h3>IBUS_KEY_Greek_psi</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_psi 0x7f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-omega"></a><h3>IBUS_KEY_Greek_omega</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_omega 0x7f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Greek-switch"></a><h3>IBUS_KEY_Greek_switch</h3>
+<pre class="programlisting">#define IBUS_KEY_Greek_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftradical"></a><h3>IBUS_KEY_leftradical</h3>
+<pre class="programlisting">#define IBUS_KEY_leftradical 0x8a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-topleftradical"></a><h3>IBUS_KEY_topleftradical</h3>
+<pre class="programlisting">#define IBUS_KEY_topleftradical 0x8a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-horizconnector"></a><h3>IBUS_KEY_horizconnector</h3>
+<pre class="programlisting">#define IBUS_KEY_horizconnector 0x8a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-topintegral"></a><h3>IBUS_KEY_topintegral</h3>
+<pre class="programlisting">#define IBUS_KEY_topintegral 0x8a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-botintegral"></a><h3>IBUS_KEY_botintegral</h3>
+<pre class="programlisting">#define IBUS_KEY_botintegral 0x8a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-vertconnector"></a><h3>IBUS_KEY_vertconnector</h3>
+<pre class="programlisting">#define IBUS_KEY_vertconnector 0x8a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-topleftsqbracket"></a><h3>IBUS_KEY_topleftsqbracket</h3>
+<pre class="programlisting">#define IBUS_KEY_topleftsqbracket 0x8a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-botleftsqbracket"></a><h3>IBUS_KEY_botleftsqbracket</h3>
+<pre class="programlisting">#define IBUS_KEY_botleftsqbracket 0x8a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-toprightsqbracket"></a><h3>IBUS_KEY_toprightsqbracket</h3>
+<pre class="programlisting">#define IBUS_KEY_toprightsqbracket 0x8a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-botrightsqbracket"></a><h3>IBUS_KEY_botrightsqbracket</h3>
+<pre class="programlisting">#define IBUS_KEY_botrightsqbracket 0x8aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-topleftparens"></a><h3>IBUS_KEY_topleftparens</h3>
+<pre class="programlisting">#define IBUS_KEY_topleftparens 0x8ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-botleftparens"></a><h3>IBUS_KEY_botleftparens</h3>
+<pre class="programlisting">#define IBUS_KEY_botleftparens 0x8ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-toprightparens"></a><h3>IBUS_KEY_toprightparens</h3>
+<pre class="programlisting">#define IBUS_KEY_toprightparens 0x8ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-botrightparens"></a><h3>IBUS_KEY_botrightparens</h3>
+<pre class="programlisting">#define IBUS_KEY_botrightparens 0x8ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftmiddlecurlybrace"></a><h3>IBUS_KEY_leftmiddlecurlybrace</h3>
+<pre class="programlisting">#define IBUS_KEY_leftmiddlecurlybrace 0x8af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightmiddlecurlybrace"></a><h3>IBUS_KEY_rightmiddlecurlybrace</h3>
+<pre class="programlisting">#define IBUS_KEY_rightmiddlecurlybrace 0x8b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-topleftsummation"></a><h3>IBUS_KEY_topleftsummation</h3>
+<pre class="programlisting">#define IBUS_KEY_topleftsummation 0x8b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-botleftsummation"></a><h3>IBUS_KEY_botleftsummation</h3>
+<pre class="programlisting">#define IBUS_KEY_botleftsummation 0x8b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-topvertsummationconnector"></a><h3>IBUS_KEY_topvertsummationconnector</h3>
+<pre class="programlisting">#define IBUS_KEY_topvertsummationconnector 0x8b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-botvertsummationconnector"></a><h3>IBUS_KEY_botvertsummationconnector</h3>
+<pre class="programlisting">#define IBUS_KEY_botvertsummationconnector 0x8b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-toprightsummation"></a><h3>IBUS_KEY_toprightsummation</h3>
+<pre class="programlisting">#define IBUS_KEY_toprightsummation 0x8b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-botrightsummation"></a><h3>IBUS_KEY_botrightsummation</h3>
+<pre class="programlisting">#define IBUS_KEY_botrightsummation 0x8b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightmiddlesummation"></a><h3>IBUS_KEY_rightmiddlesummation</h3>
+<pre class="programlisting">#define IBUS_KEY_rightmiddlesummation 0x8b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lessthanequal"></a><h3>IBUS_KEY_lessthanequal</h3>
+<pre class="programlisting">#define IBUS_KEY_lessthanequal 0x8bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-notequal"></a><h3>IBUS_KEY_notequal</h3>
+<pre class="programlisting">#define IBUS_KEY_notequal 0x8bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-greaterthanequal"></a><h3>IBUS_KEY_greaterthanequal</h3>
+<pre class="programlisting">#define IBUS_KEY_greaterthanequal 0x8be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-integral"></a><h3>IBUS_KEY_integral</h3>
+<pre class="programlisting">#define IBUS_KEY_integral 0x8bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-therefore"></a><h3>IBUS_KEY_therefore</h3>
+<pre class="programlisting">#define IBUS_KEY_therefore 0x8c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-variation"></a><h3>IBUS_KEY_variation</h3>
+<pre class="programlisting">#define IBUS_KEY_variation 0x8c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-infinity"></a><h3>IBUS_KEY_infinity</h3>
+<pre class="programlisting">#define IBUS_KEY_infinity 0x8c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-nabla"></a><h3>IBUS_KEY_nabla</h3>
+<pre class="programlisting">#define IBUS_KEY_nabla 0x8c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-approximate"></a><h3>IBUS_KEY_approximate</h3>
+<pre class="programlisting">#define IBUS_KEY_approximate 0x8c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-similarequal"></a><h3>IBUS_KEY_similarequal</h3>
+<pre class="programlisting">#define IBUS_KEY_similarequal 0x8c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ifonlyif"></a><h3>IBUS_KEY_ifonlyif</h3>
+<pre class="programlisting">#define IBUS_KEY_ifonlyif 0x8cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-implies"></a><h3>IBUS_KEY_implies</h3>
+<pre class="programlisting">#define IBUS_KEY_implies 0x8ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-identical"></a><h3>IBUS_KEY_identical</h3>
+<pre class="programlisting">#define IBUS_KEY_identical 0x8cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-radical"></a><h3>IBUS_KEY_radical</h3>
+<pre class="programlisting">#define IBUS_KEY_radical 0x8d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-includedin"></a><h3>IBUS_KEY_includedin</h3>
+<pre class="programlisting">#define IBUS_KEY_includedin 0x8da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-includes"></a><h3>IBUS_KEY_includes</h3>
+<pre class="programlisting">#define IBUS_KEY_includes 0x8db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-intersection"></a><h3>IBUS_KEY_intersection</h3>
+<pre class="programlisting">#define IBUS_KEY_intersection 0x8dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-union"></a><h3>IBUS_KEY_union</h3>
+<pre class="programlisting">#define IBUS_KEY_union 0x8dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-logicaland"></a><h3>IBUS_KEY_logicaland</h3>
+<pre class="programlisting">#define IBUS_KEY_logicaland 0x8de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-logicalor"></a><h3>IBUS_KEY_logicalor</h3>
+<pre class="programlisting">#define IBUS_KEY_logicalor 0x8df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-partialderivative"></a><h3>IBUS_KEY_partialderivative</h3>
+<pre class="programlisting">#define IBUS_KEY_partialderivative 0x8ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-function"></a><h3>IBUS_KEY_function</h3>
+<pre class="programlisting">#define IBUS_KEY_function 0x8f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftarrow"></a><h3>IBUS_KEY_leftarrow</h3>
+<pre class="programlisting">#define IBUS_KEY_leftarrow 0x8fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uparrow"></a><h3>IBUS_KEY_uparrow</h3>
+<pre class="programlisting">#define IBUS_KEY_uparrow 0x8fc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightarrow"></a><h3>IBUS_KEY_rightarrow</h3>
+<pre class="programlisting">#define IBUS_KEY_rightarrow 0x8fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-downarrow"></a><h3>IBUS_KEY_downarrow</h3>
+<pre class="programlisting">#define IBUS_KEY_downarrow 0x8fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-blank"></a><h3>IBUS_KEY_blank</h3>
+<pre class="programlisting">#define IBUS_KEY_blank 0x9df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-soliddiamond"></a><h3>IBUS_KEY_soliddiamond</h3>
+<pre class="programlisting">#define IBUS_KEY_soliddiamond 0x9e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-checkerboard"></a><h3>IBUS_KEY_checkerboard</h3>
+<pre class="programlisting">#define IBUS_KEY_checkerboard 0x9e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ht"></a><h3>IBUS_KEY_ht</h3>
+<pre class="programlisting">#define IBUS_KEY_ht 0x9e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ff"></a><h3>IBUS_KEY_ff</h3>
+<pre class="programlisting">#define IBUS_KEY_ff 0x9e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-cr"></a><h3>IBUS_KEY_cr</h3>
+<pre class="programlisting">#define IBUS_KEY_cr 0x9e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lf"></a><h3>IBUS_KEY_lf</h3>
+<pre class="programlisting">#define IBUS_KEY_lf 0x9e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-nl"></a><h3>IBUS_KEY_nl</h3>
+<pre class="programlisting">#define IBUS_KEY_nl 0x9e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-vt"></a><h3>IBUS_KEY_vt</h3>
+<pre class="programlisting">#define IBUS_KEY_vt 0x9e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lowrightcorner"></a><h3>IBUS_KEY_lowrightcorner</h3>
+<pre class="programlisting">#define IBUS_KEY_lowrightcorner 0x9ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uprightcorner"></a><h3>IBUS_KEY_uprightcorner</h3>
+<pre class="programlisting">#define IBUS_KEY_uprightcorner 0x9eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-upleftcorner"></a><h3>IBUS_KEY_upleftcorner</h3>
+<pre class="programlisting">#define IBUS_KEY_upleftcorner 0x9ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lowleftcorner"></a><h3>IBUS_KEY_lowleftcorner</h3>
+<pre class="programlisting">#define IBUS_KEY_lowleftcorner 0x9ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-crossinglines"></a><h3>IBUS_KEY_crossinglines</h3>
+<pre class="programlisting">#define IBUS_KEY_crossinglines 0x9ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-horizlinescan1"></a><h3>IBUS_KEY_horizlinescan1</h3>
+<pre class="programlisting">#define IBUS_KEY_horizlinescan1 0x9ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-horizlinescan3"></a><h3>IBUS_KEY_horizlinescan3</h3>
+<pre class="programlisting">#define IBUS_KEY_horizlinescan3 0x9f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-horizlinescan5"></a><h3>IBUS_KEY_horizlinescan5</h3>
+<pre class="programlisting">#define IBUS_KEY_horizlinescan5 0x9f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-horizlinescan7"></a><h3>IBUS_KEY_horizlinescan7</h3>
+<pre class="programlisting">#define IBUS_KEY_horizlinescan7 0x9f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-horizlinescan9"></a><h3>IBUS_KEY_horizlinescan9</h3>
+<pre class="programlisting">#define IBUS_KEY_horizlinescan9 0x9f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftt"></a><h3>IBUS_KEY_leftt</h3>
+<pre class="programlisting">#define IBUS_KEY_leftt 0x9f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightt"></a><h3>IBUS_KEY_rightt</h3>
+<pre class="programlisting">#define IBUS_KEY_rightt 0x9f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-bott"></a><h3>IBUS_KEY_bott</h3>
+<pre class="programlisting">#define IBUS_KEY_bott 0x9f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-topt"></a><h3>IBUS_KEY_topt</h3>
+<pre class="programlisting">#define IBUS_KEY_topt 0x9f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-vertbar"></a><h3>IBUS_KEY_vertbar</h3>
+<pre class="programlisting">#define IBUS_KEY_vertbar 0x9f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-emspace"></a><h3>IBUS_KEY_emspace</h3>
+<pre class="programlisting">#define IBUS_KEY_emspace 0xaa1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-enspace"></a><h3>IBUS_KEY_enspace</h3>
+<pre class="programlisting">#define IBUS_KEY_enspace 0xaa2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-em3space"></a><h3>IBUS_KEY_em3space</h3>
+<pre class="programlisting">#define IBUS_KEY_em3space 0xaa3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-em4space"></a><h3>IBUS_KEY_em4space</h3>
+<pre class="programlisting">#define IBUS_KEY_em4space 0xaa4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-digitspace"></a><h3>IBUS_KEY_digitspace</h3>
+<pre class="programlisting">#define IBUS_KEY_digitspace 0xaa5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-punctspace"></a><h3>IBUS_KEY_punctspace</h3>
+<pre class="programlisting">#define IBUS_KEY_punctspace 0xaa6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-thinspace"></a><h3>IBUS_KEY_thinspace</h3>
+<pre class="programlisting">#define IBUS_KEY_thinspace 0xaa7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hairspace"></a><h3>IBUS_KEY_hairspace</h3>
+<pre class="programlisting">#define IBUS_KEY_hairspace 0xaa8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-emdash"></a><h3>IBUS_KEY_emdash</h3>
+<pre class="programlisting">#define IBUS_KEY_emdash 0xaa9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-endash"></a><h3>IBUS_KEY_endash</h3>
+<pre class="programlisting">#define IBUS_KEY_endash 0xaaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-signifblank"></a><h3>IBUS_KEY_signifblank</h3>
+<pre class="programlisting">#define IBUS_KEY_signifblank 0xaac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ellipsis"></a><h3>IBUS_KEY_ellipsis</h3>
+<pre class="programlisting">#define IBUS_KEY_ellipsis 0xaae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-doubbaselinedot"></a><h3>IBUS_KEY_doubbaselinedot</h3>
+<pre class="programlisting">#define IBUS_KEY_doubbaselinedot 0xaaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-onethird"></a><h3>IBUS_KEY_onethird</h3>
+<pre class="programlisting">#define IBUS_KEY_onethird 0xab0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-twothirds"></a><h3>IBUS_KEY_twothirds</h3>
+<pre class="programlisting">#define IBUS_KEY_twothirds 0xab1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-onefifth"></a><h3>IBUS_KEY_onefifth</h3>
+<pre class="programlisting">#define IBUS_KEY_onefifth 0xab2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-twofifths"></a><h3>IBUS_KEY_twofifths</h3>
+<pre class="programlisting">#define IBUS_KEY_twofifths 0xab3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-threefifths"></a><h3>IBUS_KEY_threefifths</h3>
+<pre class="programlisting">#define IBUS_KEY_threefifths 0xab4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-fourfifths"></a><h3>IBUS_KEY_fourfifths</h3>
+<pre class="programlisting">#define IBUS_KEY_fourfifths 0xab5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-onesixth"></a><h3>IBUS_KEY_onesixth</h3>
+<pre class="programlisting">#define IBUS_KEY_onesixth 0xab6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-fivesixths"></a><h3>IBUS_KEY_fivesixths</h3>
+<pre class="programlisting">#define IBUS_KEY_fivesixths 0xab7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-careof"></a><h3>IBUS_KEY_careof</h3>
+<pre class="programlisting">#define IBUS_KEY_careof 0xab8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-figdash"></a><h3>IBUS_KEY_figdash</h3>
+<pre class="programlisting">#define IBUS_KEY_figdash 0xabb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftanglebracket"></a><h3>IBUS_KEY_leftanglebracket</h3>
+<pre class="programlisting">#define IBUS_KEY_leftanglebracket 0xabc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-decimalpoint"></a><h3>IBUS_KEY_decimalpoint</h3>
+<pre class="programlisting">#define IBUS_KEY_decimalpoint 0xabd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightanglebracket"></a><h3>IBUS_KEY_rightanglebracket</h3>
+<pre class="programlisting">#define IBUS_KEY_rightanglebracket 0xabe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-marker"></a><h3>IBUS_KEY_marker</h3>
+<pre class="programlisting">#define IBUS_KEY_marker 0xabf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-oneeighth"></a><h3>IBUS_KEY_oneeighth</h3>
+<pre class="programlisting">#define IBUS_KEY_oneeighth 0xac3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-threeeighths"></a><h3>IBUS_KEY_threeeighths</h3>
+<pre class="programlisting">#define IBUS_KEY_threeeighths 0xac4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-fiveeighths"></a><h3>IBUS_KEY_fiveeighths</h3>
+<pre class="programlisting">#define IBUS_KEY_fiveeighths 0xac5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-seveneighths"></a><h3>IBUS_KEY_seveneighths</h3>
+<pre class="programlisting">#define IBUS_KEY_seveneighths 0xac6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-trademark"></a><h3>IBUS_KEY_trademark</h3>
+<pre class="programlisting">#define IBUS_KEY_trademark 0xac9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-signaturemark"></a><h3>IBUS_KEY_signaturemark</h3>
+<pre class="programlisting">#define IBUS_KEY_signaturemark 0xaca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-trademarkincircle"></a><h3>IBUS_KEY_trademarkincircle</h3>
+<pre class="programlisting">#define IBUS_KEY_trademarkincircle 0xacb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftopentriangle"></a><h3>IBUS_KEY_leftopentriangle</h3>
+<pre class="programlisting">#define IBUS_KEY_leftopentriangle 0xacc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightopentriangle"></a><h3>IBUS_KEY_rightopentriangle</h3>
+<pre class="programlisting">#define IBUS_KEY_rightopentriangle 0xacd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-emopencircle"></a><h3>IBUS_KEY_emopencircle</h3>
+<pre class="programlisting">#define IBUS_KEY_emopencircle 0xace
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-emopenrectangle"></a><h3>IBUS_KEY_emopenrectangle</h3>
+<pre class="programlisting">#define IBUS_KEY_emopenrectangle 0xacf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftsinglequotemark"></a><h3>IBUS_KEY_leftsinglequotemark</h3>
+<pre class="programlisting">#define IBUS_KEY_leftsinglequotemark 0xad0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightsinglequotemark"></a><h3>IBUS_KEY_rightsinglequotemark</h3>
+<pre class="programlisting">#define IBUS_KEY_rightsinglequotemark 0xad1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftdoublequotemark"></a><h3>IBUS_KEY_leftdoublequotemark</h3>
+<pre class="programlisting">#define IBUS_KEY_leftdoublequotemark 0xad2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightdoublequotemark"></a><h3>IBUS_KEY_rightdoublequotemark</h3>
+<pre class="programlisting">#define IBUS_KEY_rightdoublequotemark 0xad3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-prescription"></a><h3>IBUS_KEY_prescription</h3>
+<pre class="programlisting">#define IBUS_KEY_prescription 0xad4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-minutes"></a><h3>IBUS_KEY_minutes</h3>
+<pre class="programlisting">#define IBUS_KEY_minutes 0xad6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-seconds"></a><h3>IBUS_KEY_seconds</h3>
+<pre class="programlisting">#define IBUS_KEY_seconds 0xad7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-latincross"></a><h3>IBUS_KEY_latincross</h3>
+<pre class="programlisting">#define IBUS_KEY_latincross 0xad9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hexagram"></a><h3>IBUS_KEY_hexagram</h3>
+<pre class="programlisting">#define IBUS_KEY_hexagram 0xada
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-filledrectbullet"></a><h3>IBUS_KEY_filledrectbullet</h3>
+<pre class="programlisting">#define IBUS_KEY_filledrectbullet 0xadb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-filledlefttribullet"></a><h3>IBUS_KEY_filledlefttribullet</h3>
+<pre class="programlisting">#define IBUS_KEY_filledlefttribullet 0xadc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-filledrighttribullet"></a><h3>IBUS_KEY_filledrighttribullet</h3>
+<pre class="programlisting">#define IBUS_KEY_filledrighttribullet 0xadd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-emfilledcircle"></a><h3>IBUS_KEY_emfilledcircle</h3>
+<pre class="programlisting">#define IBUS_KEY_emfilledcircle 0xade
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-emfilledrect"></a><h3>IBUS_KEY_emfilledrect</h3>
+<pre class="programlisting">#define IBUS_KEY_emfilledrect 0xadf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-enopencircbullet"></a><h3>IBUS_KEY_enopencircbullet</h3>
+<pre class="programlisting">#define IBUS_KEY_enopencircbullet 0xae0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-enopensquarebullet"></a><h3>IBUS_KEY_enopensquarebullet</h3>
+<pre class="programlisting">#define IBUS_KEY_enopensquarebullet 0xae1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-openrectbullet"></a><h3>IBUS_KEY_openrectbullet</h3>
+<pre class="programlisting">#define IBUS_KEY_openrectbullet 0xae2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-opentribulletup"></a><h3>IBUS_KEY_opentribulletup</h3>
+<pre class="programlisting">#define IBUS_KEY_opentribulletup 0xae3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-opentribulletdown"></a><h3>IBUS_KEY_opentribulletdown</h3>
+<pre class="programlisting">#define IBUS_KEY_opentribulletdown 0xae4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-openstar"></a><h3>IBUS_KEY_openstar</h3>
+<pre class="programlisting">#define IBUS_KEY_openstar 0xae5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-enfilledcircbullet"></a><h3>IBUS_KEY_enfilledcircbullet</h3>
+<pre class="programlisting">#define IBUS_KEY_enfilledcircbullet 0xae6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-enfilledsqbullet"></a><h3>IBUS_KEY_enfilledsqbullet</h3>
+<pre class="programlisting">#define IBUS_KEY_enfilledsqbullet 0xae7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-filledtribulletup"></a><h3>IBUS_KEY_filledtribulletup</h3>
+<pre class="programlisting">#define IBUS_KEY_filledtribulletup 0xae8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-filledtribulletdown"></a><h3>IBUS_KEY_filledtribulletdown</h3>
+<pre class="programlisting">#define IBUS_KEY_filledtribulletdown 0xae9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftpointer"></a><h3>IBUS_KEY_leftpointer</h3>
+<pre class="programlisting">#define IBUS_KEY_leftpointer 0xaea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightpointer"></a><h3>IBUS_KEY_rightpointer</h3>
+<pre class="programlisting">#define IBUS_KEY_rightpointer 0xaeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-club"></a><h3>IBUS_KEY_club</h3>
+<pre class="programlisting">#define IBUS_KEY_club 0xaec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-diamond"></a><h3>IBUS_KEY_diamond</h3>
+<pre class="programlisting">#define IBUS_KEY_diamond 0xaed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-heart"></a><h3>IBUS_KEY_heart</h3>
+<pre class="programlisting">#define IBUS_KEY_heart 0xaee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-maltesecross"></a><h3>IBUS_KEY_maltesecross</h3>
+<pre class="programlisting">#define IBUS_KEY_maltesecross 0xaf0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dagger"></a><h3>IBUS_KEY_dagger</h3>
+<pre class="programlisting">#define IBUS_KEY_dagger 0xaf1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-doubledagger"></a><h3>IBUS_KEY_doubledagger</h3>
+<pre class="programlisting">#define IBUS_KEY_doubledagger 0xaf2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-checkmark"></a><h3>IBUS_KEY_checkmark</h3>
+<pre class="programlisting">#define IBUS_KEY_checkmark 0xaf3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ballotcross"></a><h3>IBUS_KEY_ballotcross</h3>
+<pre class="programlisting">#define IBUS_KEY_ballotcross 0xaf4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-musicalsharp"></a><h3>IBUS_KEY_musicalsharp</h3>
+<pre class="programlisting">#define IBUS_KEY_musicalsharp 0xaf5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-musicalflat"></a><h3>IBUS_KEY_musicalflat</h3>
+<pre class="programlisting">#define IBUS_KEY_musicalflat 0xaf6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-malesymbol"></a><h3>IBUS_KEY_malesymbol</h3>
+<pre class="programlisting">#define IBUS_KEY_malesymbol 0xaf7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-femalesymbol"></a><h3>IBUS_KEY_femalesymbol</h3>
+<pre class="programlisting">#define IBUS_KEY_femalesymbol 0xaf8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-telephone"></a><h3>IBUS_KEY_telephone</h3>
+<pre class="programlisting">#define IBUS_KEY_telephone 0xaf9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-telephonerecorder"></a><h3>IBUS_KEY_telephonerecorder</h3>
+<pre class="programlisting">#define IBUS_KEY_telephonerecorder 0xafa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-phonographcopyright"></a><h3>IBUS_KEY_phonographcopyright</h3>
+<pre class="programlisting">#define IBUS_KEY_phonographcopyright 0xafb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-caret"></a><h3>IBUS_KEY_caret</h3>
+<pre class="programlisting">#define IBUS_KEY_caret 0xafc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-singlelowquotemark"></a><h3>IBUS_KEY_singlelowquotemark</h3>
+<pre class="programlisting">#define IBUS_KEY_singlelowquotemark 0xafd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-doublelowquotemark"></a><h3>IBUS_KEY_doublelowquotemark</h3>
+<pre class="programlisting">#define IBUS_KEY_doublelowquotemark 0xafe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-cursor"></a><h3>IBUS_KEY_cursor</h3>
+<pre class="programlisting">#define IBUS_KEY_cursor 0xaff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftcaret"></a><h3>IBUS_KEY_leftcaret</h3>
+<pre class="programlisting">#define IBUS_KEY_leftcaret 0xba3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightcaret"></a><h3>IBUS_KEY_rightcaret</h3>
+<pre class="programlisting">#define IBUS_KEY_rightcaret 0xba6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-downcaret"></a><h3>IBUS_KEY_downcaret</h3>
+<pre class="programlisting">#define IBUS_KEY_downcaret 0xba8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-upcaret"></a><h3>IBUS_KEY_upcaret</h3>
+<pre class="programlisting">#define IBUS_KEY_upcaret 0xba9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-overbar"></a><h3>IBUS_KEY_overbar</h3>
+<pre class="programlisting">#define IBUS_KEY_overbar 0xbc0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-downtack"></a><h3>IBUS_KEY_downtack</h3>
+<pre class="programlisting">#define IBUS_KEY_downtack 0xbc2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-upshoe"></a><h3>IBUS_KEY_upshoe</h3>
+<pre class="programlisting">#define IBUS_KEY_upshoe 0xbc3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-downstile"></a><h3>IBUS_KEY_downstile</h3>
+<pre class="programlisting">#define IBUS_KEY_downstile 0xbc4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-underbar"></a><h3>IBUS_KEY_underbar</h3>
+<pre class="programlisting">#define IBUS_KEY_underbar 0xbc6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-jot"></a><h3>IBUS_KEY_jot</h3>
+<pre class="programlisting">#define IBUS_KEY_jot 0xbca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-quad"></a><h3>IBUS_KEY_quad</h3>
+<pre class="programlisting">#define IBUS_KEY_quad 0xbcc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uptack"></a><h3>IBUS_KEY_uptack</h3>
+<pre class="programlisting">#define IBUS_KEY_uptack 0xbce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-circle"></a><h3>IBUS_KEY_circle</h3>
+<pre class="programlisting">#define IBUS_KEY_circle 0xbcf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-upstile"></a><h3>IBUS_KEY_upstile</h3>
+<pre class="programlisting">#define IBUS_KEY_upstile 0xbd3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-downshoe"></a><h3>IBUS_KEY_downshoe</h3>
+<pre class="programlisting">#define IBUS_KEY_downshoe 0xbd6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-rightshoe"></a><h3>IBUS_KEY_rightshoe</h3>
+<pre class="programlisting">#define IBUS_KEY_rightshoe 0xbd8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-leftshoe"></a><h3>IBUS_KEY_leftshoe</h3>
+<pre class="programlisting">#define IBUS_KEY_leftshoe 0xbda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lefttack"></a><h3>IBUS_KEY_lefttack</h3>
+<pre class="programlisting">#define IBUS_KEY_lefttack 0xbdc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-righttack"></a><h3>IBUS_KEY_righttack</h3>
+<pre class="programlisting">#define IBUS_KEY_righttack 0xbfc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-doublelowline"></a><h3>IBUS_KEY_hebrew_doublelowline</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_doublelowline 0xcdf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-aleph"></a><h3>IBUS_KEY_hebrew_aleph</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_aleph 0xce0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-bet"></a><h3>IBUS_KEY_hebrew_bet</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_bet 0xce1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-beth"></a><h3>IBUS_KEY_hebrew_beth</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_beth 0xce1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-gimel"></a><h3>IBUS_KEY_hebrew_gimel</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_gimel 0xce2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-gimmel"></a><h3>IBUS_KEY_hebrew_gimmel</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_gimmel 0xce2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-dalet"></a><h3>IBUS_KEY_hebrew_dalet</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_dalet 0xce3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-daleth"></a><h3>IBUS_KEY_hebrew_daleth</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_daleth 0xce3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-he"></a><h3>IBUS_KEY_hebrew_he</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_he 0xce4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-waw"></a><h3>IBUS_KEY_hebrew_waw</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_waw 0xce5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-zain"></a><h3>IBUS_KEY_hebrew_zain</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_zain 0xce6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-zayin"></a><h3>IBUS_KEY_hebrew_zayin</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_zayin 0xce6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-chet"></a><h3>IBUS_KEY_hebrew_chet</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_chet 0xce7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-het"></a><h3>IBUS_KEY_hebrew_het</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_het 0xce7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-tet"></a><h3>IBUS_KEY_hebrew_tet</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_tet 0xce8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-teth"></a><h3>IBUS_KEY_hebrew_teth</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_teth 0xce8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-yod"></a><h3>IBUS_KEY_hebrew_yod</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_yod 0xce9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-finalkaph"></a><h3>IBUS_KEY_hebrew_finalkaph</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_finalkaph 0xcea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-kaph"></a><h3>IBUS_KEY_hebrew_kaph</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_kaph 0xceb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-lamed"></a><h3>IBUS_KEY_hebrew_lamed</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_lamed 0xcec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-finalmem"></a><h3>IBUS_KEY_hebrew_finalmem</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_finalmem 0xced
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-mem"></a><h3>IBUS_KEY_hebrew_mem</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_mem 0xcee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-finalnun"></a><h3>IBUS_KEY_hebrew_finalnun</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_finalnun 0xcef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-nun"></a><h3>IBUS_KEY_hebrew_nun</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_nun 0xcf0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-samech"></a><h3>IBUS_KEY_hebrew_samech</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_samech 0xcf1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-samekh"></a><h3>IBUS_KEY_hebrew_samekh</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_samekh 0xcf1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-ayin"></a><h3>IBUS_KEY_hebrew_ayin</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_ayin 0xcf2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-finalpe"></a><h3>IBUS_KEY_hebrew_finalpe</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_finalpe 0xcf3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-pe"></a><h3>IBUS_KEY_hebrew_pe</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_pe 0xcf4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-finalzade"></a><h3>IBUS_KEY_hebrew_finalzade</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_finalzade 0xcf5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-finalzadi"></a><h3>IBUS_KEY_hebrew_finalzadi</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_finalzadi 0xcf5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-zade"></a><h3>IBUS_KEY_hebrew_zade</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_zade 0xcf6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-zadi"></a><h3>IBUS_KEY_hebrew_zadi</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_zadi 0xcf6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-qoph"></a><h3>IBUS_KEY_hebrew_qoph</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_qoph 0xcf7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-kuf"></a><h3>IBUS_KEY_hebrew_kuf</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_kuf 0xcf7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-resh"></a><h3>IBUS_KEY_hebrew_resh</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_resh 0xcf8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-shin"></a><h3>IBUS_KEY_hebrew_shin</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_shin 0xcf9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-taw"></a><h3>IBUS_KEY_hebrew_taw</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_taw 0xcfa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-hebrew-taf"></a><h3>IBUS_KEY_hebrew_taf</h3>
+<pre class="programlisting">#define IBUS_KEY_hebrew_taf 0xcfa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hebrew-switch"></a><h3>IBUS_KEY_Hebrew_switch</h3>
+<pre class="programlisting">#define IBUS_KEY_Hebrew_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-kokai"></a><h3>IBUS_KEY_Thai_kokai</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_kokai 0xda1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-khokhai"></a><h3>IBUS_KEY_Thai_khokhai</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_khokhai 0xda2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-khokhuat"></a><h3>IBUS_KEY_Thai_khokhuat</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_khokhuat 0xda3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-khokhwai"></a><h3>IBUS_KEY_Thai_khokhwai</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_khokhwai 0xda4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-khokhon"></a><h3>IBUS_KEY_Thai_khokhon</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_khokhon 0xda5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-khorakhang"></a><h3>IBUS_KEY_Thai_khorakhang</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_khorakhang 0xda6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-ngongu"></a><h3>IBUS_KEY_Thai_ngongu</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_ngongu 0xda7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-chochan"></a><h3>IBUS_KEY_Thai_chochan</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_chochan 0xda8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-choching"></a><h3>IBUS_KEY_Thai_choching</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_choching 0xda9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-chochang"></a><h3>IBUS_KEY_Thai_chochang</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_chochang 0xdaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-soso"></a><h3>IBUS_KEY_Thai_soso</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_soso 0xdab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-chochoe"></a><h3>IBUS_KEY_Thai_chochoe</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_chochoe 0xdac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-yoying"></a><h3>IBUS_KEY_Thai_yoying</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_yoying 0xdad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-dochada"></a><h3>IBUS_KEY_Thai_dochada</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_dochada 0xdae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-topatak"></a><h3>IBUS_KEY_Thai_topatak</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_topatak 0xdaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-thothan"></a><h3>IBUS_KEY_Thai_thothan</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_thothan 0xdb0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-thonangmontho"></a><h3>IBUS_KEY_Thai_thonangmontho</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_thonangmontho 0xdb1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-thophuthao"></a><h3>IBUS_KEY_Thai_thophuthao</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_thophuthao 0xdb2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-nonen"></a><h3>IBUS_KEY_Thai_nonen</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_nonen 0xdb3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-dodek"></a><h3>IBUS_KEY_Thai_dodek</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_dodek 0xdb4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-totao"></a><h3>IBUS_KEY_Thai_totao</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_totao 0xdb5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-thothung"></a><h3>IBUS_KEY_Thai_thothung</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_thothung 0xdb6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-thothahan"></a><h3>IBUS_KEY_Thai_thothahan</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_thothahan 0xdb7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-thothong"></a><h3>IBUS_KEY_Thai_thothong</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_thothong 0xdb8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-nonu"></a><h3>IBUS_KEY_Thai_nonu</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_nonu 0xdb9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-bobaimai"></a><h3>IBUS_KEY_Thai_bobaimai</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_bobaimai 0xdba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-popla"></a><h3>IBUS_KEY_Thai_popla</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_popla 0xdbb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-phophung"></a><h3>IBUS_KEY_Thai_phophung</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_phophung 0xdbc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-fofa"></a><h3>IBUS_KEY_Thai_fofa</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_fofa 0xdbd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-phophan"></a><h3>IBUS_KEY_Thai_phophan</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_phophan 0xdbe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-fofan"></a><h3>IBUS_KEY_Thai_fofan</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_fofan 0xdbf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-phosamphao"></a><h3>IBUS_KEY_Thai_phosamphao</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_phosamphao 0xdc0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-moma"></a><h3>IBUS_KEY_Thai_moma</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_moma 0xdc1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-yoyak"></a><h3>IBUS_KEY_Thai_yoyak</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_yoyak 0xdc2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-rorua"></a><h3>IBUS_KEY_Thai_rorua</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_rorua 0xdc3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-ru"></a><h3>IBUS_KEY_Thai_ru</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_ru 0xdc4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-loling"></a><h3>IBUS_KEY_Thai_loling</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_loling 0xdc5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-lu"></a><h3>IBUS_KEY_Thai_lu</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_lu 0xdc6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-wowaen"></a><h3>IBUS_KEY_Thai_wowaen</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_wowaen 0xdc7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-sosala"></a><h3>IBUS_KEY_Thai_sosala</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_sosala 0xdc8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-sorusi"></a><h3>IBUS_KEY_Thai_sorusi</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_sorusi 0xdc9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-sosua"></a><h3>IBUS_KEY_Thai_sosua</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_sosua 0xdca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-hohip"></a><h3>IBUS_KEY_Thai_hohip</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_hohip 0xdcb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-lochula"></a><h3>IBUS_KEY_Thai_lochula</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_lochula 0xdcc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-oang"></a><h3>IBUS_KEY_Thai_oang</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_oang 0xdcd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-honokhuk"></a><h3>IBUS_KEY_Thai_honokhuk</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_honokhuk 0xdce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-paiyannoi"></a><h3>IBUS_KEY_Thai_paiyannoi</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_paiyannoi 0xdcf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-saraa"></a><h3>IBUS_KEY_Thai_saraa</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_saraa 0xdd0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-maihanakat"></a><h3>IBUS_KEY_Thai_maihanakat</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_maihanakat 0xdd1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-saraaa"></a><h3>IBUS_KEY_Thai_saraaa</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_saraaa 0xdd2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-saraam"></a><h3>IBUS_KEY_Thai_saraam</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_saraam 0xdd3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-sarai"></a><h3>IBUS_KEY_Thai_sarai</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_sarai 0xdd4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-saraii"></a><h3>IBUS_KEY_Thai_saraii</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_saraii 0xdd5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-saraue"></a><h3>IBUS_KEY_Thai_saraue</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_saraue 0xdd6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-sarauee"></a><h3>IBUS_KEY_Thai_sarauee</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_sarauee 0xdd7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-sarau"></a><h3>IBUS_KEY_Thai_sarau</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_sarau 0xdd8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-sarauu"></a><h3>IBUS_KEY_Thai_sarauu</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_sarauu 0xdd9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-phinthu"></a><h3>IBUS_KEY_Thai_phinthu</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_phinthu 0xdda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-maihanakat-maitho"></a><h3>IBUS_KEY_Thai_maihanakat_maitho</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_maihanakat_maitho 0xdde
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-baht"></a><h3>IBUS_KEY_Thai_baht</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_baht 0xddf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-sarae"></a><h3>IBUS_KEY_Thai_sarae</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_sarae 0xde0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-saraae"></a><h3>IBUS_KEY_Thai_saraae</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_saraae 0xde1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-sarao"></a><h3>IBUS_KEY_Thai_sarao</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_sarao 0xde2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-saraaimaimuan"></a><h3>IBUS_KEY_Thai_saraaimaimuan</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_saraaimaimuan 0xde3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-saraaimaimalai"></a><h3>IBUS_KEY_Thai_saraaimaimalai</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_saraaimaimalai 0xde4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-lakkhangyao"></a><h3>IBUS_KEY_Thai_lakkhangyao</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_lakkhangyao 0xde5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-maiyamok"></a><h3>IBUS_KEY_Thai_maiyamok</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_maiyamok 0xde6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-maitaikhu"></a><h3>IBUS_KEY_Thai_maitaikhu</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_maitaikhu 0xde7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-maiek"></a><h3>IBUS_KEY_Thai_maiek</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_maiek 0xde8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-maitho"></a><h3>IBUS_KEY_Thai_maitho</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_maitho 0xde9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-maitri"></a><h3>IBUS_KEY_Thai_maitri</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_maitri 0xdea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-maichattawa"></a><h3>IBUS_KEY_Thai_maichattawa</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_maichattawa 0xdeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-thanthakhat"></a><h3>IBUS_KEY_Thai_thanthakhat</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_thanthakhat 0xdec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-nikhahit"></a><h3>IBUS_KEY_Thai_nikhahit</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_nikhahit 0xded
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-leksun"></a><h3>IBUS_KEY_Thai_leksun</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_leksun 0xdf0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-leknung"></a><h3>IBUS_KEY_Thai_leknung</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_leknung 0xdf1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-leksong"></a><h3>IBUS_KEY_Thai_leksong</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_leksong 0xdf2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-leksam"></a><h3>IBUS_KEY_Thai_leksam</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_leksam 0xdf3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-leksi"></a><h3>IBUS_KEY_Thai_leksi</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_leksi 0xdf4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-lekha"></a><h3>IBUS_KEY_Thai_lekha</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_lekha 0xdf5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-lekhok"></a><h3>IBUS_KEY_Thai_lekhok</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_lekhok 0xdf6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-lekchet"></a><h3>IBUS_KEY_Thai_lekchet</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_lekchet 0xdf7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-lekpaet"></a><h3>IBUS_KEY_Thai_lekpaet</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_lekpaet 0xdf8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Thai-lekkao"></a><h3>IBUS_KEY_Thai_lekkao</h3>
+<pre class="programlisting">#define IBUS_KEY_Thai_lekkao 0xdf9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul"></a><h3>IBUS_KEY_Hangul</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul 0xff31
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Start"></a><h3>IBUS_KEY_Hangul_Start</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Start 0xff32
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-End"></a><h3>IBUS_KEY_Hangul_End</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_End 0xff33
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Hanja"></a><h3>IBUS_KEY_Hangul_Hanja</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Hanja 0xff34
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Jamo"></a><h3>IBUS_KEY_Hangul_Jamo</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Jamo 0xff35
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Romaja"></a><h3>IBUS_KEY_Hangul_Romaja</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Romaja 0xff36
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Codeinput"></a><h3>IBUS_KEY_Hangul_Codeinput</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Codeinput 0xff37
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Jeonja"></a><h3>IBUS_KEY_Hangul_Jeonja</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Jeonja 0xff38
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Banja"></a><h3>IBUS_KEY_Hangul_Banja</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Banja 0xff39
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-PreHanja"></a><h3>IBUS_KEY_Hangul_PreHanja</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_PreHanja 0xff3a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-PostHanja"></a><h3>IBUS_KEY_Hangul_PostHanja</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_PostHanja 0xff3b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-SingleCandidate"></a><h3>IBUS_KEY_Hangul_SingleCandidate</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_SingleCandidate 0xff3c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-MultipleCandidate"></a><h3>IBUS_KEY_Hangul_MultipleCandidate</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_MultipleCandidate 0xff3d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-PreviousCandidate"></a><h3>IBUS_KEY_Hangul_PreviousCandidate</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_PreviousCandidate 0xff3e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Special"></a><h3>IBUS_KEY_Hangul_Special</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Special 0xff3f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-switch"></a><h3>IBUS_KEY_Hangul_switch</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Kiyeog"></a><h3>IBUS_KEY_Hangul_Kiyeog</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Kiyeog 0xea1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-SsangKiyeog"></a><h3>IBUS_KEY_Hangul_SsangKiyeog</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_SsangKiyeog 0xea2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-KiyeogSios"></a><h3>IBUS_KEY_Hangul_KiyeogSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_KiyeogSios 0xea3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Nieun"></a><h3>IBUS_KEY_Hangul_Nieun</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Nieun 0xea4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-NieunJieuj"></a><h3>IBUS_KEY_Hangul_NieunJieuj</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_NieunJieuj 0xea5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-NieunHieuh"></a><h3>IBUS_KEY_Hangul_NieunHieuh</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_NieunHieuh 0xea6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Dikeud"></a><h3>IBUS_KEY_Hangul_Dikeud</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Dikeud 0xea7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-SsangDikeud"></a><h3>IBUS_KEY_Hangul_SsangDikeud</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_SsangDikeud 0xea8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Rieul"></a><h3>IBUS_KEY_Hangul_Rieul</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Rieul 0xea9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-RieulKiyeog"></a><h3>IBUS_KEY_Hangul_RieulKiyeog</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_RieulKiyeog 0xeaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-RieulMieum"></a><h3>IBUS_KEY_Hangul_RieulMieum</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_RieulMieum 0xeab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-RieulPieub"></a><h3>IBUS_KEY_Hangul_RieulPieub</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_RieulPieub 0xeac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-RieulSios"></a><h3>IBUS_KEY_Hangul_RieulSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_RieulSios 0xead
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-RieulTieut"></a><h3>IBUS_KEY_Hangul_RieulTieut</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_RieulTieut 0xeae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-RieulPhieuf"></a><h3>IBUS_KEY_Hangul_RieulPhieuf</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_RieulPhieuf 0xeaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-RieulHieuh"></a><h3>IBUS_KEY_Hangul_RieulHieuh</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_RieulHieuh 0xeb0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Mieum"></a><h3>IBUS_KEY_Hangul_Mieum</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Mieum 0xeb1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Pieub"></a><h3>IBUS_KEY_Hangul_Pieub</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Pieub 0xeb2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-SsangPieub"></a><h3>IBUS_KEY_Hangul_SsangPieub</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_SsangPieub 0xeb3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-PieubSios"></a><h3>IBUS_KEY_Hangul_PieubSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_PieubSios 0xeb4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Sios"></a><h3>IBUS_KEY_Hangul_Sios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Sios 0xeb5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-SsangSios"></a><h3>IBUS_KEY_Hangul_SsangSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_SsangSios 0xeb6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Ieung"></a><h3>IBUS_KEY_Hangul_Ieung</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Ieung 0xeb7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Jieuj"></a><h3>IBUS_KEY_Hangul_Jieuj</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Jieuj 0xeb8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-SsangJieuj"></a><h3>IBUS_KEY_Hangul_SsangJieuj</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_SsangJieuj 0xeb9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Cieuc"></a><h3>IBUS_KEY_Hangul_Cieuc</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Cieuc 0xeba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Khieuq"></a><h3>IBUS_KEY_Hangul_Khieuq</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Khieuq 0xebb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Tieut"></a><h3>IBUS_KEY_Hangul_Tieut</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Tieut 0xebc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Phieuf"></a><h3>IBUS_KEY_Hangul_Phieuf</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Phieuf 0xebd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-Hieuh"></a><h3>IBUS_KEY_Hangul_Hieuh</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_Hieuh 0xebe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-A"></a><h3>IBUS_KEY_Hangul_A</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_A 0xebf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-AE"></a><h3>IBUS_KEY_Hangul_AE</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_AE 0xec0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-YA"></a><h3>IBUS_KEY_Hangul_YA</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_YA 0xec1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-YAE"></a><h3>IBUS_KEY_Hangul_YAE</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_YAE 0xec2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-EO"></a><h3>IBUS_KEY_Hangul_EO</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_EO 0xec3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-E"></a><h3>IBUS_KEY_Hangul_E</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_E 0xec4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-YEO"></a><h3>IBUS_KEY_Hangul_YEO</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_YEO 0xec5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-YE"></a><h3>IBUS_KEY_Hangul_YE</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_YE 0xec6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-O"></a><h3>IBUS_KEY_Hangul_O</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_O 0xec7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-WA"></a><h3>IBUS_KEY_Hangul_WA</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_WA 0xec8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-WAE"></a><h3>IBUS_KEY_Hangul_WAE</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_WAE 0xec9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-OE"></a><h3>IBUS_KEY_Hangul_OE</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_OE 0xeca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-YO"></a><h3>IBUS_KEY_Hangul_YO</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_YO 0xecb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-U"></a><h3>IBUS_KEY_Hangul_U</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_U 0xecc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-WEO"></a><h3>IBUS_KEY_Hangul_WEO</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_WEO 0xecd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-WE"></a><h3>IBUS_KEY_Hangul_WE</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_WE 0xece
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-WI"></a><h3>IBUS_KEY_Hangul_WI</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_WI 0xecf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-YU"></a><h3>IBUS_KEY_Hangul_YU</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_YU 0xed0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-EU"></a><h3>IBUS_KEY_Hangul_EU</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_EU 0xed1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-YI"></a><h3>IBUS_KEY_Hangul_YI</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_YI 0xed2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-I"></a><h3>IBUS_KEY_Hangul_I</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_I 0xed3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Kiyeog"></a><h3>IBUS_KEY_Hangul_J_Kiyeog</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Kiyeog 0xed4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-SsangKiyeog"></a><h3>IBUS_KEY_Hangul_J_SsangKiyeog</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_SsangKiyeog 0xed5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-KiyeogSios"></a><h3>IBUS_KEY_Hangul_J_KiyeogSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_KiyeogSios 0xed6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Nieun"></a><h3>IBUS_KEY_Hangul_J_Nieun</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Nieun 0xed7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-NieunJieuj"></a><h3>IBUS_KEY_Hangul_J_NieunJieuj</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_NieunJieuj 0xed8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-NieunHieuh"></a><h3>IBUS_KEY_Hangul_J_NieunHieuh</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_NieunHieuh 0xed9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Dikeud"></a><h3>IBUS_KEY_Hangul_J_Dikeud</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Dikeud 0xeda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Rieul"></a><h3>IBUS_KEY_Hangul_J_Rieul</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Rieul 0xedb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-RieulKiyeog"></a><h3>IBUS_KEY_Hangul_J_RieulKiyeog</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_RieulKiyeog 0xedc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-RieulMieum"></a><h3>IBUS_KEY_Hangul_J_RieulMieum</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_RieulMieum 0xedd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-RieulPieub"></a><h3>IBUS_KEY_Hangul_J_RieulPieub</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_RieulPieub 0xede
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-RieulSios"></a><h3>IBUS_KEY_Hangul_J_RieulSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_RieulSios 0xedf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-RieulTieut"></a><h3>IBUS_KEY_Hangul_J_RieulTieut</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_RieulTieut 0xee0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-RieulPhieuf"></a><h3>IBUS_KEY_Hangul_J_RieulPhieuf</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_RieulPhieuf 0xee1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-RieulHieuh"></a><h3>IBUS_KEY_Hangul_J_RieulHieuh</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_RieulHieuh 0xee2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Mieum"></a><h3>IBUS_KEY_Hangul_J_Mieum</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Mieum 0xee3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Pieub"></a><h3>IBUS_KEY_Hangul_J_Pieub</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Pieub 0xee4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-PieubSios"></a><h3>IBUS_KEY_Hangul_J_PieubSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_PieubSios 0xee5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Sios"></a><h3>IBUS_KEY_Hangul_J_Sios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Sios 0xee6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-SsangSios"></a><h3>IBUS_KEY_Hangul_J_SsangSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_SsangSios 0xee7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Ieung"></a><h3>IBUS_KEY_Hangul_J_Ieung</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Ieung 0xee8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Jieuj"></a><h3>IBUS_KEY_Hangul_J_Jieuj</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Jieuj 0xee9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Cieuc"></a><h3>IBUS_KEY_Hangul_J_Cieuc</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Cieuc 0xeea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Khieuq"></a><h3>IBUS_KEY_Hangul_J_Khieuq</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Khieuq 0xeeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Tieut"></a><h3>IBUS_KEY_Hangul_J_Tieut</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Tieut 0xeec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Phieuf"></a><h3>IBUS_KEY_Hangul_J_Phieuf</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Phieuf 0xeed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-Hieuh"></a><h3>IBUS_KEY_Hangul_J_Hieuh</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_Hieuh 0xeee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-RieulYeorinHieuh"></a><h3>IBUS_KEY_Hangul_RieulYeorinHieuh</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_RieulYeorinHieuh 0xeef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-SunkyeongeumMieum"></a><h3>IBUS_KEY_Hangul_SunkyeongeumMieum</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_SunkyeongeumMieum 0xef0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-SunkyeongeumPieub"></a><h3>IBUS_KEY_Hangul_SunkyeongeumPieub</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_SunkyeongeumPieub 0xef1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-PanSios"></a><h3>IBUS_KEY_Hangul_PanSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_PanSios 0xef2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-KkogjiDalrinIeung"></a><h3>IBUS_KEY_Hangul_KkogjiDalrinIeung</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_KkogjiDalrinIeung 0xef3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-SunkyeongeumPhieuf"></a><h3>IBUS_KEY_Hangul_SunkyeongeumPhieuf</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_SunkyeongeumPhieuf 0xef4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-YeorinHieuh"></a><h3>IBUS_KEY_Hangul_YeorinHieuh</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_YeorinHieuh 0xef5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-AraeA"></a><h3>IBUS_KEY_Hangul_AraeA</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_AraeA 0xef6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-AraeAE"></a><h3>IBUS_KEY_Hangul_AraeAE</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_AraeAE 0xef7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-PanSios"></a><h3>IBUS_KEY_Hangul_J_PanSios</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_PanSios 0xef8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-KkogjiDalrinIeung"></a><h3>IBUS_KEY_Hangul_J_KkogjiDalrinIeung</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_KkogjiDalrinIeung 0xef9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Hangul-J-YeorinHieuh"></a><h3>IBUS_KEY_Hangul_J_YeorinHieuh</h3>
+<pre class="programlisting">#define IBUS_KEY_Hangul_J_YeorinHieuh 0xefa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Korean-Won"></a><h3>IBUS_KEY_Korean_Won</h3>
+<pre class="programlisting">#define IBUS_KEY_Korean_Won 0xeff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ligature-ew"></a><h3>IBUS_KEY_Armenian_ligature_ew</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ligature_ew 0x1000587
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-full-stop"></a><h3>IBUS_KEY_Armenian_full_stop</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_full_stop 0x1000589
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-verjaket"></a><h3>IBUS_KEY_Armenian_verjaket</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_verjaket 0x1000589
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-separation-mark"></a><h3>IBUS_KEY_Armenian_separation_mark</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_separation_mark 0x100055d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-but"></a><h3>IBUS_KEY_Armenian_but</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_but 0x100055d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-hyphen"></a><h3>IBUS_KEY_Armenian_hyphen</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_hyphen 0x100058a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-yentamna"></a><h3>IBUS_KEY_Armenian_yentamna</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_yentamna 0x100058a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-exclam"></a><h3>IBUS_KEY_Armenian_exclam</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_exclam 0x100055c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-amanak"></a><h3>IBUS_KEY_Armenian_amanak</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_amanak 0x100055c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-accent"></a><h3>IBUS_KEY_Armenian_accent</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_accent 0x100055b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-shesht"></a><h3>IBUS_KEY_Armenian_shesht</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_shesht 0x100055b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-question"></a><h3>IBUS_KEY_Armenian_question</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_question 0x100055e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-paruyk"></a><h3>IBUS_KEY_Armenian_paruyk</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_paruyk 0x100055e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-AYB"></a><h3>IBUS_KEY_Armenian_AYB</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_AYB 0x1000531
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ayb"></a><h3>IBUS_KEY_Armenian_ayb</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ayb 0x1000561
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-BEN"></a><h3>IBUS_KEY_Armenian_BEN</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_BEN 0x1000532
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ben"></a><h3>IBUS_KEY_Armenian_ben</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ben 0x1000562
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-GIM"></a><h3>IBUS_KEY_Armenian_GIM</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_GIM 0x1000533
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-gim"></a><h3>IBUS_KEY_Armenian_gim</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_gim 0x1000563
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-DA"></a><h3>IBUS_KEY_Armenian_DA</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_DA 0x1000534
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-da"></a><h3>IBUS_KEY_Armenian_da</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_da 0x1000564
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-YECH"></a><h3>IBUS_KEY_Armenian_YECH</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_YECH 0x1000535
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-yech"></a><h3>IBUS_KEY_Armenian_yech</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_yech 0x1000565
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ZA"></a><h3>IBUS_KEY_Armenian_ZA</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ZA 0x1000536
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-za"></a><h3>IBUS_KEY_Armenian_za</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_za 0x1000566
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-E"></a><h3>IBUS_KEY_Armenian_E</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_E 0x1000537
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-e"></a><h3>IBUS_KEY_Armenian_e</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_e 0x1000567
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-AT"></a><h3>IBUS_KEY_Armenian_AT</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_AT 0x1000538
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-at"></a><h3>IBUS_KEY_Armenian_at</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_at 0x1000568
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-TO"></a><h3>IBUS_KEY_Armenian_TO</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_TO 0x1000539
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-to"></a><h3>IBUS_KEY_Armenian_to</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_to 0x1000569
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ZHE"></a><h3>IBUS_KEY_Armenian_ZHE</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ZHE 0x100053a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-zhe"></a><h3>IBUS_KEY_Armenian_zhe</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_zhe 0x100056a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-INI"></a><h3>IBUS_KEY_Armenian_INI</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_INI 0x100053b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ini"></a><h3>IBUS_KEY_Armenian_ini</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ini 0x100056b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-LYUN"></a><h3>IBUS_KEY_Armenian_LYUN</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_LYUN 0x100053c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-lyun"></a><h3>IBUS_KEY_Armenian_lyun</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_lyun 0x100056c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-KHE"></a><h3>IBUS_KEY_Armenian_KHE</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_KHE 0x100053d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-khe"></a><h3>IBUS_KEY_Armenian_khe</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_khe 0x100056d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-TSA"></a><h3>IBUS_KEY_Armenian_TSA</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_TSA 0x100053e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-tsa"></a><h3>IBUS_KEY_Armenian_tsa</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_tsa 0x100056e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-KEN"></a><h3>IBUS_KEY_Armenian_KEN</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_KEN 0x100053f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ken"></a><h3>IBUS_KEY_Armenian_ken</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ken 0x100056f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-HO"></a><h3>IBUS_KEY_Armenian_HO</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_HO 0x1000540
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ho"></a><h3>IBUS_KEY_Armenian_ho</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ho 0x1000570
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-DZA"></a><h3>IBUS_KEY_Armenian_DZA</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_DZA 0x1000541
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-dza"></a><h3>IBUS_KEY_Armenian_dza</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_dza 0x1000571
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-GHAT"></a><h3>IBUS_KEY_Armenian_GHAT</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_GHAT 0x1000542
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ghat"></a><h3>IBUS_KEY_Armenian_ghat</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ghat 0x1000572
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-TCHE"></a><h3>IBUS_KEY_Armenian_TCHE</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_TCHE 0x1000543
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-tche"></a><h3>IBUS_KEY_Armenian_tche</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_tche 0x1000573
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-MEN"></a><h3>IBUS_KEY_Armenian_MEN</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_MEN 0x1000544
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-men"></a><h3>IBUS_KEY_Armenian_men</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_men 0x1000574
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-HI"></a><h3>IBUS_KEY_Armenian_HI</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_HI 0x1000545
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-hi"></a><h3>IBUS_KEY_Armenian_hi</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_hi 0x1000575
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-NU"></a><h3>IBUS_KEY_Armenian_NU</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_NU 0x1000546
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-nu"></a><h3>IBUS_KEY_Armenian_nu</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_nu 0x1000576
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-SHA"></a><h3>IBUS_KEY_Armenian_SHA</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_SHA 0x1000547
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-sha"></a><h3>IBUS_KEY_Armenian_sha</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_sha 0x1000577
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-VO"></a><h3>IBUS_KEY_Armenian_VO</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_VO 0x1000548
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-vo"></a><h3>IBUS_KEY_Armenian_vo</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_vo 0x1000578
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-CHA"></a><h3>IBUS_KEY_Armenian_CHA</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_CHA 0x1000549
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-cha"></a><h3>IBUS_KEY_Armenian_cha</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_cha 0x1000579
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-PE"></a><h3>IBUS_KEY_Armenian_PE</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_PE 0x100054a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-pe"></a><h3>IBUS_KEY_Armenian_pe</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_pe 0x100057a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-JE"></a><h3>IBUS_KEY_Armenian_JE</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_JE 0x100054b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-je"></a><h3>IBUS_KEY_Armenian_je</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_je 0x100057b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-RA"></a><h3>IBUS_KEY_Armenian_RA</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_RA 0x100054c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ra"></a><h3>IBUS_KEY_Armenian_ra</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ra 0x100057c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-SE"></a><h3>IBUS_KEY_Armenian_SE</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_SE 0x100054d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-se"></a><h3>IBUS_KEY_Armenian_se</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_se 0x100057d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-VEV"></a><h3>IBUS_KEY_Armenian_VEV</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_VEV 0x100054e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-vev"></a><h3>IBUS_KEY_Armenian_vev</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_vev 0x100057e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-TYUN"></a><h3>IBUS_KEY_Armenian_TYUN</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_TYUN 0x100054f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-tyun"></a><h3>IBUS_KEY_Armenian_tyun</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_tyun 0x100057f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-RE"></a><h3>IBUS_KEY_Armenian_RE</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_RE 0x1000550
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-re"></a><h3>IBUS_KEY_Armenian_re</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_re 0x1000580
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-TSO"></a><h3>IBUS_KEY_Armenian_TSO</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_TSO 0x1000551
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-tso"></a><h3>IBUS_KEY_Armenian_tso</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_tso 0x1000581
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-VYUN"></a><h3>IBUS_KEY_Armenian_VYUN</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_VYUN 0x1000552
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-vyun"></a><h3>IBUS_KEY_Armenian_vyun</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_vyun 0x1000582
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-PYUR"></a><h3>IBUS_KEY_Armenian_PYUR</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_PYUR 0x1000553
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-pyur"></a><h3>IBUS_KEY_Armenian_pyur</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_pyur 0x1000583
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-KE"></a><h3>IBUS_KEY_Armenian_KE</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_KE 0x1000554
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-ke"></a><h3>IBUS_KEY_Armenian_ke</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_ke 0x1000584
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-O"></a><h3>IBUS_KEY_Armenian_O</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_O 0x1000555
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-o"></a><h3>IBUS_KEY_Armenian_o</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_o 0x1000585
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-FE"></a><h3>IBUS_KEY_Armenian_FE</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_FE 0x1000556
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-fe"></a><h3>IBUS_KEY_Armenian_fe</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_fe 0x1000586
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Armenian-apostrophe"></a><h3>IBUS_KEY_Armenian_apostrophe</h3>
+<pre class="programlisting">#define IBUS_KEY_Armenian_apostrophe 0x100055a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-an"></a><h3>IBUS_KEY_Georgian_an</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_an 0x10010d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-ban"></a><h3>IBUS_KEY_Georgian_ban</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_ban 0x10010d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-gan"></a><h3>IBUS_KEY_Georgian_gan</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_gan 0x10010d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-don"></a><h3>IBUS_KEY_Georgian_don</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_don 0x10010d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-en"></a><h3>IBUS_KEY_Georgian_en</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_en 0x10010d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-vin"></a><h3>IBUS_KEY_Georgian_vin</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_vin 0x10010d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-zen"></a><h3>IBUS_KEY_Georgian_zen</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_zen 0x10010d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-tan"></a><h3>IBUS_KEY_Georgian_tan</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_tan 0x10010d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-in"></a><h3>IBUS_KEY_Georgian_in</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_in 0x10010d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-kan"></a><h3>IBUS_KEY_Georgian_kan</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_kan 0x10010d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-las"></a><h3>IBUS_KEY_Georgian_las</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_las 0x10010da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-man"></a><h3>IBUS_KEY_Georgian_man</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_man 0x10010db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-nar"></a><h3>IBUS_KEY_Georgian_nar</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_nar 0x10010dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-on"></a><h3>IBUS_KEY_Georgian_on</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_on 0x10010dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-par"></a><h3>IBUS_KEY_Georgian_par</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_par 0x10010de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-zhar"></a><h3>IBUS_KEY_Georgian_zhar</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_zhar 0x10010df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-rae"></a><h3>IBUS_KEY_Georgian_rae</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_rae 0x10010e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-san"></a><h3>IBUS_KEY_Georgian_san</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_san 0x10010e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-tar"></a><h3>IBUS_KEY_Georgian_tar</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_tar 0x10010e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-un"></a><h3>IBUS_KEY_Georgian_un</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_un 0x10010e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-phar"></a><h3>IBUS_KEY_Georgian_phar</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_phar 0x10010e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-khar"></a><h3>IBUS_KEY_Georgian_khar</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_khar 0x10010e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-ghan"></a><h3>IBUS_KEY_Georgian_ghan</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_ghan 0x10010e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-qar"></a><h3>IBUS_KEY_Georgian_qar</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_qar 0x10010e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-shin"></a><h3>IBUS_KEY_Georgian_shin</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_shin 0x10010e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-chin"></a><h3>IBUS_KEY_Georgian_chin</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_chin 0x10010e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-can"></a><h3>IBUS_KEY_Georgian_can</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_can 0x10010ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-jil"></a><h3>IBUS_KEY_Georgian_jil</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_jil 0x10010eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-cil"></a><h3>IBUS_KEY_Georgian_cil</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_cil 0x10010ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-char"></a><h3>IBUS_KEY_Georgian_char</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_char 0x10010ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-xan"></a><h3>IBUS_KEY_Georgian_xan</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_xan 0x10010ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-jhan"></a><h3>IBUS_KEY_Georgian_jhan</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_jhan 0x10010ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-hae"></a><h3>IBUS_KEY_Georgian_hae</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_hae 0x10010f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-he"></a><h3>IBUS_KEY_Georgian_he</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_he 0x10010f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-hie"></a><h3>IBUS_KEY_Georgian_hie</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_hie 0x10010f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-we"></a><h3>IBUS_KEY_Georgian_we</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_we 0x10010f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-har"></a><h3>IBUS_KEY_Georgian_har</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_har 0x10010f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-hoe"></a><h3>IBUS_KEY_Georgian_hoe</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_hoe 0x10010f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Georgian-fi"></a><h3>IBUS_KEY_Georgian_fi</h3>
+<pre class="programlisting">#define IBUS_KEY_Georgian_fi 0x10010f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Xabovedot"></a><h3>IBUS_KEY_Xabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_Xabovedot 0x1001e8a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ibreve"></a><h3>IBUS_KEY_Ibreve</h3>
+<pre class="programlisting">#define IBUS_KEY_Ibreve 0x100012c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Zstroke"></a><h3>IBUS_KEY_Zstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_Zstroke 0x10001b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Gcaron"></a><h3>IBUS_KEY_Gcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Gcaron 0x10001e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ocaron"></a><h3>IBUS_KEY_Ocaron</h3>
+<pre class="programlisting">#define IBUS_KEY_Ocaron 0x10001d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Obarred"></a><h3>IBUS_KEY_Obarred</h3>
+<pre class="programlisting">#define IBUS_KEY_Obarred 0x100019f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-xabovedot"></a><h3>IBUS_KEY_xabovedot</h3>
+<pre class="programlisting">#define IBUS_KEY_xabovedot 0x1001e8b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ibreve"></a><h3>IBUS_KEY_ibreve</h3>
+<pre class="programlisting">#define IBUS_KEY_ibreve 0x100012d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-zstroke"></a><h3>IBUS_KEY_zstroke</h3>
+<pre class="programlisting">#define IBUS_KEY_zstroke 0x10001b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-gcaron"></a><h3>IBUS_KEY_gcaron</h3>
+<pre class="programlisting">#define IBUS_KEY_gcaron 0x10001e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ocaron"></a><h3>IBUS_KEY_ocaron</h3>
+<pre class="programlisting">#define IBUS_KEY_ocaron 0x10001d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-obarred"></a><h3>IBUS_KEY_obarred</h3>
+<pre class="programlisting">#define IBUS_KEY_obarred 0x1000275
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-SCHWA:CAPS"></a><h3>IBUS_KEY_SCHWA</h3>
+<pre class="programlisting">#define IBUS_KEY_SCHWA 0x100018f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-schwa"></a><h3>IBUS_KEY_schwa</h3>
+<pre class="programlisting">#define IBUS_KEY_schwa 0x1000259
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Lbelowdot"></a><h3>IBUS_KEY_Lbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Lbelowdot 0x1001e36
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-lbelowdot"></a><h3>IBUS_KEY_lbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_lbelowdot 0x1001e37
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Abelowdot"></a><h3>IBUS_KEY_Abelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Abelowdot 0x1001ea0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-abelowdot"></a><h3>IBUS_KEY_abelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_abelowdot 0x1001ea1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ahook"></a><h3>IBUS_KEY_Ahook</h3>
+<pre class="programlisting">#define IBUS_KEY_Ahook 0x1001ea2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ahook"></a><h3>IBUS_KEY_ahook</h3>
+<pre class="programlisting">#define IBUS_KEY_ahook 0x1001ea3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Acircumflexacute"></a><h3>IBUS_KEY_Acircumflexacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Acircumflexacute 0x1001ea4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-acircumflexacute"></a><h3>IBUS_KEY_acircumflexacute</h3>
+<pre class="programlisting">#define IBUS_KEY_acircumflexacute 0x1001ea5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Acircumflexgrave"></a><h3>IBUS_KEY_Acircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Acircumflexgrave 0x1001ea6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-acircumflexgrave"></a><h3>IBUS_KEY_acircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_KEY_acircumflexgrave 0x1001ea7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Acircumflexhook"></a><h3>IBUS_KEY_Acircumflexhook</h3>
+<pre class="programlisting">#define IBUS_KEY_Acircumflexhook 0x1001ea8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-acircumflexhook"></a><h3>IBUS_KEY_acircumflexhook</h3>
+<pre class="programlisting">#define IBUS_KEY_acircumflexhook 0x1001ea9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Acircumflextilde"></a><h3>IBUS_KEY_Acircumflextilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Acircumflextilde 0x1001eaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-acircumflextilde"></a><h3>IBUS_KEY_acircumflextilde</h3>
+<pre class="programlisting">#define IBUS_KEY_acircumflextilde 0x1001eab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Acircumflexbelowdot"></a><h3>IBUS_KEY_Acircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Acircumflexbelowdot 0x1001eac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-acircumflexbelowdot"></a><h3>IBUS_KEY_acircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_acircumflexbelowdot 0x1001ead
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Abreveacute"></a><h3>IBUS_KEY_Abreveacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Abreveacute 0x1001eae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-abreveacute"></a><h3>IBUS_KEY_abreveacute</h3>
+<pre class="programlisting">#define IBUS_KEY_abreveacute 0x1001eaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Abrevegrave"></a><h3>IBUS_KEY_Abrevegrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Abrevegrave 0x1001eb0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-abrevegrave"></a><h3>IBUS_KEY_abrevegrave</h3>
+<pre class="programlisting">#define IBUS_KEY_abrevegrave 0x1001eb1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Abrevehook"></a><h3>IBUS_KEY_Abrevehook</h3>
+<pre class="programlisting">#define IBUS_KEY_Abrevehook 0x1001eb2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-abrevehook"></a><h3>IBUS_KEY_abrevehook</h3>
+<pre class="programlisting">#define IBUS_KEY_abrevehook 0x1001eb3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Abrevetilde"></a><h3>IBUS_KEY_Abrevetilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Abrevetilde 0x1001eb4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-abrevetilde"></a><h3>IBUS_KEY_abrevetilde</h3>
+<pre class="programlisting">#define IBUS_KEY_abrevetilde 0x1001eb5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Abrevebelowdot"></a><h3>IBUS_KEY_Abrevebelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Abrevebelowdot 0x1001eb6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-abrevebelowdot"></a><h3>IBUS_KEY_abrevebelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_abrevebelowdot 0x1001eb7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ebelowdot"></a><h3>IBUS_KEY_Ebelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Ebelowdot 0x1001eb8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ebelowdot"></a><h3>IBUS_KEY_ebelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_ebelowdot 0x1001eb9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ehook"></a><h3>IBUS_KEY_Ehook</h3>
+<pre class="programlisting">#define IBUS_KEY_Ehook 0x1001eba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ehook"></a><h3>IBUS_KEY_ehook</h3>
+<pre class="programlisting">#define IBUS_KEY_ehook 0x1001ebb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Etilde"></a><h3>IBUS_KEY_Etilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Etilde 0x1001ebc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-etilde"></a><h3>IBUS_KEY_etilde</h3>
+<pre class="programlisting">#define IBUS_KEY_etilde 0x1001ebd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ecircumflexacute"></a><h3>IBUS_KEY_Ecircumflexacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Ecircumflexacute 0x1001ebe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ecircumflexacute"></a><h3>IBUS_KEY_ecircumflexacute</h3>
+<pre class="programlisting">#define IBUS_KEY_ecircumflexacute 0x1001ebf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ecircumflexgrave"></a><h3>IBUS_KEY_Ecircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Ecircumflexgrave 0x1001ec0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ecircumflexgrave"></a><h3>IBUS_KEY_ecircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_KEY_ecircumflexgrave 0x1001ec1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ecircumflexhook"></a><h3>IBUS_KEY_Ecircumflexhook</h3>
+<pre class="programlisting">#define IBUS_KEY_Ecircumflexhook 0x1001ec2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ecircumflexhook"></a><h3>IBUS_KEY_ecircumflexhook</h3>
+<pre class="programlisting">#define IBUS_KEY_ecircumflexhook 0x1001ec3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ecircumflextilde"></a><h3>IBUS_KEY_Ecircumflextilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Ecircumflextilde 0x1001ec4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ecircumflextilde"></a><h3>IBUS_KEY_ecircumflextilde</h3>
+<pre class="programlisting">#define IBUS_KEY_ecircumflextilde 0x1001ec5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ecircumflexbelowdot"></a><h3>IBUS_KEY_Ecircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Ecircumflexbelowdot 0x1001ec6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ecircumflexbelowdot"></a><h3>IBUS_KEY_ecircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_ecircumflexbelowdot 0x1001ec7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ihook"></a><h3>IBUS_KEY_Ihook</h3>
+<pre class="programlisting">#define IBUS_KEY_Ihook 0x1001ec8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ihook"></a><h3>IBUS_KEY_ihook</h3>
+<pre class="programlisting">#define IBUS_KEY_ihook 0x1001ec9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ibelowdot"></a><h3>IBUS_KEY_Ibelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Ibelowdot 0x1001eca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ibelowdot"></a><h3>IBUS_KEY_ibelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_ibelowdot 0x1001ecb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Obelowdot"></a><h3>IBUS_KEY_Obelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Obelowdot 0x1001ecc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-obelowdot"></a><h3>IBUS_KEY_obelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_obelowdot 0x1001ecd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ohook"></a><h3>IBUS_KEY_Ohook</h3>
+<pre class="programlisting">#define IBUS_KEY_Ohook 0x1001ece
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ohook"></a><h3>IBUS_KEY_ohook</h3>
+<pre class="programlisting">#define IBUS_KEY_ohook 0x1001ecf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ocircumflexacute"></a><h3>IBUS_KEY_Ocircumflexacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Ocircumflexacute 0x1001ed0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ocircumflexacute"></a><h3>IBUS_KEY_ocircumflexacute</h3>
+<pre class="programlisting">#define IBUS_KEY_ocircumflexacute 0x1001ed1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ocircumflexgrave"></a><h3>IBUS_KEY_Ocircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Ocircumflexgrave 0x1001ed2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ocircumflexgrave"></a><h3>IBUS_KEY_ocircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_KEY_ocircumflexgrave 0x1001ed3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ocircumflexhook"></a><h3>IBUS_KEY_Ocircumflexhook</h3>
+<pre class="programlisting">#define IBUS_KEY_Ocircumflexhook 0x1001ed4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ocircumflexhook"></a><h3>IBUS_KEY_ocircumflexhook</h3>
+<pre class="programlisting">#define IBUS_KEY_ocircumflexhook 0x1001ed5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ocircumflextilde"></a><h3>IBUS_KEY_Ocircumflextilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Ocircumflextilde 0x1001ed6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ocircumflextilde"></a><h3>IBUS_KEY_ocircumflextilde</h3>
+<pre class="programlisting">#define IBUS_KEY_ocircumflextilde 0x1001ed7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ocircumflexbelowdot"></a><h3>IBUS_KEY_Ocircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Ocircumflexbelowdot 0x1001ed8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ocircumflexbelowdot"></a><h3>IBUS_KEY_ocircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_ocircumflexbelowdot 0x1001ed9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ohornacute"></a><h3>IBUS_KEY_Ohornacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Ohornacute 0x1001eda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ohornacute"></a><h3>IBUS_KEY_ohornacute</h3>
+<pre class="programlisting">#define IBUS_KEY_ohornacute 0x1001edb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ohorngrave"></a><h3>IBUS_KEY_Ohorngrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Ohorngrave 0x1001edc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ohorngrave"></a><h3>IBUS_KEY_ohorngrave</h3>
+<pre class="programlisting">#define IBUS_KEY_ohorngrave 0x1001edd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ohornhook"></a><h3>IBUS_KEY_Ohornhook</h3>
+<pre class="programlisting">#define IBUS_KEY_Ohornhook 0x1001ede
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ohornhook"></a><h3>IBUS_KEY_ohornhook</h3>
+<pre class="programlisting">#define IBUS_KEY_ohornhook 0x1001edf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ohorntilde"></a><h3>IBUS_KEY_Ohorntilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Ohorntilde 0x1001ee0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ohorntilde"></a><h3>IBUS_KEY_ohorntilde</h3>
+<pre class="programlisting">#define IBUS_KEY_ohorntilde 0x1001ee1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ohornbelowdot"></a><h3>IBUS_KEY_Ohornbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Ohornbelowdot 0x1001ee2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ohornbelowdot"></a><h3>IBUS_KEY_ohornbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_ohornbelowdot 0x1001ee3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ubelowdot"></a><h3>IBUS_KEY_Ubelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Ubelowdot 0x1001ee4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ubelowdot"></a><h3>IBUS_KEY_ubelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_ubelowdot 0x1001ee5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uhook"></a><h3>IBUS_KEY_Uhook</h3>
+<pre class="programlisting">#define IBUS_KEY_Uhook 0x1001ee6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uhook"></a><h3>IBUS_KEY_uhook</h3>
+<pre class="programlisting">#define IBUS_KEY_uhook 0x1001ee7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uhornacute"></a><h3>IBUS_KEY_Uhornacute</h3>
+<pre class="programlisting">#define IBUS_KEY_Uhornacute 0x1001ee8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uhornacute"></a><h3>IBUS_KEY_uhornacute</h3>
+<pre class="programlisting">#define IBUS_KEY_uhornacute 0x1001ee9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uhorngrave"></a><h3>IBUS_KEY_Uhorngrave</h3>
+<pre class="programlisting">#define IBUS_KEY_Uhorngrave 0x1001eea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uhorngrave"></a><h3>IBUS_KEY_uhorngrave</h3>
+<pre class="programlisting">#define IBUS_KEY_uhorngrave 0x1001eeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uhornhook"></a><h3>IBUS_KEY_Uhornhook</h3>
+<pre class="programlisting">#define IBUS_KEY_Uhornhook 0x1001eec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uhornhook"></a><h3>IBUS_KEY_uhornhook</h3>
+<pre class="programlisting">#define IBUS_KEY_uhornhook 0x1001eed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uhorntilde"></a><h3>IBUS_KEY_Uhorntilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Uhorntilde 0x1001eee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uhorntilde"></a><h3>IBUS_KEY_uhorntilde</h3>
+<pre class="programlisting">#define IBUS_KEY_uhorntilde 0x1001eef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uhornbelowdot"></a><h3>IBUS_KEY_Uhornbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Uhornbelowdot 0x1001ef0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uhornbelowdot"></a><h3>IBUS_KEY_uhornbelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_uhornbelowdot 0x1001ef1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ybelowdot"></a><h3>IBUS_KEY_Ybelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_Ybelowdot 0x1001ef4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ybelowdot"></a><h3>IBUS_KEY_ybelowdot</h3>
+<pre class="programlisting">#define IBUS_KEY_ybelowdot 0x1001ef5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Yhook"></a><h3>IBUS_KEY_Yhook</h3>
+<pre class="programlisting">#define IBUS_KEY_Yhook 0x1001ef6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-yhook"></a><h3>IBUS_KEY_yhook</h3>
+<pre class="programlisting">#define IBUS_KEY_yhook 0x1001ef7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ytilde"></a><h3>IBUS_KEY_Ytilde</h3>
+<pre class="programlisting">#define IBUS_KEY_Ytilde 0x1001ef8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ytilde"></a><h3>IBUS_KEY_ytilde</h3>
+<pre class="programlisting">#define IBUS_KEY_ytilde 0x1001ef9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Ohorn"></a><h3>IBUS_KEY_Ohorn</h3>
+<pre class="programlisting">#define IBUS_KEY_Ohorn 0x10001a0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ohorn"></a><h3>IBUS_KEY_ohorn</h3>
+<pre class="programlisting">#define IBUS_KEY_ohorn 0x10001a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Uhorn"></a><h3>IBUS_KEY_Uhorn</h3>
+<pre class="programlisting">#define IBUS_KEY_Uhorn 0x10001af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-uhorn"></a><h3>IBUS_KEY_uhorn</h3>
+<pre class="programlisting">#define IBUS_KEY_uhorn 0x10001b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-EcuSign"></a><h3>IBUS_KEY_EcuSign</h3>
+<pre class="programlisting">#define IBUS_KEY_EcuSign 0x10020a0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ColonSign"></a><h3>IBUS_KEY_ColonSign</h3>
+<pre class="programlisting">#define IBUS_KEY_ColonSign 0x10020a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-CruzeiroSign"></a><h3>IBUS_KEY_CruzeiroSign</h3>
+<pre class="programlisting">#define IBUS_KEY_CruzeiroSign 0x10020a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-FFrancSign"></a><h3>IBUS_KEY_FFrancSign</h3>
+<pre class="programlisting">#define IBUS_KEY_FFrancSign 0x10020a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-LiraSign"></a><h3>IBUS_KEY_LiraSign</h3>
+<pre class="programlisting">#define IBUS_KEY_LiraSign 0x10020a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-MillSign"></a><h3>IBUS_KEY_MillSign</h3>
+<pre class="programlisting">#define IBUS_KEY_MillSign 0x10020a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-NairaSign"></a><h3>IBUS_KEY_NairaSign</h3>
+<pre class="programlisting">#define IBUS_KEY_NairaSign 0x10020a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-PesetaSign"></a><h3>IBUS_KEY_PesetaSign</h3>
+<pre class="programlisting">#define IBUS_KEY_PesetaSign 0x10020a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-RupeeSign"></a><h3>IBUS_KEY_RupeeSign</h3>
+<pre class="programlisting">#define IBUS_KEY_RupeeSign 0x10020a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-WonSign"></a><h3>IBUS_KEY_WonSign</h3>
+<pre class="programlisting">#define IBUS_KEY_WonSign 0x10020a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-NewSheqelSign"></a><h3>IBUS_KEY_NewSheqelSign</h3>
+<pre class="programlisting">#define IBUS_KEY_NewSheqelSign 0x10020aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-DongSign"></a><h3>IBUS_KEY_DongSign</h3>
+<pre class="programlisting">#define IBUS_KEY_DongSign 0x10020ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-EuroSign"></a><h3>IBUS_KEY_EuroSign</h3>
+<pre class="programlisting">#define IBUS_KEY_EuroSign 0x20ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-zerosuperior"></a><h3>IBUS_KEY_zerosuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_zerosuperior 0x1002070
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-foursuperior"></a><h3>IBUS_KEY_foursuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_foursuperior 0x1002074
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-fivesuperior"></a><h3>IBUS_KEY_fivesuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_fivesuperior 0x1002075
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-sixsuperior"></a><h3>IBUS_KEY_sixsuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_sixsuperior 0x1002076
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-sevensuperior"></a><h3>IBUS_KEY_sevensuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_sevensuperior 0x1002077
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-eightsuperior"></a><h3>IBUS_KEY_eightsuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_eightsuperior 0x1002078
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ninesuperior"></a><h3>IBUS_KEY_ninesuperior</h3>
+<pre class="programlisting">#define IBUS_KEY_ninesuperior 0x1002079
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-zerosubscript"></a><h3>IBUS_KEY_zerosubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_zerosubscript 0x1002080
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-onesubscript"></a><h3>IBUS_KEY_onesubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_onesubscript 0x1002081
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-twosubscript"></a><h3>IBUS_KEY_twosubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_twosubscript 0x1002082
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-threesubscript"></a><h3>IBUS_KEY_threesubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_threesubscript 0x1002083
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-foursubscript"></a><h3>IBUS_KEY_foursubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_foursubscript 0x1002084
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-fivesubscript"></a><h3>IBUS_KEY_fivesubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_fivesubscript 0x1002085
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-sixsubscript"></a><h3>IBUS_KEY_sixsubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_sixsubscript 0x1002086
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-sevensubscript"></a><h3>IBUS_KEY_sevensubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_sevensubscript 0x1002087
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-eightsubscript"></a><h3>IBUS_KEY_eightsubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_eightsubscript 0x1002088
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-ninesubscript"></a><h3>IBUS_KEY_ninesubscript</h3>
+<pre class="programlisting">#define IBUS_KEY_ninesubscript 0x1002089
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-partdifferential"></a><h3>IBUS_KEY_partdifferential</h3>
+<pre class="programlisting">#define IBUS_KEY_partdifferential 0x1002202
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-emptyset"></a><h3>IBUS_KEY_emptyset</h3>
+<pre class="programlisting">#define IBUS_KEY_emptyset 0x1002205
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-elementof"></a><h3>IBUS_KEY_elementof</h3>
+<pre class="programlisting">#define IBUS_KEY_elementof 0x1002208
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-notelementof"></a><h3>IBUS_KEY_notelementof</h3>
+<pre class="programlisting">#define IBUS_KEY_notelementof 0x1002209
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-containsas"></a><h3>IBUS_KEY_containsas</h3>
+<pre class="programlisting">#define IBUS_KEY_containsas 0x100220b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-squareroot"></a><h3>IBUS_KEY_squareroot</h3>
+<pre class="programlisting">#define IBUS_KEY_squareroot 0x100221a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-cuberoot"></a><h3>IBUS_KEY_cuberoot</h3>
+<pre class="programlisting">#define IBUS_KEY_cuberoot 0x100221b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-fourthroot"></a><h3>IBUS_KEY_fourthroot</h3>
+<pre class="programlisting">#define IBUS_KEY_fourthroot 0x100221c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-dintegral"></a><h3>IBUS_KEY_dintegral</h3>
+<pre class="programlisting">#define IBUS_KEY_dintegral 0x100222c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-tintegral"></a><h3>IBUS_KEY_tintegral</h3>
+<pre class="programlisting">#define IBUS_KEY_tintegral 0x100222d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-because"></a><h3>IBUS_KEY_because</h3>
+<pre class="programlisting">#define IBUS_KEY_because 0x1002235
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-approxeq"></a><h3>IBUS_KEY_approxeq</h3>
+<pre class="programlisting">#define IBUS_KEY_approxeq 0x1002248
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-notapproxeq"></a><h3>IBUS_KEY_notapproxeq</h3>
+<pre class="programlisting">#define IBUS_KEY_notapproxeq 0x1002247
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-notidentical"></a><h3>IBUS_KEY_notidentical</h3>
+<pre class="programlisting">#define IBUS_KEY_notidentical 0x1002262
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-stricteq"></a><h3>IBUS_KEY_stricteq</h3>
+<pre class="programlisting">#define IBUS_KEY_stricteq 0x1002263
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-1"></a><h3>IBUS_KEY_braille_dot_1</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_1 0xfff1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-2"></a><h3>IBUS_KEY_braille_dot_2</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_2 0xfff2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-3"></a><h3>IBUS_KEY_braille_dot_3</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_3 0xfff3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-4"></a><h3>IBUS_KEY_braille_dot_4</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_4 0xfff4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-5"></a><h3>IBUS_KEY_braille_dot_5</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_5 0xfff5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-6"></a><h3>IBUS_KEY_braille_dot_6</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_6 0xfff6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-7"></a><h3>IBUS_KEY_braille_dot_7</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_7 0xfff7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-8"></a><h3>IBUS_KEY_braille_dot_8</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_8 0xfff8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-9"></a><h3>IBUS_KEY_braille_dot_9</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_9 0xfff9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dot-10"></a><h3>IBUS_KEY_braille_dot_10</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dot_10 0xfffa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-blank"></a><h3>IBUS_KEY_braille_blank</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_blank 0x1002800
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1"></a><h3>IBUS_KEY_braille_dots_1</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1 0x1002801
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2"></a><h3>IBUS_KEY_braille_dots_2</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2 0x1002802
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12"></a><h3>IBUS_KEY_braille_dots_12</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12 0x1002803
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3"></a><h3>IBUS_KEY_braille_dots_3</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3 0x1002804
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13"></a><h3>IBUS_KEY_braille_dots_13</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13 0x1002805
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23"></a><h3>IBUS_KEY_braille_dots_23</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23 0x1002806
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123"></a><h3>IBUS_KEY_braille_dots_123</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123 0x1002807
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-4"></a><h3>IBUS_KEY_braille_dots_4</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_4 0x1002808
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-14"></a><h3>IBUS_KEY_braille_dots_14</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_14 0x1002809
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-24"></a><h3>IBUS_KEY_braille_dots_24</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_24 0x100280a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-124"></a><h3>IBUS_KEY_braille_dots_124</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_124 0x100280b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-34"></a><h3>IBUS_KEY_braille_dots_34</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_34 0x100280c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-134"></a><h3>IBUS_KEY_braille_dots_134</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_134 0x100280d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-234"></a><h3>IBUS_KEY_braille_dots_234</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_234 0x100280e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1234"></a><h3>IBUS_KEY_braille_dots_1234</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1234 0x100280f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-5"></a><h3>IBUS_KEY_braille_dots_5</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_5 0x1002810
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-15"></a><h3>IBUS_KEY_braille_dots_15</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_15 0x1002811
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-25"></a><h3>IBUS_KEY_braille_dots_25</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_25 0x1002812
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-125"></a><h3>IBUS_KEY_braille_dots_125</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_125 0x1002813
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-35"></a><h3>IBUS_KEY_braille_dots_35</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_35 0x1002814
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-135"></a><h3>IBUS_KEY_braille_dots_135</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_135 0x1002815
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-235"></a><h3>IBUS_KEY_braille_dots_235</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_235 0x1002816
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1235"></a><h3>IBUS_KEY_braille_dots_1235</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1235 0x1002817
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-45"></a><h3>IBUS_KEY_braille_dots_45</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_45 0x1002818
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-145"></a><h3>IBUS_KEY_braille_dots_145</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_145 0x1002819
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-245"></a><h3>IBUS_KEY_braille_dots_245</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_245 0x100281a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1245"></a><h3>IBUS_KEY_braille_dots_1245</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1245 0x100281b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-345"></a><h3>IBUS_KEY_braille_dots_345</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_345 0x100281c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1345"></a><h3>IBUS_KEY_braille_dots_1345</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1345 0x100281d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2345"></a><h3>IBUS_KEY_braille_dots_2345</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2345 0x100281e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12345"></a><h3>IBUS_KEY_braille_dots_12345</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12345 0x100281f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-6"></a><h3>IBUS_KEY_braille_dots_6</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_6 0x1002820
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-16"></a><h3>IBUS_KEY_braille_dots_16</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_16 0x1002821
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-26"></a><h3>IBUS_KEY_braille_dots_26</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_26 0x1002822
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-126"></a><h3>IBUS_KEY_braille_dots_126</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_126 0x1002823
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-36"></a><h3>IBUS_KEY_braille_dots_36</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_36 0x1002824
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-136"></a><h3>IBUS_KEY_braille_dots_136</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_136 0x1002825
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-236"></a><h3>IBUS_KEY_braille_dots_236</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_236 0x1002826
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1236"></a><h3>IBUS_KEY_braille_dots_1236</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1236 0x1002827
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-46"></a><h3>IBUS_KEY_braille_dots_46</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_46 0x1002828
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-146"></a><h3>IBUS_KEY_braille_dots_146</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_146 0x1002829
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-246"></a><h3>IBUS_KEY_braille_dots_246</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_246 0x100282a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1246"></a><h3>IBUS_KEY_braille_dots_1246</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1246 0x100282b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-346"></a><h3>IBUS_KEY_braille_dots_346</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_346 0x100282c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1346"></a><h3>IBUS_KEY_braille_dots_1346</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1346 0x100282d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2346"></a><h3>IBUS_KEY_braille_dots_2346</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2346 0x100282e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12346"></a><h3>IBUS_KEY_braille_dots_12346</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12346 0x100282f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-56"></a><h3>IBUS_KEY_braille_dots_56</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_56 0x1002830
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-156"></a><h3>IBUS_KEY_braille_dots_156</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_156 0x1002831
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-256"></a><h3>IBUS_KEY_braille_dots_256</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_256 0x1002832
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1256"></a><h3>IBUS_KEY_braille_dots_1256</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1256 0x1002833
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-356"></a><h3>IBUS_KEY_braille_dots_356</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_356 0x1002834
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1356"></a><h3>IBUS_KEY_braille_dots_1356</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1356 0x1002835
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2356"></a><h3>IBUS_KEY_braille_dots_2356</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2356 0x1002836
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12356"></a><h3>IBUS_KEY_braille_dots_12356</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12356 0x1002837
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-456"></a><h3>IBUS_KEY_braille_dots_456</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_456 0x1002838
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1456"></a><h3>IBUS_KEY_braille_dots_1456</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1456 0x1002839
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2456"></a><h3>IBUS_KEY_braille_dots_2456</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2456 0x100283a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12456"></a><h3>IBUS_KEY_braille_dots_12456</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12456 0x100283b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3456"></a><h3>IBUS_KEY_braille_dots_3456</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3456 0x100283c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13456"></a><h3>IBUS_KEY_braille_dots_13456</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13456 0x100283d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23456"></a><h3>IBUS_KEY_braille_dots_23456</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23456 0x100283e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123456"></a><h3>IBUS_KEY_braille_dots_123456</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123456 0x100283f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-7"></a><h3>IBUS_KEY_braille_dots_7</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_7 0x1002840
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-17"></a><h3>IBUS_KEY_braille_dots_17</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_17 0x1002841
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-27"></a><h3>IBUS_KEY_braille_dots_27</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_27 0x1002842
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-127"></a><h3>IBUS_KEY_braille_dots_127</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_127 0x1002843
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-37"></a><h3>IBUS_KEY_braille_dots_37</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_37 0x1002844
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-137"></a><h3>IBUS_KEY_braille_dots_137</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_137 0x1002845
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-237"></a><h3>IBUS_KEY_braille_dots_237</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_237 0x1002846
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1237"></a><h3>IBUS_KEY_braille_dots_1237</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1237 0x1002847
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-47"></a><h3>IBUS_KEY_braille_dots_47</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_47 0x1002848
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-147"></a><h3>IBUS_KEY_braille_dots_147</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_147 0x1002849
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-247"></a><h3>IBUS_KEY_braille_dots_247</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_247 0x100284a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1247"></a><h3>IBUS_KEY_braille_dots_1247</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1247 0x100284b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-347"></a><h3>IBUS_KEY_braille_dots_347</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_347 0x100284c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1347"></a><h3>IBUS_KEY_braille_dots_1347</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1347 0x100284d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2347"></a><h3>IBUS_KEY_braille_dots_2347</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2347 0x100284e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12347"></a><h3>IBUS_KEY_braille_dots_12347</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12347 0x100284f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-57"></a><h3>IBUS_KEY_braille_dots_57</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_57 0x1002850
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-157"></a><h3>IBUS_KEY_braille_dots_157</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_157 0x1002851
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-257"></a><h3>IBUS_KEY_braille_dots_257</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_257 0x1002852
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1257"></a><h3>IBUS_KEY_braille_dots_1257</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1257 0x1002853
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-357"></a><h3>IBUS_KEY_braille_dots_357</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_357 0x1002854
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1357"></a><h3>IBUS_KEY_braille_dots_1357</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1357 0x1002855
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2357"></a><h3>IBUS_KEY_braille_dots_2357</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2357 0x1002856
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12357"></a><h3>IBUS_KEY_braille_dots_12357</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12357 0x1002857
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-457"></a><h3>IBUS_KEY_braille_dots_457</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_457 0x1002858
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1457"></a><h3>IBUS_KEY_braille_dots_1457</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1457 0x1002859
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2457"></a><h3>IBUS_KEY_braille_dots_2457</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2457 0x100285a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12457"></a><h3>IBUS_KEY_braille_dots_12457</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12457 0x100285b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3457"></a><h3>IBUS_KEY_braille_dots_3457</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3457 0x100285c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13457"></a><h3>IBUS_KEY_braille_dots_13457</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13457 0x100285d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23457"></a><h3>IBUS_KEY_braille_dots_23457</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23457 0x100285e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123457"></a><h3>IBUS_KEY_braille_dots_123457</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123457 0x100285f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-67"></a><h3>IBUS_KEY_braille_dots_67</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_67 0x1002860
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-167"></a><h3>IBUS_KEY_braille_dots_167</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_167 0x1002861
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-267"></a><h3>IBUS_KEY_braille_dots_267</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_267 0x1002862
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1267"></a><h3>IBUS_KEY_braille_dots_1267</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1267 0x1002863
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-367"></a><h3>IBUS_KEY_braille_dots_367</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_367 0x1002864
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1367"></a><h3>IBUS_KEY_braille_dots_1367</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1367 0x1002865
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2367"></a><h3>IBUS_KEY_braille_dots_2367</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2367 0x1002866
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12367"></a><h3>IBUS_KEY_braille_dots_12367</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12367 0x1002867
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-467"></a><h3>IBUS_KEY_braille_dots_467</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_467 0x1002868
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1467"></a><h3>IBUS_KEY_braille_dots_1467</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1467 0x1002869
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2467"></a><h3>IBUS_KEY_braille_dots_2467</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2467 0x100286a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12467"></a><h3>IBUS_KEY_braille_dots_12467</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12467 0x100286b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3467"></a><h3>IBUS_KEY_braille_dots_3467</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3467 0x100286c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13467"></a><h3>IBUS_KEY_braille_dots_13467</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13467 0x100286d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23467"></a><h3>IBUS_KEY_braille_dots_23467</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23467 0x100286e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123467"></a><h3>IBUS_KEY_braille_dots_123467</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123467 0x100286f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-567"></a><h3>IBUS_KEY_braille_dots_567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_567 0x1002870
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1567"></a><h3>IBUS_KEY_braille_dots_1567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1567 0x1002871
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2567"></a><h3>IBUS_KEY_braille_dots_2567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2567 0x1002872
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12567"></a><h3>IBUS_KEY_braille_dots_12567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12567 0x1002873
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3567"></a><h3>IBUS_KEY_braille_dots_3567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3567 0x1002874
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13567"></a><h3>IBUS_KEY_braille_dots_13567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13567 0x1002875
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23567"></a><h3>IBUS_KEY_braille_dots_23567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23567 0x1002876
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123567"></a><h3>IBUS_KEY_braille_dots_123567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123567 0x1002877
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-4567"></a><h3>IBUS_KEY_braille_dots_4567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_4567 0x1002878
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-14567"></a><h3>IBUS_KEY_braille_dots_14567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_14567 0x1002879
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-24567"></a><h3>IBUS_KEY_braille_dots_24567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_24567 0x100287a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-124567"></a><h3>IBUS_KEY_braille_dots_124567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_124567 0x100287b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-34567"></a><h3>IBUS_KEY_braille_dots_34567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_34567 0x100287c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-134567"></a><h3>IBUS_KEY_braille_dots_134567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_134567 0x100287d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-234567"></a><h3>IBUS_KEY_braille_dots_234567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_234567 0x100287e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1234567"></a><h3>IBUS_KEY_braille_dots_1234567</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1234567 0x100287f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-8"></a><h3>IBUS_KEY_braille_dots_8</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_8 0x1002880
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-18"></a><h3>IBUS_KEY_braille_dots_18</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_18 0x1002881
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-28"></a><h3>IBUS_KEY_braille_dots_28</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_28 0x1002882
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-128"></a><h3>IBUS_KEY_braille_dots_128</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_128 0x1002883
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-38"></a><h3>IBUS_KEY_braille_dots_38</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_38 0x1002884
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-138"></a><h3>IBUS_KEY_braille_dots_138</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_138 0x1002885
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-238"></a><h3>IBUS_KEY_braille_dots_238</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_238 0x1002886
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1238"></a><h3>IBUS_KEY_braille_dots_1238</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1238 0x1002887
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-48"></a><h3>IBUS_KEY_braille_dots_48</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_48 0x1002888
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-148"></a><h3>IBUS_KEY_braille_dots_148</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_148 0x1002889
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-248"></a><h3>IBUS_KEY_braille_dots_248</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_248 0x100288a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1248"></a><h3>IBUS_KEY_braille_dots_1248</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1248 0x100288b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-348"></a><h3>IBUS_KEY_braille_dots_348</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_348 0x100288c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1348"></a><h3>IBUS_KEY_braille_dots_1348</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1348 0x100288d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2348"></a><h3>IBUS_KEY_braille_dots_2348</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2348 0x100288e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12348"></a><h3>IBUS_KEY_braille_dots_12348</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12348 0x100288f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-58"></a><h3>IBUS_KEY_braille_dots_58</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_58 0x1002890
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-158"></a><h3>IBUS_KEY_braille_dots_158</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_158 0x1002891
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-258"></a><h3>IBUS_KEY_braille_dots_258</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_258 0x1002892
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1258"></a><h3>IBUS_KEY_braille_dots_1258</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1258 0x1002893
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-358"></a><h3>IBUS_KEY_braille_dots_358</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_358 0x1002894
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1358"></a><h3>IBUS_KEY_braille_dots_1358</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1358 0x1002895
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2358"></a><h3>IBUS_KEY_braille_dots_2358</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2358 0x1002896
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12358"></a><h3>IBUS_KEY_braille_dots_12358</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12358 0x1002897
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-458"></a><h3>IBUS_KEY_braille_dots_458</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_458 0x1002898
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1458"></a><h3>IBUS_KEY_braille_dots_1458</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1458 0x1002899
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2458"></a><h3>IBUS_KEY_braille_dots_2458</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2458 0x100289a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12458"></a><h3>IBUS_KEY_braille_dots_12458</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12458 0x100289b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3458"></a><h3>IBUS_KEY_braille_dots_3458</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3458 0x100289c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13458"></a><h3>IBUS_KEY_braille_dots_13458</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13458 0x100289d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23458"></a><h3>IBUS_KEY_braille_dots_23458</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23458 0x100289e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123458"></a><h3>IBUS_KEY_braille_dots_123458</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123458 0x100289f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-68"></a><h3>IBUS_KEY_braille_dots_68</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_68 0x10028a0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-168"></a><h3>IBUS_KEY_braille_dots_168</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_168 0x10028a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-268"></a><h3>IBUS_KEY_braille_dots_268</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_268 0x10028a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1268"></a><h3>IBUS_KEY_braille_dots_1268</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1268 0x10028a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-368"></a><h3>IBUS_KEY_braille_dots_368</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_368 0x10028a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1368"></a><h3>IBUS_KEY_braille_dots_1368</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1368 0x10028a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2368"></a><h3>IBUS_KEY_braille_dots_2368</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2368 0x10028a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12368"></a><h3>IBUS_KEY_braille_dots_12368</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12368 0x10028a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-468"></a><h3>IBUS_KEY_braille_dots_468</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_468 0x10028a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1468"></a><h3>IBUS_KEY_braille_dots_1468</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1468 0x10028a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2468"></a><h3>IBUS_KEY_braille_dots_2468</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2468 0x10028aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12468"></a><h3>IBUS_KEY_braille_dots_12468</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12468 0x10028ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3468"></a><h3>IBUS_KEY_braille_dots_3468</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3468 0x10028ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13468"></a><h3>IBUS_KEY_braille_dots_13468</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13468 0x10028ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23468"></a><h3>IBUS_KEY_braille_dots_23468</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23468 0x10028ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123468"></a><h3>IBUS_KEY_braille_dots_123468</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123468 0x10028af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-568"></a><h3>IBUS_KEY_braille_dots_568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_568 0x10028b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1568"></a><h3>IBUS_KEY_braille_dots_1568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1568 0x10028b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2568"></a><h3>IBUS_KEY_braille_dots_2568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2568 0x10028b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12568"></a><h3>IBUS_KEY_braille_dots_12568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12568 0x10028b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3568"></a><h3>IBUS_KEY_braille_dots_3568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3568 0x10028b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13568"></a><h3>IBUS_KEY_braille_dots_13568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13568 0x10028b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23568"></a><h3>IBUS_KEY_braille_dots_23568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23568 0x10028b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123568"></a><h3>IBUS_KEY_braille_dots_123568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123568 0x10028b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-4568"></a><h3>IBUS_KEY_braille_dots_4568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_4568 0x10028b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-14568"></a><h3>IBUS_KEY_braille_dots_14568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_14568 0x10028b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-24568"></a><h3>IBUS_KEY_braille_dots_24568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_24568 0x10028ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-124568"></a><h3>IBUS_KEY_braille_dots_124568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_124568 0x10028bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-34568"></a><h3>IBUS_KEY_braille_dots_34568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_34568 0x10028bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-134568"></a><h3>IBUS_KEY_braille_dots_134568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_134568 0x10028bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-234568"></a><h3>IBUS_KEY_braille_dots_234568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_234568 0x10028be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1234568"></a><h3>IBUS_KEY_braille_dots_1234568</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1234568 0x10028bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-78"></a><h3>IBUS_KEY_braille_dots_78</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_78 0x10028c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-178"></a><h3>IBUS_KEY_braille_dots_178</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_178 0x10028c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-278"></a><h3>IBUS_KEY_braille_dots_278</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_278 0x10028c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1278"></a><h3>IBUS_KEY_braille_dots_1278</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1278 0x10028c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-378"></a><h3>IBUS_KEY_braille_dots_378</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_378 0x10028c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1378"></a><h3>IBUS_KEY_braille_dots_1378</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1378 0x10028c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2378"></a><h3>IBUS_KEY_braille_dots_2378</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2378 0x10028c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12378"></a><h3>IBUS_KEY_braille_dots_12378</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12378 0x10028c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-478"></a><h3>IBUS_KEY_braille_dots_478</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_478 0x10028c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1478"></a><h3>IBUS_KEY_braille_dots_1478</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1478 0x10028c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2478"></a><h3>IBUS_KEY_braille_dots_2478</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2478 0x10028ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12478"></a><h3>IBUS_KEY_braille_dots_12478</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12478 0x10028cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3478"></a><h3>IBUS_KEY_braille_dots_3478</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3478 0x10028cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13478"></a><h3>IBUS_KEY_braille_dots_13478</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13478 0x10028cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23478"></a><h3>IBUS_KEY_braille_dots_23478</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23478 0x10028ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123478"></a><h3>IBUS_KEY_braille_dots_123478</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123478 0x10028cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-578"></a><h3>IBUS_KEY_braille_dots_578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_578 0x10028d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1578"></a><h3>IBUS_KEY_braille_dots_1578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1578 0x10028d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2578"></a><h3>IBUS_KEY_braille_dots_2578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2578 0x10028d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12578"></a><h3>IBUS_KEY_braille_dots_12578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12578 0x10028d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3578"></a><h3>IBUS_KEY_braille_dots_3578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3578 0x10028d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13578"></a><h3>IBUS_KEY_braille_dots_13578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13578 0x10028d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23578"></a><h3>IBUS_KEY_braille_dots_23578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23578 0x10028d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123578"></a><h3>IBUS_KEY_braille_dots_123578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123578 0x10028d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-4578"></a><h3>IBUS_KEY_braille_dots_4578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_4578 0x10028d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-14578"></a><h3>IBUS_KEY_braille_dots_14578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_14578 0x10028d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-24578"></a><h3>IBUS_KEY_braille_dots_24578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_24578 0x10028da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-124578"></a><h3>IBUS_KEY_braille_dots_124578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_124578 0x10028db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-34578"></a><h3>IBUS_KEY_braille_dots_34578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_34578 0x10028dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-134578"></a><h3>IBUS_KEY_braille_dots_134578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_134578 0x10028dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-234578"></a><h3>IBUS_KEY_braille_dots_234578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_234578 0x10028de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1234578"></a><h3>IBUS_KEY_braille_dots_1234578</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1234578 0x10028df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-678"></a><h3>IBUS_KEY_braille_dots_678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_678 0x10028e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1678"></a><h3>IBUS_KEY_braille_dots_1678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1678 0x10028e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2678"></a><h3>IBUS_KEY_braille_dots_2678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2678 0x10028e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12678"></a><h3>IBUS_KEY_braille_dots_12678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12678 0x10028e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-3678"></a><h3>IBUS_KEY_braille_dots_3678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_3678 0x10028e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-13678"></a><h3>IBUS_KEY_braille_dots_13678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_13678 0x10028e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-23678"></a><h3>IBUS_KEY_braille_dots_23678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_23678 0x10028e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-123678"></a><h3>IBUS_KEY_braille_dots_123678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_123678 0x10028e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-4678"></a><h3>IBUS_KEY_braille_dots_4678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_4678 0x10028e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-14678"></a><h3>IBUS_KEY_braille_dots_14678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_14678 0x10028e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-24678"></a><h3>IBUS_KEY_braille_dots_24678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_24678 0x10028ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-124678"></a><h3>IBUS_KEY_braille_dots_124678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_124678 0x10028eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-34678"></a><h3>IBUS_KEY_braille_dots_34678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_34678 0x10028ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-134678"></a><h3>IBUS_KEY_braille_dots_134678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_134678 0x10028ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-234678"></a><h3>IBUS_KEY_braille_dots_234678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_234678 0x10028ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1234678"></a><h3>IBUS_KEY_braille_dots_1234678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1234678 0x10028ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-5678"></a><h3>IBUS_KEY_braille_dots_5678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_5678 0x10028f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-15678"></a><h3>IBUS_KEY_braille_dots_15678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_15678 0x10028f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-25678"></a><h3>IBUS_KEY_braille_dots_25678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_25678 0x10028f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-125678"></a><h3>IBUS_KEY_braille_dots_125678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_125678 0x10028f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-35678"></a><h3>IBUS_KEY_braille_dots_35678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_35678 0x10028f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-135678"></a><h3>IBUS_KEY_braille_dots_135678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_135678 0x10028f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-235678"></a><h3>IBUS_KEY_braille_dots_235678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_235678 0x10028f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1235678"></a><h3>IBUS_KEY_braille_dots_1235678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1235678 0x10028f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-45678"></a><h3>IBUS_KEY_braille_dots_45678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_45678 0x10028f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-145678"></a><h3>IBUS_KEY_braille_dots_145678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_145678 0x10028f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-245678"></a><h3>IBUS_KEY_braille_dots_245678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_245678 0x10028fa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1245678"></a><h3>IBUS_KEY_braille_dots_1245678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1245678 0x10028fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-345678"></a><h3>IBUS_KEY_braille_dots_345678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_345678 0x10028fc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-1345678"></a><h3>IBUS_KEY_braille_dots_1345678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_1345678 0x10028fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-2345678"></a><h3>IBUS_KEY_braille_dots_2345678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_2345678 0x10028fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-braille-dots-12345678"></a><h3>IBUS_KEY_braille_dots_12345678</h3>
+<pre class="programlisting">#define IBUS_KEY_braille_dots_12345678 0x10028ff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ng"></a><h3>IBUS_KEY_Sinh_ng</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ng 0x1000d82
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-h2"></a><h3>IBUS_KEY_Sinh_h2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_h2 0x1000d83
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-a"></a><h3>IBUS_KEY_Sinh_a</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_a 0x1000d85
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-aa"></a><h3>IBUS_KEY_Sinh_aa</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_aa 0x1000d86
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ae"></a><h3>IBUS_KEY_Sinh_ae</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ae 0x1000d87
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-aee"></a><h3>IBUS_KEY_Sinh_aee</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_aee 0x1000d88
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-i"></a><h3>IBUS_KEY_Sinh_i</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_i 0x1000d89
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ii"></a><h3>IBUS_KEY_Sinh_ii</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ii 0x1000d8a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-u"></a><h3>IBUS_KEY_Sinh_u</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_u 0x1000d8b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-uu"></a><h3>IBUS_KEY_Sinh_uu</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_uu 0x1000d8c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ri"></a><h3>IBUS_KEY_Sinh_ri</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ri 0x1000d8d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-rii"></a><h3>IBUS_KEY_Sinh_rii</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_rii 0x1000d8e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-lu"></a><h3>IBUS_KEY_Sinh_lu</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_lu 0x1000d8f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-luu"></a><h3>IBUS_KEY_Sinh_luu</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_luu 0x1000d90
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-e"></a><h3>IBUS_KEY_Sinh_e</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_e 0x1000d91
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ee"></a><h3>IBUS_KEY_Sinh_ee</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ee 0x1000d92
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ai"></a><h3>IBUS_KEY_Sinh_ai</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ai 0x1000d93
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-o"></a><h3>IBUS_KEY_Sinh_o</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_o 0x1000d94
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-oo"></a><h3>IBUS_KEY_Sinh_oo</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_oo 0x1000d95
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-au"></a><h3>IBUS_KEY_Sinh_au</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_au 0x1000d96
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ka"></a><h3>IBUS_KEY_Sinh_ka</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ka 0x1000d9a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-kha"></a><h3>IBUS_KEY_Sinh_kha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_kha 0x1000d9b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ga"></a><h3>IBUS_KEY_Sinh_ga</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ga 0x1000d9c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-gha"></a><h3>IBUS_KEY_Sinh_gha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_gha 0x1000d9d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ng2"></a><h3>IBUS_KEY_Sinh_ng2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ng2 0x1000d9e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-nga"></a><h3>IBUS_KEY_Sinh_nga</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_nga 0x1000d9f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ca"></a><h3>IBUS_KEY_Sinh_ca</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ca 0x1000da0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-cha"></a><h3>IBUS_KEY_Sinh_cha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_cha 0x1000da1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ja"></a><h3>IBUS_KEY_Sinh_ja</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ja 0x1000da2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-jha"></a><h3>IBUS_KEY_Sinh_jha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_jha 0x1000da3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-nya"></a><h3>IBUS_KEY_Sinh_nya</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_nya 0x1000da4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-jnya"></a><h3>IBUS_KEY_Sinh_jnya</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_jnya 0x1000da5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-nja"></a><h3>IBUS_KEY_Sinh_nja</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_nja 0x1000da6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-tta"></a><h3>IBUS_KEY_Sinh_tta</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_tta 0x1000da7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ttha"></a><h3>IBUS_KEY_Sinh_ttha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ttha 0x1000da8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-dda"></a><h3>IBUS_KEY_Sinh_dda</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_dda 0x1000da9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ddha"></a><h3>IBUS_KEY_Sinh_ddha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ddha 0x1000daa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-nna"></a><h3>IBUS_KEY_Sinh_nna</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_nna 0x1000dab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ndda"></a><h3>IBUS_KEY_Sinh_ndda</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ndda 0x1000dac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-tha"></a><h3>IBUS_KEY_Sinh_tha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_tha 0x1000dad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-thha"></a><h3>IBUS_KEY_Sinh_thha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_thha 0x1000dae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-dha"></a><h3>IBUS_KEY_Sinh_dha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_dha 0x1000daf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-dhha"></a><h3>IBUS_KEY_Sinh_dhha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_dhha 0x1000db0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-na"></a><h3>IBUS_KEY_Sinh_na</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_na 0x1000db1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ndha"></a><h3>IBUS_KEY_Sinh_ndha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ndha 0x1000db3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-pa"></a><h3>IBUS_KEY_Sinh_pa</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_pa 0x1000db4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-pha"></a><h3>IBUS_KEY_Sinh_pha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_pha 0x1000db5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ba"></a><h3>IBUS_KEY_Sinh_ba</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ba 0x1000db6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-bha"></a><h3>IBUS_KEY_Sinh_bha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_bha 0x1000db7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ma"></a><h3>IBUS_KEY_Sinh_ma</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ma 0x1000db8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-mba"></a><h3>IBUS_KEY_Sinh_mba</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_mba 0x1000db9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ya"></a><h3>IBUS_KEY_Sinh_ya</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ya 0x1000dba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ra"></a><h3>IBUS_KEY_Sinh_ra</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ra 0x1000dbb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-la"></a><h3>IBUS_KEY_Sinh_la</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_la 0x1000dbd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-va"></a><h3>IBUS_KEY_Sinh_va</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_va 0x1000dc0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-sha"></a><h3>IBUS_KEY_Sinh_sha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_sha 0x1000dc1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ssha"></a><h3>IBUS_KEY_Sinh_ssha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ssha 0x1000dc2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-sa"></a><h3>IBUS_KEY_Sinh_sa</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_sa 0x1000dc3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ha"></a><h3>IBUS_KEY_Sinh_ha</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ha 0x1000dc4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-lla"></a><h3>IBUS_KEY_Sinh_lla</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_lla 0x1000dc5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-fa"></a><h3>IBUS_KEY_Sinh_fa</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_fa 0x1000dc6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-al"></a><h3>IBUS_KEY_Sinh_al</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_al 0x1000dca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-aa2"></a><h3>IBUS_KEY_Sinh_aa2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_aa2 0x1000dcf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ae2"></a><h3>IBUS_KEY_Sinh_ae2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ae2 0x1000dd0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-aee2"></a><h3>IBUS_KEY_Sinh_aee2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_aee2 0x1000dd1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-i2"></a><h3>IBUS_KEY_Sinh_i2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_i2 0x1000dd2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ii2"></a><h3>IBUS_KEY_Sinh_ii2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ii2 0x1000dd3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-u2"></a><h3>IBUS_KEY_Sinh_u2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_u2 0x1000dd4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-uu2"></a><h3>IBUS_KEY_Sinh_uu2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_uu2 0x1000dd6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ru2"></a><h3>IBUS_KEY_Sinh_ru2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ru2 0x1000dd8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-e2"></a><h3>IBUS_KEY_Sinh_e2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_e2 0x1000dd9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ee2"></a><h3>IBUS_KEY_Sinh_ee2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ee2 0x1000dda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ai2"></a><h3>IBUS_KEY_Sinh_ai2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ai2 0x1000ddb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-o2"></a><h3>IBUS_KEY_Sinh_o2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_o2 0x1000ddc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-oo2"></a><h3>IBUS_KEY_Sinh_oo2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_oo2 0x1000ddd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-au2"></a><h3>IBUS_KEY_Sinh_au2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_au2 0x1000dde
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-lu2"></a><h3>IBUS_KEY_Sinh_lu2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_lu2 0x1000ddf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-ruu2"></a><h3>IBUS_KEY_Sinh_ruu2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_ruu2 0x1000df2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-luu2"></a><h3>IBUS_KEY_Sinh_luu2</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_luu2 0x1000df3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KEY-Sinh-kunddaliya"></a><h3>IBUS_KEY_Sinh_kunddaliya</h3>
+<pre class="programlisting">#define IBUS_KEY_Sinh_kunddaliya 0x1000df4
+</pre>
+<p>
+</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-ibusdebug.html b/docs/reference/ibus/html/ibus-ibusdebug.html
new file mode 100644 (file)
index 0000000..d256902
--- /dev/null
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ibusdebug</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch06.html" title="Internal">
+<link rel="prev" href="ch06.html" title="Internal">
+<link rel="next" href="ibus-ibuserror.html" title="ibuserror">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch06.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-ibuserror.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-ibusdebug.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-ibusdebug.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-ibusdebug"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-ibusdebug.top_of_page"></a>ibusdebug</span></h2>
+<p>ibusdebug — Debug message output.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="ibus-ibusdebug.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="ibus-ibusdebug.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="ibus-ibusdebug.html#ibus-warning" title="ibus_warning()">ibus_warning</a>                        (msg,
+                                                         ...)
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusdebug.description"></a><h2>Description</h2>
+<p>
+This section lists functions that generate debug and warning messages.
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusdebug.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="ibus-warning"></a><h3>ibus_warning()</h3>
+<pre class="programlisting">#define             ibus_warning(msg, args...)</pre>
+<p>
+A convenient wrapper for g_warning.
+The output format will be
+</p>
+<pre class="programlisting">
+    source_file:line, message...
+</pre>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
+<td>A printf formatted message to be print.</td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-ibuserror.html b/docs/reference/ibus/html/ibus-ibuserror.html
new file mode 100644 (file)
index 0000000..d74aae8
--- /dev/null
@@ -0,0 +1,71 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ibuserror</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch06.html" title="Internal">
+<link rel="prev" href="ibus-ibusdebug.html" title="ibusdebug">
+<link rel="next" href="IBusObject.html" title="IBusObject">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ibus-ibusdebug.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusObject.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-ibuserror.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-ibuserror.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-ibuserror"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-ibuserror.top_of_page"></a>ibuserror</span></h2>
+<p>ibuserror</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="ibus-ibuserror.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="ibus-ibuserror.html#IBUS-ERROR:CAPS" title="IBUS_ERROR">IBUS_ERROR</a>
+<span class="returnvalue">GQuark</span>              <a class="link" href="ibus-ibuserror.html#ibus-error-quark" title="ibus_error_quark ()">ibus_error_quark</a>                    (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibuserror.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-ibuserror.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBUS-ERROR:CAPS"></a><h3>IBUS_ERROR</h3>
+<pre class="programlisting">#define IBUS_ERROR ibus_error_quark()
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-error-quark"></a><h3>ibus_error_quark ()</h3>
+<pre class="programlisting"><span class="returnvalue">GQuark</span>              ibus_error_quark                    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-ibuskeys.html b/docs/reference/ibus/html/ibus-ibuskeys.html
new file mode 100644 (file)
index 0000000..f4c65d8
--- /dev/null
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ibuskeys</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="IBusInputContext.html" title="IBusInputContext">
+<link rel="next" href="IBusKeymap.html" title="IBusKeymap">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusInputContext.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="IBusKeymap.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-ibuskeys.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-ibuskeys.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-ibuskeys"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-ibuskeys.top_of_page"></a>ibuskeys</span></h2>
+<p>ibuskeys</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="ibus-ibuskeys.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">const <span class="returnvalue">gchar</span> *       <a class="link" href="ibus-ibuskeys.html#ibus-keyval-name" title="ibus_keyval_name ()">ibus_keyval_name</a>                    (<em class="parameter"><code><span class="type">guint</span> keyval</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="ibus-ibuskeys.html#ibus-keyval-from-name" title="ibus_keyval_from_name ()">ibus_keyval_from_name</a>               (<em class="parameter"><code>const <span class="type">gchar</span> *keyval_name</code></em>);
+<span class="returnvalue">guint</span>               <a class="link" href="ibus-ibuskeys.html#ibus-unicode-to-keyval" title="ibus_unicode_to_keyval ()">ibus_unicode_to_keyval</a>              (<em class="parameter"><code><span class="type">gunichar</span> wc</code></em>);
+<span class="returnvalue">gunichar</span>            <a class="link" href="ibus-ibuskeys.html#ibus-keyval-to-unicode" title="ibus_keyval_to_unicode ()">ibus_keyval_to_unicode</a>              (<em class="parameter"><code><span class="type">guint</span> keyval</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibuskeys.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-ibuskeys.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="ibus-keyval-name"></a><h3>ibus_keyval_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_keyval_name                    (<em class="parameter"><code><span class="type">guint</span> keyval</code></em>);</pre>
+<p>
+Return the name of a key symbol.
+</p>
+<p>
+Note that the returned string is used internally, so don't free it.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Key symbol.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Corresponding key name. <code class="literal">NULL</code> if no such key symbol.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-keyval-from-name"></a><h3>ibus_keyval_from_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_keyval_from_name               (<em class="parameter"><code>const <span class="type">gchar</span> *keyval_name</code></em>);</pre>
+<p>
+Return the key symbol that associate with the key name.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval_name</code></em> :</span></p></td>
+<td>Key name in <span class="type">gdk_keys_by_name</span>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Corresponding key symbol.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-unicode-to-keyval"></a><h3>ibus_unicode_to_keyval ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint</span>               ibus_unicode_to_keyval              (<em class="parameter"><code><span class="type">gunichar</span> wc</code></em>);</pre>
+<p>
+Convert from a ISO10646 character to a key symbol.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>wc</code></em> :</span></p></td>
+<td>a ISO10646 encoded character</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the corresponding IBus key symbol, if one exists.
+or, if there is no corresponding symbol,
+wc | 0x01000000</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-keyval-to-unicode"></a><h3>ibus_keyval_to_unicode ()</h3>
+<pre class="programlisting"><span class="returnvalue">gunichar</span>            ibus_keyval_to_unicode              (<em class="parameter"><code><span class="type">guint</span> keyval</code></em>);</pre>
+<p>
+Convert from an IBus key symbol to the corresponding ISO10646 (Unicode)
+character.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>an IBus key symbol</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the corresponding unicode character, or 0 if there
+is no corresponding character.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-ibuskeysyms-compat.html b/docs/reference/ibus/html/ibus-ibuskeysyms-compat.html
new file mode 100644 (file)
index 0000000..1f5b9fb
--- /dev/null
@@ -0,0 +1,17966 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ibuskeysyms-compat</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="IBusKeymap.html" title="IBusKeymap">
+<link rel="next" href="ibus-IBusKeysyms.html" title="IBusKeysyms">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusKeymap.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-IBusKeysyms.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-ibuskeysyms-compat.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-ibuskeysyms-compat.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-ibuskeysyms-compat"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-ibuskeysyms-compat.top_of_page"></a>ibuskeysyms-compat</span></h2>
+<p>ibuskeysyms-compat</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="ibus-ibuskeysyms-compat.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-VoidSymbol" title="IBUS_VoidSymbol">IBUS_VoidSymbol</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-BackSpace" title="IBUS_BackSpace">IBUS_BackSpace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tab" title="IBUS_Tab">IBUS_Tab</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Linefeed" title="IBUS_Linefeed">IBUS_Linefeed</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Clear" title="IBUS_Clear">IBUS_Clear</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Return" title="IBUS_Return">IBUS_Return</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pause" title="IBUS_Pause">IBUS_Pause</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Scroll-Lock" title="IBUS_Scroll_Lock">IBUS_Scroll_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Sys-Req" title="IBUS_Sys_Req">IBUS_Sys_Req</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Escape" title="IBUS_Escape">IBUS_Escape</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Delete" title="IBUS_Delete">IBUS_Delete</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Multi-key" title="IBUS_Multi_key">IBUS_Multi_key</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Codeinput" title="IBUS_Codeinput">IBUS_Codeinput</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-SingleCandidate" title="IBUS_SingleCandidate">IBUS_SingleCandidate</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-MultipleCandidate" title="IBUS_MultipleCandidate">IBUS_MultipleCandidate</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-PreviousCandidate" title="IBUS_PreviousCandidate">IBUS_PreviousCandidate</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kanji" title="IBUS_Kanji">IBUS_Kanji</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Muhenkan" title="IBUS_Muhenkan">IBUS_Muhenkan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Henkan-Mode" title="IBUS_Henkan_Mode">IBUS_Henkan_Mode</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Henkan" title="IBUS_Henkan">IBUS_Henkan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Romaji" title="IBUS_Romaji">IBUS_Romaji</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hiragana" title="IBUS_Hiragana">IBUS_Hiragana</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Katakana" title="IBUS_Katakana">IBUS_Katakana</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hiragana-Katakana" title="IBUS_Hiragana_Katakana">IBUS_Hiragana_Katakana</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zenkaku" title="IBUS_Zenkaku">IBUS_Zenkaku</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hankaku" title="IBUS_Hankaku">IBUS_Hankaku</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zenkaku-Hankaku" title="IBUS_Zenkaku_Hankaku">IBUS_Zenkaku_Hankaku</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Touroku" title="IBUS_Touroku">IBUS_Touroku</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Massyo" title="IBUS_Massyo">IBUS_Massyo</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kana-Lock" title="IBUS_Kana_Lock">IBUS_Kana_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kana-Shift" title="IBUS_Kana_Shift">IBUS_Kana_Shift</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eisu-Shift" title="IBUS_Eisu_Shift">IBUS_Eisu_Shift</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eisu-toggle" title="IBUS_Eisu_toggle">IBUS_Eisu_toggle</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kanji-Bangou" title="IBUS_Kanji_Bangou">IBUS_Kanji_Bangou</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zen-Koho" title="IBUS_Zen_Koho">IBUS_Zen_Koho</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Mae-Koho" title="IBUS_Mae_Koho">IBUS_Mae_Koho</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Home" title="IBUS_Home">IBUS_Home</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Left" title="IBUS_Left">IBUS_Left</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Up" title="IBUS_Up">IBUS_Up</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Right" title="IBUS_Right">IBUS_Right</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Down" title="IBUS_Down">IBUS_Down</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Prior" title="IBUS_Prior">IBUS_Prior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Page-Up" title="IBUS_Page_Up">IBUS_Page_Up</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Next" title="IBUS_Next">IBUS_Next</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Page-Down" title="IBUS_Page_Down">IBUS_Page_Down</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-End" title="IBUS_End">IBUS_End</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Begin" title="IBUS_Begin">IBUS_Begin</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Select" title="IBUS_Select">IBUS_Select</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Print" title="IBUS_Print">IBUS_Print</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Execute" title="IBUS_Execute">IBUS_Execute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Insert" title="IBUS_Insert">IBUS_Insert</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Undo" title="IBUS_Undo">IBUS_Undo</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Redo" title="IBUS_Redo">IBUS_Redo</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Menu" title="IBUS_Menu">IBUS_Menu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Find" title="IBUS_Find">IBUS_Find</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cancel" title="IBUS_Cancel">IBUS_Cancel</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Help" title="IBUS_Help">IBUS_Help</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Break" title="IBUS_Break">IBUS_Break</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Mode-switch" title="IBUS_Mode_switch">IBUS_Mode_switch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-script-switch" title="IBUS_script_switch">IBUS_script_switch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Num-Lock" title="IBUS_Num_Lock">IBUS_Num_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Space" title="IBUS_KP_Space">IBUS_KP_Space</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Tab" title="IBUS_KP_Tab">IBUS_KP_Tab</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Enter" title="IBUS_KP_Enter">IBUS_KP_Enter</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-F1:CAPS" title="IBUS_KP_F1">IBUS_KP_F1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-F2:CAPS" title="IBUS_KP_F2">IBUS_KP_F2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-F3:CAPS" title="IBUS_KP_F3">IBUS_KP_F3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-F4:CAPS" title="IBUS_KP_F4">IBUS_KP_F4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Home" title="IBUS_KP_Home">IBUS_KP_Home</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Left" title="IBUS_KP_Left">IBUS_KP_Left</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Up" title="IBUS_KP_Up">IBUS_KP_Up</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Right" title="IBUS_KP_Right">IBUS_KP_Right</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Down" title="IBUS_KP_Down">IBUS_KP_Down</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Prior" title="IBUS_KP_Prior">IBUS_KP_Prior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Page-Up" title="IBUS_KP_Page_Up">IBUS_KP_Page_Up</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Next" title="IBUS_KP_Next">IBUS_KP_Next</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Page-Down" title="IBUS_KP_Page_Down">IBUS_KP_Page_Down</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-End" title="IBUS_KP_End">IBUS_KP_End</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Begin" title="IBUS_KP_Begin">IBUS_KP_Begin</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Insert" title="IBUS_KP_Insert">IBUS_KP_Insert</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Delete" title="IBUS_KP_Delete">IBUS_KP_Delete</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Equal" title="IBUS_KP_Equal">IBUS_KP_Equal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Multiply" title="IBUS_KP_Multiply">IBUS_KP_Multiply</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Add" title="IBUS_KP_Add">IBUS_KP_Add</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Separator" title="IBUS_KP_Separator">IBUS_KP_Separator</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Subtract" title="IBUS_KP_Subtract">IBUS_KP_Subtract</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Decimal" title="IBUS_KP_Decimal">IBUS_KP_Decimal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-Divide" title="IBUS_KP_Divide">IBUS_KP_Divide</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-0:CAPS" title="IBUS_KP_0">IBUS_KP_0</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-1:CAPS" title="IBUS_KP_1">IBUS_KP_1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-2:CAPS" title="IBUS_KP_2">IBUS_KP_2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-3:CAPS" title="IBUS_KP_3">IBUS_KP_3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-4:CAPS" title="IBUS_KP_4">IBUS_KP_4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-5:CAPS" title="IBUS_KP_5">IBUS_KP_5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-6:CAPS" title="IBUS_KP_6">IBUS_KP_6</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-7:CAPS" title="IBUS_KP_7">IBUS_KP_7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-8:CAPS" title="IBUS_KP_8">IBUS_KP_8</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-KP-9:CAPS" title="IBUS_KP_9">IBUS_KP_9</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F1:CAPS" title="IBUS_F1">IBUS_F1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F2:CAPS" title="IBUS_F2">IBUS_F2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F3:CAPS" title="IBUS_F3">IBUS_F3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F4:CAPS" title="IBUS_F4">IBUS_F4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F5:CAPS" title="IBUS_F5">IBUS_F5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F6:CAPS" title="IBUS_F6">IBUS_F6</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F7:CAPS" title="IBUS_F7">IBUS_F7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F8:CAPS" title="IBUS_F8">IBUS_F8</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F9:CAPS" title="IBUS_F9">IBUS_F9</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F10:CAPS" title="IBUS_F10">IBUS_F10</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F11:CAPS" title="IBUS_F11">IBUS_F11</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L1:CAPS" title="IBUS_L1">IBUS_L1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F12:CAPS" title="IBUS_F12">IBUS_F12</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L2:CAPS" title="IBUS_L2">IBUS_L2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F13:CAPS" title="IBUS_F13">IBUS_F13</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L3:CAPS" title="IBUS_L3">IBUS_L3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F14:CAPS" title="IBUS_F14">IBUS_F14</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L4:CAPS" title="IBUS_L4">IBUS_L4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F15:CAPS" title="IBUS_F15">IBUS_F15</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L5:CAPS" title="IBUS_L5">IBUS_L5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F16:CAPS" title="IBUS_F16">IBUS_F16</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L6:CAPS" title="IBUS_L6">IBUS_L6</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F17:CAPS" title="IBUS_F17">IBUS_F17</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L7:CAPS" title="IBUS_L7">IBUS_L7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F18:CAPS" title="IBUS_F18">IBUS_F18</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L8:CAPS" title="IBUS_L8">IBUS_L8</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F19:CAPS" title="IBUS_F19">IBUS_F19</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L9:CAPS" title="IBUS_L9">IBUS_L9</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F20:CAPS" title="IBUS_F20">IBUS_F20</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L10:CAPS" title="IBUS_L10">IBUS_L10</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F21:CAPS" title="IBUS_F21">IBUS_F21</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R1:CAPS" title="IBUS_R1">IBUS_R1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F22:CAPS" title="IBUS_F22">IBUS_F22</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R2:CAPS" title="IBUS_R2">IBUS_R2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F23:CAPS" title="IBUS_F23">IBUS_F23</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R3:CAPS" title="IBUS_R3">IBUS_R3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F24:CAPS" title="IBUS_F24">IBUS_F24</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R4:CAPS" title="IBUS_R4">IBUS_R4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F25:CAPS" title="IBUS_F25">IBUS_F25</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R5:CAPS" title="IBUS_R5">IBUS_R5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F26:CAPS" title="IBUS_F26">IBUS_F26</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R6:CAPS" title="IBUS_R6">IBUS_R6</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F27:CAPS" title="IBUS_F27">IBUS_F27</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R7:CAPS" title="IBUS_R7">IBUS_R7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F28:CAPS" title="IBUS_F28">IBUS_F28</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R8:CAPS" title="IBUS_R8">IBUS_R8</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F29:CAPS" title="IBUS_F29">IBUS_F29</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R9:CAPS" title="IBUS_R9">IBUS_R9</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F30:CAPS" title="IBUS_F30">IBUS_F30</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R10:CAPS" title="IBUS_R10">IBUS_R10</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F31:CAPS" title="IBUS_F31">IBUS_F31</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R11:CAPS" title="IBUS_R11">IBUS_R11</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F32:CAPS" title="IBUS_F32">IBUS_F32</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R12:CAPS" title="IBUS_R12">IBUS_R12</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F33:CAPS" title="IBUS_F33">IBUS_F33</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R13:CAPS" title="IBUS_R13">IBUS_R13</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F34:CAPS" title="IBUS_F34">IBUS_F34</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R14:CAPS" title="IBUS_R14">IBUS_R14</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F35:CAPS" title="IBUS_F35">IBUS_F35</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R15:CAPS" title="IBUS_R15">IBUS_R15</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Shift-L" title="IBUS_Shift_L">IBUS_Shift_L</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Shift-R" title="IBUS_Shift_R">IBUS_Shift_R</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Control-L" title="IBUS_Control_L">IBUS_Control_L</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Control-R" title="IBUS_Control_R">IBUS_Control_R</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Caps-Lock" title="IBUS_Caps_Lock">IBUS_Caps_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Shift-Lock" title="IBUS_Shift_Lock">IBUS_Shift_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Meta-L" title="IBUS_Meta_L">IBUS_Meta_L</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Meta-R" title="IBUS_Meta_R">IBUS_Meta_R</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Alt-L" title="IBUS_Alt_L">IBUS_Alt_L</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Alt-R" title="IBUS_Alt_R">IBUS_Alt_R</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Super-L" title="IBUS_Super_L">IBUS_Super_L</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Super-R" title="IBUS_Super_R">IBUS_Super_R</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hyper-L" title="IBUS_Hyper_L">IBUS_Hyper_L</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hyper-R" title="IBUS_Hyper_R">IBUS_Hyper_R</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Lock" title="IBUS_ISO_Lock">IBUS_ISO_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level2-Latch" title="IBUS_ISO_Level2_Latch">IBUS_ISO_Level2_Latch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Shift" title="IBUS_ISO_Level3_Shift">IBUS_ISO_Level3_Shift</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Latch" title="IBUS_ISO_Level3_Latch">IBUS_ISO_Level3_Latch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Lock" title="IBUS_ISO_Level3_Lock">IBUS_ISO_Level3_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Shift" title="IBUS_ISO_Level5_Shift">IBUS_ISO_Level5_Shift</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Latch" title="IBUS_ISO_Level5_Latch">IBUS_ISO_Level5_Latch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Lock" title="IBUS_ISO_Level5_Lock">IBUS_ISO_Level5_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Shift" title="IBUS_ISO_Group_Shift">IBUS_ISO_Group_Shift</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Latch" title="IBUS_ISO_Group_Latch">IBUS_ISO_Group_Latch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Lock" title="IBUS_ISO_Group_Lock">IBUS_ISO_Group_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Next-Group" title="IBUS_ISO_Next_Group">IBUS_ISO_Next_Group</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Next-Group-Lock" title="IBUS_ISO_Next_Group_Lock">IBUS_ISO_Next_Group_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Prev-Group" title="IBUS_ISO_Prev_Group">IBUS_ISO_Prev_Group</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Prev-Group-Lock" title="IBUS_ISO_Prev_Group_Lock">IBUS_ISO_Prev_Group_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-First-Group" title="IBUS_ISO_First_Group">IBUS_ISO_First_Group</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-First-Group-Lock" title="IBUS_ISO_First_Group_Lock">IBUS_ISO_First_Group_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Last-Group" title="IBUS_ISO_Last_Group">IBUS_ISO_Last_Group</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Last-Group-Lock" title="IBUS_ISO_Last_Group_Lock">IBUS_ISO_Last_Group_Lock</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Left-Tab" title="IBUS_ISO_Left_Tab">IBUS_ISO_Left_Tab</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Move-Line-Up" title="IBUS_ISO_Move_Line_Up">IBUS_ISO_Move_Line_Up</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Move-Line-Down" title="IBUS_ISO_Move_Line_Down">IBUS_ISO_Move_Line_Down</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Line-Up" title="IBUS_ISO_Partial_Line_Up">IBUS_ISO_Partial_Line_Up</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Line-Down" title="IBUS_ISO_Partial_Line_Down">IBUS_ISO_Partial_Line_Down</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Space-Left" title="IBUS_ISO_Partial_Space_Left">IBUS_ISO_Partial_Space_Left</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Space-Right" title="IBUS_ISO_Partial_Space_Right">IBUS_ISO_Partial_Space_Right</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Set-Margin-Left" title="IBUS_ISO_Set_Margin_Left">IBUS_ISO_Set_Margin_Left</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Set-Margin-Right" title="IBUS_ISO_Set_Margin_Right">IBUS_ISO_Set_Margin_Right</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Margin-Left" title="IBUS_ISO_Release_Margin_Left">IBUS_ISO_Release_Margin_Left</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Margin-Right" title="IBUS_ISO_Release_Margin_Right">IBUS_ISO_Release_Margin_Right</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Both-Margins" title="IBUS_ISO_Release_Both_Margins">IBUS_ISO_Release_Both_Margins</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Left" title="IBUS_ISO_Fast_Cursor_Left">IBUS_ISO_Fast_Cursor_Left</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Right" title="IBUS_ISO_Fast_Cursor_Right">IBUS_ISO_Fast_Cursor_Right</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Up" title="IBUS_ISO_Fast_Cursor_Up">IBUS_ISO_Fast_Cursor_Up</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Down" title="IBUS_ISO_Fast_Cursor_Down">IBUS_ISO_Fast_Cursor_Down</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Continuous-Underline" title="IBUS_ISO_Continuous_Underline">IBUS_ISO_Continuous_Underline</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Discontinuous-Underline" title="IBUS_ISO_Discontinuous_Underline">IBUS_ISO_Discontinuous_Underline</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Emphasize" title="IBUS_ISO_Emphasize">IBUS_ISO_Emphasize</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Center-Object" title="IBUS_ISO_Center_Object">IBUS_ISO_Center_Object</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ISO-Enter" title="IBUS_ISO_Enter">IBUS_ISO_Enter</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-grave" title="IBUS_dead_grave">IBUS_dead_grave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-acute" title="IBUS_dead_acute">IBUS_dead_acute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-circumflex" title="IBUS_dead_circumflex">IBUS_dead_circumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-tilde" title="IBUS_dead_tilde">IBUS_dead_tilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-perispomeni" title="IBUS_dead_perispomeni">IBUS_dead_perispomeni</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-macron" title="IBUS_dead_macron">IBUS_dead_macron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-breve" title="IBUS_dead_breve">IBUS_dead_breve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-abovedot" title="IBUS_dead_abovedot">IBUS_dead_abovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-diaeresis" title="IBUS_dead_diaeresis">IBUS_dead_diaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-abovering" title="IBUS_dead_abovering">IBUS_dead_abovering</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-doubleacute" title="IBUS_dead_doubleacute">IBUS_dead_doubleacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-caron" title="IBUS_dead_caron">IBUS_dead_caron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-cedilla" title="IBUS_dead_cedilla">IBUS_dead_cedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-ogonek" title="IBUS_dead_ogonek">IBUS_dead_ogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-iota" title="IBUS_dead_iota">IBUS_dead_iota</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-voiced-sound" title="IBUS_dead_voiced_sound">IBUS_dead_voiced_sound</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-semivoiced-sound" title="IBUS_dead_semivoiced_sound">IBUS_dead_semivoiced_sound</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowdot" title="IBUS_dead_belowdot">IBUS_dead_belowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-hook" title="IBUS_dead_hook">IBUS_dead_hook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-horn" title="IBUS_dead_horn">IBUS_dead_horn</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-stroke" title="IBUS_dead_stroke">IBUS_dead_stroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-abovecomma" title="IBUS_dead_abovecomma">IBUS_dead_abovecomma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-psili" title="IBUS_dead_psili">IBUS_dead_psili</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-abovereversedcomma" title="IBUS_dead_abovereversedcomma">IBUS_dead_abovereversedcomma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-dasia" title="IBUS_dead_dasia">IBUS_dead_dasia</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowring" title="IBUS_dead_belowring">IBUS_dead_belowring</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowmacron" title="IBUS_dead_belowmacron">IBUS_dead_belowmacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowcircumflex" title="IBUS_dead_belowcircumflex">IBUS_dead_belowcircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowtilde" title="IBUS_dead_belowtilde">IBUS_dead_belowtilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowbreve" title="IBUS_dead_belowbreve">IBUS_dead_belowbreve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dead-belowdiaeresis" title="IBUS_dead_belowdiaeresis">IBUS_dead_belowdiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-First-Virtual-Screen" title="IBUS_First_Virtual_Screen">IBUS_First_Virtual_Screen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Prev-Virtual-Screen" title="IBUS_Prev_Virtual_Screen">IBUS_Prev_Virtual_Screen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Next-Virtual-Screen" title="IBUS_Next_Virtual_Screen">IBUS_Next_Virtual_Screen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Last-Virtual-Screen" title="IBUS_Last_Virtual_Screen">IBUS_Last_Virtual_Screen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Terminate-Server" title="IBUS_Terminate_Server">IBUS_Terminate_Server</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-AccessX-Enable" title="IBUS_AccessX_Enable">IBUS_AccessX_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-AccessX-Feedback-Enable" title="IBUS_AccessX_Feedback_Enable">IBUS_AccessX_Feedback_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-RepeatKeys-Enable" title="IBUS_RepeatKeys_Enable">IBUS_RepeatKeys_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-SlowKeys-Enable" title="IBUS_SlowKeys_Enable">IBUS_SlowKeys_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-BounceKeys-Enable" title="IBUS_BounceKeys_Enable">IBUS_BounceKeys_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-StickyKeys-Enable" title="IBUS_StickyKeys_Enable">IBUS_StickyKeys_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-MouseKeys-Enable" title="IBUS_MouseKeys_Enable">IBUS_MouseKeys_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-MouseKeys-Accel-Enable" title="IBUS_MouseKeys_Accel_Enable">IBUS_MouseKeys_Accel_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Overlay1-Enable" title="IBUS_Overlay1_Enable">IBUS_Overlay1_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Overlay2-Enable" title="IBUS_Overlay2_Enable">IBUS_Overlay2_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-AudibleBell-Enable" title="IBUS_AudibleBell_Enable">IBUS_AudibleBell_Enable</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Left" title="IBUS_Pointer_Left">IBUS_Pointer_Left</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Right" title="IBUS_Pointer_Right">IBUS_Pointer_Right</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Up" title="IBUS_Pointer_Up">IBUS_Pointer_Up</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Down" title="IBUS_Pointer_Down">IBUS_Pointer_Down</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-UpLeft" title="IBUS_Pointer_UpLeft">IBUS_Pointer_UpLeft</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-UpRight" title="IBUS_Pointer_UpRight">IBUS_Pointer_UpRight</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DownLeft" title="IBUS_Pointer_DownLeft">IBUS_Pointer_DownLeft</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DownRight" title="IBUS_Pointer_DownRight">IBUS_Pointer_DownRight</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button-Dflt" title="IBUS_Pointer_Button_Dflt">IBUS_Pointer_Button_Dflt</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button1" title="IBUS_Pointer_Button1">IBUS_Pointer_Button1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button2" title="IBUS_Pointer_Button2">IBUS_Pointer_Button2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button3" title="IBUS_Pointer_Button3">IBUS_Pointer_Button3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button4" title="IBUS_Pointer_Button4">IBUS_Pointer_Button4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button5" title="IBUS_Pointer_Button5">IBUS_Pointer_Button5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick-Dflt" title="IBUS_Pointer_DblClick_Dflt">IBUS_Pointer_DblClick_Dflt</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick1" title="IBUS_Pointer_DblClick1">IBUS_Pointer_DblClick1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick2" title="IBUS_Pointer_DblClick2">IBUS_Pointer_DblClick2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick3" title="IBUS_Pointer_DblClick3">IBUS_Pointer_DblClick3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick4" title="IBUS_Pointer_DblClick4">IBUS_Pointer_DblClick4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick5" title="IBUS_Pointer_DblClick5">IBUS_Pointer_DblClick5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag-Dflt" title="IBUS_Pointer_Drag_Dflt">IBUS_Pointer_Drag_Dflt</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag1" title="IBUS_Pointer_Drag1">IBUS_Pointer_Drag1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag2" title="IBUS_Pointer_Drag2">IBUS_Pointer_Drag2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag3" title="IBUS_Pointer_Drag3">IBUS_Pointer_Drag3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag4" title="IBUS_Pointer_Drag4">IBUS_Pointer_Drag4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag5" title="IBUS_Pointer_Drag5">IBUS_Pointer_Drag5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-EnableKeys" title="IBUS_Pointer_EnableKeys">IBUS_Pointer_EnableKeys</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Accelerate" title="IBUS_Pointer_Accelerate">IBUS_Pointer_Accelerate</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DfltBtnNext" title="IBUS_Pointer_DfltBtnNext">IBUS_Pointer_DfltBtnNext</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DfltBtnPrev" title="IBUS_Pointer_DfltBtnPrev">IBUS_Pointer_DfltBtnPrev</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Duplicate" title="IBUS_3270_Duplicate">IBUS_3270_Duplicate</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-FieldMark" title="IBUS_3270_FieldMark">IBUS_3270_FieldMark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Right2" title="IBUS_3270_Right2">IBUS_3270_Right2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Left2" title="IBUS_3270_Left2">IBUS_3270_Left2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-BackTab" title="IBUS_3270_BackTab">IBUS_3270_BackTab</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-EraseEOF" title="IBUS_3270_EraseEOF">IBUS_3270_EraseEOF</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-EraseInput" title="IBUS_3270_EraseInput">IBUS_3270_EraseInput</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Reset" title="IBUS_3270_Reset">IBUS_3270_Reset</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Quit" title="IBUS_3270_Quit">IBUS_3270_Quit</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-PA1:CAPS" title="IBUS_3270_PA1">IBUS_3270_PA1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-PA2:CAPS" title="IBUS_3270_PA2">IBUS_3270_PA2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-PA3:CAPS" title="IBUS_3270_PA3">IBUS_3270_PA3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Test" title="IBUS_3270_Test">IBUS_3270_Test</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Attn" title="IBUS_3270_Attn">IBUS_3270_Attn</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-CursorBlink" title="IBUS_3270_CursorBlink">IBUS_3270_CursorBlink</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-AltCursor" title="IBUS_3270_AltCursor">IBUS_3270_AltCursor</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-KeyClick" title="IBUS_3270_KeyClick">IBUS_3270_KeyClick</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Jump" title="IBUS_3270_Jump">IBUS_3270_Jump</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Ident" title="IBUS_3270_Ident">IBUS_3270_Ident</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Rule" title="IBUS_3270_Rule">IBUS_3270_Rule</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Copy" title="IBUS_3270_Copy">IBUS_3270_Copy</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Play" title="IBUS_3270_Play">IBUS_3270_Play</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Setup" title="IBUS_3270_Setup">IBUS_3270_Setup</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Record" title="IBUS_3270_Record">IBUS_3270_Record</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-ChangeScreen" title="IBUS_3270_ChangeScreen">IBUS_3270_ChangeScreen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-DeleteWord" title="IBUS_3270_DeleteWord">IBUS_3270_DeleteWord</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-ExSelect" title="IBUS_3270_ExSelect">IBUS_3270_ExSelect</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-CursorSelect" title="IBUS_3270_CursorSelect">IBUS_3270_CursorSelect</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-PrintScreen" title="IBUS_3270_PrintScreen">IBUS_3270_PrintScreen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3270-Enter" title="IBUS_3270_Enter">IBUS_3270_Enter</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-space" title="IBUS_space">IBUS_space</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-exclam" title="IBUS_exclam">IBUS_exclam</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-quotedbl" title="IBUS_quotedbl">IBUS_quotedbl</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-numbersign" title="IBUS_numbersign">IBUS_numbersign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dollar" title="IBUS_dollar">IBUS_dollar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-percent" title="IBUS_percent">IBUS_percent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ampersand" title="IBUS_ampersand">IBUS_ampersand</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-apostrophe" title="IBUS_apostrophe">IBUS_apostrophe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-quoteright" title="IBUS_quoteright">IBUS_quoteright</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-parenleft" title="IBUS_parenleft">IBUS_parenleft</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-parenright" title="IBUS_parenright">IBUS_parenright</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-asterisk" title="IBUS_asterisk">IBUS_asterisk</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-plus" title="IBUS_plus">IBUS_plus</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-comma" title="IBUS_comma">IBUS_comma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-minus" title="IBUS_minus">IBUS_minus</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-period" title="IBUS_period">IBUS_period</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-slash" title="IBUS_slash">IBUS_slash</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-0:CAPS" title="IBUS_0">IBUS_0</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-1:CAPS" title="IBUS_1">IBUS_1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-2:CAPS" title="IBUS_2">IBUS_2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-3:CAPS" title="IBUS_3">IBUS_3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-4:CAPS" title="IBUS_4">IBUS_4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-5:CAPS" title="IBUS_5">IBUS_5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-6:CAPS" title="IBUS_6">IBUS_6</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-7:CAPS" title="IBUS_7">IBUS_7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-8:CAPS" title="IBUS_8">IBUS_8</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-9:CAPS" title="IBUS_9">IBUS_9</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-colon" title="IBUS_colon">IBUS_colon</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-semicolon" title="IBUS_semicolon">IBUS_semicolon</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-less" title="IBUS_less">IBUS_less</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-equal" title="IBUS_equal">IBUS_equal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-greater" title="IBUS_greater">IBUS_greater</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-question" title="IBUS_question">IBUS_question</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-at" title="IBUS_at">IBUS_at</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-A:CAPS" title="IBUS_A">IBUS_A</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-B:CAPS" title="IBUS_B">IBUS_B</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-C:CAPS" title="IBUS_C">IBUS_C</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-D:CAPS" title="IBUS_D">IBUS_D</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-E:CAPS" title="IBUS_E">IBUS_E</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-F:CAPS" title="IBUS_F">IBUS_F</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-G:CAPS" title="IBUS_G">IBUS_G</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-H:CAPS" title="IBUS_H">IBUS_H</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-I:CAPS" title="IBUS_I">IBUS_I</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-J:CAPS" title="IBUS_J">IBUS_J</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-K:CAPS" title="IBUS_K">IBUS_K</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-L:CAPS" title="IBUS_L">IBUS_L</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-M:CAPS" title="IBUS_M">IBUS_M</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-N:CAPS" title="IBUS_N">IBUS_N</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-O:CAPS" title="IBUS_O">IBUS_O</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-P:CAPS" title="IBUS_P">IBUS_P</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Q:CAPS" title="IBUS_Q">IBUS_Q</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-R:CAPS" title="IBUS_R">IBUS_R</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-S:CAPS" title="IBUS_S">IBUS_S</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-T:CAPS" title="IBUS_T">IBUS_T</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-U:CAPS" title="IBUS_U">IBUS_U</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-V:CAPS" title="IBUS_V">IBUS_V</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-W:CAPS" title="IBUS_W">IBUS_W</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-X:CAPS" title="IBUS_X">IBUS_X</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Y:CAPS" title="IBUS_Y">IBUS_Y</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Z:CAPS" title="IBUS_Z">IBUS_Z</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-bracketleft" title="IBUS_bracketleft">IBUS_bracketleft</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-backslash" title="IBUS_backslash">IBUS_backslash</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-bracketright" title="IBUS_bracketright">IBUS_bracketright</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-asciicircum" title="IBUS_asciicircum">IBUS_asciicircum</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-underscore" title="IBUS_underscore">IBUS_underscore</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-grave" title="IBUS_grave">IBUS_grave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-quoteleft" title="IBUS_quoteleft">IBUS_quoteleft</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-a" title="IBUS_a">IBUS_a</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-b" title="IBUS_b">IBUS_b</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-c" title="IBUS_c">IBUS_c</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-d" title="IBUS_d">IBUS_d</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-e" title="IBUS_e">IBUS_e</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-f" title="IBUS_f">IBUS_f</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-g" title="IBUS_g">IBUS_g</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-h" title="IBUS_h">IBUS_h</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-i" title="IBUS_i">IBUS_i</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-j" title="IBUS_j">IBUS_j</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-k" title="IBUS_k">IBUS_k</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-l" title="IBUS_l">IBUS_l</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-m" title="IBUS_m">IBUS_m</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-n" title="IBUS_n">IBUS_n</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-o" title="IBUS_o">IBUS_o</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-p" title="IBUS_p">IBUS_p</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-q" title="IBUS_q">IBUS_q</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-r" title="IBUS_r">IBUS_r</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-s" title="IBUS_s">IBUS_s</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-t" title="IBUS_t">IBUS_t</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-u" title="IBUS_u">IBUS_u</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-v" title="IBUS_v">IBUS_v</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-w" title="IBUS_w">IBUS_w</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-x" title="IBUS_x">IBUS_x</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-y" title="IBUS_y">IBUS_y</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-z" title="IBUS_z">IBUS_z</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braceleft" title="IBUS_braceleft">IBUS_braceleft</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-bar" title="IBUS_bar">IBUS_bar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braceright" title="IBUS_braceright">IBUS_braceright</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-asciitilde" title="IBUS_asciitilde">IBUS_asciitilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-nobreakspace" title="IBUS_nobreakspace">IBUS_nobreakspace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-exclamdown" title="IBUS_exclamdown">IBUS_exclamdown</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cent" title="IBUS_cent">IBUS_cent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sterling" title="IBUS_sterling">IBUS_sterling</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-currency" title="IBUS_currency">IBUS_currency</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-yen" title="IBUS_yen">IBUS_yen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-brokenbar" title="IBUS_brokenbar">IBUS_brokenbar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-section" title="IBUS_section">IBUS_section</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-diaeresis" title="IBUS_diaeresis">IBUS_diaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-copyright" title="IBUS_copyright">IBUS_copyright</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ordfeminine" title="IBUS_ordfeminine">IBUS_ordfeminine</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-guillemotleft" title="IBUS_guillemotleft">IBUS_guillemotleft</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notsign" title="IBUS_notsign">IBUS_notsign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hyphen" title="IBUS_hyphen">IBUS_hyphen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-registered" title="IBUS_registered">IBUS_registered</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-macron" title="IBUS_macron">IBUS_macron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-degree" title="IBUS_degree">IBUS_degree</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-plusminus" title="IBUS_plusminus">IBUS_plusminus</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-twosuperior" title="IBUS_twosuperior">IBUS_twosuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threesuperior" title="IBUS_threesuperior">IBUS_threesuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acute" title="IBUS_acute">IBUS_acute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-mu" title="IBUS_mu">IBUS_mu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-paragraph" title="IBUS_paragraph">IBUS_paragraph</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-periodcentered" title="IBUS_periodcentered">IBUS_periodcentered</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cedilla" title="IBUS_cedilla">IBUS_cedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onesuperior" title="IBUS_onesuperior">IBUS_onesuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-masculine" title="IBUS_masculine">IBUS_masculine</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-guillemotright" title="IBUS_guillemotright">IBUS_guillemotright</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onequarter" title="IBUS_onequarter">IBUS_onequarter</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onehalf" title="IBUS_onehalf">IBUS_onehalf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threequarters" title="IBUS_threequarters">IBUS_threequarters</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-questiondown" title="IBUS_questiondown">IBUS_questiondown</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Agrave" title="IBUS_Agrave">IBUS_Agrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Aacute" title="IBUS_Aacute">IBUS_Aacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflex" title="IBUS_Acircumflex">IBUS_Acircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Atilde" title="IBUS_Atilde">IBUS_Atilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Adiaeresis" title="IBUS_Adiaeresis">IBUS_Adiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Aring" title="IBUS_Aring">IBUS_Aring</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-AE:CAPS" title="IBUS_AE">IBUS_AE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ccedilla" title="IBUS_Ccedilla">IBUS_Ccedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Egrave" title="IBUS_Egrave">IBUS_Egrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eacute" title="IBUS_Eacute">IBUS_Eacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflex" title="IBUS_Ecircumflex">IBUS_Ecircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ediaeresis" title="IBUS_Ediaeresis">IBUS_Ediaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Igrave" title="IBUS_Igrave">IBUS_Igrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Iacute" title="IBUS_Iacute">IBUS_Iacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Icircumflex" title="IBUS_Icircumflex">IBUS_Icircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Idiaeresis" title="IBUS_Idiaeresis">IBUS_Idiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ETH:CAPS" title="IBUS_ETH">IBUS_ETH</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eth" title="IBUS_Eth">IBUS_Eth</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ntilde" title="IBUS_Ntilde">IBUS_Ntilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ograve" title="IBUS_Ograve">IBUS_Ograve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Oacute" title="IBUS_Oacute">IBUS_Oacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflex" title="IBUS_Ocircumflex">IBUS_Ocircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Otilde" title="IBUS_Otilde">IBUS_Otilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Odiaeresis" title="IBUS_Odiaeresis">IBUS_Odiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-multiply" title="IBUS_multiply">IBUS_multiply</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Oslash" title="IBUS_Oslash">IBUS_Oslash</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ooblique" title="IBUS_Ooblique">IBUS_Ooblique</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ugrave" title="IBUS_Ugrave">IBUS_Ugrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uacute" title="IBUS_Uacute">IBUS_Uacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ucircumflex" title="IBUS_Ucircumflex">IBUS_Ucircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Udiaeresis" title="IBUS_Udiaeresis">IBUS_Udiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Yacute" title="IBUS_Yacute">IBUS_Yacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-THORN:CAPS" title="IBUS_THORN">IBUS_THORN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thorn" title="IBUS_Thorn">IBUS_Thorn</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ssharp" title="IBUS_ssharp">IBUS_ssharp</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-agrave" title="IBUS_agrave">IBUS_agrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-aacute" title="IBUS_aacute">IBUS_aacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflex" title="IBUS_acircumflex">IBUS_acircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-atilde" title="IBUS_atilde">IBUS_atilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-adiaeresis" title="IBUS_adiaeresis">IBUS_adiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-aring" title="IBUS_aring">IBUS_aring</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ae" title="IBUS_ae">IBUS_ae</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ccedilla" title="IBUS_ccedilla">IBUS_ccedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-egrave" title="IBUS_egrave">IBUS_egrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eacute" title="IBUS_eacute">IBUS_eacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflex" title="IBUS_ecircumflex">IBUS_ecircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ediaeresis" title="IBUS_ediaeresis">IBUS_ediaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-igrave" title="IBUS_igrave">IBUS_igrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-iacute" title="IBUS_iacute">IBUS_iacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-icircumflex" title="IBUS_icircumflex">IBUS_icircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-idiaeresis" title="IBUS_idiaeresis">IBUS_idiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eth" title="IBUS_eth">IBUS_eth</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ntilde" title="IBUS_ntilde">IBUS_ntilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ograve" title="IBUS_ograve">IBUS_ograve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-oacute" title="IBUS_oacute">IBUS_oacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflex" title="IBUS_ocircumflex">IBUS_ocircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-otilde" title="IBUS_otilde">IBUS_otilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-odiaeresis" title="IBUS_odiaeresis">IBUS_odiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-division" title="IBUS_division">IBUS_division</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-oslash" title="IBUS_oslash">IBUS_oslash</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ooblique" title="IBUS_ooblique">IBUS_ooblique</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ugrave" title="IBUS_ugrave">IBUS_ugrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uacute" title="IBUS_uacute">IBUS_uacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ucircumflex" title="IBUS_ucircumflex">IBUS_ucircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-udiaeresis" title="IBUS_udiaeresis">IBUS_udiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-yacute" title="IBUS_yacute">IBUS_yacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-thorn" title="IBUS_thorn">IBUS_thorn</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ydiaeresis" title="IBUS_ydiaeresis">IBUS_ydiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Aogonek" title="IBUS_Aogonek">IBUS_Aogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-breve" title="IBUS_breve">IBUS_breve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lstroke" title="IBUS_Lstroke">IBUS_Lstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lcaron" title="IBUS_Lcaron">IBUS_Lcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Sacute" title="IBUS_Sacute">IBUS_Sacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Scaron" title="IBUS_Scaron">IBUS_Scaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Scedilla" title="IBUS_Scedilla">IBUS_Scedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tcaron" title="IBUS_Tcaron">IBUS_Tcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zacute" title="IBUS_Zacute">IBUS_Zacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zcaron" title="IBUS_Zcaron">IBUS_Zcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zabovedot" title="IBUS_Zabovedot">IBUS_Zabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-aogonek" title="IBUS_aogonek">IBUS_aogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ogonek" title="IBUS_ogonek">IBUS_ogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lstroke" title="IBUS_lstroke">IBUS_lstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lcaron" title="IBUS_lcaron">IBUS_lcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sacute" title="IBUS_sacute">IBUS_sacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-caron" title="IBUS_caron">IBUS_caron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-scaron" title="IBUS_scaron">IBUS_scaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-scedilla" title="IBUS_scedilla">IBUS_scedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tcaron" title="IBUS_tcaron">IBUS_tcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zacute" title="IBUS_zacute">IBUS_zacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-doubleacute" title="IBUS_doubleacute">IBUS_doubleacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zcaron" title="IBUS_zcaron">IBUS_zcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zabovedot" title="IBUS_zabovedot">IBUS_zabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Racute" title="IBUS_Racute">IBUS_Racute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abreve" title="IBUS_Abreve">IBUS_Abreve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lacute" title="IBUS_Lacute">IBUS_Lacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cacute" title="IBUS_Cacute">IBUS_Cacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ccaron" title="IBUS_Ccaron">IBUS_Ccaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eogonek" title="IBUS_Eogonek">IBUS_Eogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecaron" title="IBUS_Ecaron">IBUS_Ecaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Dcaron" title="IBUS_Dcaron">IBUS_Dcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Dstroke" title="IBUS_Dstroke">IBUS_Dstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Nacute" title="IBUS_Nacute">IBUS_Nacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ncaron" title="IBUS_Ncaron">IBUS_Ncaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Odoubleacute" title="IBUS_Odoubleacute">IBUS_Odoubleacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Rcaron" title="IBUS_Rcaron">IBUS_Rcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uring" title="IBUS_Uring">IBUS_Uring</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Udoubleacute" title="IBUS_Udoubleacute">IBUS_Udoubleacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tcedilla" title="IBUS_Tcedilla">IBUS_Tcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-racute" title="IBUS_racute">IBUS_racute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abreve" title="IBUS_abreve">IBUS_abreve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lacute" title="IBUS_lacute">IBUS_lacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cacute" title="IBUS_cacute">IBUS_cacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ccaron" title="IBUS_ccaron">IBUS_ccaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eogonek" title="IBUS_eogonek">IBUS_eogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecaron" title="IBUS_ecaron">IBUS_ecaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dcaron" title="IBUS_dcaron">IBUS_dcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dstroke" title="IBUS_dstroke">IBUS_dstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-nacute" title="IBUS_nacute">IBUS_nacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ncaron" title="IBUS_ncaron">IBUS_ncaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-odoubleacute" title="IBUS_odoubleacute">IBUS_odoubleacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-udoubleacute" title="IBUS_udoubleacute">IBUS_udoubleacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rcaron" title="IBUS_rcaron">IBUS_rcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uring" title="IBUS_uring">IBUS_uring</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tcedilla" title="IBUS_tcedilla">IBUS_tcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abovedot" title="IBUS_abovedot">IBUS_abovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hstroke" title="IBUS_Hstroke">IBUS_Hstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hcircumflex" title="IBUS_Hcircumflex">IBUS_Hcircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Iabovedot" title="IBUS_Iabovedot">IBUS_Iabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gbreve" title="IBUS_Gbreve">IBUS_Gbreve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Jcircumflex" title="IBUS_Jcircumflex">IBUS_Jcircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hstroke" title="IBUS_hstroke">IBUS_hstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hcircumflex" title="IBUS_hcircumflex">IBUS_hcircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-idotless" title="IBUS_idotless">IBUS_idotless</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gbreve" title="IBUS_gbreve">IBUS_gbreve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-jcircumflex" title="IBUS_jcircumflex">IBUS_jcircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cabovedot" title="IBUS_Cabovedot">IBUS_Cabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ccircumflex" title="IBUS_Ccircumflex">IBUS_Ccircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gabovedot" title="IBUS_Gabovedot">IBUS_Gabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gcircumflex" title="IBUS_Gcircumflex">IBUS_Gcircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ubreve" title="IBUS_Ubreve">IBUS_Ubreve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Scircumflex" title="IBUS_Scircumflex">IBUS_Scircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cabovedot" title="IBUS_cabovedot">IBUS_cabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ccircumflex" title="IBUS_ccircumflex">IBUS_ccircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gabovedot" title="IBUS_gabovedot">IBUS_gabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gcircumflex" title="IBUS_gcircumflex">IBUS_gcircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ubreve" title="IBUS_ubreve">IBUS_ubreve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-scircumflex" title="IBUS_scircumflex">IBUS_scircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kra" title="IBUS_kra">IBUS_kra</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kappa" title="IBUS_kappa">IBUS_kappa</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Rcedilla" title="IBUS_Rcedilla">IBUS_Rcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Itilde" title="IBUS_Itilde">IBUS_Itilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lcedilla" title="IBUS_Lcedilla">IBUS_Lcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Emacron" title="IBUS_Emacron">IBUS_Emacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gcedilla" title="IBUS_Gcedilla">IBUS_Gcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tslash" title="IBUS_Tslash">IBUS_Tslash</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rcedilla" title="IBUS_rcedilla">IBUS_rcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-itilde" title="IBUS_itilde">IBUS_itilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lcedilla" title="IBUS_lcedilla">IBUS_lcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emacron" title="IBUS_emacron">IBUS_emacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gcedilla" title="IBUS_gcedilla">IBUS_gcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tslash" title="IBUS_tslash">IBUS_tslash</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ENG:CAPS" title="IBUS_ENG">IBUS_ENG</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eng" title="IBUS_eng">IBUS_eng</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Amacron" title="IBUS_Amacron">IBUS_Amacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Iogonek" title="IBUS_Iogonek">IBUS_Iogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Eabovedot" title="IBUS_Eabovedot">IBUS_Eabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Imacron" title="IBUS_Imacron">IBUS_Imacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ncedilla" title="IBUS_Ncedilla">IBUS_Ncedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Omacron" title="IBUS_Omacron">IBUS_Omacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Kcedilla" title="IBUS_Kcedilla">IBUS_Kcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uogonek" title="IBUS_Uogonek">IBUS_Uogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Utilde" title="IBUS_Utilde">IBUS_Utilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Umacron" title="IBUS_Umacron">IBUS_Umacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-amacron" title="IBUS_amacron">IBUS_amacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-iogonek" title="IBUS_iogonek">IBUS_iogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eabovedot" title="IBUS_eabovedot">IBUS_eabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-imacron" title="IBUS_imacron">IBUS_imacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ncedilla" title="IBUS_ncedilla">IBUS_ncedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-omacron" title="IBUS_omacron">IBUS_omacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kcedilla" title="IBUS_kcedilla">IBUS_kcedilla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uogonek" title="IBUS_uogonek">IBUS_uogonek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-utilde" title="IBUS_utilde">IBUS_utilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-umacron" title="IBUS_umacron">IBUS_umacron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Babovedot" title="IBUS_Babovedot">IBUS_Babovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-babovedot" title="IBUS_babovedot">IBUS_babovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Dabovedot" title="IBUS_Dabovedot">IBUS_Dabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Wgrave" title="IBUS_Wgrave">IBUS_Wgrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Wacute" title="IBUS_Wacute">IBUS_Wacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dabovedot" title="IBUS_dabovedot">IBUS_dabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ygrave" title="IBUS_Ygrave">IBUS_Ygrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Fabovedot" title="IBUS_Fabovedot">IBUS_Fabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fabovedot" title="IBUS_fabovedot">IBUS_fabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Mabovedot" title="IBUS_Mabovedot">IBUS_Mabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-mabovedot" title="IBUS_mabovedot">IBUS_mabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Pabovedot" title="IBUS_Pabovedot">IBUS_Pabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-wgrave" title="IBUS_wgrave">IBUS_wgrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-pabovedot" title="IBUS_pabovedot">IBUS_pabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-wacute" title="IBUS_wacute">IBUS_wacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Sabovedot" title="IBUS_Sabovedot">IBUS_Sabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ygrave" title="IBUS_ygrave">IBUS_ygrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Wdiaeresis" title="IBUS_Wdiaeresis">IBUS_Wdiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-wdiaeresis" title="IBUS_wdiaeresis">IBUS_wdiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sabovedot" title="IBUS_sabovedot">IBUS_sabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Wcircumflex" title="IBUS_Wcircumflex">IBUS_Wcircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Tabovedot" title="IBUS_Tabovedot">IBUS_Tabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ycircumflex" title="IBUS_Ycircumflex">IBUS_Ycircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-wcircumflex" title="IBUS_wcircumflex">IBUS_wcircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tabovedot" title="IBUS_tabovedot">IBUS_tabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ycircumflex" title="IBUS_ycircumflex">IBUS_ycircumflex</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-OE:CAPS" title="IBUS_OE">IBUS_OE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-oe" title="IBUS_oe">IBUS_oe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ydiaeresis" title="IBUS_Ydiaeresis">IBUS_Ydiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-overline" title="IBUS_overline">IBUS_overline</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-fullstop" title="IBUS_kana_fullstop">IBUS_kana_fullstop</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-openingbracket" title="IBUS_kana_openingbracket">IBUS_kana_openingbracket</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-closingbracket" title="IBUS_kana_closingbracket">IBUS_kana_closingbracket</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-comma" title="IBUS_kana_comma">IBUS_kana_comma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-conjunctive" title="IBUS_kana_conjunctive">IBUS_kana_conjunctive</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-middledot" title="IBUS_kana_middledot">IBUS_kana_middledot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-WO" title="IBUS_kana_WO">IBUS_kana_WO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-a" title="IBUS_kana_a">IBUS_kana_a</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-i" title="IBUS_kana_i">IBUS_kana_i</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-u" title="IBUS_kana_u">IBUS_kana_u</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-e" title="IBUS_kana_e">IBUS_kana_e</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-o" title="IBUS_kana_o">IBUS_kana_o</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-ya" title="IBUS_kana_ya">IBUS_kana_ya</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-yu" title="IBUS_kana_yu">IBUS_kana_yu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-yo" title="IBUS_kana_yo">IBUS_kana_yo</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-tsu" title="IBUS_kana_tsu">IBUS_kana_tsu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-tu" title="IBUS_kana_tu">IBUS_kana_tu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-prolongedsound" title="IBUS_prolongedsound">IBUS_prolongedsound</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-A" title="IBUS_kana_A">IBUS_kana_A</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-I" title="IBUS_kana_I">IBUS_kana_I</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-U" title="IBUS_kana_U">IBUS_kana_U</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-E" title="IBUS_kana_E">IBUS_kana_E</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-O" title="IBUS_kana_O">IBUS_kana_O</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KA" title="IBUS_kana_KA">IBUS_kana_KA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KI" title="IBUS_kana_KI">IBUS_kana_KI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KU" title="IBUS_kana_KU">IBUS_kana_KU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KE" title="IBUS_kana_KE">IBUS_kana_KE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-KO" title="IBUS_kana_KO">IBUS_kana_KO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SA" title="IBUS_kana_SA">IBUS_kana_SA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SHI" title="IBUS_kana_SHI">IBUS_kana_SHI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SU" title="IBUS_kana_SU">IBUS_kana_SU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SE" title="IBUS_kana_SE">IBUS_kana_SE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-SO" title="IBUS_kana_SO">IBUS_kana_SO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TA" title="IBUS_kana_TA">IBUS_kana_TA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-CHI" title="IBUS_kana_CHI">IBUS_kana_CHI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TI" title="IBUS_kana_TI">IBUS_kana_TI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TSU" title="IBUS_kana_TSU">IBUS_kana_TSU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TU" title="IBUS_kana_TU">IBUS_kana_TU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TE" title="IBUS_kana_TE">IBUS_kana_TE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-TO" title="IBUS_kana_TO">IBUS_kana_TO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NA" title="IBUS_kana_NA">IBUS_kana_NA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NI" title="IBUS_kana_NI">IBUS_kana_NI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NU" title="IBUS_kana_NU">IBUS_kana_NU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NE" title="IBUS_kana_NE">IBUS_kana_NE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-NO" title="IBUS_kana_NO">IBUS_kana_NO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HA" title="IBUS_kana_HA">IBUS_kana_HA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HI" title="IBUS_kana_HI">IBUS_kana_HI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-FU" title="IBUS_kana_FU">IBUS_kana_FU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HU" title="IBUS_kana_HU">IBUS_kana_HU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HE" title="IBUS_kana_HE">IBUS_kana_HE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-HO" title="IBUS_kana_HO">IBUS_kana_HO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-MA" title="IBUS_kana_MA">IBUS_kana_MA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-MI" title="IBUS_kana_MI">IBUS_kana_MI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-MU" title="IBUS_kana_MU">IBUS_kana_MU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-ME" title="IBUS_kana_ME">IBUS_kana_ME</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-MO" title="IBUS_kana_MO">IBUS_kana_MO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-YA" title="IBUS_kana_YA">IBUS_kana_YA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-YU" title="IBUS_kana_YU">IBUS_kana_YU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-YO" title="IBUS_kana_YO">IBUS_kana_YO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RA" title="IBUS_kana_RA">IBUS_kana_RA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RI" title="IBUS_kana_RI">IBUS_kana_RI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RU" title="IBUS_kana_RU">IBUS_kana_RU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RE" title="IBUS_kana_RE">IBUS_kana_RE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-RO" title="IBUS_kana_RO">IBUS_kana_RO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-WA" title="IBUS_kana_WA">IBUS_kana_WA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-N" title="IBUS_kana_N">IBUS_kana_N</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-voicedsound" title="IBUS_voicedsound">IBUS_voicedsound</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-semivoicedsound" title="IBUS_semivoicedsound">IBUS_semivoicedsound</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-kana-switch" title="IBUS_kana_switch">IBUS_kana_switch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-0" title="IBUS_Farsi_0">IBUS_Farsi_0</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-1" title="IBUS_Farsi_1">IBUS_Farsi_1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-2" title="IBUS_Farsi_2">IBUS_Farsi_2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-3" title="IBUS_Farsi_3">IBUS_Farsi_3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-4" title="IBUS_Farsi_4">IBUS_Farsi_4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-5" title="IBUS_Farsi_5">IBUS_Farsi_5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-6" title="IBUS_Farsi_6">IBUS_Farsi_6</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-7" title="IBUS_Farsi_7">IBUS_Farsi_7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-8" title="IBUS_Farsi_8">IBUS_Farsi_8</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-9" title="IBUS_Farsi_9">IBUS_Farsi_9</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-percent" title="IBUS_Arabic_percent">IBUS_Arabic_percent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-superscript-alef" title="IBUS_Arabic_superscript_alef">IBUS_Arabic_superscript_alef</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tteh" title="IBUS_Arabic_tteh">IBUS_Arabic_tteh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-peh" title="IBUS_Arabic_peh">IBUS_Arabic_peh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tcheh" title="IBUS_Arabic_tcheh">IBUS_Arabic_tcheh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ddal" title="IBUS_Arabic_ddal">IBUS_Arabic_ddal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-rreh" title="IBUS_Arabic_rreh">IBUS_Arabic_rreh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-comma" title="IBUS_Arabic_comma">IBUS_Arabic_comma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-fullstop" title="IBUS_Arabic_fullstop">IBUS_Arabic_fullstop</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-0" title="IBUS_Arabic_0">IBUS_Arabic_0</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-1" title="IBUS_Arabic_1">IBUS_Arabic_1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-2" title="IBUS_Arabic_2">IBUS_Arabic_2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-3" title="IBUS_Arabic_3">IBUS_Arabic_3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-4" title="IBUS_Arabic_4">IBUS_Arabic_4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-5" title="IBUS_Arabic_5">IBUS_Arabic_5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-6" title="IBUS_Arabic_6">IBUS_Arabic_6</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-7" title="IBUS_Arabic_7">IBUS_Arabic_7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-8" title="IBUS_Arabic_8">IBUS_Arabic_8</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-9" title="IBUS_Arabic_9">IBUS_Arabic_9</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-semicolon" title="IBUS_Arabic_semicolon">IBUS_Arabic_semicolon</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-question-mark" title="IBUS_Arabic_question_mark">IBUS_Arabic_question_mark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza" title="IBUS_Arabic_hamza">IBUS_Arabic_hamza</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-maddaonalef" title="IBUS_Arabic_maddaonalef">IBUS_Arabic_maddaonalef</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonalef" title="IBUS_Arabic_hamzaonalef">IBUS_Arabic_hamzaonalef</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonwaw" title="IBUS_Arabic_hamzaonwaw">IBUS_Arabic_hamzaonwaw</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaunderalef" title="IBUS_Arabic_hamzaunderalef">IBUS_Arabic_hamzaunderalef</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonyeh" title="IBUS_Arabic_hamzaonyeh">IBUS_Arabic_hamzaonyeh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-alef" title="IBUS_Arabic_alef">IBUS_Arabic_alef</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-beh" title="IBUS_Arabic_beh">IBUS_Arabic_beh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tehmarbuta" title="IBUS_Arabic_tehmarbuta">IBUS_Arabic_tehmarbuta</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-teh" title="IBUS_Arabic_teh">IBUS_Arabic_teh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-theh" title="IBUS_Arabic_theh">IBUS_Arabic_theh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-jeem" title="IBUS_Arabic_jeem">IBUS_Arabic_jeem</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hah" title="IBUS_Arabic_hah">IBUS_Arabic_hah</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-khah" title="IBUS_Arabic_khah">IBUS_Arabic_khah</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-dal" title="IBUS_Arabic_dal">IBUS_Arabic_dal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-thal" title="IBUS_Arabic_thal">IBUS_Arabic_thal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ra" title="IBUS_Arabic_ra">IBUS_Arabic_ra</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-zain" title="IBUS_Arabic_zain">IBUS_Arabic_zain</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-seen" title="IBUS_Arabic_seen">IBUS_Arabic_seen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-sheen" title="IBUS_Arabic_sheen">IBUS_Arabic_sheen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-sad" title="IBUS_Arabic_sad">IBUS_Arabic_sad</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-dad" title="IBUS_Arabic_dad">IBUS_Arabic_dad</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tah" title="IBUS_Arabic_tah">IBUS_Arabic_tah</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-zah" title="IBUS_Arabic_zah">IBUS_Arabic_zah</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ain" title="IBUS_Arabic_ain">IBUS_Arabic_ain</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ghain" title="IBUS_Arabic_ghain">IBUS_Arabic_ghain</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tatweel" title="IBUS_Arabic_tatweel">IBUS_Arabic_tatweel</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-feh" title="IBUS_Arabic_feh">IBUS_Arabic_feh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-qaf" title="IBUS_Arabic_qaf">IBUS_Arabic_qaf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-kaf" title="IBUS_Arabic_kaf">IBUS_Arabic_kaf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-lam" title="IBUS_Arabic_lam">IBUS_Arabic_lam</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-meem" title="IBUS_Arabic_meem">IBUS_Arabic_meem</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-noon" title="IBUS_Arabic_noon">IBUS_Arabic_noon</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ha" title="IBUS_Arabic_ha">IBUS_Arabic_ha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh" title="IBUS_Arabic_heh">IBUS_Arabic_heh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-waw" title="IBUS_Arabic_waw">IBUS_Arabic_waw</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-alefmaksura" title="IBUS_Arabic_alefmaksura">IBUS_Arabic_alefmaksura</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-yeh" title="IBUS_Arabic_yeh">IBUS_Arabic_yeh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-fathatan" title="IBUS_Arabic_fathatan">IBUS_Arabic_fathatan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-dammatan" title="IBUS_Arabic_dammatan">IBUS_Arabic_dammatan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-kasratan" title="IBUS_Arabic_kasratan">IBUS_Arabic_kasratan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-fatha" title="IBUS_Arabic_fatha">IBUS_Arabic_fatha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-damma" title="IBUS_Arabic_damma">IBUS_Arabic_damma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-kasra" title="IBUS_Arabic_kasra">IBUS_Arabic_kasra</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-shadda" title="IBUS_Arabic_shadda">IBUS_Arabic_shadda</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-sukun" title="IBUS_Arabic_sukun">IBUS_Arabic_sukun</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-madda-above" title="IBUS_Arabic_madda_above">IBUS_Arabic_madda_above</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza-above" title="IBUS_Arabic_hamza_above">IBUS_Arabic_hamza_above</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza-below" title="IBUS_Arabic_hamza_below">IBUS_Arabic_hamza_below</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-jeh" title="IBUS_Arabic_jeh">IBUS_Arabic_jeh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-veh" title="IBUS_Arabic_veh">IBUS_Arabic_veh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-keheh" title="IBUS_Arabic_keheh">IBUS_Arabic_keheh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-gaf" title="IBUS_Arabic_gaf">IBUS_Arabic_gaf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-noon-ghunna" title="IBUS_Arabic_noon_ghunna">IBUS_Arabic_noon_ghunna</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh-doachashmee" title="IBUS_Arabic_heh_doachashmee">IBUS_Arabic_heh_doachashmee</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Farsi-yeh" title="IBUS_Farsi_yeh">IBUS_Farsi_yeh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-farsi-yeh" title="IBUS_Arabic_farsi_yeh">IBUS_Arabic_farsi_yeh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-yeh-baree" title="IBUS_Arabic_yeh_baree">IBUS_Arabic_yeh_baree</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh-goal" title="IBUS_Arabic_heh_goal">IBUS_Arabic_heh_goal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Arabic-switch" title="IBUS_Arabic_switch">IBUS_Arabic_switch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-GHE-bar" title="IBUS_Cyrillic_GHE_bar">IBUS_Cyrillic_GHE_bar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ghe-bar" title="IBUS_Cyrillic_ghe_bar">IBUS_Cyrillic_ghe_bar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZHE-descender" title="IBUS_Cyrillic_ZHE_descender">IBUS_Cyrillic_ZHE_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-zhe-descender" title="IBUS_Cyrillic_zhe_descender">IBUS_Cyrillic_zhe_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA-descender" title="IBUS_Cyrillic_KA_descender">IBUS_Cyrillic_KA_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka-descender" title="IBUS_Cyrillic_ka_descender">IBUS_Cyrillic_ka_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA-vertstroke" title="IBUS_Cyrillic_KA_vertstroke">IBUS_Cyrillic_KA_vertstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka-vertstroke" title="IBUS_Cyrillic_ka_vertstroke">IBUS_Cyrillic_ka_vertstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EN-descender" title="IBUS_Cyrillic_EN_descender">IBUS_Cyrillic_EN_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-en-descender" title="IBUS_Cyrillic_en_descender">IBUS_Cyrillic_en_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-straight" title="IBUS_Cyrillic_U_straight">IBUS_Cyrillic_U_straight</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-straight" title="IBUS_Cyrillic_u_straight">IBUS_Cyrillic_u_straight</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-straight-bar" title="IBUS_Cyrillic_U_straight_bar">IBUS_Cyrillic_U_straight_bar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-straight-bar" title="IBUS_Cyrillic_u_straight_bar">IBUS_Cyrillic_u_straight_bar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HA-descender" title="IBUS_Cyrillic_HA_descender">IBUS_Cyrillic_HA_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ha-descender" title="IBUS_Cyrillic_ha_descender">IBUS_Cyrillic_ha_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE-descender" title="IBUS_Cyrillic_CHE_descender">IBUS_Cyrillic_CHE_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che-descender" title="IBUS_Cyrillic_che_descender">IBUS_Cyrillic_che_descender</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE-vertstroke" title="IBUS_Cyrillic_CHE_vertstroke">IBUS_Cyrillic_CHE_vertstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che-vertstroke" title="IBUS_Cyrillic_che_vertstroke">IBUS_Cyrillic_che_vertstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHHA" title="IBUS_Cyrillic_SHHA">IBUS_Cyrillic_SHHA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shha" title="IBUS_Cyrillic_shha">IBUS_Cyrillic_shha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SCHWA" title="IBUS_Cyrillic_SCHWA">IBUS_Cyrillic_SCHWA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-schwa" title="IBUS_Cyrillic_schwa">IBUS_Cyrillic_schwa</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-I-macron" title="IBUS_Cyrillic_I_macron">IBUS_Cyrillic_I_macron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-i-macron" title="IBUS_Cyrillic_i_macron">IBUS_Cyrillic_i_macron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-O-bar" title="IBUS_Cyrillic_O_bar">IBUS_Cyrillic_O_bar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-o-bar" title="IBUS_Cyrillic_o_bar">IBUS_Cyrillic_o_bar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-macron" title="IBUS_Cyrillic_U_macron">IBUS_Cyrillic_U_macron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-macron" title="IBUS_Cyrillic_u_macron">IBUS_Cyrillic_u_macron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-dje" title="IBUS_Serbian_dje">IBUS_Serbian_dje</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-gje" title="IBUS_Macedonia_gje">IBUS_Macedonia_gje</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-io" title="IBUS_Cyrillic_io">IBUS_Cyrillic_io</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-ie" title="IBUS_Ukrainian_ie">IBUS_Ukrainian_ie</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-je" title="IBUS_Ukranian_je">IBUS_Ukranian_je</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-dse" title="IBUS_Macedonia_dse">IBUS_Macedonia_dse</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-i" title="IBUS_Ukrainian_i">IBUS_Ukrainian_i</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-i" title="IBUS_Ukranian_i">IBUS_Ukranian_i</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-yi" title="IBUS_Ukrainian_yi">IBUS_Ukrainian_yi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-yi" title="IBUS_Ukranian_yi">IBUS_Ukranian_yi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-je" title="IBUS_Cyrillic_je">IBUS_Cyrillic_je</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-je" title="IBUS_Serbian_je">IBUS_Serbian_je</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-lje" title="IBUS_Cyrillic_lje">IBUS_Cyrillic_lje</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-lje" title="IBUS_Serbian_lje">IBUS_Serbian_lje</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-nje" title="IBUS_Cyrillic_nje">IBUS_Cyrillic_nje</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-nje" title="IBUS_Serbian_nje">IBUS_Serbian_nje</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-tshe" title="IBUS_Serbian_tshe">IBUS_Serbian_tshe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-kje" title="IBUS_Macedonia_kje">IBUS_Macedonia_kje</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-ghe-with-upturn" title="IBUS_Ukrainian_ghe_with_upturn">IBUS_Ukrainian_ghe_with_upturn</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Byelorussian-shortu" title="IBUS_Byelorussian_shortu">IBUS_Byelorussian_shortu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-dzhe" title="IBUS_Cyrillic_dzhe">IBUS_Cyrillic_dzhe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-dze" title="IBUS_Serbian_dze">IBUS_Serbian_dze</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-numerosign" title="IBUS_numerosign">IBUS_numerosign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-DJE" title="IBUS_Serbian_DJE">IBUS_Serbian_DJE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-GJE" title="IBUS_Macedonia_GJE">IBUS_Macedonia_GJE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-IO" title="IBUS_Cyrillic_IO">IBUS_Cyrillic_IO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-IE" title="IBUS_Ukrainian_IE">IBUS_Ukrainian_IE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-JE" title="IBUS_Ukranian_JE">IBUS_Ukranian_JE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-DSE" title="IBUS_Macedonia_DSE">IBUS_Macedonia_DSE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-I" title="IBUS_Ukrainian_I">IBUS_Ukrainian_I</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-I" title="IBUS_Ukranian_I">IBUS_Ukranian_I</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-YI" title="IBUS_Ukrainian_YI">IBUS_Ukrainian_YI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-YI" title="IBUS_Ukranian_YI">IBUS_Ukranian_YI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-JE" title="IBUS_Cyrillic_JE">IBUS_Cyrillic_JE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-JE" title="IBUS_Serbian_JE">IBUS_Serbian_JE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-LJE" title="IBUS_Cyrillic_LJE">IBUS_Cyrillic_LJE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-LJE" title="IBUS_Serbian_LJE">IBUS_Serbian_LJE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-NJE" title="IBUS_Cyrillic_NJE">IBUS_Cyrillic_NJE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-NJE" title="IBUS_Serbian_NJE">IBUS_Serbian_NJE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-TSHE" title="IBUS_Serbian_TSHE">IBUS_Serbian_TSHE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-KJE" title="IBUS_Macedonia_KJE">IBUS_Macedonia_KJE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-GHE-WITH-UPTURN" title="IBUS_Ukrainian_GHE_WITH_UPTURN">IBUS_Ukrainian_GHE_WITH_UPTURN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Byelorussian-SHORTU" title="IBUS_Byelorussian_SHORTU">IBUS_Byelorussian_SHORTU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-DZHE" title="IBUS_Cyrillic_DZHE">IBUS_Cyrillic_DZHE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Serbian-DZE" title="IBUS_Serbian_DZE">IBUS_Serbian_DZE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-yu" title="IBUS_Cyrillic_yu">IBUS_Cyrillic_yu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-a" title="IBUS_Cyrillic_a">IBUS_Cyrillic_a</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-be" title="IBUS_Cyrillic_be">IBUS_Cyrillic_be</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-tse" title="IBUS_Cyrillic_tse">IBUS_Cyrillic_tse</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-de" title="IBUS_Cyrillic_de">IBUS_Cyrillic_de</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ie" title="IBUS_Cyrillic_ie">IBUS_Cyrillic_ie</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ef" title="IBUS_Cyrillic_ef">IBUS_Cyrillic_ef</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ghe" title="IBUS_Cyrillic_ghe">IBUS_Cyrillic_ghe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ha" title="IBUS_Cyrillic_ha">IBUS_Cyrillic_ha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-i" title="IBUS_Cyrillic_i">IBUS_Cyrillic_i</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shorti" title="IBUS_Cyrillic_shorti">IBUS_Cyrillic_shorti</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka" title="IBUS_Cyrillic_ka">IBUS_Cyrillic_ka</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-el" title="IBUS_Cyrillic_el">IBUS_Cyrillic_el</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-em" title="IBUS_Cyrillic_em">IBUS_Cyrillic_em</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-en" title="IBUS_Cyrillic_en">IBUS_Cyrillic_en</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-o" title="IBUS_Cyrillic_o">IBUS_Cyrillic_o</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-pe" title="IBUS_Cyrillic_pe">IBUS_Cyrillic_pe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ya" title="IBUS_Cyrillic_ya">IBUS_Cyrillic_ya</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-er" title="IBUS_Cyrillic_er">IBUS_Cyrillic_er</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-es" title="IBUS_Cyrillic_es">IBUS_Cyrillic_es</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-te" title="IBUS_Cyrillic_te">IBUS_Cyrillic_te</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u" title="IBUS_Cyrillic_u">IBUS_Cyrillic_u</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-zhe" title="IBUS_Cyrillic_zhe">IBUS_Cyrillic_zhe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ve" title="IBUS_Cyrillic_ve">IBUS_Cyrillic_ve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-softsign" title="IBUS_Cyrillic_softsign">IBUS_Cyrillic_softsign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-yeru" title="IBUS_Cyrillic_yeru">IBUS_Cyrillic_yeru</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ze" title="IBUS_Cyrillic_ze">IBUS_Cyrillic_ze</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-sha" title="IBUS_Cyrillic_sha">IBUS_Cyrillic_sha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-e" title="IBUS_Cyrillic_e">IBUS_Cyrillic_e</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shcha" title="IBUS_Cyrillic_shcha">IBUS_Cyrillic_shcha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che" title="IBUS_Cyrillic_che">IBUS_Cyrillic_che</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-hardsign" title="IBUS_Cyrillic_hardsign">IBUS_Cyrillic_hardsign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YU" title="IBUS_Cyrillic_YU">IBUS_Cyrillic_YU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-A" title="IBUS_Cyrillic_A">IBUS_Cyrillic_A</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-BE" title="IBUS_Cyrillic_BE">IBUS_Cyrillic_BE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-TSE" title="IBUS_Cyrillic_TSE">IBUS_Cyrillic_TSE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-DE" title="IBUS_Cyrillic_DE">IBUS_Cyrillic_DE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-IE" title="IBUS_Cyrillic_IE">IBUS_Cyrillic_IE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EF" title="IBUS_Cyrillic_EF">IBUS_Cyrillic_EF</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-GHE" title="IBUS_Cyrillic_GHE">IBUS_Cyrillic_GHE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HA" title="IBUS_Cyrillic_HA">IBUS_Cyrillic_HA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-I" title="IBUS_Cyrillic_I">IBUS_Cyrillic_I</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHORTI" title="IBUS_Cyrillic_SHORTI">IBUS_Cyrillic_SHORTI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA" title="IBUS_Cyrillic_KA">IBUS_Cyrillic_KA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EL" title="IBUS_Cyrillic_EL">IBUS_Cyrillic_EL</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EM" title="IBUS_Cyrillic_EM">IBUS_Cyrillic_EM</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EN" title="IBUS_Cyrillic_EN">IBUS_Cyrillic_EN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-O" title="IBUS_Cyrillic_O">IBUS_Cyrillic_O</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-PE" title="IBUS_Cyrillic_PE">IBUS_Cyrillic_PE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YA" title="IBUS_Cyrillic_YA">IBUS_Cyrillic_YA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ER" title="IBUS_Cyrillic_ER">IBUS_Cyrillic_ER</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ES" title="IBUS_Cyrillic_ES">IBUS_Cyrillic_ES</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-TE" title="IBUS_Cyrillic_TE">IBUS_Cyrillic_TE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U" title="IBUS_Cyrillic_U">IBUS_Cyrillic_U</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZHE" title="IBUS_Cyrillic_ZHE">IBUS_Cyrillic_ZHE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-VE" title="IBUS_Cyrillic_VE">IBUS_Cyrillic_VE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SOFTSIGN" title="IBUS_Cyrillic_SOFTSIGN">IBUS_Cyrillic_SOFTSIGN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YERU" title="IBUS_Cyrillic_YERU">IBUS_Cyrillic_YERU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZE" title="IBUS_Cyrillic_ZE">IBUS_Cyrillic_ZE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHA" title="IBUS_Cyrillic_SHA">IBUS_Cyrillic_SHA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-E" title="IBUS_Cyrillic_E">IBUS_Cyrillic_E</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHCHA" title="IBUS_Cyrillic_SHCHA">IBUS_Cyrillic_SHCHA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE" title="IBUS_Cyrillic_CHE">IBUS_Cyrillic_CHE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HARDSIGN" title="IBUS_Cyrillic_HARDSIGN">IBUS_Cyrillic_HARDSIGN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ALPHAaccent" title="IBUS_Greek_ALPHAaccent">IBUS_Greek_ALPHAaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-EPSILONaccent" title="IBUS_Greek_EPSILONaccent">IBUS_Greek_EPSILONaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ETAaccent" title="IBUS_Greek_ETAaccent">IBUS_Greek_ETAaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAaccent" title="IBUS_Greek_IOTAaccent">IBUS_Greek_IOTAaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAdieresis" title="IBUS_Greek_IOTAdieresis">IBUS_Greek_IOTAdieresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAdiaeresis" title="IBUS_Greek_IOTAdiaeresis">IBUS_Greek_IOTAdiaeresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMICRONaccent" title="IBUS_Greek_OMICRONaccent">IBUS_Greek_OMICRONaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILONaccent" title="IBUS_Greek_UPSILONaccent">IBUS_Greek_UPSILONaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILONdieresis" title="IBUS_Greek_UPSILONdieresis">IBUS_Greek_UPSILONdieresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMEGAaccent" title="IBUS_Greek_OMEGAaccent">IBUS_Greek_OMEGAaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-accentdieresis" title="IBUS_Greek_accentdieresis">IBUS_Greek_accentdieresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-horizbar" title="IBUS_Greek_horizbar">IBUS_Greek_horizbar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-alphaaccent" title="IBUS_Greek_alphaaccent">IBUS_Greek_alphaaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-epsilonaccent" title="IBUS_Greek_epsilonaccent">IBUS_Greek_epsilonaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-etaaccent" title="IBUS_Greek_etaaccent">IBUS_Greek_etaaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-iotaaccent" title="IBUS_Greek_iotaaccent">IBUS_Greek_iotaaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-iotadieresis" title="IBUS_Greek_iotadieresis">IBUS_Greek_iotadieresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-iotaaccentdieresis" title="IBUS_Greek_iotaaccentdieresis">IBUS_Greek_iotaaccentdieresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-omicronaccent" title="IBUS_Greek_omicronaccent">IBUS_Greek_omicronaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilonaccent" title="IBUS_Greek_upsilonaccent">IBUS_Greek_upsilonaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilondieresis" title="IBUS_Greek_upsilondieresis">IBUS_Greek_upsilondieresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilonaccentdieresis" title="IBUS_Greek_upsilonaccentdieresis">IBUS_Greek_upsilonaccentdieresis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-omegaaccent" title="IBUS_Greek_omegaaccent">IBUS_Greek_omegaaccent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ALPHA" title="IBUS_Greek_ALPHA">IBUS_Greek_ALPHA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-BETA" title="IBUS_Greek_BETA">IBUS_Greek_BETA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-GAMMA" title="IBUS_Greek_GAMMA">IBUS_Greek_GAMMA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-DELTA" title="IBUS_Greek_DELTA">IBUS_Greek_DELTA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-EPSILON" title="IBUS_Greek_EPSILON">IBUS_Greek_EPSILON</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ZETA" title="IBUS_Greek_ZETA">IBUS_Greek_ZETA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-ETA" title="IBUS_Greek_ETA">IBUS_Greek_ETA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-THETA" title="IBUS_Greek_THETA">IBUS_Greek_THETA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTA" title="IBUS_Greek_IOTA">IBUS_Greek_IOTA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-KAPPA" title="IBUS_Greek_KAPPA">IBUS_Greek_KAPPA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-LAMDA" title="IBUS_Greek_LAMDA">IBUS_Greek_LAMDA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-LAMBDA" title="IBUS_Greek_LAMBDA">IBUS_Greek_LAMBDA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-MU" title="IBUS_Greek_MU">IBUS_Greek_MU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-NU" title="IBUS_Greek_NU">IBUS_Greek_NU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-XI" title="IBUS_Greek_XI">IBUS_Greek_XI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMICRON" title="IBUS_Greek_OMICRON">IBUS_Greek_OMICRON</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-PI" title="IBUS_Greek_PI">IBUS_Greek_PI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-RHO" title="IBUS_Greek_RHO">IBUS_Greek_RHO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-SIGMA" title="IBUS_Greek_SIGMA">IBUS_Greek_SIGMA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-TAU" title="IBUS_Greek_TAU">IBUS_Greek_TAU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILON" title="IBUS_Greek_UPSILON">IBUS_Greek_UPSILON</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-PHI" title="IBUS_Greek_PHI">IBUS_Greek_PHI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-CHI" title="IBUS_Greek_CHI">IBUS_Greek_CHI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-PSI" title="IBUS_Greek_PSI">IBUS_Greek_PSI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMEGA" title="IBUS_Greek_OMEGA">IBUS_Greek_OMEGA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-alpha" title="IBUS_Greek_alpha">IBUS_Greek_alpha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-beta" title="IBUS_Greek_beta">IBUS_Greek_beta</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-gamma" title="IBUS_Greek_gamma">IBUS_Greek_gamma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-delta" title="IBUS_Greek_delta">IBUS_Greek_delta</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-epsilon" title="IBUS_Greek_epsilon">IBUS_Greek_epsilon</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-zeta" title="IBUS_Greek_zeta">IBUS_Greek_zeta</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-eta" title="IBUS_Greek_eta">IBUS_Greek_eta</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-theta" title="IBUS_Greek_theta">IBUS_Greek_theta</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-iota" title="IBUS_Greek_iota">IBUS_Greek_iota</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-kappa" title="IBUS_Greek_kappa">IBUS_Greek_kappa</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-lamda" title="IBUS_Greek_lamda">IBUS_Greek_lamda</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-lambda" title="IBUS_Greek_lambda">IBUS_Greek_lambda</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-mu" title="IBUS_Greek_mu">IBUS_Greek_mu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-nu" title="IBUS_Greek_nu">IBUS_Greek_nu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-xi" title="IBUS_Greek_xi">IBUS_Greek_xi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-omicron" title="IBUS_Greek_omicron">IBUS_Greek_omicron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-pi" title="IBUS_Greek_pi">IBUS_Greek_pi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-rho" title="IBUS_Greek_rho">IBUS_Greek_rho</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-sigma" title="IBUS_Greek_sigma">IBUS_Greek_sigma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-finalsmallsigma" title="IBUS_Greek_finalsmallsigma">IBUS_Greek_finalsmallsigma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-tau" title="IBUS_Greek_tau">IBUS_Greek_tau</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilon" title="IBUS_Greek_upsilon">IBUS_Greek_upsilon</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-phi" title="IBUS_Greek_phi">IBUS_Greek_phi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-chi" title="IBUS_Greek_chi">IBUS_Greek_chi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-psi" title="IBUS_Greek_psi">IBUS_Greek_psi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-omega" title="IBUS_Greek_omega">IBUS_Greek_omega</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Greek-switch" title="IBUS_Greek_switch">IBUS_Greek_switch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftradical" title="IBUS_leftradical">IBUS_leftradical</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topleftradical" title="IBUS_topleftradical">IBUS_topleftradical</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizconnector" title="IBUS_horizconnector">IBUS_horizconnector</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topintegral" title="IBUS_topintegral">IBUS_topintegral</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botintegral" title="IBUS_botintegral">IBUS_botintegral</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-vertconnector" title="IBUS_vertconnector">IBUS_vertconnector</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topleftsqbracket" title="IBUS_topleftsqbracket">IBUS_topleftsqbracket</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botleftsqbracket" title="IBUS_botleftsqbracket">IBUS_botleftsqbracket</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-toprightsqbracket" title="IBUS_toprightsqbracket">IBUS_toprightsqbracket</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botrightsqbracket" title="IBUS_botrightsqbracket">IBUS_botrightsqbracket</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topleftparens" title="IBUS_topleftparens">IBUS_topleftparens</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botleftparens" title="IBUS_botleftparens">IBUS_botleftparens</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-toprightparens" title="IBUS_toprightparens">IBUS_toprightparens</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botrightparens" title="IBUS_botrightparens">IBUS_botrightparens</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftmiddlecurlybrace" title="IBUS_leftmiddlecurlybrace">IBUS_leftmiddlecurlybrace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightmiddlecurlybrace" title="IBUS_rightmiddlecurlybrace">IBUS_rightmiddlecurlybrace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topleftsummation" title="IBUS_topleftsummation">IBUS_topleftsummation</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botleftsummation" title="IBUS_botleftsummation">IBUS_botleftsummation</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topvertsummationconnector" title="IBUS_topvertsummationconnector">IBUS_topvertsummationconnector</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botvertsummationconnector" title="IBUS_botvertsummationconnector">IBUS_botvertsummationconnector</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-toprightsummation" title="IBUS_toprightsummation">IBUS_toprightsummation</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-botrightsummation" title="IBUS_botrightsummation">IBUS_botrightsummation</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightmiddlesummation" title="IBUS_rightmiddlesummation">IBUS_rightmiddlesummation</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lessthanequal" title="IBUS_lessthanequal">IBUS_lessthanequal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notequal" title="IBUS_notequal">IBUS_notequal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-greaterthanequal" title="IBUS_greaterthanequal">IBUS_greaterthanequal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-integral" title="IBUS_integral">IBUS_integral</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-therefore" title="IBUS_therefore">IBUS_therefore</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-variation" title="IBUS_variation">IBUS_variation</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-infinity" title="IBUS_infinity">IBUS_infinity</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-nabla" title="IBUS_nabla">IBUS_nabla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-approximate" title="IBUS_approximate">IBUS_approximate</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-similarequal" title="IBUS_similarequal">IBUS_similarequal</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ifonlyif" title="IBUS_ifonlyif">IBUS_ifonlyif</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-implies" title="IBUS_implies">IBUS_implies</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-identical" title="IBUS_identical">IBUS_identical</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-radical" title="IBUS_radical">IBUS_radical</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-includedin" title="IBUS_includedin">IBUS_includedin</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-includes" title="IBUS_includes">IBUS_includes</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-intersection" title="IBUS_intersection">IBUS_intersection</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-union" title="IBUS_union">IBUS_union</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-logicaland" title="IBUS_logicaland">IBUS_logicaland</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-logicalor" title="IBUS_logicalor">IBUS_logicalor</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-partialderivative" title="IBUS_partialderivative">IBUS_partialderivative</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-function" title="IBUS_function">IBUS_function</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftarrow" title="IBUS_leftarrow">IBUS_leftarrow</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uparrow" title="IBUS_uparrow">IBUS_uparrow</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightarrow" title="IBUS_rightarrow">IBUS_rightarrow</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downarrow" title="IBUS_downarrow">IBUS_downarrow</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-blank" title="IBUS_blank">IBUS_blank</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-soliddiamond" title="IBUS_soliddiamond">IBUS_soliddiamond</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-checkerboard" title="IBUS_checkerboard">IBUS_checkerboard</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ht" title="IBUS_ht">IBUS_ht</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ff" title="IBUS_ff">IBUS_ff</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cr" title="IBUS_cr">IBUS_cr</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lf" title="IBUS_lf">IBUS_lf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-nl" title="IBUS_nl">IBUS_nl</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-vt" title="IBUS_vt">IBUS_vt</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lowrightcorner" title="IBUS_lowrightcorner">IBUS_lowrightcorner</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uprightcorner" title="IBUS_uprightcorner">IBUS_uprightcorner</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-upleftcorner" title="IBUS_upleftcorner">IBUS_upleftcorner</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lowleftcorner" title="IBUS_lowleftcorner">IBUS_lowleftcorner</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-crossinglines" title="IBUS_crossinglines">IBUS_crossinglines</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan1" title="IBUS_horizlinescan1">IBUS_horizlinescan1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan3" title="IBUS_horizlinescan3">IBUS_horizlinescan3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan5" title="IBUS_horizlinescan5">IBUS_horizlinescan5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan7" title="IBUS_horizlinescan7">IBUS_horizlinescan7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan9" title="IBUS_horizlinescan9">IBUS_horizlinescan9</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftt" title="IBUS_leftt">IBUS_leftt</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightt" title="IBUS_rightt">IBUS_rightt</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-bott" title="IBUS_bott">IBUS_bott</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-topt" title="IBUS_topt">IBUS_topt</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-vertbar" title="IBUS_vertbar">IBUS_vertbar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emspace" title="IBUS_emspace">IBUS_emspace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enspace" title="IBUS_enspace">IBUS_enspace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-em3space" title="IBUS_em3space">IBUS_em3space</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-em4space" title="IBUS_em4space">IBUS_em4space</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-digitspace" title="IBUS_digitspace">IBUS_digitspace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-punctspace" title="IBUS_punctspace">IBUS_punctspace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-thinspace" title="IBUS_thinspace">IBUS_thinspace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hairspace" title="IBUS_hairspace">IBUS_hairspace</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emdash" title="IBUS_emdash">IBUS_emdash</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-endash" title="IBUS_endash">IBUS_endash</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-signifblank" title="IBUS_signifblank">IBUS_signifblank</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ellipsis" title="IBUS_ellipsis">IBUS_ellipsis</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-doubbaselinedot" title="IBUS_doubbaselinedot">IBUS_doubbaselinedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onethird" title="IBUS_onethird">IBUS_onethird</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-twothirds" title="IBUS_twothirds">IBUS_twothirds</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onefifth" title="IBUS_onefifth">IBUS_onefifth</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-twofifths" title="IBUS_twofifths">IBUS_twofifths</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threefifths" title="IBUS_threefifths">IBUS_threefifths</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fourfifths" title="IBUS_fourfifths">IBUS_fourfifths</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onesixth" title="IBUS_onesixth">IBUS_onesixth</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fivesixths" title="IBUS_fivesixths">IBUS_fivesixths</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-careof" title="IBUS_careof">IBUS_careof</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-figdash" title="IBUS_figdash">IBUS_figdash</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftanglebracket" title="IBUS_leftanglebracket">IBUS_leftanglebracket</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-decimalpoint" title="IBUS_decimalpoint">IBUS_decimalpoint</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightanglebracket" title="IBUS_rightanglebracket">IBUS_rightanglebracket</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-marker" title="IBUS_marker">IBUS_marker</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-oneeighth" title="IBUS_oneeighth">IBUS_oneeighth</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threeeighths" title="IBUS_threeeighths">IBUS_threeeighths</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fiveeighths" title="IBUS_fiveeighths">IBUS_fiveeighths</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-seveneighths" title="IBUS_seveneighths">IBUS_seveneighths</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-trademark" title="IBUS_trademark">IBUS_trademark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-signaturemark" title="IBUS_signaturemark">IBUS_signaturemark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-trademarkincircle" title="IBUS_trademarkincircle">IBUS_trademarkincircle</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftopentriangle" title="IBUS_leftopentriangle">IBUS_leftopentriangle</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightopentriangle" title="IBUS_rightopentriangle">IBUS_rightopentriangle</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emopencircle" title="IBUS_emopencircle">IBUS_emopencircle</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emopenrectangle" title="IBUS_emopenrectangle">IBUS_emopenrectangle</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftsinglequotemark" title="IBUS_leftsinglequotemark">IBUS_leftsinglequotemark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightsinglequotemark" title="IBUS_rightsinglequotemark">IBUS_rightsinglequotemark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftdoublequotemark" title="IBUS_leftdoublequotemark">IBUS_leftdoublequotemark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightdoublequotemark" title="IBUS_rightdoublequotemark">IBUS_rightdoublequotemark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-prescription" title="IBUS_prescription">IBUS_prescription</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-minutes" title="IBUS_minutes">IBUS_minutes</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-seconds" title="IBUS_seconds">IBUS_seconds</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-latincross" title="IBUS_latincross">IBUS_latincross</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hexagram" title="IBUS_hexagram">IBUS_hexagram</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledrectbullet" title="IBUS_filledrectbullet">IBUS_filledrectbullet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledlefttribullet" title="IBUS_filledlefttribullet">IBUS_filledlefttribullet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledrighttribullet" title="IBUS_filledrighttribullet">IBUS_filledrighttribullet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emfilledcircle" title="IBUS_emfilledcircle">IBUS_emfilledcircle</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emfilledrect" title="IBUS_emfilledrect">IBUS_emfilledrect</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enopencircbullet" title="IBUS_enopencircbullet">IBUS_enopencircbullet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enopensquarebullet" title="IBUS_enopensquarebullet">IBUS_enopensquarebullet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-openrectbullet" title="IBUS_openrectbullet">IBUS_openrectbullet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-opentribulletup" title="IBUS_opentribulletup">IBUS_opentribulletup</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-opentribulletdown" title="IBUS_opentribulletdown">IBUS_opentribulletdown</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-openstar" title="IBUS_openstar">IBUS_openstar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enfilledcircbullet" title="IBUS_enfilledcircbullet">IBUS_enfilledcircbullet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-enfilledsqbullet" title="IBUS_enfilledsqbullet">IBUS_enfilledsqbullet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledtribulletup" title="IBUS_filledtribulletup">IBUS_filledtribulletup</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-filledtribulletdown" title="IBUS_filledtribulletdown">IBUS_filledtribulletdown</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftpointer" title="IBUS_leftpointer">IBUS_leftpointer</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightpointer" title="IBUS_rightpointer">IBUS_rightpointer</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-club" title="IBUS_club">IBUS_club</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-diamond" title="IBUS_diamond">IBUS_diamond</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-heart" title="IBUS_heart">IBUS_heart</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-maltesecross" title="IBUS_maltesecross">IBUS_maltesecross</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dagger" title="IBUS_dagger">IBUS_dagger</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-doubledagger" title="IBUS_doubledagger">IBUS_doubledagger</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-checkmark" title="IBUS_checkmark">IBUS_checkmark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ballotcross" title="IBUS_ballotcross">IBUS_ballotcross</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-musicalsharp" title="IBUS_musicalsharp">IBUS_musicalsharp</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-musicalflat" title="IBUS_musicalflat">IBUS_musicalflat</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-malesymbol" title="IBUS_malesymbol">IBUS_malesymbol</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-femalesymbol" title="IBUS_femalesymbol">IBUS_femalesymbol</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-telephone" title="IBUS_telephone">IBUS_telephone</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-telephonerecorder" title="IBUS_telephonerecorder">IBUS_telephonerecorder</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-phonographcopyright" title="IBUS_phonographcopyright">IBUS_phonographcopyright</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-caret" title="IBUS_caret">IBUS_caret</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-singlelowquotemark" title="IBUS_singlelowquotemark">IBUS_singlelowquotemark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-doublelowquotemark" title="IBUS_doublelowquotemark">IBUS_doublelowquotemark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cursor" title="IBUS_cursor">IBUS_cursor</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftcaret" title="IBUS_leftcaret">IBUS_leftcaret</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightcaret" title="IBUS_rightcaret">IBUS_rightcaret</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downcaret" title="IBUS_downcaret">IBUS_downcaret</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-upcaret" title="IBUS_upcaret">IBUS_upcaret</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-overbar" title="IBUS_overbar">IBUS_overbar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downtack" title="IBUS_downtack">IBUS_downtack</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-upshoe" title="IBUS_upshoe">IBUS_upshoe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downstile" title="IBUS_downstile">IBUS_downstile</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-underbar" title="IBUS_underbar">IBUS_underbar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-jot" title="IBUS_jot">IBUS_jot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-quad" title="IBUS_quad">IBUS_quad</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uptack" title="IBUS_uptack">IBUS_uptack</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-circle" title="IBUS_circle">IBUS_circle</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-upstile" title="IBUS_upstile">IBUS_upstile</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-downshoe" title="IBUS_downshoe">IBUS_downshoe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-rightshoe" title="IBUS_rightshoe">IBUS_rightshoe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-leftshoe" title="IBUS_leftshoe">IBUS_leftshoe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lefttack" title="IBUS_lefttack">IBUS_lefttack</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-righttack" title="IBUS_righttack">IBUS_righttack</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-doublelowline" title="IBUS_hebrew_doublelowline">IBUS_hebrew_doublelowline</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-aleph" title="IBUS_hebrew_aleph">IBUS_hebrew_aleph</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-bet" title="IBUS_hebrew_bet">IBUS_hebrew_bet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-beth" title="IBUS_hebrew_beth">IBUS_hebrew_beth</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-gimel" title="IBUS_hebrew_gimel">IBUS_hebrew_gimel</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-gimmel" title="IBUS_hebrew_gimmel">IBUS_hebrew_gimmel</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-dalet" title="IBUS_hebrew_dalet">IBUS_hebrew_dalet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-daleth" title="IBUS_hebrew_daleth">IBUS_hebrew_daleth</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-he" title="IBUS_hebrew_he">IBUS_hebrew_he</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-waw" title="IBUS_hebrew_waw">IBUS_hebrew_waw</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zain" title="IBUS_hebrew_zain">IBUS_hebrew_zain</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zayin" title="IBUS_hebrew_zayin">IBUS_hebrew_zayin</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-chet" title="IBUS_hebrew_chet">IBUS_hebrew_chet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-het" title="IBUS_hebrew_het">IBUS_hebrew_het</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-tet" title="IBUS_hebrew_tet">IBUS_hebrew_tet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-teth" title="IBUS_hebrew_teth">IBUS_hebrew_teth</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-yod" title="IBUS_hebrew_yod">IBUS_hebrew_yod</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalkaph" title="IBUS_hebrew_finalkaph">IBUS_hebrew_finalkaph</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-kaph" title="IBUS_hebrew_kaph">IBUS_hebrew_kaph</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-lamed" title="IBUS_hebrew_lamed">IBUS_hebrew_lamed</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalmem" title="IBUS_hebrew_finalmem">IBUS_hebrew_finalmem</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-mem" title="IBUS_hebrew_mem">IBUS_hebrew_mem</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalnun" title="IBUS_hebrew_finalnun">IBUS_hebrew_finalnun</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-nun" title="IBUS_hebrew_nun">IBUS_hebrew_nun</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-samech" title="IBUS_hebrew_samech">IBUS_hebrew_samech</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-samekh" title="IBUS_hebrew_samekh">IBUS_hebrew_samekh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-ayin" title="IBUS_hebrew_ayin">IBUS_hebrew_ayin</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalpe" title="IBUS_hebrew_finalpe">IBUS_hebrew_finalpe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-pe" title="IBUS_hebrew_pe">IBUS_hebrew_pe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalzade" title="IBUS_hebrew_finalzade">IBUS_hebrew_finalzade</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalzadi" title="IBUS_hebrew_finalzadi">IBUS_hebrew_finalzadi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zade" title="IBUS_hebrew_zade">IBUS_hebrew_zade</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zadi" title="IBUS_hebrew_zadi">IBUS_hebrew_zadi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-qoph" title="IBUS_hebrew_qoph">IBUS_hebrew_qoph</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-kuf" title="IBUS_hebrew_kuf">IBUS_hebrew_kuf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-resh" title="IBUS_hebrew_resh">IBUS_hebrew_resh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-shin" title="IBUS_hebrew_shin">IBUS_hebrew_shin</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-taw" title="IBUS_hebrew_taw">IBUS_hebrew_taw</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-hebrew-taf" title="IBUS_hebrew_taf">IBUS_hebrew_taf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hebrew-switch" title="IBUS_Hebrew_switch">IBUS_Hebrew_switch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-kokai" title="IBUS_Thai_kokai">IBUS_Thai_kokai</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhai" title="IBUS_Thai_khokhai">IBUS_Thai_khokhai</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhuat" title="IBUS_Thai_khokhuat">IBUS_Thai_khokhuat</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhwai" title="IBUS_Thai_khokhwai">IBUS_Thai_khokhwai</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhon" title="IBUS_Thai_khokhon">IBUS_Thai_khokhon</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-khorakhang" title="IBUS_Thai_khorakhang">IBUS_Thai_khorakhang</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-ngongu" title="IBUS_Thai_ngongu">IBUS_Thai_ngongu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-chochan" title="IBUS_Thai_chochan">IBUS_Thai_chochan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-choching" title="IBUS_Thai_choching">IBUS_Thai_choching</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-chochang" title="IBUS_Thai_chochang">IBUS_Thai_chochang</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-soso" title="IBUS_Thai_soso">IBUS_Thai_soso</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-chochoe" title="IBUS_Thai_chochoe">IBUS_Thai_chochoe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-yoying" title="IBUS_Thai_yoying">IBUS_Thai_yoying</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-dochada" title="IBUS_Thai_dochada">IBUS_Thai_dochada</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-topatak" title="IBUS_Thai_topatak">IBUS_Thai_topatak</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothan" title="IBUS_Thai_thothan">IBUS_Thai_thothan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thonangmontho" title="IBUS_Thai_thonangmontho">IBUS_Thai_thonangmontho</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thophuthao" title="IBUS_Thai_thophuthao">IBUS_Thai_thophuthao</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-nonen" title="IBUS_Thai_nonen">IBUS_Thai_nonen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-dodek" title="IBUS_Thai_dodek">IBUS_Thai_dodek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-totao" title="IBUS_Thai_totao">IBUS_Thai_totao</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothung" title="IBUS_Thai_thothung">IBUS_Thai_thothung</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothahan" title="IBUS_Thai_thothahan">IBUS_Thai_thothahan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothong" title="IBUS_Thai_thothong">IBUS_Thai_thothong</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-nonu" title="IBUS_Thai_nonu">IBUS_Thai_nonu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-bobaimai" title="IBUS_Thai_bobaimai">IBUS_Thai_bobaimai</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-popla" title="IBUS_Thai_popla">IBUS_Thai_popla</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-phophung" title="IBUS_Thai_phophung">IBUS_Thai_phophung</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-fofa" title="IBUS_Thai_fofa">IBUS_Thai_fofa</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-phophan" title="IBUS_Thai_phophan">IBUS_Thai_phophan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-fofan" title="IBUS_Thai_fofan">IBUS_Thai_fofan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-phosamphao" title="IBUS_Thai_phosamphao">IBUS_Thai_phosamphao</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-moma" title="IBUS_Thai_moma">IBUS_Thai_moma</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-yoyak" title="IBUS_Thai_yoyak">IBUS_Thai_yoyak</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-rorua" title="IBUS_Thai_rorua">IBUS_Thai_rorua</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-ru" title="IBUS_Thai_ru">IBUS_Thai_ru</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-loling" title="IBUS_Thai_loling">IBUS_Thai_loling</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lu" title="IBUS_Thai_lu">IBUS_Thai_lu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-wowaen" title="IBUS_Thai_wowaen">IBUS_Thai_wowaen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sosala" title="IBUS_Thai_sosala">IBUS_Thai_sosala</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sorusi" title="IBUS_Thai_sorusi">IBUS_Thai_sorusi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sosua" title="IBUS_Thai_sosua">IBUS_Thai_sosua</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-hohip" title="IBUS_Thai_hohip">IBUS_Thai_hohip</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lochula" title="IBUS_Thai_lochula">IBUS_Thai_lochula</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-oang" title="IBUS_Thai_oang">IBUS_Thai_oang</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-honokhuk" title="IBUS_Thai_honokhuk">IBUS_Thai_honokhuk</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-paiyannoi" title="IBUS_Thai_paiyannoi">IBUS_Thai_paiyannoi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraa" title="IBUS_Thai_saraa">IBUS_Thai_saraa</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maihanakat" title="IBUS_Thai_maihanakat">IBUS_Thai_maihanakat</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaa" title="IBUS_Thai_saraaa">IBUS_Thai_saraaa</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraam" title="IBUS_Thai_saraam">IBUS_Thai_saraam</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarai" title="IBUS_Thai_sarai">IBUS_Thai_sarai</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraii" title="IBUS_Thai_saraii">IBUS_Thai_saraii</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraue" title="IBUS_Thai_saraue">IBUS_Thai_saraue</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarauee" title="IBUS_Thai_sarauee">IBUS_Thai_sarauee</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarau" title="IBUS_Thai_sarau">IBUS_Thai_sarau</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarauu" title="IBUS_Thai_sarauu">IBUS_Thai_sarauu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-phinthu" title="IBUS_Thai_phinthu">IBUS_Thai_phinthu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maihanakat-maitho" title="IBUS_Thai_maihanakat_maitho">IBUS_Thai_maihanakat_maitho</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-baht" title="IBUS_Thai_baht">IBUS_Thai_baht</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarae" title="IBUS_Thai_sarae">IBUS_Thai_sarae</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraae" title="IBUS_Thai_saraae">IBUS_Thai_saraae</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarao" title="IBUS_Thai_sarao">IBUS_Thai_sarao</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaimaimuan" title="IBUS_Thai_saraaimaimuan">IBUS_Thai_saraaimaimuan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaimaimalai" title="IBUS_Thai_saraaimaimalai">IBUS_Thai_saraaimaimalai</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lakkhangyao" title="IBUS_Thai_lakkhangyao">IBUS_Thai_lakkhangyao</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maiyamok" title="IBUS_Thai_maiyamok">IBUS_Thai_maiyamok</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maitaikhu" title="IBUS_Thai_maitaikhu">IBUS_Thai_maitaikhu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maiek" title="IBUS_Thai_maiek">IBUS_Thai_maiek</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maitho" title="IBUS_Thai_maitho">IBUS_Thai_maitho</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maitri" title="IBUS_Thai_maitri">IBUS_Thai_maitri</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-maichattawa" title="IBUS_Thai_maichattawa">IBUS_Thai_maichattawa</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-thanthakhat" title="IBUS_Thai_thanthakhat">IBUS_Thai_thanthakhat</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-nikhahit" title="IBUS_Thai_nikhahit">IBUS_Thai_nikhahit</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksun" title="IBUS_Thai_leksun">IBUS_Thai_leksun</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leknung" title="IBUS_Thai_leknung">IBUS_Thai_leknung</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksong" title="IBUS_Thai_leksong">IBUS_Thai_leksong</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksam" title="IBUS_Thai_leksam">IBUS_Thai_leksam</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksi" title="IBUS_Thai_leksi">IBUS_Thai_leksi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekha" title="IBUS_Thai_lekha">IBUS_Thai_lekha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekhok" title="IBUS_Thai_lekhok">IBUS_Thai_lekhok</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekchet" title="IBUS_Thai_lekchet">IBUS_Thai_lekchet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekpaet" title="IBUS_Thai_lekpaet">IBUS_Thai_lekpaet</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekkao" title="IBUS_Thai_lekkao">IBUS_Thai_lekkao</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul" title="IBUS_Hangul">IBUS_Hangul</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Start" title="IBUS_Hangul_Start">IBUS_Hangul_Start</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-End" title="IBUS_Hangul_End">IBUS_Hangul_End</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Hanja" title="IBUS_Hangul_Hanja">IBUS_Hangul_Hanja</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jamo" title="IBUS_Hangul_Jamo">IBUS_Hangul_Jamo</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Romaja" title="IBUS_Hangul_Romaja">IBUS_Hangul_Romaja</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Codeinput" title="IBUS_Hangul_Codeinput">IBUS_Hangul_Codeinput</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jeonja" title="IBUS_Hangul_Jeonja">IBUS_Hangul_Jeonja</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Banja" title="IBUS_Hangul_Banja">IBUS_Hangul_Banja</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PreHanja" title="IBUS_Hangul_PreHanja">IBUS_Hangul_PreHanja</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PostHanja" title="IBUS_Hangul_PostHanja">IBUS_Hangul_PostHanja</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SingleCandidate" title="IBUS_Hangul_SingleCandidate">IBUS_Hangul_SingleCandidate</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-MultipleCandidate" title="IBUS_Hangul_MultipleCandidate">IBUS_Hangul_MultipleCandidate</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PreviousCandidate" title="IBUS_Hangul_PreviousCandidate">IBUS_Hangul_PreviousCandidate</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Special" title="IBUS_Hangul_Special">IBUS_Hangul_Special</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-switch" title="IBUS_Hangul_switch">IBUS_Hangul_switch</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Kiyeog" title="IBUS_Hangul_Kiyeog">IBUS_Hangul_Kiyeog</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangKiyeog" title="IBUS_Hangul_SsangKiyeog">IBUS_Hangul_SsangKiyeog</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-KiyeogSios" title="IBUS_Hangul_KiyeogSios">IBUS_Hangul_KiyeogSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Nieun" title="IBUS_Hangul_Nieun">IBUS_Hangul_Nieun</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-NieunJieuj" title="IBUS_Hangul_NieunJieuj">IBUS_Hangul_NieunJieuj</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-NieunHieuh" title="IBUS_Hangul_NieunHieuh">IBUS_Hangul_NieunHieuh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Dikeud" title="IBUS_Hangul_Dikeud">IBUS_Hangul_Dikeud</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangDikeud" title="IBUS_Hangul_SsangDikeud">IBUS_Hangul_SsangDikeud</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Rieul" title="IBUS_Hangul_Rieul">IBUS_Hangul_Rieul</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulKiyeog" title="IBUS_Hangul_RieulKiyeog">IBUS_Hangul_RieulKiyeog</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulMieum" title="IBUS_Hangul_RieulMieum">IBUS_Hangul_RieulMieum</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulPieub" title="IBUS_Hangul_RieulPieub">IBUS_Hangul_RieulPieub</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulSios" title="IBUS_Hangul_RieulSios">IBUS_Hangul_RieulSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulTieut" title="IBUS_Hangul_RieulTieut">IBUS_Hangul_RieulTieut</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulPhieuf" title="IBUS_Hangul_RieulPhieuf">IBUS_Hangul_RieulPhieuf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulHieuh" title="IBUS_Hangul_RieulHieuh">IBUS_Hangul_RieulHieuh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Mieum" title="IBUS_Hangul_Mieum">IBUS_Hangul_Mieum</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Pieub" title="IBUS_Hangul_Pieub">IBUS_Hangul_Pieub</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangPieub" title="IBUS_Hangul_SsangPieub">IBUS_Hangul_SsangPieub</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PieubSios" title="IBUS_Hangul_PieubSios">IBUS_Hangul_PieubSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Sios" title="IBUS_Hangul_Sios">IBUS_Hangul_Sios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangSios" title="IBUS_Hangul_SsangSios">IBUS_Hangul_SsangSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Ieung" title="IBUS_Hangul_Ieung">IBUS_Hangul_Ieung</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jieuj" title="IBUS_Hangul_Jieuj">IBUS_Hangul_Jieuj</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangJieuj" title="IBUS_Hangul_SsangJieuj">IBUS_Hangul_SsangJieuj</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Cieuc" title="IBUS_Hangul_Cieuc">IBUS_Hangul_Cieuc</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Khieuq" title="IBUS_Hangul_Khieuq">IBUS_Hangul_Khieuq</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Tieut" title="IBUS_Hangul_Tieut">IBUS_Hangul_Tieut</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Phieuf" title="IBUS_Hangul_Phieuf">IBUS_Hangul_Phieuf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Hieuh" title="IBUS_Hangul_Hieuh">IBUS_Hangul_Hieuh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-A" title="IBUS_Hangul_A">IBUS_Hangul_A</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-AE" title="IBUS_Hangul_AE">IBUS_Hangul_AE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YA" title="IBUS_Hangul_YA">IBUS_Hangul_YA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YAE" title="IBUS_Hangul_YAE">IBUS_Hangul_YAE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-EO" title="IBUS_Hangul_EO">IBUS_Hangul_EO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-E" title="IBUS_Hangul_E">IBUS_Hangul_E</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YEO" title="IBUS_Hangul_YEO">IBUS_Hangul_YEO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YE" title="IBUS_Hangul_YE">IBUS_Hangul_YE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-O" title="IBUS_Hangul_O">IBUS_Hangul_O</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WA" title="IBUS_Hangul_WA">IBUS_Hangul_WA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WAE" title="IBUS_Hangul_WAE">IBUS_Hangul_WAE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-OE" title="IBUS_Hangul_OE">IBUS_Hangul_OE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YO" title="IBUS_Hangul_YO">IBUS_Hangul_YO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-U" title="IBUS_Hangul_U">IBUS_Hangul_U</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WEO" title="IBUS_Hangul_WEO">IBUS_Hangul_WEO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WE" title="IBUS_Hangul_WE">IBUS_Hangul_WE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WI" title="IBUS_Hangul_WI">IBUS_Hangul_WI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YU" title="IBUS_Hangul_YU">IBUS_Hangul_YU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-EU" title="IBUS_Hangul_EU">IBUS_Hangul_EU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YI" title="IBUS_Hangul_YI">IBUS_Hangul_YI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-I" title="IBUS_Hangul_I">IBUS_Hangul_I</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Kiyeog" title="IBUS_Hangul_J_Kiyeog">IBUS_Hangul_J_Kiyeog</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-SsangKiyeog" title="IBUS_Hangul_J_SsangKiyeog">IBUS_Hangul_J_SsangKiyeog</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-KiyeogSios" title="IBUS_Hangul_J_KiyeogSios">IBUS_Hangul_J_KiyeogSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Nieun" title="IBUS_Hangul_J_Nieun">IBUS_Hangul_J_Nieun</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-NieunJieuj" title="IBUS_Hangul_J_NieunJieuj">IBUS_Hangul_J_NieunJieuj</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-NieunHieuh" title="IBUS_Hangul_J_NieunHieuh">IBUS_Hangul_J_NieunHieuh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Dikeud" title="IBUS_Hangul_J_Dikeud">IBUS_Hangul_J_Dikeud</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Rieul" title="IBUS_Hangul_J_Rieul">IBUS_Hangul_J_Rieul</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulKiyeog" title="IBUS_Hangul_J_RieulKiyeog">IBUS_Hangul_J_RieulKiyeog</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulMieum" title="IBUS_Hangul_J_RieulMieum">IBUS_Hangul_J_RieulMieum</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulPieub" title="IBUS_Hangul_J_RieulPieub">IBUS_Hangul_J_RieulPieub</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulSios" title="IBUS_Hangul_J_RieulSios">IBUS_Hangul_J_RieulSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulTieut" title="IBUS_Hangul_J_RieulTieut">IBUS_Hangul_J_RieulTieut</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulPhieuf" title="IBUS_Hangul_J_RieulPhieuf">IBUS_Hangul_J_RieulPhieuf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulHieuh" title="IBUS_Hangul_J_RieulHieuh">IBUS_Hangul_J_RieulHieuh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Mieum" title="IBUS_Hangul_J_Mieum">IBUS_Hangul_J_Mieum</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Pieub" title="IBUS_Hangul_J_Pieub">IBUS_Hangul_J_Pieub</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-PieubSios" title="IBUS_Hangul_J_PieubSios">IBUS_Hangul_J_PieubSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Sios" title="IBUS_Hangul_J_Sios">IBUS_Hangul_J_Sios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-SsangSios" title="IBUS_Hangul_J_SsangSios">IBUS_Hangul_J_SsangSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Ieung" title="IBUS_Hangul_J_Ieung">IBUS_Hangul_J_Ieung</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Jieuj" title="IBUS_Hangul_J_Jieuj">IBUS_Hangul_J_Jieuj</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Cieuc" title="IBUS_Hangul_J_Cieuc">IBUS_Hangul_J_Cieuc</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Khieuq" title="IBUS_Hangul_J_Khieuq">IBUS_Hangul_J_Khieuq</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Tieut" title="IBUS_Hangul_J_Tieut">IBUS_Hangul_J_Tieut</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Phieuf" title="IBUS_Hangul_J_Phieuf">IBUS_Hangul_J_Phieuf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Hieuh" title="IBUS_Hangul_J_Hieuh">IBUS_Hangul_J_Hieuh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulYeorinHieuh" title="IBUS_Hangul_RieulYeorinHieuh">IBUS_Hangul_RieulYeorinHieuh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumMieum" title="IBUS_Hangul_SunkyeongeumMieum">IBUS_Hangul_SunkyeongeumMieum</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumPieub" title="IBUS_Hangul_SunkyeongeumPieub">IBUS_Hangul_SunkyeongeumPieub</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PanSios" title="IBUS_Hangul_PanSios">IBUS_Hangul_PanSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-KkogjiDalrinIeung" title="IBUS_Hangul_KkogjiDalrinIeung">IBUS_Hangul_KkogjiDalrinIeung</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumPhieuf" title="IBUS_Hangul_SunkyeongeumPhieuf">IBUS_Hangul_SunkyeongeumPhieuf</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YeorinHieuh" title="IBUS_Hangul_YeorinHieuh">IBUS_Hangul_YeorinHieuh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-AraeA" title="IBUS_Hangul_AraeA">IBUS_Hangul_AraeA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-AraeAE" title="IBUS_Hangul_AraeAE">IBUS_Hangul_AraeAE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-PanSios" title="IBUS_Hangul_J_PanSios">IBUS_Hangul_J_PanSios</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-KkogjiDalrinIeung" title="IBUS_Hangul_J_KkogjiDalrinIeung">IBUS_Hangul_J_KkogjiDalrinIeung</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-YeorinHieuh" title="IBUS_Hangul_J_YeorinHieuh">IBUS_Hangul_J_YeorinHieuh</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Korean-Won" title="IBUS_Korean_Won">IBUS_Korean_Won</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ligature-ew" title="IBUS_Armenian_ligature_ew">IBUS_Armenian_ligature_ew</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-full-stop" title="IBUS_Armenian_full_stop">IBUS_Armenian_full_stop</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-verjaket" title="IBUS_Armenian_verjaket">IBUS_Armenian_verjaket</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-separation-mark" title="IBUS_Armenian_separation_mark">IBUS_Armenian_separation_mark</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-but" title="IBUS_Armenian_but">IBUS_Armenian_but</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-hyphen" title="IBUS_Armenian_hyphen">IBUS_Armenian_hyphen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-yentamna" title="IBUS_Armenian_yentamna">IBUS_Armenian_yentamna</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-exclam" title="IBUS_Armenian_exclam">IBUS_Armenian_exclam</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-amanak" title="IBUS_Armenian_amanak">IBUS_Armenian_amanak</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-accent" title="IBUS_Armenian_accent">IBUS_Armenian_accent</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-shesht" title="IBUS_Armenian_shesht">IBUS_Armenian_shesht</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-question" title="IBUS_Armenian_question">IBUS_Armenian_question</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-paruyk" title="IBUS_Armenian_paruyk">IBUS_Armenian_paruyk</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-AYB" title="IBUS_Armenian_AYB">IBUS_Armenian_AYB</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ayb" title="IBUS_Armenian_ayb">IBUS_Armenian_ayb</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-BEN" title="IBUS_Armenian_BEN">IBUS_Armenian_BEN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ben" title="IBUS_Armenian_ben">IBUS_Armenian_ben</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-GIM" title="IBUS_Armenian_GIM">IBUS_Armenian_GIM</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-gim" title="IBUS_Armenian_gim">IBUS_Armenian_gim</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-DA" title="IBUS_Armenian_DA">IBUS_Armenian_DA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-da" title="IBUS_Armenian_da">IBUS_Armenian_da</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-YECH" title="IBUS_Armenian_YECH">IBUS_Armenian_YECH</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-yech" title="IBUS_Armenian_yech">IBUS_Armenian_yech</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ZA" title="IBUS_Armenian_ZA">IBUS_Armenian_ZA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-za" title="IBUS_Armenian_za">IBUS_Armenian_za</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-E" title="IBUS_Armenian_E">IBUS_Armenian_E</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-e" title="IBUS_Armenian_e">IBUS_Armenian_e</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-AT" title="IBUS_Armenian_AT">IBUS_Armenian_AT</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-at" title="IBUS_Armenian_at">IBUS_Armenian_at</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TO" title="IBUS_Armenian_TO">IBUS_Armenian_TO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-to" title="IBUS_Armenian_to">IBUS_Armenian_to</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ZHE" title="IBUS_Armenian_ZHE">IBUS_Armenian_ZHE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-zhe" title="IBUS_Armenian_zhe">IBUS_Armenian_zhe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-INI" title="IBUS_Armenian_INI">IBUS_Armenian_INI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ini" title="IBUS_Armenian_ini">IBUS_Armenian_ini</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-LYUN" title="IBUS_Armenian_LYUN">IBUS_Armenian_LYUN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-lyun" title="IBUS_Armenian_lyun">IBUS_Armenian_lyun</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-KHE" title="IBUS_Armenian_KHE">IBUS_Armenian_KHE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-khe" title="IBUS_Armenian_khe">IBUS_Armenian_khe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TSA" title="IBUS_Armenian_TSA">IBUS_Armenian_TSA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tsa" title="IBUS_Armenian_tsa">IBUS_Armenian_tsa</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-KEN" title="IBUS_Armenian_KEN">IBUS_Armenian_KEN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ken" title="IBUS_Armenian_ken">IBUS_Armenian_ken</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-HO" title="IBUS_Armenian_HO">IBUS_Armenian_HO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ho" title="IBUS_Armenian_ho">IBUS_Armenian_ho</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-DZA" title="IBUS_Armenian_DZA">IBUS_Armenian_DZA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-dza" title="IBUS_Armenian_dza">IBUS_Armenian_dza</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-GHAT" title="IBUS_Armenian_GHAT">IBUS_Armenian_GHAT</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ghat" title="IBUS_Armenian_ghat">IBUS_Armenian_ghat</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TCHE" title="IBUS_Armenian_TCHE">IBUS_Armenian_TCHE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tche" title="IBUS_Armenian_tche">IBUS_Armenian_tche</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-MEN" title="IBUS_Armenian_MEN">IBUS_Armenian_MEN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-men" title="IBUS_Armenian_men">IBUS_Armenian_men</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-HI" title="IBUS_Armenian_HI">IBUS_Armenian_HI</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-hi" title="IBUS_Armenian_hi">IBUS_Armenian_hi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-NU" title="IBUS_Armenian_NU">IBUS_Armenian_NU</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-nu" title="IBUS_Armenian_nu">IBUS_Armenian_nu</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-SHA" title="IBUS_Armenian_SHA">IBUS_Armenian_SHA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-sha" title="IBUS_Armenian_sha">IBUS_Armenian_sha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-VO" title="IBUS_Armenian_VO">IBUS_Armenian_VO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-vo" title="IBUS_Armenian_vo">IBUS_Armenian_vo</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-CHA" title="IBUS_Armenian_CHA">IBUS_Armenian_CHA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-cha" title="IBUS_Armenian_cha">IBUS_Armenian_cha</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-PE" title="IBUS_Armenian_PE">IBUS_Armenian_PE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-pe" title="IBUS_Armenian_pe">IBUS_Armenian_pe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-JE" title="IBUS_Armenian_JE">IBUS_Armenian_JE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-je" title="IBUS_Armenian_je">IBUS_Armenian_je</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-RA" title="IBUS_Armenian_RA">IBUS_Armenian_RA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ra" title="IBUS_Armenian_ra">IBUS_Armenian_ra</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-SE" title="IBUS_Armenian_SE">IBUS_Armenian_SE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-se" title="IBUS_Armenian_se">IBUS_Armenian_se</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-VEV" title="IBUS_Armenian_VEV">IBUS_Armenian_VEV</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-vev" title="IBUS_Armenian_vev">IBUS_Armenian_vev</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TYUN" title="IBUS_Armenian_TYUN">IBUS_Armenian_TYUN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tyun" title="IBUS_Armenian_tyun">IBUS_Armenian_tyun</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-RE" title="IBUS_Armenian_RE">IBUS_Armenian_RE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-re" title="IBUS_Armenian_re">IBUS_Armenian_re</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TSO" title="IBUS_Armenian_TSO">IBUS_Armenian_TSO</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tso" title="IBUS_Armenian_tso">IBUS_Armenian_tso</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-VYUN" title="IBUS_Armenian_VYUN">IBUS_Armenian_VYUN</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-vyun" title="IBUS_Armenian_vyun">IBUS_Armenian_vyun</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-PYUR" title="IBUS_Armenian_PYUR">IBUS_Armenian_PYUR</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-pyur" title="IBUS_Armenian_pyur">IBUS_Armenian_pyur</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-KE" title="IBUS_Armenian_KE">IBUS_Armenian_KE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ke" title="IBUS_Armenian_ke">IBUS_Armenian_ke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-O" title="IBUS_Armenian_O">IBUS_Armenian_O</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-o" title="IBUS_Armenian_o">IBUS_Armenian_o</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-FE" title="IBUS_Armenian_FE">IBUS_Armenian_FE</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-fe" title="IBUS_Armenian_fe">IBUS_Armenian_fe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Armenian-apostrophe" title="IBUS_Armenian_apostrophe">IBUS_Armenian_apostrophe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-an" title="IBUS_Georgian_an">IBUS_Georgian_an</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-ban" title="IBUS_Georgian_ban">IBUS_Georgian_ban</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-gan" title="IBUS_Georgian_gan">IBUS_Georgian_gan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-don" title="IBUS_Georgian_don">IBUS_Georgian_don</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-en" title="IBUS_Georgian_en">IBUS_Georgian_en</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-vin" title="IBUS_Georgian_vin">IBUS_Georgian_vin</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-zen" title="IBUS_Georgian_zen">IBUS_Georgian_zen</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-tan" title="IBUS_Georgian_tan">IBUS_Georgian_tan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-in" title="IBUS_Georgian_in">IBUS_Georgian_in</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-kan" title="IBUS_Georgian_kan">IBUS_Georgian_kan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-las" title="IBUS_Georgian_las">IBUS_Georgian_las</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-man" title="IBUS_Georgian_man">IBUS_Georgian_man</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-nar" title="IBUS_Georgian_nar">IBUS_Georgian_nar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-on" title="IBUS_Georgian_on">IBUS_Georgian_on</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-par" title="IBUS_Georgian_par">IBUS_Georgian_par</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-zhar" title="IBUS_Georgian_zhar">IBUS_Georgian_zhar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-rae" title="IBUS_Georgian_rae">IBUS_Georgian_rae</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-san" title="IBUS_Georgian_san">IBUS_Georgian_san</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-tar" title="IBUS_Georgian_tar">IBUS_Georgian_tar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-un" title="IBUS_Georgian_un">IBUS_Georgian_un</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-phar" title="IBUS_Georgian_phar">IBUS_Georgian_phar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-khar" title="IBUS_Georgian_khar">IBUS_Georgian_khar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-ghan" title="IBUS_Georgian_ghan">IBUS_Georgian_ghan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-qar" title="IBUS_Georgian_qar">IBUS_Georgian_qar</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-shin" title="IBUS_Georgian_shin">IBUS_Georgian_shin</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-chin" title="IBUS_Georgian_chin">IBUS_Georgian_chin</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-can" title="IBUS_Georgian_can">IBUS_Georgian_can</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-jil" title="IBUS_Georgian_jil">IBUS_Georgian_jil</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-cil" title="IBUS_Georgian_cil">IBUS_Georgian_cil</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-char" title="IBUS_Georgian_char">IBUS_Georgian_char</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-xan" title="IBUS_Georgian_xan">IBUS_Georgian_xan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-jhan" title="IBUS_Georgian_jhan">IBUS_Georgian_jhan</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-hae" title="IBUS_Georgian_hae">IBUS_Georgian_hae</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-he" title="IBUS_Georgian_he">IBUS_Georgian_he</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-hie" title="IBUS_Georgian_hie">IBUS_Georgian_hie</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-we" title="IBUS_Georgian_we">IBUS_Georgian_we</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-har" title="IBUS_Georgian_har">IBUS_Georgian_har</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-hoe" title="IBUS_Georgian_hoe">IBUS_Georgian_hoe</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Georgian-fi" title="IBUS_Georgian_fi">IBUS_Georgian_fi</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Xabovedot" title="IBUS_Xabovedot">IBUS_Xabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ibreve" title="IBUS_Ibreve">IBUS_Ibreve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Zstroke" title="IBUS_Zstroke">IBUS_Zstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Gcaron" title="IBUS_Gcaron">IBUS_Gcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocaron" title="IBUS_Ocaron">IBUS_Ocaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Obarred" title="IBUS_Obarred">IBUS_Obarred</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-xabovedot" title="IBUS_xabovedot">IBUS_xabovedot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ibreve" title="IBUS_ibreve">IBUS_ibreve</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zstroke" title="IBUS_zstroke">IBUS_zstroke</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-gcaron" title="IBUS_gcaron">IBUS_gcaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocaron" title="IBUS_ocaron">IBUS_ocaron</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-obarred" title="IBUS_obarred">IBUS_obarred</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-SCHWA:CAPS" title="IBUS_SCHWA">IBUS_SCHWA</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-schwa" title="IBUS_schwa">IBUS_schwa</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Lbelowdot" title="IBUS_Lbelowdot">IBUS_Lbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-lbelowdot" title="IBUS_lbelowdot">IBUS_lbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abelowdot" title="IBUS_Abelowdot">IBUS_Abelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abelowdot" title="IBUS_abelowdot">IBUS_abelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ahook" title="IBUS_Ahook">IBUS_Ahook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ahook" title="IBUS_ahook">IBUS_ahook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexacute" title="IBUS_Acircumflexacute">IBUS_Acircumflexacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflexacute" title="IBUS_acircumflexacute">IBUS_acircumflexacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexgrave" title="IBUS_Acircumflexgrave">IBUS_Acircumflexgrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflexgrave" title="IBUS_acircumflexgrave">IBUS_acircumflexgrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexhook" title="IBUS_Acircumflexhook">IBUS_Acircumflexhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflexhook" title="IBUS_acircumflexhook">IBUS_acircumflexhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflextilde" title="IBUS_Acircumflextilde">IBUS_Acircumflextilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflextilde" title="IBUS_acircumflextilde">IBUS_acircumflextilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexbelowdot" title="IBUS_Acircumflexbelowdot">IBUS_Acircumflexbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-acircumflexbelowdot" title="IBUS_acircumflexbelowdot">IBUS_acircumflexbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abreveacute" title="IBUS_Abreveacute">IBUS_Abreveacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abreveacute" title="IBUS_abreveacute">IBUS_abreveacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abrevegrave" title="IBUS_Abrevegrave">IBUS_Abrevegrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abrevegrave" title="IBUS_abrevegrave">IBUS_abrevegrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abrevehook" title="IBUS_Abrevehook">IBUS_Abrevehook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abrevehook" title="IBUS_abrevehook">IBUS_abrevehook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abrevetilde" title="IBUS_Abrevetilde">IBUS_Abrevetilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abrevetilde" title="IBUS_abrevetilde">IBUS_abrevetilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Abrevebelowdot" title="IBUS_Abrevebelowdot">IBUS_Abrevebelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-abrevebelowdot" title="IBUS_abrevebelowdot">IBUS_abrevebelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ebelowdot" title="IBUS_Ebelowdot">IBUS_Ebelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ebelowdot" title="IBUS_ebelowdot">IBUS_ebelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ehook" title="IBUS_Ehook">IBUS_Ehook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ehook" title="IBUS_ehook">IBUS_ehook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Etilde" title="IBUS_Etilde">IBUS_Etilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-etilde" title="IBUS_etilde">IBUS_etilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexacute" title="IBUS_Ecircumflexacute">IBUS_Ecircumflexacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexacute" title="IBUS_ecircumflexacute">IBUS_ecircumflexacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexgrave" title="IBUS_Ecircumflexgrave">IBUS_Ecircumflexgrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexgrave" title="IBUS_ecircumflexgrave">IBUS_ecircumflexgrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexhook" title="IBUS_Ecircumflexhook">IBUS_Ecircumflexhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexhook" title="IBUS_ecircumflexhook">IBUS_ecircumflexhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflextilde" title="IBUS_Ecircumflextilde">IBUS_Ecircumflextilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflextilde" title="IBUS_ecircumflextilde">IBUS_ecircumflextilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexbelowdot" title="IBUS_Ecircumflexbelowdot">IBUS_Ecircumflexbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexbelowdot" title="IBUS_ecircumflexbelowdot">IBUS_ecircumflexbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ihook" title="IBUS_Ihook">IBUS_Ihook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ihook" title="IBUS_ihook">IBUS_ihook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ibelowdot" title="IBUS_Ibelowdot">IBUS_Ibelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ibelowdot" title="IBUS_ibelowdot">IBUS_ibelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Obelowdot" title="IBUS_Obelowdot">IBUS_Obelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-obelowdot" title="IBUS_obelowdot">IBUS_obelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohook" title="IBUS_Ohook">IBUS_Ohook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohook" title="IBUS_ohook">IBUS_ohook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexacute" title="IBUS_Ocircumflexacute">IBUS_Ocircumflexacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexacute" title="IBUS_ocircumflexacute">IBUS_ocircumflexacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexgrave" title="IBUS_Ocircumflexgrave">IBUS_Ocircumflexgrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexgrave" title="IBUS_ocircumflexgrave">IBUS_ocircumflexgrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexhook" title="IBUS_Ocircumflexhook">IBUS_Ocircumflexhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexhook" title="IBUS_ocircumflexhook">IBUS_ocircumflexhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflextilde" title="IBUS_Ocircumflextilde">IBUS_Ocircumflextilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflextilde" title="IBUS_ocircumflextilde">IBUS_ocircumflextilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexbelowdot" title="IBUS_Ocircumflexbelowdot">IBUS_Ocircumflexbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexbelowdot" title="IBUS_ocircumflexbelowdot">IBUS_ocircumflexbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohornacute" title="IBUS_Ohornacute">IBUS_Ohornacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohornacute" title="IBUS_ohornacute">IBUS_ohornacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohorngrave" title="IBUS_Ohorngrave">IBUS_Ohorngrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohorngrave" title="IBUS_ohorngrave">IBUS_ohorngrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohornhook" title="IBUS_Ohornhook">IBUS_Ohornhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohornhook" title="IBUS_ohornhook">IBUS_ohornhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohorntilde" title="IBUS_Ohorntilde">IBUS_Ohorntilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohorntilde" title="IBUS_ohorntilde">IBUS_ohorntilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohornbelowdot" title="IBUS_Ohornbelowdot">IBUS_Ohornbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohornbelowdot" title="IBUS_ohornbelowdot">IBUS_ohornbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ubelowdot" title="IBUS_Ubelowdot">IBUS_Ubelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ubelowdot" title="IBUS_ubelowdot">IBUS_ubelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhook" title="IBUS_Uhook">IBUS_Uhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhook" title="IBUS_uhook">IBUS_uhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhornacute" title="IBUS_Uhornacute">IBUS_Uhornacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhornacute" title="IBUS_uhornacute">IBUS_uhornacute</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhorngrave" title="IBUS_Uhorngrave">IBUS_Uhorngrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhorngrave" title="IBUS_uhorngrave">IBUS_uhorngrave</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhornhook" title="IBUS_Uhornhook">IBUS_Uhornhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhornhook" title="IBUS_uhornhook">IBUS_uhornhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhorntilde" title="IBUS_Uhorntilde">IBUS_Uhorntilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhorntilde" title="IBUS_uhorntilde">IBUS_uhorntilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhornbelowdot" title="IBUS_Uhornbelowdot">IBUS_Uhornbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhornbelowdot" title="IBUS_uhornbelowdot">IBUS_uhornbelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ybelowdot" title="IBUS_Ybelowdot">IBUS_Ybelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ybelowdot" title="IBUS_ybelowdot">IBUS_ybelowdot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Yhook" title="IBUS_Yhook">IBUS_Yhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-yhook" title="IBUS_yhook">IBUS_yhook</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ytilde" title="IBUS_Ytilde">IBUS_Ytilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ytilde" title="IBUS_ytilde">IBUS_ytilde</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Ohorn" title="IBUS_Ohorn">IBUS_Ohorn</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ohorn" title="IBUS_ohorn">IBUS_ohorn</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-Uhorn" title="IBUS_Uhorn">IBUS_Uhorn</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-uhorn" title="IBUS_uhorn">IBUS_uhorn</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-EcuSign" title="IBUS_EcuSign">IBUS_EcuSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ColonSign" title="IBUS_ColonSign">IBUS_ColonSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-CruzeiroSign" title="IBUS_CruzeiroSign">IBUS_CruzeiroSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-FFrancSign" title="IBUS_FFrancSign">IBUS_FFrancSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-LiraSign" title="IBUS_LiraSign">IBUS_LiraSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-MillSign" title="IBUS_MillSign">IBUS_MillSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-NairaSign" title="IBUS_NairaSign">IBUS_NairaSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-PesetaSign" title="IBUS_PesetaSign">IBUS_PesetaSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-RupeeSign" title="IBUS_RupeeSign">IBUS_RupeeSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-WonSign" title="IBUS_WonSign">IBUS_WonSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-NewSheqelSign" title="IBUS_NewSheqelSign">IBUS_NewSheqelSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-DongSign" title="IBUS_DongSign">IBUS_DongSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-EuroSign" title="IBUS_EuroSign">IBUS_EuroSign</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zerosuperior" title="IBUS_zerosuperior">IBUS_zerosuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-foursuperior" title="IBUS_foursuperior">IBUS_foursuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fivesuperior" title="IBUS_fivesuperior">IBUS_fivesuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sixsuperior" title="IBUS_sixsuperior">IBUS_sixsuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sevensuperior" title="IBUS_sevensuperior">IBUS_sevensuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eightsuperior" title="IBUS_eightsuperior">IBUS_eightsuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ninesuperior" title="IBUS_ninesuperior">IBUS_ninesuperior</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-zerosubscript" title="IBUS_zerosubscript">IBUS_zerosubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-onesubscript" title="IBUS_onesubscript">IBUS_onesubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-twosubscript" title="IBUS_twosubscript">IBUS_twosubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-threesubscript" title="IBUS_threesubscript">IBUS_threesubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-foursubscript" title="IBUS_foursubscript">IBUS_foursubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fivesubscript" title="IBUS_fivesubscript">IBUS_fivesubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sixsubscript" title="IBUS_sixsubscript">IBUS_sixsubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-sevensubscript" title="IBUS_sevensubscript">IBUS_sevensubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-eightsubscript" title="IBUS_eightsubscript">IBUS_eightsubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-ninesubscript" title="IBUS_ninesubscript">IBUS_ninesubscript</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-partdifferential" title="IBUS_partdifferential">IBUS_partdifferential</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-emptyset" title="IBUS_emptyset">IBUS_emptyset</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-elementof" title="IBUS_elementof">IBUS_elementof</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notelementof" title="IBUS_notelementof">IBUS_notelementof</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-containsas" title="IBUS_containsas">IBUS_containsas</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-squareroot" title="IBUS_squareroot">IBUS_squareroot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-cuberoot" title="IBUS_cuberoot">IBUS_cuberoot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-fourthroot" title="IBUS_fourthroot">IBUS_fourthroot</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-dintegral" title="IBUS_dintegral">IBUS_dintegral</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-tintegral" title="IBUS_tintegral">IBUS_tintegral</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-because" title="IBUS_because">IBUS_because</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-approxeq" title="IBUS_approxeq">IBUS_approxeq</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notapproxeq" title="IBUS_notapproxeq">IBUS_notapproxeq</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-notidentical" title="IBUS_notidentical">IBUS_notidentical</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-stricteq" title="IBUS_stricteq">IBUS_stricteq</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-1" title="IBUS_braille_dot_1">IBUS_braille_dot_1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-2" title="IBUS_braille_dot_2">IBUS_braille_dot_2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-3" title="IBUS_braille_dot_3">IBUS_braille_dot_3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-4" title="IBUS_braille_dot_4">IBUS_braille_dot_4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-5" title="IBUS_braille_dot_5">IBUS_braille_dot_5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-6" title="IBUS_braille_dot_6">IBUS_braille_dot_6</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-7" title="IBUS_braille_dot_7">IBUS_braille_dot_7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-8" title="IBUS_braille_dot_8">IBUS_braille_dot_8</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-9" title="IBUS_braille_dot_9">IBUS_braille_dot_9</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-10" title="IBUS_braille_dot_10">IBUS_braille_dot_10</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-blank" title="IBUS_braille_blank">IBUS_braille_blank</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1" title="IBUS_braille_dots_1">IBUS_braille_dots_1</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2" title="IBUS_braille_dots_2">IBUS_braille_dots_2</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12" title="IBUS_braille_dots_12">IBUS_braille_dots_12</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3" title="IBUS_braille_dots_3">IBUS_braille_dots_3</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13" title="IBUS_braille_dots_13">IBUS_braille_dots_13</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23" title="IBUS_braille_dots_23">IBUS_braille_dots_23</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123" title="IBUS_braille_dots_123">IBUS_braille_dots_123</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4" title="IBUS_braille_dots_4">IBUS_braille_dots_4</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14" title="IBUS_braille_dots_14">IBUS_braille_dots_14</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24" title="IBUS_braille_dots_24">IBUS_braille_dots_24</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124" title="IBUS_braille_dots_124">IBUS_braille_dots_124</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34" title="IBUS_braille_dots_34">IBUS_braille_dots_34</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134" title="IBUS_braille_dots_134">IBUS_braille_dots_134</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234" title="IBUS_braille_dots_234">IBUS_braille_dots_234</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234" title="IBUS_braille_dots_1234">IBUS_braille_dots_1234</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-5" title="IBUS_braille_dots_5">IBUS_braille_dots_5</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-15" title="IBUS_braille_dots_15">IBUS_braille_dots_15</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-25" title="IBUS_braille_dots_25">IBUS_braille_dots_25</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-125" title="IBUS_braille_dots_125">IBUS_braille_dots_125</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-35" title="IBUS_braille_dots_35">IBUS_braille_dots_35</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-135" title="IBUS_braille_dots_135">IBUS_braille_dots_135</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-235" title="IBUS_braille_dots_235">IBUS_braille_dots_235</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1235" title="IBUS_braille_dots_1235">IBUS_braille_dots_1235</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-45" title="IBUS_braille_dots_45">IBUS_braille_dots_45</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-145" title="IBUS_braille_dots_145">IBUS_braille_dots_145</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-245" title="IBUS_braille_dots_245">IBUS_braille_dots_245</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1245" title="IBUS_braille_dots_1245">IBUS_braille_dots_1245</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-345" title="IBUS_braille_dots_345">IBUS_braille_dots_345</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1345" title="IBUS_braille_dots_1345">IBUS_braille_dots_1345</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2345" title="IBUS_braille_dots_2345">IBUS_braille_dots_2345</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12345" title="IBUS_braille_dots_12345">IBUS_braille_dots_12345</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-6" title="IBUS_braille_dots_6">IBUS_braille_dots_6</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-16" title="IBUS_braille_dots_16">IBUS_braille_dots_16</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-26" title="IBUS_braille_dots_26">IBUS_braille_dots_26</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-126" title="IBUS_braille_dots_126">IBUS_braille_dots_126</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-36" title="IBUS_braille_dots_36">IBUS_braille_dots_36</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-136" title="IBUS_braille_dots_136">IBUS_braille_dots_136</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-236" title="IBUS_braille_dots_236">IBUS_braille_dots_236</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1236" title="IBUS_braille_dots_1236">IBUS_braille_dots_1236</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-46" title="IBUS_braille_dots_46">IBUS_braille_dots_46</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-146" title="IBUS_braille_dots_146">IBUS_braille_dots_146</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-246" title="IBUS_braille_dots_246">IBUS_braille_dots_246</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1246" title="IBUS_braille_dots_1246">IBUS_braille_dots_1246</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-346" title="IBUS_braille_dots_346">IBUS_braille_dots_346</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1346" title="IBUS_braille_dots_1346">IBUS_braille_dots_1346</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2346" title="IBUS_braille_dots_2346">IBUS_braille_dots_2346</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12346" title="IBUS_braille_dots_12346">IBUS_braille_dots_12346</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-56" title="IBUS_braille_dots_56">IBUS_braille_dots_56</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-156" title="IBUS_braille_dots_156">IBUS_braille_dots_156</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-256" title="IBUS_braille_dots_256">IBUS_braille_dots_256</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1256" title="IBUS_braille_dots_1256">IBUS_braille_dots_1256</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-356" title="IBUS_braille_dots_356">IBUS_braille_dots_356</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1356" title="IBUS_braille_dots_1356">IBUS_braille_dots_1356</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2356" title="IBUS_braille_dots_2356">IBUS_braille_dots_2356</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12356" title="IBUS_braille_dots_12356">IBUS_braille_dots_12356</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-456" title="IBUS_braille_dots_456">IBUS_braille_dots_456</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1456" title="IBUS_braille_dots_1456">IBUS_braille_dots_1456</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2456" title="IBUS_braille_dots_2456">IBUS_braille_dots_2456</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12456" title="IBUS_braille_dots_12456">IBUS_braille_dots_12456</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3456" title="IBUS_braille_dots_3456">IBUS_braille_dots_3456</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13456" title="IBUS_braille_dots_13456">IBUS_braille_dots_13456</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23456" title="IBUS_braille_dots_23456">IBUS_braille_dots_23456</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123456" title="IBUS_braille_dots_123456">IBUS_braille_dots_123456</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-7" title="IBUS_braille_dots_7">IBUS_braille_dots_7</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-17" title="IBUS_braille_dots_17">IBUS_braille_dots_17</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-27" title="IBUS_braille_dots_27">IBUS_braille_dots_27</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-127" title="IBUS_braille_dots_127">IBUS_braille_dots_127</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-37" title="IBUS_braille_dots_37">IBUS_braille_dots_37</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-137" title="IBUS_braille_dots_137">IBUS_braille_dots_137</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-237" title="IBUS_braille_dots_237">IBUS_braille_dots_237</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1237" title="IBUS_braille_dots_1237">IBUS_braille_dots_1237</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-47" title="IBUS_braille_dots_47">IBUS_braille_dots_47</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-147" title="IBUS_braille_dots_147">IBUS_braille_dots_147</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-247" title="IBUS_braille_dots_247">IBUS_braille_dots_247</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1247" title="IBUS_braille_dots_1247">IBUS_braille_dots_1247</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-347" title="IBUS_braille_dots_347">IBUS_braille_dots_347</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1347" title="IBUS_braille_dots_1347">IBUS_braille_dots_1347</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2347" title="IBUS_braille_dots_2347">IBUS_braille_dots_2347</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12347" title="IBUS_braille_dots_12347">IBUS_braille_dots_12347</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-57" title="IBUS_braille_dots_57">IBUS_braille_dots_57</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-157" title="IBUS_braille_dots_157">IBUS_braille_dots_157</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-257" title="IBUS_braille_dots_257">IBUS_braille_dots_257</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1257" title="IBUS_braille_dots_1257">IBUS_braille_dots_1257</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-357" title="IBUS_braille_dots_357">IBUS_braille_dots_357</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1357" title="IBUS_braille_dots_1357">IBUS_braille_dots_1357</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2357" title="IBUS_braille_dots_2357">IBUS_braille_dots_2357</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12357" title="IBUS_braille_dots_12357">IBUS_braille_dots_12357</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-457" title="IBUS_braille_dots_457">IBUS_braille_dots_457</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1457" title="IBUS_braille_dots_1457">IBUS_braille_dots_1457</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2457" title="IBUS_braille_dots_2457">IBUS_braille_dots_2457</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12457" title="IBUS_braille_dots_12457">IBUS_braille_dots_12457</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3457" title="IBUS_braille_dots_3457">IBUS_braille_dots_3457</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13457" title="IBUS_braille_dots_13457">IBUS_braille_dots_13457</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23457" title="IBUS_braille_dots_23457">IBUS_braille_dots_23457</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123457" title="IBUS_braille_dots_123457">IBUS_braille_dots_123457</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-67" title="IBUS_braille_dots_67">IBUS_braille_dots_67</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-167" title="IBUS_braille_dots_167">IBUS_braille_dots_167</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-267" title="IBUS_braille_dots_267">IBUS_braille_dots_267</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1267" title="IBUS_braille_dots_1267">IBUS_braille_dots_1267</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-367" title="IBUS_braille_dots_367">IBUS_braille_dots_367</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1367" title="IBUS_braille_dots_1367">IBUS_braille_dots_1367</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2367" title="IBUS_braille_dots_2367">IBUS_braille_dots_2367</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12367" title="IBUS_braille_dots_12367">IBUS_braille_dots_12367</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-467" title="IBUS_braille_dots_467">IBUS_braille_dots_467</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1467" title="IBUS_braille_dots_1467">IBUS_braille_dots_1467</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2467" title="IBUS_braille_dots_2467">IBUS_braille_dots_2467</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12467" title="IBUS_braille_dots_12467">IBUS_braille_dots_12467</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3467" title="IBUS_braille_dots_3467">IBUS_braille_dots_3467</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13467" title="IBUS_braille_dots_13467">IBUS_braille_dots_13467</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23467" title="IBUS_braille_dots_23467">IBUS_braille_dots_23467</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123467" title="IBUS_braille_dots_123467">IBUS_braille_dots_123467</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-567" title="IBUS_braille_dots_567">IBUS_braille_dots_567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1567" title="IBUS_braille_dots_1567">IBUS_braille_dots_1567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2567" title="IBUS_braille_dots_2567">IBUS_braille_dots_2567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12567" title="IBUS_braille_dots_12567">IBUS_braille_dots_12567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3567" title="IBUS_braille_dots_3567">IBUS_braille_dots_3567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13567" title="IBUS_braille_dots_13567">IBUS_braille_dots_13567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23567" title="IBUS_braille_dots_23567">IBUS_braille_dots_23567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123567" title="IBUS_braille_dots_123567">IBUS_braille_dots_123567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4567" title="IBUS_braille_dots_4567">IBUS_braille_dots_4567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14567" title="IBUS_braille_dots_14567">IBUS_braille_dots_14567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24567" title="IBUS_braille_dots_24567">IBUS_braille_dots_24567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124567" title="IBUS_braille_dots_124567">IBUS_braille_dots_124567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34567" title="IBUS_braille_dots_34567">IBUS_braille_dots_34567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134567" title="IBUS_braille_dots_134567">IBUS_braille_dots_134567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234567" title="IBUS_braille_dots_234567">IBUS_braille_dots_234567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234567" title="IBUS_braille_dots_1234567">IBUS_braille_dots_1234567</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-8" title="IBUS_braille_dots_8">IBUS_braille_dots_8</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-18" title="IBUS_braille_dots_18">IBUS_braille_dots_18</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-28" title="IBUS_braille_dots_28">IBUS_braille_dots_28</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-128" title="IBUS_braille_dots_128">IBUS_braille_dots_128</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-38" title="IBUS_braille_dots_38">IBUS_braille_dots_38</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-138" title="IBUS_braille_dots_138">IBUS_braille_dots_138</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-238" title="IBUS_braille_dots_238">IBUS_braille_dots_238</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1238" title="IBUS_braille_dots_1238">IBUS_braille_dots_1238</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-48" title="IBUS_braille_dots_48">IBUS_braille_dots_48</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-148" title="IBUS_braille_dots_148">IBUS_braille_dots_148</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-248" title="IBUS_braille_dots_248">IBUS_braille_dots_248</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1248" title="IBUS_braille_dots_1248">IBUS_braille_dots_1248</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-348" title="IBUS_braille_dots_348">IBUS_braille_dots_348</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1348" title="IBUS_braille_dots_1348">IBUS_braille_dots_1348</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2348" title="IBUS_braille_dots_2348">IBUS_braille_dots_2348</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12348" title="IBUS_braille_dots_12348">IBUS_braille_dots_12348</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-58" title="IBUS_braille_dots_58">IBUS_braille_dots_58</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-158" title="IBUS_braille_dots_158">IBUS_braille_dots_158</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-258" title="IBUS_braille_dots_258">IBUS_braille_dots_258</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1258" title="IBUS_braille_dots_1258">IBUS_braille_dots_1258</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-358" title="IBUS_braille_dots_358">IBUS_braille_dots_358</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1358" title="IBUS_braille_dots_1358">IBUS_braille_dots_1358</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2358" title="IBUS_braille_dots_2358">IBUS_braille_dots_2358</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12358" title="IBUS_braille_dots_12358">IBUS_braille_dots_12358</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-458" title="IBUS_braille_dots_458">IBUS_braille_dots_458</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1458" title="IBUS_braille_dots_1458">IBUS_braille_dots_1458</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2458" title="IBUS_braille_dots_2458">IBUS_braille_dots_2458</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12458" title="IBUS_braille_dots_12458">IBUS_braille_dots_12458</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3458" title="IBUS_braille_dots_3458">IBUS_braille_dots_3458</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13458" title="IBUS_braille_dots_13458">IBUS_braille_dots_13458</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23458" title="IBUS_braille_dots_23458">IBUS_braille_dots_23458</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123458" title="IBUS_braille_dots_123458">IBUS_braille_dots_123458</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-68" title="IBUS_braille_dots_68">IBUS_braille_dots_68</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-168" title="IBUS_braille_dots_168">IBUS_braille_dots_168</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-268" title="IBUS_braille_dots_268">IBUS_braille_dots_268</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1268" title="IBUS_braille_dots_1268">IBUS_braille_dots_1268</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-368" title="IBUS_braille_dots_368">IBUS_braille_dots_368</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1368" title="IBUS_braille_dots_1368">IBUS_braille_dots_1368</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2368" title="IBUS_braille_dots_2368">IBUS_braille_dots_2368</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12368" title="IBUS_braille_dots_12368">IBUS_braille_dots_12368</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-468" title="IBUS_braille_dots_468">IBUS_braille_dots_468</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1468" title="IBUS_braille_dots_1468">IBUS_braille_dots_1468</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2468" title="IBUS_braille_dots_2468">IBUS_braille_dots_2468</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12468" title="IBUS_braille_dots_12468">IBUS_braille_dots_12468</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3468" title="IBUS_braille_dots_3468">IBUS_braille_dots_3468</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13468" title="IBUS_braille_dots_13468">IBUS_braille_dots_13468</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23468" title="IBUS_braille_dots_23468">IBUS_braille_dots_23468</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123468" title="IBUS_braille_dots_123468">IBUS_braille_dots_123468</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-568" title="IBUS_braille_dots_568">IBUS_braille_dots_568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1568" title="IBUS_braille_dots_1568">IBUS_braille_dots_1568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2568" title="IBUS_braille_dots_2568">IBUS_braille_dots_2568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12568" title="IBUS_braille_dots_12568">IBUS_braille_dots_12568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3568" title="IBUS_braille_dots_3568">IBUS_braille_dots_3568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13568" title="IBUS_braille_dots_13568">IBUS_braille_dots_13568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23568" title="IBUS_braille_dots_23568">IBUS_braille_dots_23568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123568" title="IBUS_braille_dots_123568">IBUS_braille_dots_123568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4568" title="IBUS_braille_dots_4568">IBUS_braille_dots_4568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14568" title="IBUS_braille_dots_14568">IBUS_braille_dots_14568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24568" title="IBUS_braille_dots_24568">IBUS_braille_dots_24568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124568" title="IBUS_braille_dots_124568">IBUS_braille_dots_124568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34568" title="IBUS_braille_dots_34568">IBUS_braille_dots_34568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134568" title="IBUS_braille_dots_134568">IBUS_braille_dots_134568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234568" title="IBUS_braille_dots_234568">IBUS_braille_dots_234568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234568" title="IBUS_braille_dots_1234568">IBUS_braille_dots_1234568</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-78" title="IBUS_braille_dots_78">IBUS_braille_dots_78</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-178" title="IBUS_braille_dots_178">IBUS_braille_dots_178</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-278" title="IBUS_braille_dots_278">IBUS_braille_dots_278</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1278" title="IBUS_braille_dots_1278">IBUS_braille_dots_1278</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-378" title="IBUS_braille_dots_378">IBUS_braille_dots_378</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1378" title="IBUS_braille_dots_1378">IBUS_braille_dots_1378</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2378" title="IBUS_braille_dots_2378">IBUS_braille_dots_2378</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12378" title="IBUS_braille_dots_12378">IBUS_braille_dots_12378</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-478" title="IBUS_braille_dots_478">IBUS_braille_dots_478</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1478" title="IBUS_braille_dots_1478">IBUS_braille_dots_1478</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2478" title="IBUS_braille_dots_2478">IBUS_braille_dots_2478</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12478" title="IBUS_braille_dots_12478">IBUS_braille_dots_12478</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3478" title="IBUS_braille_dots_3478">IBUS_braille_dots_3478</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13478" title="IBUS_braille_dots_13478">IBUS_braille_dots_13478</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23478" title="IBUS_braille_dots_23478">IBUS_braille_dots_23478</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123478" title="IBUS_braille_dots_123478">IBUS_braille_dots_123478</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-578" title="IBUS_braille_dots_578">IBUS_braille_dots_578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1578" title="IBUS_braille_dots_1578">IBUS_braille_dots_1578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2578" title="IBUS_braille_dots_2578">IBUS_braille_dots_2578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12578" title="IBUS_braille_dots_12578">IBUS_braille_dots_12578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3578" title="IBUS_braille_dots_3578">IBUS_braille_dots_3578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13578" title="IBUS_braille_dots_13578">IBUS_braille_dots_13578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23578" title="IBUS_braille_dots_23578">IBUS_braille_dots_23578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123578" title="IBUS_braille_dots_123578">IBUS_braille_dots_123578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4578" title="IBUS_braille_dots_4578">IBUS_braille_dots_4578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14578" title="IBUS_braille_dots_14578">IBUS_braille_dots_14578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24578" title="IBUS_braille_dots_24578">IBUS_braille_dots_24578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124578" title="IBUS_braille_dots_124578">IBUS_braille_dots_124578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34578" title="IBUS_braille_dots_34578">IBUS_braille_dots_34578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134578" title="IBUS_braille_dots_134578">IBUS_braille_dots_134578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234578" title="IBUS_braille_dots_234578">IBUS_braille_dots_234578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234578" title="IBUS_braille_dots_1234578">IBUS_braille_dots_1234578</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-678" title="IBUS_braille_dots_678">IBUS_braille_dots_678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1678" title="IBUS_braille_dots_1678">IBUS_braille_dots_1678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2678" title="IBUS_braille_dots_2678">IBUS_braille_dots_2678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12678" title="IBUS_braille_dots_12678">IBUS_braille_dots_12678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3678" title="IBUS_braille_dots_3678">IBUS_braille_dots_3678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13678" title="IBUS_braille_dots_13678">IBUS_braille_dots_13678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23678" title="IBUS_braille_dots_23678">IBUS_braille_dots_23678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123678" title="IBUS_braille_dots_123678">IBUS_braille_dots_123678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4678" title="IBUS_braille_dots_4678">IBUS_braille_dots_4678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14678" title="IBUS_braille_dots_14678">IBUS_braille_dots_14678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24678" title="IBUS_braille_dots_24678">IBUS_braille_dots_24678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124678" title="IBUS_braille_dots_124678">IBUS_braille_dots_124678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34678" title="IBUS_braille_dots_34678">IBUS_braille_dots_34678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134678" title="IBUS_braille_dots_134678">IBUS_braille_dots_134678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234678" title="IBUS_braille_dots_234678">IBUS_braille_dots_234678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234678" title="IBUS_braille_dots_1234678">IBUS_braille_dots_1234678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-5678" title="IBUS_braille_dots_5678">IBUS_braille_dots_5678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-15678" title="IBUS_braille_dots_15678">IBUS_braille_dots_15678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-25678" title="IBUS_braille_dots_25678">IBUS_braille_dots_25678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-125678" title="IBUS_braille_dots_125678">IBUS_braille_dots_125678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-35678" title="IBUS_braille_dots_35678">IBUS_braille_dots_35678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-135678" title="IBUS_braille_dots_135678">IBUS_braille_dots_135678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-235678" title="IBUS_braille_dots_235678">IBUS_braille_dots_235678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1235678" title="IBUS_braille_dots_1235678">IBUS_braille_dots_1235678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-45678" title="IBUS_braille_dots_45678">IBUS_braille_dots_45678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-145678" title="IBUS_braille_dots_145678">IBUS_braille_dots_145678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-245678" title="IBUS_braille_dots_245678">IBUS_braille_dots_245678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1245678" title="IBUS_braille_dots_1245678">IBUS_braille_dots_1245678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-345678" title="IBUS_braille_dots_345678">IBUS_braille_dots_345678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1345678" title="IBUS_braille_dots_1345678">IBUS_braille_dots_1345678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2345678" title="IBUS_braille_dots_2345678">IBUS_braille_dots_2345678</a>
+#define             <a class="link" href="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12345678" title="IBUS_braille_dots_12345678">IBUS_braille_dots_12345678</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibuskeysyms-compat.description"></a><h2>Description</h2>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-ibuskeysyms-compat.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBUS-VoidSymbol"></a><h3>IBUS_VoidSymbol</h3>
+<pre class="programlisting">#define IBUS_VoidSymbol 0xffffff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-BackSpace"></a><h3>IBUS_BackSpace</h3>
+<pre class="programlisting">#define IBUS_BackSpace 0xff08
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Tab"></a><h3>IBUS_Tab</h3>
+<pre class="programlisting">#define IBUS_Tab 0xff09
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Linefeed"></a><h3>IBUS_Linefeed</h3>
+<pre class="programlisting">#define IBUS_Linefeed 0xff0a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Clear"></a><h3>IBUS_Clear</h3>
+<pre class="programlisting">#define IBUS_Clear 0xff0b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Return"></a><h3>IBUS_Return</h3>
+<pre class="programlisting">#define IBUS_Return 0xff0d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pause"></a><h3>IBUS_Pause</h3>
+<pre class="programlisting">#define IBUS_Pause 0xff13
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Scroll-Lock"></a><h3>IBUS_Scroll_Lock</h3>
+<pre class="programlisting">#define IBUS_Scroll_Lock 0xff14
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Sys-Req"></a><h3>IBUS_Sys_Req</h3>
+<pre class="programlisting">#define IBUS_Sys_Req 0xff15
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Escape"></a><h3>IBUS_Escape</h3>
+<pre class="programlisting">#define IBUS_Escape 0xff1b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Delete"></a><h3>IBUS_Delete</h3>
+<pre class="programlisting">#define IBUS_Delete 0xffff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Multi-key"></a><h3>IBUS_Multi_key</h3>
+<pre class="programlisting">#define IBUS_Multi_key 0xff20
+</pre>
+<p>
+Key for composing characters.
+A.k.a. Compose Key.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Codeinput"></a><h3>IBUS_Codeinput</h3>
+<pre class="programlisting">#define IBUS_Codeinput 0xff37
+</pre>
+<p>
+International and multi-key character composition.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-SingleCandidate"></a><h3>IBUS_SingleCandidate</h3>
+<pre class="programlisting">#define IBUS_SingleCandidate 0xff3c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-MultipleCandidate"></a><h3>IBUS_MultipleCandidate</h3>
+<pre class="programlisting">#define IBUS_MultipleCandidate 0xff3d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PreviousCandidate"></a><h3>IBUS_PreviousCandidate</h3>
+<pre class="programlisting">#define IBUS_PreviousCandidate 0xff3e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Kanji"></a><h3>IBUS_Kanji</h3>
+<pre class="programlisting">#define IBUS_Kanji 0xff21
+</pre>
+<p>
+Japanese keyboard support.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Muhenkan"></a><h3>IBUS_Muhenkan</h3>
+<pre class="programlisting">#define IBUS_Muhenkan 0xff22
+</pre>
+<p>
+Japanese keyboard support.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Henkan-Mode"></a><h3>IBUS_Henkan_Mode</h3>
+<pre class="programlisting">#define IBUS_Henkan_Mode 0xff23
+</pre>
+<p>
+Japanese keyboard support.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Henkan"></a><h3>IBUS_Henkan</h3>
+<pre class="programlisting">#define IBUS_Henkan 0xff23
+</pre>
+<p>
+Japanese keyboard support.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Romaji"></a><h3>IBUS_Romaji</h3>
+<pre class="programlisting">#define IBUS_Romaji 0xff24
+</pre>
+<p>
+Japanese keyboard support.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hiragana"></a><h3>IBUS_Hiragana</h3>
+<pre class="programlisting">#define IBUS_Hiragana 0xff25
+</pre>
+<p>
+Japanese keyboard support.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Katakana"></a><h3>IBUS_Katakana</h3>
+<pre class="programlisting">#define IBUS_Katakana 0xff26
+</pre>
+<p>
+Japanese keyboard support.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hiragana-Katakana"></a><h3>IBUS_Hiragana_Katakana</h3>
+<pre class="programlisting">#define IBUS_Hiragana_Katakana 0xff27
+</pre>
+<p>
+Japanese keyboard support.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Zenkaku"></a><h3>IBUS_Zenkaku</h3>
+<pre class="programlisting">#define IBUS_Zenkaku 0xff28
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hankaku"></a><h3>IBUS_Hankaku</h3>
+<pre class="programlisting">#define IBUS_Hankaku 0xff29
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Zenkaku-Hankaku"></a><h3>IBUS_Zenkaku_Hankaku</h3>
+<pre class="programlisting">#define IBUS_Zenkaku_Hankaku 0xff2a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Touroku"></a><h3>IBUS_Touroku</h3>
+<pre class="programlisting">#define IBUS_Touroku 0xff2b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Massyo"></a><h3>IBUS_Massyo</h3>
+<pre class="programlisting">#define IBUS_Massyo 0xff2c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Kana-Lock"></a><h3>IBUS_Kana_Lock</h3>
+<pre class="programlisting">#define IBUS_Kana_Lock 0xff2d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Kana-Shift"></a><h3>IBUS_Kana_Shift</h3>
+<pre class="programlisting">#define IBUS_Kana_Shift 0xff2e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Eisu-Shift"></a><h3>IBUS_Eisu_Shift</h3>
+<pre class="programlisting">#define IBUS_Eisu_Shift 0xff2f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Eisu-toggle"></a><h3>IBUS_Eisu_toggle</h3>
+<pre class="programlisting">#define IBUS_Eisu_toggle 0xff30
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Kanji-Bangou"></a><h3>IBUS_Kanji_Bangou</h3>
+<pre class="programlisting">#define IBUS_Kanji_Bangou 0xff37
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Zen-Koho"></a><h3>IBUS_Zen_Koho</h3>
+<pre class="programlisting">#define IBUS_Zen_Koho 0xff3d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Mae-Koho"></a><h3>IBUS_Mae_Koho</h3>
+<pre class="programlisting">#define IBUS_Mae_Koho 0xff3e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Home"></a><h3>IBUS_Home</h3>
+<pre class="programlisting">#define IBUS_Home 0xff50
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Left"></a><h3>IBUS_Left</h3>
+<pre class="programlisting">#define IBUS_Left 0xff51
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Up"></a><h3>IBUS_Up</h3>
+<pre class="programlisting">#define IBUS_Up 0xff52
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Right"></a><h3>IBUS_Right</h3>
+<pre class="programlisting">#define IBUS_Right 0xff53
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Down"></a><h3>IBUS_Down</h3>
+<pre class="programlisting">#define IBUS_Down 0xff54
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Prior"></a><h3>IBUS_Prior</h3>
+<pre class="programlisting">#define IBUS_Prior 0xff55
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Page-Up"></a><h3>IBUS_Page_Up</h3>
+<pre class="programlisting">#define IBUS_Page_Up 0xff55
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Next"></a><h3>IBUS_Next</h3>
+<pre class="programlisting">#define IBUS_Next 0xff56
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Page-Down"></a><h3>IBUS_Page_Down</h3>
+<pre class="programlisting">#define IBUS_Page_Down 0xff56
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-End"></a><h3>IBUS_End</h3>
+<pre class="programlisting">#define IBUS_End 0xff57
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Begin"></a><h3>IBUS_Begin</h3>
+<pre class="programlisting">#define IBUS_Begin 0xff58
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Select"></a><h3>IBUS_Select</h3>
+<pre class="programlisting">#define IBUS_Select 0xff60
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Print"></a><h3>IBUS_Print</h3>
+<pre class="programlisting">#define IBUS_Print 0xff61
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Execute"></a><h3>IBUS_Execute</h3>
+<pre class="programlisting">#define IBUS_Execute 0xff62
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Insert"></a><h3>IBUS_Insert</h3>
+<pre class="programlisting">#define IBUS_Insert 0xff63
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Undo"></a><h3>IBUS_Undo</h3>
+<pre class="programlisting">#define IBUS_Undo 0xff65
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Redo"></a><h3>IBUS_Redo</h3>
+<pre class="programlisting">#define IBUS_Redo 0xff66
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Menu"></a><h3>IBUS_Menu</h3>
+<pre class="programlisting">#define IBUS_Menu 0xff67
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Find"></a><h3>IBUS_Find</h3>
+<pre class="programlisting">#define IBUS_Find 0xff68
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cancel"></a><h3>IBUS_Cancel</h3>
+<pre class="programlisting">#define IBUS_Cancel 0xff69
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Help"></a><h3>IBUS_Help</h3>
+<pre class="programlisting">#define IBUS_Help 0xff6a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Break"></a><h3>IBUS_Break</h3>
+<pre class="programlisting">#define IBUS_Break 0xff6b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Mode-switch"></a><h3>IBUS_Mode_switch</h3>
+<pre class="programlisting">#define IBUS_Mode_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-script-switch"></a><h3>IBUS_script_switch</h3>
+<pre class="programlisting">#define IBUS_script_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Num-Lock"></a><h3>IBUS_Num_Lock</h3>
+<pre class="programlisting">#define IBUS_Num_Lock 0xff7f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Space"></a><h3>IBUS_KP_Space</h3>
+<pre class="programlisting">#define IBUS_KP_Space 0xff80
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Tab"></a><h3>IBUS_KP_Tab</h3>
+<pre class="programlisting">#define IBUS_KP_Tab 0xff89
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Enter"></a><h3>IBUS_KP_Enter</h3>
+<pre class="programlisting">#define IBUS_KP_Enter 0xff8d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-F1:CAPS"></a><h3>IBUS_KP_F1</h3>
+<pre class="programlisting">#define IBUS_KP_F1 0xff91
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-F2:CAPS"></a><h3>IBUS_KP_F2</h3>
+<pre class="programlisting">#define IBUS_KP_F2 0xff92
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-F3:CAPS"></a><h3>IBUS_KP_F3</h3>
+<pre class="programlisting">#define IBUS_KP_F3 0xff93
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-F4:CAPS"></a><h3>IBUS_KP_F4</h3>
+<pre class="programlisting">#define IBUS_KP_F4 0xff94
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Home"></a><h3>IBUS_KP_Home</h3>
+<pre class="programlisting">#define IBUS_KP_Home 0xff95
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Left"></a><h3>IBUS_KP_Left</h3>
+<pre class="programlisting">#define IBUS_KP_Left 0xff96
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Up"></a><h3>IBUS_KP_Up</h3>
+<pre class="programlisting">#define IBUS_KP_Up 0xff97
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Right"></a><h3>IBUS_KP_Right</h3>
+<pre class="programlisting">#define IBUS_KP_Right 0xff98
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Down"></a><h3>IBUS_KP_Down</h3>
+<pre class="programlisting">#define IBUS_KP_Down 0xff99
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Prior"></a><h3>IBUS_KP_Prior</h3>
+<pre class="programlisting">#define IBUS_KP_Prior 0xff9a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Page-Up"></a><h3>IBUS_KP_Page_Up</h3>
+<pre class="programlisting">#define IBUS_KP_Page_Up 0xff9a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Next"></a><h3>IBUS_KP_Next</h3>
+<pre class="programlisting">#define IBUS_KP_Next 0xff9b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Page-Down"></a><h3>IBUS_KP_Page_Down</h3>
+<pre class="programlisting">#define IBUS_KP_Page_Down 0xff9b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-End"></a><h3>IBUS_KP_End</h3>
+<pre class="programlisting">#define IBUS_KP_End 0xff9c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Begin"></a><h3>IBUS_KP_Begin</h3>
+<pre class="programlisting">#define IBUS_KP_Begin 0xff9d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Insert"></a><h3>IBUS_KP_Insert</h3>
+<pre class="programlisting">#define IBUS_KP_Insert 0xff9e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Delete"></a><h3>IBUS_KP_Delete</h3>
+<pre class="programlisting">#define IBUS_KP_Delete 0xff9f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Equal"></a><h3>IBUS_KP_Equal</h3>
+<pre class="programlisting">#define IBUS_KP_Equal 0xffbd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Multiply"></a><h3>IBUS_KP_Multiply</h3>
+<pre class="programlisting">#define IBUS_KP_Multiply 0xffaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Add"></a><h3>IBUS_KP_Add</h3>
+<pre class="programlisting">#define IBUS_KP_Add 0xffab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Separator"></a><h3>IBUS_KP_Separator</h3>
+<pre class="programlisting">#define IBUS_KP_Separator 0xffac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Subtract"></a><h3>IBUS_KP_Subtract</h3>
+<pre class="programlisting">#define IBUS_KP_Subtract 0xffad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Decimal"></a><h3>IBUS_KP_Decimal</h3>
+<pre class="programlisting">#define IBUS_KP_Decimal 0xffae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-Divide"></a><h3>IBUS_KP_Divide</h3>
+<pre class="programlisting">#define IBUS_KP_Divide 0xffaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-0:CAPS"></a><h3>IBUS_KP_0</h3>
+<pre class="programlisting">#define IBUS_KP_0 0xffb0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-1:CAPS"></a><h3>IBUS_KP_1</h3>
+<pre class="programlisting">#define IBUS_KP_1 0xffb1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-2:CAPS"></a><h3>IBUS_KP_2</h3>
+<pre class="programlisting">#define IBUS_KP_2 0xffb2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-3:CAPS"></a><h3>IBUS_KP_3</h3>
+<pre class="programlisting">#define IBUS_KP_3 0xffb3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-4:CAPS"></a><h3>IBUS_KP_4</h3>
+<pre class="programlisting">#define IBUS_KP_4 0xffb4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-5:CAPS"></a><h3>IBUS_KP_5</h3>
+<pre class="programlisting">#define IBUS_KP_5 0xffb5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-6:CAPS"></a><h3>IBUS_KP_6</h3>
+<pre class="programlisting">#define IBUS_KP_6 0xffb6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-7:CAPS"></a><h3>IBUS_KP_7</h3>
+<pre class="programlisting">#define IBUS_KP_7 0xffb7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-8:CAPS"></a><h3>IBUS_KP_8</h3>
+<pre class="programlisting">#define IBUS_KP_8 0xffb8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-KP-9:CAPS"></a><h3>IBUS_KP_9</h3>
+<pre class="programlisting">#define IBUS_KP_9 0xffb9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F1:CAPS"></a><h3>IBUS_F1</h3>
+<pre class="programlisting">#define IBUS_F1 0xffbe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F2:CAPS"></a><h3>IBUS_F2</h3>
+<pre class="programlisting">#define IBUS_F2 0xffbf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F3:CAPS"></a><h3>IBUS_F3</h3>
+<pre class="programlisting">#define IBUS_F3 0xffc0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F4:CAPS"></a><h3>IBUS_F4</h3>
+<pre class="programlisting">#define IBUS_F4 0xffc1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F5:CAPS"></a><h3>IBUS_F5</h3>
+<pre class="programlisting">#define IBUS_F5 0xffc2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F6:CAPS"></a><h3>IBUS_F6</h3>
+<pre class="programlisting">#define IBUS_F6 0xffc3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F7:CAPS"></a><h3>IBUS_F7</h3>
+<pre class="programlisting">#define IBUS_F7 0xffc4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F8:CAPS"></a><h3>IBUS_F8</h3>
+<pre class="programlisting">#define IBUS_F8 0xffc5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F9:CAPS"></a><h3>IBUS_F9</h3>
+<pre class="programlisting">#define IBUS_F9 0xffc6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F10:CAPS"></a><h3>IBUS_F10</h3>
+<pre class="programlisting">#define IBUS_F10 0xffc7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F11:CAPS"></a><h3>IBUS_F11</h3>
+<pre class="programlisting">#define IBUS_F11 0xffc8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L1:CAPS"></a><h3>IBUS_L1</h3>
+<pre class="programlisting">#define IBUS_L1 0xffc8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F12:CAPS"></a><h3>IBUS_F12</h3>
+<pre class="programlisting">#define IBUS_F12 0xffc9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L2:CAPS"></a><h3>IBUS_L2</h3>
+<pre class="programlisting">#define IBUS_L2 0xffc9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F13:CAPS"></a><h3>IBUS_F13</h3>
+<pre class="programlisting">#define IBUS_F13 0xffca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L3:CAPS"></a><h3>IBUS_L3</h3>
+<pre class="programlisting">#define IBUS_L3 0xffca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F14:CAPS"></a><h3>IBUS_F14</h3>
+<pre class="programlisting">#define IBUS_F14 0xffcb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L4:CAPS"></a><h3>IBUS_L4</h3>
+<pre class="programlisting">#define IBUS_L4 0xffcb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F15:CAPS"></a><h3>IBUS_F15</h3>
+<pre class="programlisting">#define IBUS_F15 0xffcc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L5:CAPS"></a><h3>IBUS_L5</h3>
+<pre class="programlisting">#define IBUS_L5 0xffcc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F16:CAPS"></a><h3>IBUS_F16</h3>
+<pre class="programlisting">#define IBUS_F16 0xffcd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L6:CAPS"></a><h3>IBUS_L6</h3>
+<pre class="programlisting">#define IBUS_L6 0xffcd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F17:CAPS"></a><h3>IBUS_F17</h3>
+<pre class="programlisting">#define IBUS_F17 0xffce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L7:CAPS"></a><h3>IBUS_L7</h3>
+<pre class="programlisting">#define IBUS_L7 0xffce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F18:CAPS"></a><h3>IBUS_F18</h3>
+<pre class="programlisting">#define IBUS_F18 0xffcf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L8:CAPS"></a><h3>IBUS_L8</h3>
+<pre class="programlisting">#define IBUS_L8 0xffcf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F19:CAPS"></a><h3>IBUS_F19</h3>
+<pre class="programlisting">#define IBUS_F19 0xffd0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L9:CAPS"></a><h3>IBUS_L9</h3>
+<pre class="programlisting">#define IBUS_L9 0xffd0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F20:CAPS"></a><h3>IBUS_F20</h3>
+<pre class="programlisting">#define IBUS_F20 0xffd1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L10:CAPS"></a><h3>IBUS_L10</h3>
+<pre class="programlisting">#define IBUS_L10 0xffd1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F21:CAPS"></a><h3>IBUS_F21</h3>
+<pre class="programlisting">#define IBUS_F21 0xffd2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R1:CAPS"></a><h3>IBUS_R1</h3>
+<pre class="programlisting">#define IBUS_R1 0xffd2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F22:CAPS"></a><h3>IBUS_F22</h3>
+<pre class="programlisting">#define IBUS_F22 0xffd3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R2:CAPS"></a><h3>IBUS_R2</h3>
+<pre class="programlisting">#define IBUS_R2 0xffd3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F23:CAPS"></a><h3>IBUS_F23</h3>
+<pre class="programlisting">#define IBUS_F23 0xffd4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R3:CAPS"></a><h3>IBUS_R3</h3>
+<pre class="programlisting">#define IBUS_R3 0xffd4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F24:CAPS"></a><h3>IBUS_F24</h3>
+<pre class="programlisting">#define IBUS_F24 0xffd5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R4:CAPS"></a><h3>IBUS_R4</h3>
+<pre class="programlisting">#define IBUS_R4 0xffd5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F25:CAPS"></a><h3>IBUS_F25</h3>
+<pre class="programlisting">#define IBUS_F25 0xffd6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R5:CAPS"></a><h3>IBUS_R5</h3>
+<pre class="programlisting">#define IBUS_R5 0xffd6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F26:CAPS"></a><h3>IBUS_F26</h3>
+<pre class="programlisting">#define IBUS_F26 0xffd7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R6:CAPS"></a><h3>IBUS_R6</h3>
+<pre class="programlisting">#define IBUS_R6 0xffd7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F27:CAPS"></a><h3>IBUS_F27</h3>
+<pre class="programlisting">#define IBUS_F27 0xffd8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R7:CAPS"></a><h3>IBUS_R7</h3>
+<pre class="programlisting">#define IBUS_R7 0xffd8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F28:CAPS"></a><h3>IBUS_F28</h3>
+<pre class="programlisting">#define IBUS_F28 0xffd9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R8:CAPS"></a><h3>IBUS_R8</h3>
+<pre class="programlisting">#define IBUS_R8 0xffd9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F29:CAPS"></a><h3>IBUS_F29</h3>
+<pre class="programlisting">#define IBUS_F29 0xffda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R9:CAPS"></a><h3>IBUS_R9</h3>
+<pre class="programlisting">#define IBUS_R9 0xffda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F30:CAPS"></a><h3>IBUS_F30</h3>
+<pre class="programlisting">#define IBUS_F30 0xffdb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R10:CAPS"></a><h3>IBUS_R10</h3>
+<pre class="programlisting">#define IBUS_R10 0xffdb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F31:CAPS"></a><h3>IBUS_F31</h3>
+<pre class="programlisting">#define IBUS_F31 0xffdc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R11:CAPS"></a><h3>IBUS_R11</h3>
+<pre class="programlisting">#define IBUS_R11 0xffdc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F32:CAPS"></a><h3>IBUS_F32</h3>
+<pre class="programlisting">#define IBUS_F32 0xffdd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R12:CAPS"></a><h3>IBUS_R12</h3>
+<pre class="programlisting">#define IBUS_R12 0xffdd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F33:CAPS"></a><h3>IBUS_F33</h3>
+<pre class="programlisting">#define IBUS_F33 0xffde
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R13:CAPS"></a><h3>IBUS_R13</h3>
+<pre class="programlisting">#define IBUS_R13 0xffde
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F34:CAPS"></a><h3>IBUS_F34</h3>
+<pre class="programlisting">#define IBUS_F34 0xffdf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R14:CAPS"></a><h3>IBUS_R14</h3>
+<pre class="programlisting">#define IBUS_R14 0xffdf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F35:CAPS"></a><h3>IBUS_F35</h3>
+<pre class="programlisting">#define IBUS_F35 0xffe0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R15:CAPS"></a><h3>IBUS_R15</h3>
+<pre class="programlisting">#define IBUS_R15 0xffe0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Shift-L"></a><h3>IBUS_Shift_L</h3>
+<pre class="programlisting">#define IBUS_Shift_L 0xffe1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Shift-R"></a><h3>IBUS_Shift_R</h3>
+<pre class="programlisting">#define IBUS_Shift_R 0xffe2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Control-L"></a><h3>IBUS_Control_L</h3>
+<pre class="programlisting">#define IBUS_Control_L 0xffe3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Control-R"></a><h3>IBUS_Control_R</h3>
+<pre class="programlisting">#define IBUS_Control_R 0xffe4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Caps-Lock"></a><h3>IBUS_Caps_Lock</h3>
+<pre class="programlisting">#define IBUS_Caps_Lock 0xffe5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Shift-Lock"></a><h3>IBUS_Shift_Lock</h3>
+<pre class="programlisting">#define IBUS_Shift_Lock 0xffe6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Meta-L"></a><h3>IBUS_Meta_L</h3>
+<pre class="programlisting">#define IBUS_Meta_L 0xffe7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Meta-R"></a><h3>IBUS_Meta_R</h3>
+<pre class="programlisting">#define IBUS_Meta_R 0xffe8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Alt-L"></a><h3>IBUS_Alt_L</h3>
+<pre class="programlisting">#define IBUS_Alt_L 0xffe9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Alt-R"></a><h3>IBUS_Alt_R</h3>
+<pre class="programlisting">#define IBUS_Alt_R 0xffea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Super-L"></a><h3>IBUS_Super_L</h3>
+<pre class="programlisting">#define IBUS_Super_L 0xffeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Super-R"></a><h3>IBUS_Super_R</h3>
+<pre class="programlisting">#define IBUS_Super_R 0xffec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hyper-L"></a><h3>IBUS_Hyper_L</h3>
+<pre class="programlisting">#define IBUS_Hyper_L 0xffed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hyper-R"></a><h3>IBUS_Hyper_R</h3>
+<pre class="programlisting">#define IBUS_Hyper_R 0xffee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Lock"></a><h3>IBUS_ISO_Lock</h3>
+<pre class="programlisting">#define IBUS_ISO_Lock 0xfe01
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Level2-Latch"></a><h3>IBUS_ISO_Level2_Latch</h3>
+<pre class="programlisting">#define IBUS_ISO_Level2_Latch 0xfe02
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Level3-Shift"></a><h3>IBUS_ISO_Level3_Shift</h3>
+<pre class="programlisting">#define IBUS_ISO_Level3_Shift 0xfe03
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Level3-Latch"></a><h3>IBUS_ISO_Level3_Latch</h3>
+<pre class="programlisting">#define IBUS_ISO_Level3_Latch 0xfe04
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Level3-Lock"></a><h3>IBUS_ISO_Level3_Lock</h3>
+<pre class="programlisting">#define IBUS_ISO_Level3_Lock 0xfe05
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Level5-Shift"></a><h3>IBUS_ISO_Level5_Shift</h3>
+<pre class="programlisting">#define IBUS_ISO_Level5_Shift 0xfe11
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Level5-Latch"></a><h3>IBUS_ISO_Level5_Latch</h3>
+<pre class="programlisting">#define IBUS_ISO_Level5_Latch 0xfe12
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Level5-Lock"></a><h3>IBUS_ISO_Level5_Lock</h3>
+<pre class="programlisting">#define IBUS_ISO_Level5_Lock 0xfe13
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Group-Shift"></a><h3>IBUS_ISO_Group_Shift</h3>
+<pre class="programlisting">#define IBUS_ISO_Group_Shift 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Group-Latch"></a><h3>IBUS_ISO_Group_Latch</h3>
+<pre class="programlisting">#define IBUS_ISO_Group_Latch 0xfe06
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Group-Lock"></a><h3>IBUS_ISO_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_ISO_Group_Lock 0xfe07
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Next-Group"></a><h3>IBUS_ISO_Next_Group</h3>
+<pre class="programlisting">#define IBUS_ISO_Next_Group 0xfe08
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Next-Group-Lock"></a><h3>IBUS_ISO_Next_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_ISO_Next_Group_Lock 0xfe09
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Prev-Group"></a><h3>IBUS_ISO_Prev_Group</h3>
+<pre class="programlisting">#define IBUS_ISO_Prev_Group 0xfe0a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Prev-Group-Lock"></a><h3>IBUS_ISO_Prev_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_ISO_Prev_Group_Lock 0xfe0b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-First-Group"></a><h3>IBUS_ISO_First_Group</h3>
+<pre class="programlisting">#define IBUS_ISO_First_Group 0xfe0c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-First-Group-Lock"></a><h3>IBUS_ISO_First_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_ISO_First_Group_Lock 0xfe0d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Last-Group"></a><h3>IBUS_ISO_Last_Group</h3>
+<pre class="programlisting">#define IBUS_ISO_Last_Group 0xfe0e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Last-Group-Lock"></a><h3>IBUS_ISO_Last_Group_Lock</h3>
+<pre class="programlisting">#define IBUS_ISO_Last_Group_Lock 0xfe0f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Left-Tab"></a><h3>IBUS_ISO_Left_Tab</h3>
+<pre class="programlisting">#define IBUS_ISO_Left_Tab 0xfe20
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Move-Line-Up"></a><h3>IBUS_ISO_Move_Line_Up</h3>
+<pre class="programlisting">#define IBUS_ISO_Move_Line_Up 0xfe21
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Move-Line-Down"></a><h3>IBUS_ISO_Move_Line_Down</h3>
+<pre class="programlisting">#define IBUS_ISO_Move_Line_Down 0xfe22
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Partial-Line-Up"></a><h3>IBUS_ISO_Partial_Line_Up</h3>
+<pre class="programlisting">#define IBUS_ISO_Partial_Line_Up 0xfe23
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Partial-Line-Down"></a><h3>IBUS_ISO_Partial_Line_Down</h3>
+<pre class="programlisting">#define IBUS_ISO_Partial_Line_Down 0xfe24
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Partial-Space-Left"></a><h3>IBUS_ISO_Partial_Space_Left</h3>
+<pre class="programlisting">#define IBUS_ISO_Partial_Space_Left 0xfe25
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Partial-Space-Right"></a><h3>IBUS_ISO_Partial_Space_Right</h3>
+<pre class="programlisting">#define IBUS_ISO_Partial_Space_Right 0xfe26
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Set-Margin-Left"></a><h3>IBUS_ISO_Set_Margin_Left</h3>
+<pre class="programlisting">#define IBUS_ISO_Set_Margin_Left 0xfe27
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Set-Margin-Right"></a><h3>IBUS_ISO_Set_Margin_Right</h3>
+<pre class="programlisting">#define IBUS_ISO_Set_Margin_Right 0xfe28
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Release-Margin-Left"></a><h3>IBUS_ISO_Release_Margin_Left</h3>
+<pre class="programlisting">#define IBUS_ISO_Release_Margin_Left 0xfe29
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Release-Margin-Right"></a><h3>IBUS_ISO_Release_Margin_Right</h3>
+<pre class="programlisting">#define IBUS_ISO_Release_Margin_Right 0xfe2a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Release-Both-Margins"></a><h3>IBUS_ISO_Release_Both_Margins</h3>
+<pre class="programlisting">#define IBUS_ISO_Release_Both_Margins 0xfe2b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Fast-Cursor-Left"></a><h3>IBUS_ISO_Fast_Cursor_Left</h3>
+<pre class="programlisting">#define IBUS_ISO_Fast_Cursor_Left 0xfe2c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Fast-Cursor-Right"></a><h3>IBUS_ISO_Fast_Cursor_Right</h3>
+<pre class="programlisting">#define IBUS_ISO_Fast_Cursor_Right 0xfe2d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Fast-Cursor-Up"></a><h3>IBUS_ISO_Fast_Cursor_Up</h3>
+<pre class="programlisting">#define IBUS_ISO_Fast_Cursor_Up 0xfe2e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Fast-Cursor-Down"></a><h3>IBUS_ISO_Fast_Cursor_Down</h3>
+<pre class="programlisting">#define IBUS_ISO_Fast_Cursor_Down 0xfe2f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Continuous-Underline"></a><h3>IBUS_ISO_Continuous_Underline</h3>
+<pre class="programlisting">#define IBUS_ISO_Continuous_Underline 0xfe30
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Discontinuous-Underline"></a><h3>IBUS_ISO_Discontinuous_Underline</h3>
+<pre class="programlisting">#define IBUS_ISO_Discontinuous_Underline 0xfe31
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Emphasize"></a><h3>IBUS_ISO_Emphasize</h3>
+<pre class="programlisting">#define IBUS_ISO_Emphasize 0xfe32
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Center-Object"></a><h3>IBUS_ISO_Center_Object</h3>
+<pre class="programlisting">#define IBUS_ISO_Center_Object 0xfe33
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ISO-Enter"></a><h3>IBUS_ISO_Enter</h3>
+<pre class="programlisting">#define IBUS_ISO_Enter 0xfe34
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-grave"></a><h3>IBUS_dead_grave</h3>
+<pre class="programlisting">#define IBUS_dead_grave 0xfe50
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-acute"></a><h3>IBUS_dead_acute</h3>
+<pre class="programlisting">#define IBUS_dead_acute 0xfe51
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-circumflex"></a><h3>IBUS_dead_circumflex</h3>
+<pre class="programlisting">#define IBUS_dead_circumflex 0xfe52
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-tilde"></a><h3>IBUS_dead_tilde</h3>
+<pre class="programlisting">#define IBUS_dead_tilde 0xfe53
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-perispomeni"></a><h3>IBUS_dead_perispomeni</h3>
+<pre class="programlisting">#define IBUS_dead_perispomeni 0xfe53
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-macron"></a><h3>IBUS_dead_macron</h3>
+<pre class="programlisting">#define IBUS_dead_macron 0xfe54
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-breve"></a><h3>IBUS_dead_breve</h3>
+<pre class="programlisting">#define IBUS_dead_breve 0xfe55
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-abovedot"></a><h3>IBUS_dead_abovedot</h3>
+<pre class="programlisting">#define IBUS_dead_abovedot 0xfe56
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-diaeresis"></a><h3>IBUS_dead_diaeresis</h3>
+<pre class="programlisting">#define IBUS_dead_diaeresis 0xfe57
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-abovering"></a><h3>IBUS_dead_abovering</h3>
+<pre class="programlisting">#define IBUS_dead_abovering 0xfe58
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-doubleacute"></a><h3>IBUS_dead_doubleacute</h3>
+<pre class="programlisting">#define IBUS_dead_doubleacute 0xfe59
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-caron"></a><h3>IBUS_dead_caron</h3>
+<pre class="programlisting">#define IBUS_dead_caron 0xfe5a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-cedilla"></a><h3>IBUS_dead_cedilla</h3>
+<pre class="programlisting">#define IBUS_dead_cedilla 0xfe5b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-ogonek"></a><h3>IBUS_dead_ogonek</h3>
+<pre class="programlisting">#define IBUS_dead_ogonek 0xfe5c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-iota"></a><h3>IBUS_dead_iota</h3>
+<pre class="programlisting">#define IBUS_dead_iota 0xfe5d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-voiced-sound"></a><h3>IBUS_dead_voiced_sound</h3>
+<pre class="programlisting">#define IBUS_dead_voiced_sound 0xfe5e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-semivoiced-sound"></a><h3>IBUS_dead_semivoiced_sound</h3>
+<pre class="programlisting">#define IBUS_dead_semivoiced_sound 0xfe5f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-belowdot"></a><h3>IBUS_dead_belowdot</h3>
+<pre class="programlisting">#define IBUS_dead_belowdot 0xfe60
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-hook"></a><h3>IBUS_dead_hook</h3>
+<pre class="programlisting">#define IBUS_dead_hook 0xfe61
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-horn"></a><h3>IBUS_dead_horn</h3>
+<pre class="programlisting">#define IBUS_dead_horn 0xfe62
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-stroke"></a><h3>IBUS_dead_stroke</h3>
+<pre class="programlisting">#define IBUS_dead_stroke 0xfe63
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-abovecomma"></a><h3>IBUS_dead_abovecomma</h3>
+<pre class="programlisting">#define IBUS_dead_abovecomma 0xfe64
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-psili"></a><h3>IBUS_dead_psili</h3>
+<pre class="programlisting">#define IBUS_dead_psili 0xfe64
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-abovereversedcomma"></a><h3>IBUS_dead_abovereversedcomma</h3>
+<pre class="programlisting">#define IBUS_dead_abovereversedcomma 0xfe65
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-dasia"></a><h3>IBUS_dead_dasia</h3>
+<pre class="programlisting">#define IBUS_dead_dasia 0xfe65
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-belowring"></a><h3>IBUS_dead_belowring</h3>
+<pre class="programlisting">#define IBUS_dead_belowring 0xfe67
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-belowmacron"></a><h3>IBUS_dead_belowmacron</h3>
+<pre class="programlisting">#define IBUS_dead_belowmacron 0xfe68
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-belowcircumflex"></a><h3>IBUS_dead_belowcircumflex</h3>
+<pre class="programlisting">#define IBUS_dead_belowcircumflex 0xfe69
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-belowtilde"></a><h3>IBUS_dead_belowtilde</h3>
+<pre class="programlisting">#define IBUS_dead_belowtilde 0xfe6a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-belowbreve"></a><h3>IBUS_dead_belowbreve</h3>
+<pre class="programlisting">#define IBUS_dead_belowbreve 0xfe6b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dead-belowdiaeresis"></a><h3>IBUS_dead_belowdiaeresis</h3>
+<pre class="programlisting">#define IBUS_dead_belowdiaeresis 0xfe6c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-First-Virtual-Screen"></a><h3>IBUS_First_Virtual_Screen</h3>
+<pre class="programlisting">#define IBUS_First_Virtual_Screen 0xfed0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Prev-Virtual-Screen"></a><h3>IBUS_Prev_Virtual_Screen</h3>
+<pre class="programlisting">#define IBUS_Prev_Virtual_Screen 0xfed1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Next-Virtual-Screen"></a><h3>IBUS_Next_Virtual_Screen</h3>
+<pre class="programlisting">#define IBUS_Next_Virtual_Screen 0xfed2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Last-Virtual-Screen"></a><h3>IBUS_Last_Virtual_Screen</h3>
+<pre class="programlisting">#define IBUS_Last_Virtual_Screen 0xfed4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Terminate-Server"></a><h3>IBUS_Terminate_Server</h3>
+<pre class="programlisting">#define IBUS_Terminate_Server 0xfed5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-AccessX-Enable"></a><h3>IBUS_AccessX_Enable</h3>
+<pre class="programlisting">#define IBUS_AccessX_Enable 0xfe70
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-AccessX-Feedback-Enable"></a><h3>IBUS_AccessX_Feedback_Enable</h3>
+<pre class="programlisting">#define IBUS_AccessX_Feedback_Enable 0xfe71
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-RepeatKeys-Enable"></a><h3>IBUS_RepeatKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_RepeatKeys_Enable 0xfe72
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-SlowKeys-Enable"></a><h3>IBUS_SlowKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_SlowKeys_Enable 0xfe73
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-BounceKeys-Enable"></a><h3>IBUS_BounceKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_BounceKeys_Enable 0xfe74
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-StickyKeys-Enable"></a><h3>IBUS_StickyKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_StickyKeys_Enable 0xfe75
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-MouseKeys-Enable"></a><h3>IBUS_MouseKeys_Enable</h3>
+<pre class="programlisting">#define IBUS_MouseKeys_Enable 0xfe76
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-MouseKeys-Accel-Enable"></a><h3>IBUS_MouseKeys_Accel_Enable</h3>
+<pre class="programlisting">#define IBUS_MouseKeys_Accel_Enable 0xfe77
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Overlay1-Enable"></a><h3>IBUS_Overlay1_Enable</h3>
+<pre class="programlisting">#define IBUS_Overlay1_Enable 0xfe78
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Overlay2-Enable"></a><h3>IBUS_Overlay2_Enable</h3>
+<pre class="programlisting">#define IBUS_Overlay2_Enable 0xfe79
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-AudibleBell-Enable"></a><h3>IBUS_AudibleBell_Enable</h3>
+<pre class="programlisting">#define IBUS_AudibleBell_Enable 0xfe7a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Left"></a><h3>IBUS_Pointer_Left</h3>
+<pre class="programlisting">#define IBUS_Pointer_Left 0xfee0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Right"></a><h3>IBUS_Pointer_Right</h3>
+<pre class="programlisting">#define IBUS_Pointer_Right 0xfee1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Up"></a><h3>IBUS_Pointer_Up</h3>
+<pre class="programlisting">#define IBUS_Pointer_Up 0xfee2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Down"></a><h3>IBUS_Pointer_Down</h3>
+<pre class="programlisting">#define IBUS_Pointer_Down 0xfee3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-UpLeft"></a><h3>IBUS_Pointer_UpLeft</h3>
+<pre class="programlisting">#define IBUS_Pointer_UpLeft 0xfee4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-UpRight"></a><h3>IBUS_Pointer_UpRight</h3>
+<pre class="programlisting">#define IBUS_Pointer_UpRight 0xfee5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DownLeft"></a><h3>IBUS_Pointer_DownLeft</h3>
+<pre class="programlisting">#define IBUS_Pointer_DownLeft 0xfee6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DownRight"></a><h3>IBUS_Pointer_DownRight</h3>
+<pre class="programlisting">#define IBUS_Pointer_DownRight 0xfee7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Button-Dflt"></a><h3>IBUS_Pointer_Button_Dflt</h3>
+<pre class="programlisting">#define IBUS_Pointer_Button_Dflt 0xfee8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Button1"></a><h3>IBUS_Pointer_Button1</h3>
+<pre class="programlisting">#define IBUS_Pointer_Button1 0xfee9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Button2"></a><h3>IBUS_Pointer_Button2</h3>
+<pre class="programlisting">#define IBUS_Pointer_Button2 0xfeea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Button3"></a><h3>IBUS_Pointer_Button3</h3>
+<pre class="programlisting">#define IBUS_Pointer_Button3 0xfeeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Button4"></a><h3>IBUS_Pointer_Button4</h3>
+<pre class="programlisting">#define IBUS_Pointer_Button4 0xfeec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Button5"></a><h3>IBUS_Pointer_Button5</h3>
+<pre class="programlisting">#define IBUS_Pointer_Button5 0xfeed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DblClick-Dflt"></a><h3>IBUS_Pointer_DblClick_Dflt</h3>
+<pre class="programlisting">#define IBUS_Pointer_DblClick_Dflt 0xfeee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DblClick1"></a><h3>IBUS_Pointer_DblClick1</h3>
+<pre class="programlisting">#define IBUS_Pointer_DblClick1 0xfeef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DblClick2"></a><h3>IBUS_Pointer_DblClick2</h3>
+<pre class="programlisting">#define IBUS_Pointer_DblClick2 0xfef0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DblClick3"></a><h3>IBUS_Pointer_DblClick3</h3>
+<pre class="programlisting">#define IBUS_Pointer_DblClick3 0xfef1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DblClick4"></a><h3>IBUS_Pointer_DblClick4</h3>
+<pre class="programlisting">#define IBUS_Pointer_DblClick4 0xfef2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DblClick5"></a><h3>IBUS_Pointer_DblClick5</h3>
+<pre class="programlisting">#define IBUS_Pointer_DblClick5 0xfef3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Drag-Dflt"></a><h3>IBUS_Pointer_Drag_Dflt</h3>
+<pre class="programlisting">#define IBUS_Pointer_Drag_Dflt 0xfef4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Drag1"></a><h3>IBUS_Pointer_Drag1</h3>
+<pre class="programlisting">#define IBUS_Pointer_Drag1 0xfef5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Drag2"></a><h3>IBUS_Pointer_Drag2</h3>
+<pre class="programlisting">#define IBUS_Pointer_Drag2 0xfef6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Drag3"></a><h3>IBUS_Pointer_Drag3</h3>
+<pre class="programlisting">#define IBUS_Pointer_Drag3 0xfef7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Drag4"></a><h3>IBUS_Pointer_Drag4</h3>
+<pre class="programlisting">#define IBUS_Pointer_Drag4 0xfef8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Drag5"></a><h3>IBUS_Pointer_Drag5</h3>
+<pre class="programlisting">#define IBUS_Pointer_Drag5 0xfefd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-EnableKeys"></a><h3>IBUS_Pointer_EnableKeys</h3>
+<pre class="programlisting">#define IBUS_Pointer_EnableKeys 0xfef9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-Accelerate"></a><h3>IBUS_Pointer_Accelerate</h3>
+<pre class="programlisting">#define IBUS_Pointer_Accelerate 0xfefa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DfltBtnNext"></a><h3>IBUS_Pointer_DfltBtnNext</h3>
+<pre class="programlisting">#define IBUS_Pointer_DfltBtnNext 0xfefb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pointer-DfltBtnPrev"></a><h3>IBUS_Pointer_DfltBtnPrev</h3>
+<pre class="programlisting">#define IBUS_Pointer_DfltBtnPrev 0xfefc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Duplicate"></a><h3>IBUS_3270_Duplicate</h3>
+<pre class="programlisting">#define IBUS_3270_Duplicate 0xfd01
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-FieldMark"></a><h3>IBUS_3270_FieldMark</h3>
+<pre class="programlisting">#define IBUS_3270_FieldMark 0xfd02
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Right2"></a><h3>IBUS_3270_Right2</h3>
+<pre class="programlisting">#define IBUS_3270_Right2 0xfd03
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Left2"></a><h3>IBUS_3270_Left2</h3>
+<pre class="programlisting">#define IBUS_3270_Left2 0xfd04
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-BackTab"></a><h3>IBUS_3270_BackTab</h3>
+<pre class="programlisting">#define IBUS_3270_BackTab 0xfd05
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-EraseEOF"></a><h3>IBUS_3270_EraseEOF</h3>
+<pre class="programlisting">#define IBUS_3270_EraseEOF 0xfd06
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-EraseInput"></a><h3>IBUS_3270_EraseInput</h3>
+<pre class="programlisting">#define IBUS_3270_EraseInput 0xfd07
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Reset"></a><h3>IBUS_3270_Reset</h3>
+<pre class="programlisting">#define IBUS_3270_Reset 0xfd08
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Quit"></a><h3>IBUS_3270_Quit</h3>
+<pre class="programlisting">#define IBUS_3270_Quit 0xfd09
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-PA1:CAPS"></a><h3>IBUS_3270_PA1</h3>
+<pre class="programlisting">#define IBUS_3270_PA1 0xfd0a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-PA2:CAPS"></a><h3>IBUS_3270_PA2</h3>
+<pre class="programlisting">#define IBUS_3270_PA2 0xfd0b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-PA3:CAPS"></a><h3>IBUS_3270_PA3</h3>
+<pre class="programlisting">#define IBUS_3270_PA3 0xfd0c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Test"></a><h3>IBUS_3270_Test</h3>
+<pre class="programlisting">#define IBUS_3270_Test 0xfd0d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Attn"></a><h3>IBUS_3270_Attn</h3>
+<pre class="programlisting">#define IBUS_3270_Attn 0xfd0e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-CursorBlink"></a><h3>IBUS_3270_CursorBlink</h3>
+<pre class="programlisting">#define IBUS_3270_CursorBlink 0xfd0f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-AltCursor"></a><h3>IBUS_3270_AltCursor</h3>
+<pre class="programlisting">#define IBUS_3270_AltCursor 0xfd10
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-KeyClick"></a><h3>IBUS_3270_KeyClick</h3>
+<pre class="programlisting">#define IBUS_3270_KeyClick 0xfd11
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Jump"></a><h3>IBUS_3270_Jump</h3>
+<pre class="programlisting">#define IBUS_3270_Jump 0xfd12
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Ident"></a><h3>IBUS_3270_Ident</h3>
+<pre class="programlisting">#define IBUS_3270_Ident 0xfd13
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Rule"></a><h3>IBUS_3270_Rule</h3>
+<pre class="programlisting">#define IBUS_3270_Rule 0xfd14
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Copy"></a><h3>IBUS_3270_Copy</h3>
+<pre class="programlisting">#define IBUS_3270_Copy 0xfd15
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Play"></a><h3>IBUS_3270_Play</h3>
+<pre class="programlisting">#define IBUS_3270_Play 0xfd16
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Setup"></a><h3>IBUS_3270_Setup</h3>
+<pre class="programlisting">#define IBUS_3270_Setup 0xfd17
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Record"></a><h3>IBUS_3270_Record</h3>
+<pre class="programlisting">#define IBUS_3270_Record 0xfd18
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-ChangeScreen"></a><h3>IBUS_3270_ChangeScreen</h3>
+<pre class="programlisting">#define IBUS_3270_ChangeScreen 0xfd19
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-DeleteWord"></a><h3>IBUS_3270_DeleteWord</h3>
+<pre class="programlisting">#define IBUS_3270_DeleteWord 0xfd1a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-ExSelect"></a><h3>IBUS_3270_ExSelect</h3>
+<pre class="programlisting">#define IBUS_3270_ExSelect 0xfd1b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-CursorSelect"></a><h3>IBUS_3270_CursorSelect</h3>
+<pre class="programlisting">#define IBUS_3270_CursorSelect 0xfd1c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-PrintScreen"></a><h3>IBUS_3270_PrintScreen</h3>
+<pre class="programlisting">#define IBUS_3270_PrintScreen 0xfd1d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3270-Enter"></a><h3>IBUS_3270_Enter</h3>
+<pre class="programlisting">#define IBUS_3270_Enter 0xfd1e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-space"></a><h3>IBUS_space</h3>
+<pre class="programlisting">#define IBUS_space 0x020
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-exclam"></a><h3>IBUS_exclam</h3>
+<pre class="programlisting">#define IBUS_exclam 0x021
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-quotedbl"></a><h3>IBUS_quotedbl</h3>
+<pre class="programlisting">#define IBUS_quotedbl 0x022
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-numbersign"></a><h3>IBUS_numbersign</h3>
+<pre class="programlisting">#define IBUS_numbersign 0x023
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dollar"></a><h3>IBUS_dollar</h3>
+<pre class="programlisting">#define IBUS_dollar 0x024
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-percent"></a><h3>IBUS_percent</h3>
+<pre class="programlisting">#define IBUS_percent 0x025
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ampersand"></a><h3>IBUS_ampersand</h3>
+<pre class="programlisting">#define IBUS_ampersand 0x026
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-apostrophe"></a><h3>IBUS_apostrophe</h3>
+<pre class="programlisting">#define IBUS_apostrophe 0x027
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-quoteright"></a><h3>IBUS_quoteright</h3>
+<pre class="programlisting">#define IBUS_quoteright 0x027
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-parenleft"></a><h3>IBUS_parenleft</h3>
+<pre class="programlisting">#define IBUS_parenleft 0x028
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-parenright"></a><h3>IBUS_parenright</h3>
+<pre class="programlisting">#define IBUS_parenright 0x029
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-asterisk"></a><h3>IBUS_asterisk</h3>
+<pre class="programlisting">#define IBUS_asterisk 0x02a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-plus"></a><h3>IBUS_plus</h3>
+<pre class="programlisting">#define IBUS_plus 0x02b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-comma"></a><h3>IBUS_comma</h3>
+<pre class="programlisting">#define IBUS_comma 0x02c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-minus"></a><h3>IBUS_minus</h3>
+<pre class="programlisting">#define IBUS_minus 0x02d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-period"></a><h3>IBUS_period</h3>
+<pre class="programlisting">#define IBUS_period 0x02e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-slash"></a><h3>IBUS_slash</h3>
+<pre class="programlisting">#define IBUS_slash 0x02f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-0:CAPS"></a><h3>IBUS_0</h3>
+<pre class="programlisting">#define IBUS_0 0x030
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-1:CAPS"></a><h3>IBUS_1</h3>
+<pre class="programlisting">#define IBUS_1 0x031
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-2:CAPS"></a><h3>IBUS_2</h3>
+<pre class="programlisting">#define IBUS_2 0x032
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-3:CAPS"></a><h3>IBUS_3</h3>
+<pre class="programlisting">#define IBUS_3 0x033
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-4:CAPS"></a><h3>IBUS_4</h3>
+<pre class="programlisting">#define IBUS_4 0x034
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-5:CAPS"></a><h3>IBUS_5</h3>
+<pre class="programlisting">#define IBUS_5 0x035
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-6:CAPS"></a><h3>IBUS_6</h3>
+<pre class="programlisting">#define IBUS_6 0x036
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-7:CAPS"></a><h3>IBUS_7</h3>
+<pre class="programlisting">#define IBUS_7 0x037
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-8:CAPS"></a><h3>IBUS_8</h3>
+<pre class="programlisting">#define IBUS_8 0x038
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-9:CAPS"></a><h3>IBUS_9</h3>
+<pre class="programlisting">#define IBUS_9 0x039
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-colon"></a><h3>IBUS_colon</h3>
+<pre class="programlisting">#define IBUS_colon 0x03a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-semicolon"></a><h3>IBUS_semicolon</h3>
+<pre class="programlisting">#define IBUS_semicolon 0x03b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-less"></a><h3>IBUS_less</h3>
+<pre class="programlisting">#define IBUS_less 0x03c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-equal"></a><h3>IBUS_equal</h3>
+<pre class="programlisting">#define IBUS_equal 0x03d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-greater"></a><h3>IBUS_greater</h3>
+<pre class="programlisting">#define IBUS_greater 0x03e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-question"></a><h3>IBUS_question</h3>
+<pre class="programlisting">#define IBUS_question 0x03f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-at"></a><h3>IBUS_at</h3>
+<pre class="programlisting">#define IBUS_at 0x040
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-A:CAPS"></a><h3>IBUS_A</h3>
+<pre class="programlisting">#define IBUS_A 0x041
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-B:CAPS"></a><h3>IBUS_B</h3>
+<pre class="programlisting">#define IBUS_B 0x042
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-C:CAPS"></a><h3>IBUS_C</h3>
+<pre class="programlisting">#define IBUS_C 0x043
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-D:CAPS"></a><h3>IBUS_D</h3>
+<pre class="programlisting">#define IBUS_D 0x044
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-E:CAPS"></a><h3>IBUS_E</h3>
+<pre class="programlisting">#define IBUS_E 0x045
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-F:CAPS"></a><h3>IBUS_F</h3>
+<pre class="programlisting">#define IBUS_F 0x046
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-G:CAPS"></a><h3>IBUS_G</h3>
+<pre class="programlisting">#define IBUS_G 0x047
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-H:CAPS"></a><h3>IBUS_H</h3>
+<pre class="programlisting">#define IBUS_H 0x048
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-I:CAPS"></a><h3>IBUS_I</h3>
+<pre class="programlisting">#define IBUS_I 0x049
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-J:CAPS"></a><h3>IBUS_J</h3>
+<pre class="programlisting">#define IBUS_J 0x04a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-K:CAPS"></a><h3>IBUS_K</h3>
+<pre class="programlisting">#define IBUS_K 0x04b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-L:CAPS"></a><h3>IBUS_L</h3>
+<pre class="programlisting">#define IBUS_L 0x04c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-M:CAPS"></a><h3>IBUS_M</h3>
+<pre class="programlisting">#define IBUS_M 0x04d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-N:CAPS"></a><h3>IBUS_N</h3>
+<pre class="programlisting">#define IBUS_N 0x04e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-O:CAPS"></a><h3>IBUS_O</h3>
+<pre class="programlisting">#define IBUS_O 0x04f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-P:CAPS"></a><h3>IBUS_P</h3>
+<pre class="programlisting">#define IBUS_P 0x050
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Q:CAPS"></a><h3>IBUS_Q</h3>
+<pre class="programlisting">#define IBUS_Q 0x051
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-R:CAPS"></a><h3>IBUS_R</h3>
+<pre class="programlisting">#define IBUS_R 0x052
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-S:CAPS"></a><h3>IBUS_S</h3>
+<pre class="programlisting">#define IBUS_S 0x053
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-T:CAPS"></a><h3>IBUS_T</h3>
+<pre class="programlisting">#define IBUS_T 0x054
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-U:CAPS"></a><h3>IBUS_U</h3>
+<pre class="programlisting">#define IBUS_U 0x055
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-V:CAPS"></a><h3>IBUS_V</h3>
+<pre class="programlisting">#define IBUS_V 0x056
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-W:CAPS"></a><h3>IBUS_W</h3>
+<pre class="programlisting">#define IBUS_W 0x057
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-X:CAPS"></a><h3>IBUS_X</h3>
+<pre class="programlisting">#define IBUS_X 0x058
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Y:CAPS"></a><h3>IBUS_Y</h3>
+<pre class="programlisting">#define IBUS_Y 0x059
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Z:CAPS"></a><h3>IBUS_Z</h3>
+<pre class="programlisting">#define IBUS_Z 0x05a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-bracketleft"></a><h3>IBUS_bracketleft</h3>
+<pre class="programlisting">#define IBUS_bracketleft 0x05b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-backslash"></a><h3>IBUS_backslash</h3>
+<pre class="programlisting">#define IBUS_backslash 0x05c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-bracketright"></a><h3>IBUS_bracketright</h3>
+<pre class="programlisting">#define IBUS_bracketright 0x05d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-asciicircum"></a><h3>IBUS_asciicircum</h3>
+<pre class="programlisting">#define IBUS_asciicircum 0x05e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-underscore"></a><h3>IBUS_underscore</h3>
+<pre class="programlisting">#define IBUS_underscore 0x05f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-grave"></a><h3>IBUS_grave</h3>
+<pre class="programlisting">#define IBUS_grave 0x060
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-quoteleft"></a><h3>IBUS_quoteleft</h3>
+<pre class="programlisting">#define IBUS_quoteleft 0x060
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-a"></a><h3>IBUS_a</h3>
+<pre class="programlisting">#define IBUS_a 0x061
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-b"></a><h3>IBUS_b</h3>
+<pre class="programlisting">#define IBUS_b 0x062
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-c"></a><h3>IBUS_c</h3>
+<pre class="programlisting">#define IBUS_c 0x063
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-d"></a><h3>IBUS_d</h3>
+<pre class="programlisting">#define IBUS_d 0x064
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-e"></a><h3>IBUS_e</h3>
+<pre class="programlisting">#define IBUS_e 0x065
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-f"></a><h3>IBUS_f</h3>
+<pre class="programlisting">#define IBUS_f 0x066
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-g"></a><h3>IBUS_g</h3>
+<pre class="programlisting">#define IBUS_g 0x067
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-h"></a><h3>IBUS_h</h3>
+<pre class="programlisting">#define IBUS_h 0x068
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-i"></a><h3>IBUS_i</h3>
+<pre class="programlisting">#define IBUS_i 0x069
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-j"></a><h3>IBUS_j</h3>
+<pre class="programlisting">#define IBUS_j 0x06a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-k"></a><h3>IBUS_k</h3>
+<pre class="programlisting">#define IBUS_k 0x06b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-l"></a><h3>IBUS_l</h3>
+<pre class="programlisting">#define IBUS_l 0x06c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-m"></a><h3>IBUS_m</h3>
+<pre class="programlisting">#define IBUS_m 0x06d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-n"></a><h3>IBUS_n</h3>
+<pre class="programlisting">#define IBUS_n 0x06e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-o"></a><h3>IBUS_o</h3>
+<pre class="programlisting">#define IBUS_o 0x06f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-p"></a><h3>IBUS_p</h3>
+<pre class="programlisting">#define IBUS_p 0x070
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-q"></a><h3>IBUS_q</h3>
+<pre class="programlisting">#define IBUS_q 0x071
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-r"></a><h3>IBUS_r</h3>
+<pre class="programlisting">#define IBUS_r 0x072
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-s"></a><h3>IBUS_s</h3>
+<pre class="programlisting">#define IBUS_s 0x073
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-t"></a><h3>IBUS_t</h3>
+<pre class="programlisting">#define IBUS_t 0x074
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-u"></a><h3>IBUS_u</h3>
+<pre class="programlisting">#define IBUS_u 0x075
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-v"></a><h3>IBUS_v</h3>
+<pre class="programlisting">#define IBUS_v 0x076
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-w"></a><h3>IBUS_w</h3>
+<pre class="programlisting">#define IBUS_w 0x077
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-x"></a><h3>IBUS_x</h3>
+<pre class="programlisting">#define IBUS_x 0x078
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-y"></a><h3>IBUS_y</h3>
+<pre class="programlisting">#define IBUS_y 0x079
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-z"></a><h3>IBUS_z</h3>
+<pre class="programlisting">#define IBUS_z 0x07a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braceleft"></a><h3>IBUS_braceleft</h3>
+<pre class="programlisting">#define IBUS_braceleft 0x07b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-bar"></a><h3>IBUS_bar</h3>
+<pre class="programlisting">#define IBUS_bar 0x07c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braceright"></a><h3>IBUS_braceright</h3>
+<pre class="programlisting">#define IBUS_braceright 0x07d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-asciitilde"></a><h3>IBUS_asciitilde</h3>
+<pre class="programlisting">#define IBUS_asciitilde 0x07e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-nobreakspace"></a><h3>IBUS_nobreakspace</h3>
+<pre class="programlisting">#define IBUS_nobreakspace 0x0a0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-exclamdown"></a><h3>IBUS_exclamdown</h3>
+<pre class="programlisting">#define IBUS_exclamdown 0x0a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-cent"></a><h3>IBUS_cent</h3>
+<pre class="programlisting">#define IBUS_cent 0x0a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-sterling"></a><h3>IBUS_sterling</h3>
+<pre class="programlisting">#define IBUS_sterling 0x0a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-currency"></a><h3>IBUS_currency</h3>
+<pre class="programlisting">#define IBUS_currency 0x0a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-yen"></a><h3>IBUS_yen</h3>
+<pre class="programlisting">#define IBUS_yen 0x0a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-brokenbar"></a><h3>IBUS_brokenbar</h3>
+<pre class="programlisting">#define IBUS_brokenbar 0x0a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-section"></a><h3>IBUS_section</h3>
+<pre class="programlisting">#define IBUS_section 0x0a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-diaeresis"></a><h3>IBUS_diaeresis</h3>
+<pre class="programlisting">#define IBUS_diaeresis 0x0a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-copyright"></a><h3>IBUS_copyright</h3>
+<pre class="programlisting">#define IBUS_copyright 0x0a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ordfeminine"></a><h3>IBUS_ordfeminine</h3>
+<pre class="programlisting">#define IBUS_ordfeminine 0x0aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-guillemotleft"></a><h3>IBUS_guillemotleft</h3>
+<pre class="programlisting">#define IBUS_guillemotleft 0x0ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-notsign"></a><h3>IBUS_notsign</h3>
+<pre class="programlisting">#define IBUS_notsign 0x0ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hyphen"></a><h3>IBUS_hyphen</h3>
+<pre class="programlisting">#define IBUS_hyphen 0x0ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-registered"></a><h3>IBUS_registered</h3>
+<pre class="programlisting">#define IBUS_registered 0x0ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-macron"></a><h3>IBUS_macron</h3>
+<pre class="programlisting">#define IBUS_macron 0x0af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-degree"></a><h3>IBUS_degree</h3>
+<pre class="programlisting">#define IBUS_degree 0x0b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-plusminus"></a><h3>IBUS_plusminus</h3>
+<pre class="programlisting">#define IBUS_plusminus 0x0b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-twosuperior"></a><h3>IBUS_twosuperior</h3>
+<pre class="programlisting">#define IBUS_twosuperior 0x0b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-threesuperior"></a><h3>IBUS_threesuperior</h3>
+<pre class="programlisting">#define IBUS_threesuperior 0x0b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-acute"></a><h3>IBUS_acute</h3>
+<pre class="programlisting">#define IBUS_acute 0x0b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-mu"></a><h3>IBUS_mu</h3>
+<pre class="programlisting">#define IBUS_mu 0x0b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-paragraph"></a><h3>IBUS_paragraph</h3>
+<pre class="programlisting">#define IBUS_paragraph 0x0b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-periodcentered"></a><h3>IBUS_periodcentered</h3>
+<pre class="programlisting">#define IBUS_periodcentered 0x0b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-cedilla"></a><h3>IBUS_cedilla</h3>
+<pre class="programlisting">#define IBUS_cedilla 0x0b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-onesuperior"></a><h3>IBUS_onesuperior</h3>
+<pre class="programlisting">#define IBUS_onesuperior 0x0b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-masculine"></a><h3>IBUS_masculine</h3>
+<pre class="programlisting">#define IBUS_masculine 0x0ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-guillemotright"></a><h3>IBUS_guillemotright</h3>
+<pre class="programlisting">#define IBUS_guillemotright 0x0bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-onequarter"></a><h3>IBUS_onequarter</h3>
+<pre class="programlisting">#define IBUS_onequarter 0x0bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-onehalf"></a><h3>IBUS_onehalf</h3>
+<pre class="programlisting">#define IBUS_onehalf 0x0bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-threequarters"></a><h3>IBUS_threequarters</h3>
+<pre class="programlisting">#define IBUS_threequarters 0x0be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-questiondown"></a><h3>IBUS_questiondown</h3>
+<pre class="programlisting">#define IBUS_questiondown 0x0bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Agrave"></a><h3>IBUS_Agrave</h3>
+<pre class="programlisting">#define IBUS_Agrave 0x0c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Aacute"></a><h3>IBUS_Aacute</h3>
+<pre class="programlisting">#define IBUS_Aacute 0x0c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Acircumflex"></a><h3>IBUS_Acircumflex</h3>
+<pre class="programlisting">#define IBUS_Acircumflex 0x0c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Atilde"></a><h3>IBUS_Atilde</h3>
+<pre class="programlisting">#define IBUS_Atilde 0x0c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Adiaeresis"></a><h3>IBUS_Adiaeresis</h3>
+<pre class="programlisting">#define IBUS_Adiaeresis 0x0c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Aring"></a><h3>IBUS_Aring</h3>
+<pre class="programlisting">#define IBUS_Aring 0x0c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-AE:CAPS"></a><h3>IBUS_AE</h3>
+<pre class="programlisting">#define IBUS_AE 0x0c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ccedilla"></a><h3>IBUS_Ccedilla</h3>
+<pre class="programlisting">#define IBUS_Ccedilla 0x0c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Egrave"></a><h3>IBUS_Egrave</h3>
+<pre class="programlisting">#define IBUS_Egrave 0x0c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Eacute"></a><h3>IBUS_Eacute</h3>
+<pre class="programlisting">#define IBUS_Eacute 0x0c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ecircumflex"></a><h3>IBUS_Ecircumflex</h3>
+<pre class="programlisting">#define IBUS_Ecircumflex 0x0ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ediaeresis"></a><h3>IBUS_Ediaeresis</h3>
+<pre class="programlisting">#define IBUS_Ediaeresis 0x0cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Igrave"></a><h3>IBUS_Igrave</h3>
+<pre class="programlisting">#define IBUS_Igrave 0x0cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Iacute"></a><h3>IBUS_Iacute</h3>
+<pre class="programlisting">#define IBUS_Iacute 0x0cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Icircumflex"></a><h3>IBUS_Icircumflex</h3>
+<pre class="programlisting">#define IBUS_Icircumflex 0x0ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Idiaeresis"></a><h3>IBUS_Idiaeresis</h3>
+<pre class="programlisting">#define IBUS_Idiaeresis 0x0cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ETH:CAPS"></a><h3>IBUS_ETH</h3>
+<pre class="programlisting">#define IBUS_ETH 0x0d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Eth"></a><h3>IBUS_Eth</h3>
+<pre class="programlisting">#define IBUS_Eth 0x0d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ntilde"></a><h3>IBUS_Ntilde</h3>
+<pre class="programlisting">#define IBUS_Ntilde 0x0d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ograve"></a><h3>IBUS_Ograve</h3>
+<pre class="programlisting">#define IBUS_Ograve 0x0d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Oacute"></a><h3>IBUS_Oacute</h3>
+<pre class="programlisting">#define IBUS_Oacute 0x0d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ocircumflex"></a><h3>IBUS_Ocircumflex</h3>
+<pre class="programlisting">#define IBUS_Ocircumflex 0x0d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Otilde"></a><h3>IBUS_Otilde</h3>
+<pre class="programlisting">#define IBUS_Otilde 0x0d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Odiaeresis"></a><h3>IBUS_Odiaeresis</h3>
+<pre class="programlisting">#define IBUS_Odiaeresis 0x0d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-multiply"></a><h3>IBUS_multiply</h3>
+<pre class="programlisting">#define IBUS_multiply 0x0d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Oslash"></a><h3>IBUS_Oslash</h3>
+<pre class="programlisting">#define IBUS_Oslash 0x0d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ooblique"></a><h3>IBUS_Ooblique</h3>
+<pre class="programlisting">#define IBUS_Ooblique 0x0d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ugrave"></a><h3>IBUS_Ugrave</h3>
+<pre class="programlisting">#define IBUS_Ugrave 0x0d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uacute"></a><h3>IBUS_Uacute</h3>
+<pre class="programlisting">#define IBUS_Uacute 0x0da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ucircumflex"></a><h3>IBUS_Ucircumflex</h3>
+<pre class="programlisting">#define IBUS_Ucircumflex 0x0db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Udiaeresis"></a><h3>IBUS_Udiaeresis</h3>
+<pre class="programlisting">#define IBUS_Udiaeresis 0x0dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Yacute"></a><h3>IBUS_Yacute</h3>
+<pre class="programlisting">#define IBUS_Yacute 0x0dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-THORN:CAPS"></a><h3>IBUS_THORN</h3>
+<pre class="programlisting">#define IBUS_THORN 0x0de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thorn"></a><h3>IBUS_Thorn</h3>
+<pre class="programlisting">#define IBUS_Thorn 0x0de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ssharp"></a><h3>IBUS_ssharp</h3>
+<pre class="programlisting">#define IBUS_ssharp 0x0df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-agrave"></a><h3>IBUS_agrave</h3>
+<pre class="programlisting">#define IBUS_agrave 0x0e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-aacute"></a><h3>IBUS_aacute</h3>
+<pre class="programlisting">#define IBUS_aacute 0x0e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-acircumflex"></a><h3>IBUS_acircumflex</h3>
+<pre class="programlisting">#define IBUS_acircumflex 0x0e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-atilde"></a><h3>IBUS_atilde</h3>
+<pre class="programlisting">#define IBUS_atilde 0x0e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-adiaeresis"></a><h3>IBUS_adiaeresis</h3>
+<pre class="programlisting">#define IBUS_adiaeresis 0x0e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-aring"></a><h3>IBUS_aring</h3>
+<pre class="programlisting">#define IBUS_aring 0x0e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ae"></a><h3>IBUS_ae</h3>
+<pre class="programlisting">#define IBUS_ae 0x0e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ccedilla"></a><h3>IBUS_ccedilla</h3>
+<pre class="programlisting">#define IBUS_ccedilla 0x0e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-egrave"></a><h3>IBUS_egrave</h3>
+<pre class="programlisting">#define IBUS_egrave 0x0e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-eacute"></a><h3>IBUS_eacute</h3>
+<pre class="programlisting">#define IBUS_eacute 0x0e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ecircumflex"></a><h3>IBUS_ecircumflex</h3>
+<pre class="programlisting">#define IBUS_ecircumflex 0x0ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ediaeresis"></a><h3>IBUS_ediaeresis</h3>
+<pre class="programlisting">#define IBUS_ediaeresis 0x0eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-igrave"></a><h3>IBUS_igrave</h3>
+<pre class="programlisting">#define IBUS_igrave 0x0ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-iacute"></a><h3>IBUS_iacute</h3>
+<pre class="programlisting">#define IBUS_iacute 0x0ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-icircumflex"></a><h3>IBUS_icircumflex</h3>
+<pre class="programlisting">#define IBUS_icircumflex 0x0ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-idiaeresis"></a><h3>IBUS_idiaeresis</h3>
+<pre class="programlisting">#define IBUS_idiaeresis 0x0ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-eth"></a><h3>IBUS_eth</h3>
+<pre class="programlisting">#define IBUS_eth 0x0f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ntilde"></a><h3>IBUS_ntilde</h3>
+<pre class="programlisting">#define IBUS_ntilde 0x0f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ograve"></a><h3>IBUS_ograve</h3>
+<pre class="programlisting">#define IBUS_ograve 0x0f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-oacute"></a><h3>IBUS_oacute</h3>
+<pre class="programlisting">#define IBUS_oacute 0x0f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ocircumflex"></a><h3>IBUS_ocircumflex</h3>
+<pre class="programlisting">#define IBUS_ocircumflex 0x0f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-otilde"></a><h3>IBUS_otilde</h3>
+<pre class="programlisting">#define IBUS_otilde 0x0f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-odiaeresis"></a><h3>IBUS_odiaeresis</h3>
+<pre class="programlisting">#define IBUS_odiaeresis 0x0f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-division"></a><h3>IBUS_division</h3>
+<pre class="programlisting">#define IBUS_division 0x0f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-oslash"></a><h3>IBUS_oslash</h3>
+<pre class="programlisting">#define IBUS_oslash 0x0f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ooblique"></a><h3>IBUS_ooblique</h3>
+<pre class="programlisting">#define IBUS_ooblique 0x0f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ugrave"></a><h3>IBUS_ugrave</h3>
+<pre class="programlisting">#define IBUS_ugrave 0x0f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uacute"></a><h3>IBUS_uacute</h3>
+<pre class="programlisting">#define IBUS_uacute 0x0fa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ucircumflex"></a><h3>IBUS_ucircumflex</h3>
+<pre class="programlisting">#define IBUS_ucircumflex 0x0fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-udiaeresis"></a><h3>IBUS_udiaeresis</h3>
+<pre class="programlisting">#define IBUS_udiaeresis 0x0fc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-yacute"></a><h3>IBUS_yacute</h3>
+<pre class="programlisting">#define IBUS_yacute 0x0fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-thorn"></a><h3>IBUS_thorn</h3>
+<pre class="programlisting">#define IBUS_thorn 0x0fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ydiaeresis"></a><h3>IBUS_ydiaeresis</h3>
+<pre class="programlisting">#define IBUS_ydiaeresis 0x0ff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Aogonek"></a><h3>IBUS_Aogonek</h3>
+<pre class="programlisting">#define IBUS_Aogonek 0x1a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-breve"></a><h3>IBUS_breve</h3>
+<pre class="programlisting">#define IBUS_breve 0x1a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Lstroke"></a><h3>IBUS_Lstroke</h3>
+<pre class="programlisting">#define IBUS_Lstroke 0x1a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Lcaron"></a><h3>IBUS_Lcaron</h3>
+<pre class="programlisting">#define IBUS_Lcaron 0x1a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Sacute"></a><h3>IBUS_Sacute</h3>
+<pre class="programlisting">#define IBUS_Sacute 0x1a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Scaron"></a><h3>IBUS_Scaron</h3>
+<pre class="programlisting">#define IBUS_Scaron 0x1a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Scedilla"></a><h3>IBUS_Scedilla</h3>
+<pre class="programlisting">#define IBUS_Scedilla 0x1aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Tcaron"></a><h3>IBUS_Tcaron</h3>
+<pre class="programlisting">#define IBUS_Tcaron 0x1ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Zacute"></a><h3>IBUS_Zacute</h3>
+<pre class="programlisting">#define IBUS_Zacute 0x1ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Zcaron"></a><h3>IBUS_Zcaron</h3>
+<pre class="programlisting">#define IBUS_Zcaron 0x1ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Zabovedot"></a><h3>IBUS_Zabovedot</h3>
+<pre class="programlisting">#define IBUS_Zabovedot 0x1af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-aogonek"></a><h3>IBUS_aogonek</h3>
+<pre class="programlisting">#define IBUS_aogonek 0x1b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ogonek"></a><h3>IBUS_ogonek</h3>
+<pre class="programlisting">#define IBUS_ogonek 0x1b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lstroke"></a><h3>IBUS_lstroke</h3>
+<pre class="programlisting">#define IBUS_lstroke 0x1b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lcaron"></a><h3>IBUS_lcaron</h3>
+<pre class="programlisting">#define IBUS_lcaron 0x1b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-sacute"></a><h3>IBUS_sacute</h3>
+<pre class="programlisting">#define IBUS_sacute 0x1b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-caron"></a><h3>IBUS_caron</h3>
+<pre class="programlisting">#define IBUS_caron 0x1b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-scaron"></a><h3>IBUS_scaron</h3>
+<pre class="programlisting">#define IBUS_scaron 0x1b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-scedilla"></a><h3>IBUS_scedilla</h3>
+<pre class="programlisting">#define IBUS_scedilla 0x1ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-tcaron"></a><h3>IBUS_tcaron</h3>
+<pre class="programlisting">#define IBUS_tcaron 0x1bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-zacute"></a><h3>IBUS_zacute</h3>
+<pre class="programlisting">#define IBUS_zacute 0x1bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-doubleacute"></a><h3>IBUS_doubleacute</h3>
+<pre class="programlisting">#define IBUS_doubleacute 0x1bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-zcaron"></a><h3>IBUS_zcaron</h3>
+<pre class="programlisting">#define IBUS_zcaron 0x1be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-zabovedot"></a><h3>IBUS_zabovedot</h3>
+<pre class="programlisting">#define IBUS_zabovedot 0x1bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Racute"></a><h3>IBUS_Racute</h3>
+<pre class="programlisting">#define IBUS_Racute 0x1c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Abreve"></a><h3>IBUS_Abreve</h3>
+<pre class="programlisting">#define IBUS_Abreve 0x1c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Lacute"></a><h3>IBUS_Lacute</h3>
+<pre class="programlisting">#define IBUS_Lacute 0x1c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cacute"></a><h3>IBUS_Cacute</h3>
+<pre class="programlisting">#define IBUS_Cacute 0x1c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ccaron"></a><h3>IBUS_Ccaron</h3>
+<pre class="programlisting">#define IBUS_Ccaron 0x1c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Eogonek"></a><h3>IBUS_Eogonek</h3>
+<pre class="programlisting">#define IBUS_Eogonek 0x1ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ecaron"></a><h3>IBUS_Ecaron</h3>
+<pre class="programlisting">#define IBUS_Ecaron 0x1cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Dcaron"></a><h3>IBUS_Dcaron</h3>
+<pre class="programlisting">#define IBUS_Dcaron 0x1cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Dstroke"></a><h3>IBUS_Dstroke</h3>
+<pre class="programlisting">#define IBUS_Dstroke 0x1d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Nacute"></a><h3>IBUS_Nacute</h3>
+<pre class="programlisting">#define IBUS_Nacute 0x1d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ncaron"></a><h3>IBUS_Ncaron</h3>
+<pre class="programlisting">#define IBUS_Ncaron 0x1d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Odoubleacute"></a><h3>IBUS_Odoubleacute</h3>
+<pre class="programlisting">#define IBUS_Odoubleacute 0x1d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Rcaron"></a><h3>IBUS_Rcaron</h3>
+<pre class="programlisting">#define IBUS_Rcaron 0x1d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uring"></a><h3>IBUS_Uring</h3>
+<pre class="programlisting">#define IBUS_Uring 0x1d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Udoubleacute"></a><h3>IBUS_Udoubleacute</h3>
+<pre class="programlisting">#define IBUS_Udoubleacute 0x1db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Tcedilla"></a><h3>IBUS_Tcedilla</h3>
+<pre class="programlisting">#define IBUS_Tcedilla 0x1de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-racute"></a><h3>IBUS_racute</h3>
+<pre class="programlisting">#define IBUS_racute 0x1e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-abreve"></a><h3>IBUS_abreve</h3>
+<pre class="programlisting">#define IBUS_abreve 0x1e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lacute"></a><h3>IBUS_lacute</h3>
+<pre class="programlisting">#define IBUS_lacute 0x1e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-cacute"></a><h3>IBUS_cacute</h3>
+<pre class="programlisting">#define IBUS_cacute 0x1e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ccaron"></a><h3>IBUS_ccaron</h3>
+<pre class="programlisting">#define IBUS_ccaron 0x1e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-eogonek"></a><h3>IBUS_eogonek</h3>
+<pre class="programlisting">#define IBUS_eogonek 0x1ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ecaron"></a><h3>IBUS_ecaron</h3>
+<pre class="programlisting">#define IBUS_ecaron 0x1ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dcaron"></a><h3>IBUS_dcaron</h3>
+<pre class="programlisting">#define IBUS_dcaron 0x1ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dstroke"></a><h3>IBUS_dstroke</h3>
+<pre class="programlisting">#define IBUS_dstroke 0x1f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-nacute"></a><h3>IBUS_nacute</h3>
+<pre class="programlisting">#define IBUS_nacute 0x1f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ncaron"></a><h3>IBUS_ncaron</h3>
+<pre class="programlisting">#define IBUS_ncaron 0x1f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-odoubleacute"></a><h3>IBUS_odoubleacute</h3>
+<pre class="programlisting">#define IBUS_odoubleacute 0x1f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-udoubleacute"></a><h3>IBUS_udoubleacute</h3>
+<pre class="programlisting">#define IBUS_udoubleacute 0x1fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rcaron"></a><h3>IBUS_rcaron</h3>
+<pre class="programlisting">#define IBUS_rcaron 0x1f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uring"></a><h3>IBUS_uring</h3>
+<pre class="programlisting">#define IBUS_uring 0x1f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-tcedilla"></a><h3>IBUS_tcedilla</h3>
+<pre class="programlisting">#define IBUS_tcedilla 0x1fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-abovedot"></a><h3>IBUS_abovedot</h3>
+<pre class="programlisting">#define IBUS_abovedot 0x1ff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hstroke"></a><h3>IBUS_Hstroke</h3>
+<pre class="programlisting">#define IBUS_Hstroke 0x2a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hcircumflex"></a><h3>IBUS_Hcircumflex</h3>
+<pre class="programlisting">#define IBUS_Hcircumflex 0x2a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Iabovedot"></a><h3>IBUS_Iabovedot</h3>
+<pre class="programlisting">#define IBUS_Iabovedot 0x2a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Gbreve"></a><h3>IBUS_Gbreve</h3>
+<pre class="programlisting">#define IBUS_Gbreve 0x2ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Jcircumflex"></a><h3>IBUS_Jcircumflex</h3>
+<pre class="programlisting">#define IBUS_Jcircumflex 0x2ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hstroke"></a><h3>IBUS_hstroke</h3>
+<pre class="programlisting">#define IBUS_hstroke 0x2b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hcircumflex"></a><h3>IBUS_hcircumflex</h3>
+<pre class="programlisting">#define IBUS_hcircumflex 0x2b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-idotless"></a><h3>IBUS_idotless</h3>
+<pre class="programlisting">#define IBUS_idotless 0x2b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-gbreve"></a><h3>IBUS_gbreve</h3>
+<pre class="programlisting">#define IBUS_gbreve 0x2bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-jcircumflex"></a><h3>IBUS_jcircumflex</h3>
+<pre class="programlisting">#define IBUS_jcircumflex 0x2bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cabovedot"></a><h3>IBUS_Cabovedot</h3>
+<pre class="programlisting">#define IBUS_Cabovedot 0x2c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ccircumflex"></a><h3>IBUS_Ccircumflex</h3>
+<pre class="programlisting">#define IBUS_Ccircumflex 0x2c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Gabovedot"></a><h3>IBUS_Gabovedot</h3>
+<pre class="programlisting">#define IBUS_Gabovedot 0x2d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Gcircumflex"></a><h3>IBUS_Gcircumflex</h3>
+<pre class="programlisting">#define IBUS_Gcircumflex 0x2d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ubreve"></a><h3>IBUS_Ubreve</h3>
+<pre class="programlisting">#define IBUS_Ubreve 0x2dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Scircumflex"></a><h3>IBUS_Scircumflex</h3>
+<pre class="programlisting">#define IBUS_Scircumflex 0x2de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-cabovedot"></a><h3>IBUS_cabovedot</h3>
+<pre class="programlisting">#define IBUS_cabovedot 0x2e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ccircumflex"></a><h3>IBUS_ccircumflex</h3>
+<pre class="programlisting">#define IBUS_ccircumflex 0x2e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-gabovedot"></a><h3>IBUS_gabovedot</h3>
+<pre class="programlisting">#define IBUS_gabovedot 0x2f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-gcircumflex"></a><h3>IBUS_gcircumflex</h3>
+<pre class="programlisting">#define IBUS_gcircumflex 0x2f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ubreve"></a><h3>IBUS_ubreve</h3>
+<pre class="programlisting">#define IBUS_ubreve 0x2fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-scircumflex"></a><h3>IBUS_scircumflex</h3>
+<pre class="programlisting">#define IBUS_scircumflex 0x2fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kra"></a><h3>IBUS_kra</h3>
+<pre class="programlisting">#define IBUS_kra 0x3a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kappa"></a><h3>IBUS_kappa</h3>
+<pre class="programlisting">#define IBUS_kappa 0x3a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Rcedilla"></a><h3>IBUS_Rcedilla</h3>
+<pre class="programlisting">#define IBUS_Rcedilla 0x3a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Itilde"></a><h3>IBUS_Itilde</h3>
+<pre class="programlisting">#define IBUS_Itilde 0x3a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Lcedilla"></a><h3>IBUS_Lcedilla</h3>
+<pre class="programlisting">#define IBUS_Lcedilla 0x3a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Emacron"></a><h3>IBUS_Emacron</h3>
+<pre class="programlisting">#define IBUS_Emacron 0x3aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Gcedilla"></a><h3>IBUS_Gcedilla</h3>
+<pre class="programlisting">#define IBUS_Gcedilla 0x3ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Tslash"></a><h3>IBUS_Tslash</h3>
+<pre class="programlisting">#define IBUS_Tslash 0x3ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rcedilla"></a><h3>IBUS_rcedilla</h3>
+<pre class="programlisting">#define IBUS_rcedilla 0x3b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-itilde"></a><h3>IBUS_itilde</h3>
+<pre class="programlisting">#define IBUS_itilde 0x3b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lcedilla"></a><h3>IBUS_lcedilla</h3>
+<pre class="programlisting">#define IBUS_lcedilla 0x3b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-emacron"></a><h3>IBUS_emacron</h3>
+<pre class="programlisting">#define IBUS_emacron 0x3ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-gcedilla"></a><h3>IBUS_gcedilla</h3>
+<pre class="programlisting">#define IBUS_gcedilla 0x3bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-tslash"></a><h3>IBUS_tslash</h3>
+<pre class="programlisting">#define IBUS_tslash 0x3bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ENG:CAPS"></a><h3>IBUS_ENG</h3>
+<pre class="programlisting">#define IBUS_ENG 0x3bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-eng"></a><h3>IBUS_eng</h3>
+<pre class="programlisting">#define IBUS_eng 0x3bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Amacron"></a><h3>IBUS_Amacron</h3>
+<pre class="programlisting">#define IBUS_Amacron 0x3c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Iogonek"></a><h3>IBUS_Iogonek</h3>
+<pre class="programlisting">#define IBUS_Iogonek 0x3c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Eabovedot"></a><h3>IBUS_Eabovedot</h3>
+<pre class="programlisting">#define IBUS_Eabovedot 0x3cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Imacron"></a><h3>IBUS_Imacron</h3>
+<pre class="programlisting">#define IBUS_Imacron 0x3cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ncedilla"></a><h3>IBUS_Ncedilla</h3>
+<pre class="programlisting">#define IBUS_Ncedilla 0x3d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Omacron"></a><h3>IBUS_Omacron</h3>
+<pre class="programlisting">#define IBUS_Omacron 0x3d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Kcedilla"></a><h3>IBUS_Kcedilla</h3>
+<pre class="programlisting">#define IBUS_Kcedilla 0x3d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uogonek"></a><h3>IBUS_Uogonek</h3>
+<pre class="programlisting">#define IBUS_Uogonek 0x3d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Utilde"></a><h3>IBUS_Utilde</h3>
+<pre class="programlisting">#define IBUS_Utilde 0x3dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Umacron"></a><h3>IBUS_Umacron</h3>
+<pre class="programlisting">#define IBUS_Umacron 0x3de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-amacron"></a><h3>IBUS_amacron</h3>
+<pre class="programlisting">#define IBUS_amacron 0x3e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-iogonek"></a><h3>IBUS_iogonek</h3>
+<pre class="programlisting">#define IBUS_iogonek 0x3e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-eabovedot"></a><h3>IBUS_eabovedot</h3>
+<pre class="programlisting">#define IBUS_eabovedot 0x3ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-imacron"></a><h3>IBUS_imacron</h3>
+<pre class="programlisting">#define IBUS_imacron 0x3ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ncedilla"></a><h3>IBUS_ncedilla</h3>
+<pre class="programlisting">#define IBUS_ncedilla 0x3f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-omacron"></a><h3>IBUS_omacron</h3>
+<pre class="programlisting">#define IBUS_omacron 0x3f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kcedilla"></a><h3>IBUS_kcedilla</h3>
+<pre class="programlisting">#define IBUS_kcedilla 0x3f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uogonek"></a><h3>IBUS_uogonek</h3>
+<pre class="programlisting">#define IBUS_uogonek 0x3f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-utilde"></a><h3>IBUS_utilde</h3>
+<pre class="programlisting">#define IBUS_utilde 0x3fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-umacron"></a><h3>IBUS_umacron</h3>
+<pre class="programlisting">#define IBUS_umacron 0x3fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Babovedot"></a><h3>IBUS_Babovedot</h3>
+<pre class="programlisting">#define IBUS_Babovedot 0x1001e02
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-babovedot"></a><h3>IBUS_babovedot</h3>
+<pre class="programlisting">#define IBUS_babovedot 0x1001e03
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Dabovedot"></a><h3>IBUS_Dabovedot</h3>
+<pre class="programlisting">#define IBUS_Dabovedot 0x1001e0a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Wgrave"></a><h3>IBUS_Wgrave</h3>
+<pre class="programlisting">#define IBUS_Wgrave 0x1001e80
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Wacute"></a><h3>IBUS_Wacute</h3>
+<pre class="programlisting">#define IBUS_Wacute 0x1001e82
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dabovedot"></a><h3>IBUS_dabovedot</h3>
+<pre class="programlisting">#define IBUS_dabovedot 0x1001e0b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ygrave"></a><h3>IBUS_Ygrave</h3>
+<pre class="programlisting">#define IBUS_Ygrave 0x1001ef2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Fabovedot"></a><h3>IBUS_Fabovedot</h3>
+<pre class="programlisting">#define IBUS_Fabovedot 0x1001e1e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-fabovedot"></a><h3>IBUS_fabovedot</h3>
+<pre class="programlisting">#define IBUS_fabovedot 0x1001e1f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Mabovedot"></a><h3>IBUS_Mabovedot</h3>
+<pre class="programlisting">#define IBUS_Mabovedot 0x1001e40
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-mabovedot"></a><h3>IBUS_mabovedot</h3>
+<pre class="programlisting">#define IBUS_mabovedot 0x1001e41
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Pabovedot"></a><h3>IBUS_Pabovedot</h3>
+<pre class="programlisting">#define IBUS_Pabovedot 0x1001e56
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-wgrave"></a><h3>IBUS_wgrave</h3>
+<pre class="programlisting">#define IBUS_wgrave 0x1001e81
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-pabovedot"></a><h3>IBUS_pabovedot</h3>
+<pre class="programlisting">#define IBUS_pabovedot 0x1001e57
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-wacute"></a><h3>IBUS_wacute</h3>
+<pre class="programlisting">#define IBUS_wacute 0x1001e83
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Sabovedot"></a><h3>IBUS_Sabovedot</h3>
+<pre class="programlisting">#define IBUS_Sabovedot 0x1001e60
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ygrave"></a><h3>IBUS_ygrave</h3>
+<pre class="programlisting">#define IBUS_ygrave 0x1001ef3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Wdiaeresis"></a><h3>IBUS_Wdiaeresis</h3>
+<pre class="programlisting">#define IBUS_Wdiaeresis 0x1001e84
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-wdiaeresis"></a><h3>IBUS_wdiaeresis</h3>
+<pre class="programlisting">#define IBUS_wdiaeresis 0x1001e85
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-sabovedot"></a><h3>IBUS_sabovedot</h3>
+<pre class="programlisting">#define IBUS_sabovedot 0x1001e61
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Wcircumflex"></a><h3>IBUS_Wcircumflex</h3>
+<pre class="programlisting">#define IBUS_Wcircumflex 0x1000174
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Tabovedot"></a><h3>IBUS_Tabovedot</h3>
+<pre class="programlisting">#define IBUS_Tabovedot 0x1001e6a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ycircumflex"></a><h3>IBUS_Ycircumflex</h3>
+<pre class="programlisting">#define IBUS_Ycircumflex 0x1000176
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-wcircumflex"></a><h3>IBUS_wcircumflex</h3>
+<pre class="programlisting">#define IBUS_wcircumflex 0x1000175
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-tabovedot"></a><h3>IBUS_tabovedot</h3>
+<pre class="programlisting">#define IBUS_tabovedot 0x1001e6b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ycircumflex"></a><h3>IBUS_ycircumflex</h3>
+<pre class="programlisting">#define IBUS_ycircumflex 0x1000177
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-OE:CAPS"></a><h3>IBUS_OE</h3>
+<pre class="programlisting">#define IBUS_OE 0x13bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-oe"></a><h3>IBUS_oe</h3>
+<pre class="programlisting">#define IBUS_oe 0x13bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ydiaeresis"></a><h3>IBUS_Ydiaeresis</h3>
+<pre class="programlisting">#define IBUS_Ydiaeresis 0x13be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-overline"></a><h3>IBUS_overline</h3>
+<pre class="programlisting">#define IBUS_overline 0x47e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-fullstop"></a><h3>IBUS_kana_fullstop</h3>
+<pre class="programlisting">#define IBUS_kana_fullstop 0x4a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-openingbracket"></a><h3>IBUS_kana_openingbracket</h3>
+<pre class="programlisting">#define IBUS_kana_openingbracket 0x4a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-closingbracket"></a><h3>IBUS_kana_closingbracket</h3>
+<pre class="programlisting">#define IBUS_kana_closingbracket 0x4a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-comma"></a><h3>IBUS_kana_comma</h3>
+<pre class="programlisting">#define IBUS_kana_comma 0x4a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-conjunctive"></a><h3>IBUS_kana_conjunctive</h3>
+<pre class="programlisting">#define IBUS_kana_conjunctive 0x4a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-middledot"></a><h3>IBUS_kana_middledot</h3>
+<pre class="programlisting">#define IBUS_kana_middledot 0x4a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-WO"></a><h3>IBUS_kana_WO</h3>
+<pre class="programlisting">#define IBUS_kana_WO 0x4a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-a"></a><h3>IBUS_kana_a</h3>
+<pre class="programlisting">#define IBUS_kana_a 0x4a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-i"></a><h3>IBUS_kana_i</h3>
+<pre class="programlisting">#define IBUS_kana_i 0x4a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-u"></a><h3>IBUS_kana_u</h3>
+<pre class="programlisting">#define IBUS_kana_u 0x4a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-e"></a><h3>IBUS_kana_e</h3>
+<pre class="programlisting">#define IBUS_kana_e 0x4aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-o"></a><h3>IBUS_kana_o</h3>
+<pre class="programlisting">#define IBUS_kana_o 0x4ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-ya"></a><h3>IBUS_kana_ya</h3>
+<pre class="programlisting">#define IBUS_kana_ya 0x4ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-yu"></a><h3>IBUS_kana_yu</h3>
+<pre class="programlisting">#define IBUS_kana_yu 0x4ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-yo"></a><h3>IBUS_kana_yo</h3>
+<pre class="programlisting">#define IBUS_kana_yo 0x4ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-tsu"></a><h3>IBUS_kana_tsu</h3>
+<pre class="programlisting">#define IBUS_kana_tsu 0x4af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-tu"></a><h3>IBUS_kana_tu</h3>
+<pre class="programlisting">#define IBUS_kana_tu 0x4af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-prolongedsound"></a><h3>IBUS_prolongedsound</h3>
+<pre class="programlisting">#define IBUS_prolongedsound 0x4b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-A"></a><h3>IBUS_kana_A</h3>
+<pre class="programlisting">#define IBUS_kana_A 0x4b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-I"></a><h3>IBUS_kana_I</h3>
+<pre class="programlisting">#define IBUS_kana_I 0x4b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-U"></a><h3>IBUS_kana_U</h3>
+<pre class="programlisting">#define IBUS_kana_U 0x4b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-E"></a><h3>IBUS_kana_E</h3>
+<pre class="programlisting">#define IBUS_kana_E 0x4b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-O"></a><h3>IBUS_kana_O</h3>
+<pre class="programlisting">#define IBUS_kana_O 0x4b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-KA"></a><h3>IBUS_kana_KA</h3>
+<pre class="programlisting">#define IBUS_kana_KA 0x4b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-KI"></a><h3>IBUS_kana_KI</h3>
+<pre class="programlisting">#define IBUS_kana_KI 0x4b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-KU"></a><h3>IBUS_kana_KU</h3>
+<pre class="programlisting">#define IBUS_kana_KU 0x4b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-KE"></a><h3>IBUS_kana_KE</h3>
+<pre class="programlisting">#define IBUS_kana_KE 0x4b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-KO"></a><h3>IBUS_kana_KO</h3>
+<pre class="programlisting">#define IBUS_kana_KO 0x4ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-SA"></a><h3>IBUS_kana_SA</h3>
+<pre class="programlisting">#define IBUS_kana_SA 0x4bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-SHI"></a><h3>IBUS_kana_SHI</h3>
+<pre class="programlisting">#define IBUS_kana_SHI 0x4bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-SU"></a><h3>IBUS_kana_SU</h3>
+<pre class="programlisting">#define IBUS_kana_SU 0x4bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-SE"></a><h3>IBUS_kana_SE</h3>
+<pre class="programlisting">#define IBUS_kana_SE 0x4be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-SO"></a><h3>IBUS_kana_SO</h3>
+<pre class="programlisting">#define IBUS_kana_SO 0x4bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-TA"></a><h3>IBUS_kana_TA</h3>
+<pre class="programlisting">#define IBUS_kana_TA 0x4c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-CHI"></a><h3>IBUS_kana_CHI</h3>
+<pre class="programlisting">#define IBUS_kana_CHI 0x4c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-TI"></a><h3>IBUS_kana_TI</h3>
+<pre class="programlisting">#define IBUS_kana_TI 0x4c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-TSU"></a><h3>IBUS_kana_TSU</h3>
+<pre class="programlisting">#define IBUS_kana_TSU 0x4c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-TU"></a><h3>IBUS_kana_TU</h3>
+<pre class="programlisting">#define IBUS_kana_TU 0x4c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-TE"></a><h3>IBUS_kana_TE</h3>
+<pre class="programlisting">#define IBUS_kana_TE 0x4c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-TO"></a><h3>IBUS_kana_TO</h3>
+<pre class="programlisting">#define IBUS_kana_TO 0x4c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-NA"></a><h3>IBUS_kana_NA</h3>
+<pre class="programlisting">#define IBUS_kana_NA 0x4c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-NI"></a><h3>IBUS_kana_NI</h3>
+<pre class="programlisting">#define IBUS_kana_NI 0x4c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-NU"></a><h3>IBUS_kana_NU</h3>
+<pre class="programlisting">#define IBUS_kana_NU 0x4c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-NE"></a><h3>IBUS_kana_NE</h3>
+<pre class="programlisting">#define IBUS_kana_NE 0x4c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-NO"></a><h3>IBUS_kana_NO</h3>
+<pre class="programlisting">#define IBUS_kana_NO 0x4c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-HA"></a><h3>IBUS_kana_HA</h3>
+<pre class="programlisting">#define IBUS_kana_HA 0x4ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-HI"></a><h3>IBUS_kana_HI</h3>
+<pre class="programlisting">#define IBUS_kana_HI 0x4cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-FU"></a><h3>IBUS_kana_FU</h3>
+<pre class="programlisting">#define IBUS_kana_FU 0x4cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-HU"></a><h3>IBUS_kana_HU</h3>
+<pre class="programlisting">#define IBUS_kana_HU 0x4cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-HE"></a><h3>IBUS_kana_HE</h3>
+<pre class="programlisting">#define IBUS_kana_HE 0x4cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-HO"></a><h3>IBUS_kana_HO</h3>
+<pre class="programlisting">#define IBUS_kana_HO 0x4ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-MA"></a><h3>IBUS_kana_MA</h3>
+<pre class="programlisting">#define IBUS_kana_MA 0x4cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-MI"></a><h3>IBUS_kana_MI</h3>
+<pre class="programlisting">#define IBUS_kana_MI 0x4d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-MU"></a><h3>IBUS_kana_MU</h3>
+<pre class="programlisting">#define IBUS_kana_MU 0x4d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-ME"></a><h3>IBUS_kana_ME</h3>
+<pre class="programlisting">#define IBUS_kana_ME 0x4d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-MO"></a><h3>IBUS_kana_MO</h3>
+<pre class="programlisting">#define IBUS_kana_MO 0x4d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-YA"></a><h3>IBUS_kana_YA</h3>
+<pre class="programlisting">#define IBUS_kana_YA 0x4d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-YU"></a><h3>IBUS_kana_YU</h3>
+<pre class="programlisting">#define IBUS_kana_YU 0x4d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-YO"></a><h3>IBUS_kana_YO</h3>
+<pre class="programlisting">#define IBUS_kana_YO 0x4d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-RA"></a><h3>IBUS_kana_RA</h3>
+<pre class="programlisting">#define IBUS_kana_RA 0x4d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-RI"></a><h3>IBUS_kana_RI</h3>
+<pre class="programlisting">#define IBUS_kana_RI 0x4d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-RU"></a><h3>IBUS_kana_RU</h3>
+<pre class="programlisting">#define IBUS_kana_RU 0x4d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-RE"></a><h3>IBUS_kana_RE</h3>
+<pre class="programlisting">#define IBUS_kana_RE 0x4da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-RO"></a><h3>IBUS_kana_RO</h3>
+<pre class="programlisting">#define IBUS_kana_RO 0x4db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-WA"></a><h3>IBUS_kana_WA</h3>
+<pre class="programlisting">#define IBUS_kana_WA 0x4dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-N"></a><h3>IBUS_kana_N</h3>
+<pre class="programlisting">#define IBUS_kana_N 0x4dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-voicedsound"></a><h3>IBUS_voicedsound</h3>
+<pre class="programlisting">#define IBUS_voicedsound 0x4de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-semivoicedsound"></a><h3>IBUS_semivoicedsound</h3>
+<pre class="programlisting">#define IBUS_semivoicedsound 0x4df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-kana-switch"></a><h3>IBUS_kana_switch</h3>
+<pre class="programlisting">#define IBUS_kana_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-0"></a><h3>IBUS_Farsi_0</h3>
+<pre class="programlisting">#define IBUS_Farsi_0 0x10006f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-1"></a><h3>IBUS_Farsi_1</h3>
+<pre class="programlisting">#define IBUS_Farsi_1 0x10006f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-2"></a><h3>IBUS_Farsi_2</h3>
+<pre class="programlisting">#define IBUS_Farsi_2 0x10006f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-3"></a><h3>IBUS_Farsi_3</h3>
+<pre class="programlisting">#define IBUS_Farsi_3 0x10006f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-4"></a><h3>IBUS_Farsi_4</h3>
+<pre class="programlisting">#define IBUS_Farsi_4 0x10006f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-5"></a><h3>IBUS_Farsi_5</h3>
+<pre class="programlisting">#define IBUS_Farsi_5 0x10006f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-6"></a><h3>IBUS_Farsi_6</h3>
+<pre class="programlisting">#define IBUS_Farsi_6 0x10006f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-7"></a><h3>IBUS_Farsi_7</h3>
+<pre class="programlisting">#define IBUS_Farsi_7 0x10006f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-8"></a><h3>IBUS_Farsi_8</h3>
+<pre class="programlisting">#define IBUS_Farsi_8 0x10006f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-9"></a><h3>IBUS_Farsi_9</h3>
+<pre class="programlisting">#define IBUS_Farsi_9 0x10006f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-percent"></a><h3>IBUS_Arabic_percent</h3>
+<pre class="programlisting">#define IBUS_Arabic_percent 0x100066a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-superscript-alef"></a><h3>IBUS_Arabic_superscript_alef</h3>
+<pre class="programlisting">#define IBUS_Arabic_superscript_alef 0x1000670
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-tteh"></a><h3>IBUS_Arabic_tteh</h3>
+<pre class="programlisting">#define IBUS_Arabic_tteh 0x1000679
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-peh"></a><h3>IBUS_Arabic_peh</h3>
+<pre class="programlisting">#define IBUS_Arabic_peh 0x100067e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-tcheh"></a><h3>IBUS_Arabic_tcheh</h3>
+<pre class="programlisting">#define IBUS_Arabic_tcheh 0x1000686
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-ddal"></a><h3>IBUS_Arabic_ddal</h3>
+<pre class="programlisting">#define IBUS_Arabic_ddal 0x1000688
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-rreh"></a><h3>IBUS_Arabic_rreh</h3>
+<pre class="programlisting">#define IBUS_Arabic_rreh 0x1000691
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-comma"></a><h3>IBUS_Arabic_comma</h3>
+<pre class="programlisting">#define IBUS_Arabic_comma 0x5ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-fullstop"></a><h3>IBUS_Arabic_fullstop</h3>
+<pre class="programlisting">#define IBUS_Arabic_fullstop 0x10006d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-0"></a><h3>IBUS_Arabic_0</h3>
+<pre class="programlisting">#define IBUS_Arabic_0 0x1000660
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-1"></a><h3>IBUS_Arabic_1</h3>
+<pre class="programlisting">#define IBUS_Arabic_1 0x1000661
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-2"></a><h3>IBUS_Arabic_2</h3>
+<pre class="programlisting">#define IBUS_Arabic_2 0x1000662
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-3"></a><h3>IBUS_Arabic_3</h3>
+<pre class="programlisting">#define IBUS_Arabic_3 0x1000663
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-4"></a><h3>IBUS_Arabic_4</h3>
+<pre class="programlisting">#define IBUS_Arabic_4 0x1000664
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-5"></a><h3>IBUS_Arabic_5</h3>
+<pre class="programlisting">#define IBUS_Arabic_5 0x1000665
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-6"></a><h3>IBUS_Arabic_6</h3>
+<pre class="programlisting">#define IBUS_Arabic_6 0x1000666
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-7"></a><h3>IBUS_Arabic_7</h3>
+<pre class="programlisting">#define IBUS_Arabic_7 0x1000667
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-8"></a><h3>IBUS_Arabic_8</h3>
+<pre class="programlisting">#define IBUS_Arabic_8 0x1000668
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-9"></a><h3>IBUS_Arabic_9</h3>
+<pre class="programlisting">#define IBUS_Arabic_9 0x1000669
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-semicolon"></a><h3>IBUS_Arabic_semicolon</h3>
+<pre class="programlisting">#define IBUS_Arabic_semicolon 0x5bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-question-mark"></a><h3>IBUS_Arabic_question_mark</h3>
+<pre class="programlisting">#define IBUS_Arabic_question_mark 0x5bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-hamza"></a><h3>IBUS_Arabic_hamza</h3>
+<pre class="programlisting">#define IBUS_Arabic_hamza 0x5c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-maddaonalef"></a><h3>IBUS_Arabic_maddaonalef</h3>
+<pre class="programlisting">#define IBUS_Arabic_maddaonalef 0x5c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-hamzaonalef"></a><h3>IBUS_Arabic_hamzaonalef</h3>
+<pre class="programlisting">#define IBUS_Arabic_hamzaonalef 0x5c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-hamzaonwaw"></a><h3>IBUS_Arabic_hamzaonwaw</h3>
+<pre class="programlisting">#define IBUS_Arabic_hamzaonwaw 0x5c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-hamzaunderalef"></a><h3>IBUS_Arabic_hamzaunderalef</h3>
+<pre class="programlisting">#define IBUS_Arabic_hamzaunderalef 0x5c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-hamzaonyeh"></a><h3>IBUS_Arabic_hamzaonyeh</h3>
+<pre class="programlisting">#define IBUS_Arabic_hamzaonyeh 0x5c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-alef"></a><h3>IBUS_Arabic_alef</h3>
+<pre class="programlisting">#define IBUS_Arabic_alef 0x5c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-beh"></a><h3>IBUS_Arabic_beh</h3>
+<pre class="programlisting">#define IBUS_Arabic_beh 0x5c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-tehmarbuta"></a><h3>IBUS_Arabic_tehmarbuta</h3>
+<pre class="programlisting">#define IBUS_Arabic_tehmarbuta 0x5c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-teh"></a><h3>IBUS_Arabic_teh</h3>
+<pre class="programlisting">#define IBUS_Arabic_teh 0x5ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-theh"></a><h3>IBUS_Arabic_theh</h3>
+<pre class="programlisting">#define IBUS_Arabic_theh 0x5cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-jeem"></a><h3>IBUS_Arabic_jeem</h3>
+<pre class="programlisting">#define IBUS_Arabic_jeem 0x5cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-hah"></a><h3>IBUS_Arabic_hah</h3>
+<pre class="programlisting">#define IBUS_Arabic_hah 0x5cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-khah"></a><h3>IBUS_Arabic_khah</h3>
+<pre class="programlisting">#define IBUS_Arabic_khah 0x5ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-dal"></a><h3>IBUS_Arabic_dal</h3>
+<pre class="programlisting">#define IBUS_Arabic_dal 0x5cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-thal"></a><h3>IBUS_Arabic_thal</h3>
+<pre class="programlisting">#define IBUS_Arabic_thal 0x5d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-ra"></a><h3>IBUS_Arabic_ra</h3>
+<pre class="programlisting">#define IBUS_Arabic_ra 0x5d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-zain"></a><h3>IBUS_Arabic_zain</h3>
+<pre class="programlisting">#define IBUS_Arabic_zain 0x5d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-seen"></a><h3>IBUS_Arabic_seen</h3>
+<pre class="programlisting">#define IBUS_Arabic_seen 0x5d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-sheen"></a><h3>IBUS_Arabic_sheen</h3>
+<pre class="programlisting">#define IBUS_Arabic_sheen 0x5d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-sad"></a><h3>IBUS_Arabic_sad</h3>
+<pre class="programlisting">#define IBUS_Arabic_sad 0x5d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-dad"></a><h3>IBUS_Arabic_dad</h3>
+<pre class="programlisting">#define IBUS_Arabic_dad 0x5d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-tah"></a><h3>IBUS_Arabic_tah</h3>
+<pre class="programlisting">#define IBUS_Arabic_tah 0x5d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-zah"></a><h3>IBUS_Arabic_zah</h3>
+<pre class="programlisting">#define IBUS_Arabic_zah 0x5d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-ain"></a><h3>IBUS_Arabic_ain</h3>
+<pre class="programlisting">#define IBUS_Arabic_ain 0x5d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-ghain"></a><h3>IBUS_Arabic_ghain</h3>
+<pre class="programlisting">#define IBUS_Arabic_ghain 0x5da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-tatweel"></a><h3>IBUS_Arabic_tatweel</h3>
+<pre class="programlisting">#define IBUS_Arabic_tatweel 0x5e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-feh"></a><h3>IBUS_Arabic_feh</h3>
+<pre class="programlisting">#define IBUS_Arabic_feh 0x5e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-qaf"></a><h3>IBUS_Arabic_qaf</h3>
+<pre class="programlisting">#define IBUS_Arabic_qaf 0x5e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-kaf"></a><h3>IBUS_Arabic_kaf</h3>
+<pre class="programlisting">#define IBUS_Arabic_kaf 0x5e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-lam"></a><h3>IBUS_Arabic_lam</h3>
+<pre class="programlisting">#define IBUS_Arabic_lam 0x5e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-meem"></a><h3>IBUS_Arabic_meem</h3>
+<pre class="programlisting">#define IBUS_Arabic_meem 0x5e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-noon"></a><h3>IBUS_Arabic_noon</h3>
+<pre class="programlisting">#define IBUS_Arabic_noon 0x5e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-ha"></a><h3>IBUS_Arabic_ha</h3>
+<pre class="programlisting">#define IBUS_Arabic_ha 0x5e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-heh"></a><h3>IBUS_Arabic_heh</h3>
+<pre class="programlisting">#define IBUS_Arabic_heh 0x5e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-waw"></a><h3>IBUS_Arabic_waw</h3>
+<pre class="programlisting">#define IBUS_Arabic_waw 0x5e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-alefmaksura"></a><h3>IBUS_Arabic_alefmaksura</h3>
+<pre class="programlisting">#define IBUS_Arabic_alefmaksura 0x5e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-yeh"></a><h3>IBUS_Arabic_yeh</h3>
+<pre class="programlisting">#define IBUS_Arabic_yeh 0x5ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-fathatan"></a><h3>IBUS_Arabic_fathatan</h3>
+<pre class="programlisting">#define IBUS_Arabic_fathatan 0x5eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-dammatan"></a><h3>IBUS_Arabic_dammatan</h3>
+<pre class="programlisting">#define IBUS_Arabic_dammatan 0x5ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-kasratan"></a><h3>IBUS_Arabic_kasratan</h3>
+<pre class="programlisting">#define IBUS_Arabic_kasratan 0x5ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-fatha"></a><h3>IBUS_Arabic_fatha</h3>
+<pre class="programlisting">#define IBUS_Arabic_fatha 0x5ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-damma"></a><h3>IBUS_Arabic_damma</h3>
+<pre class="programlisting">#define IBUS_Arabic_damma 0x5ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-kasra"></a><h3>IBUS_Arabic_kasra</h3>
+<pre class="programlisting">#define IBUS_Arabic_kasra 0x5f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-shadda"></a><h3>IBUS_Arabic_shadda</h3>
+<pre class="programlisting">#define IBUS_Arabic_shadda 0x5f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-sukun"></a><h3>IBUS_Arabic_sukun</h3>
+<pre class="programlisting">#define IBUS_Arabic_sukun 0x5f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-madda-above"></a><h3>IBUS_Arabic_madda_above</h3>
+<pre class="programlisting">#define IBUS_Arabic_madda_above 0x1000653
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-hamza-above"></a><h3>IBUS_Arabic_hamza_above</h3>
+<pre class="programlisting">#define IBUS_Arabic_hamza_above 0x1000654
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-hamza-below"></a><h3>IBUS_Arabic_hamza_below</h3>
+<pre class="programlisting">#define IBUS_Arabic_hamza_below 0x1000655
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-jeh"></a><h3>IBUS_Arabic_jeh</h3>
+<pre class="programlisting">#define IBUS_Arabic_jeh 0x1000698
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-veh"></a><h3>IBUS_Arabic_veh</h3>
+<pre class="programlisting">#define IBUS_Arabic_veh 0x10006a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-keheh"></a><h3>IBUS_Arabic_keheh</h3>
+<pre class="programlisting">#define IBUS_Arabic_keheh 0x10006a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-gaf"></a><h3>IBUS_Arabic_gaf</h3>
+<pre class="programlisting">#define IBUS_Arabic_gaf 0x10006af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-noon-ghunna"></a><h3>IBUS_Arabic_noon_ghunna</h3>
+<pre class="programlisting">#define IBUS_Arabic_noon_ghunna 0x10006ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-heh-doachashmee"></a><h3>IBUS_Arabic_heh_doachashmee</h3>
+<pre class="programlisting">#define IBUS_Arabic_heh_doachashmee 0x10006be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Farsi-yeh"></a><h3>IBUS_Farsi_yeh</h3>
+<pre class="programlisting">#define IBUS_Farsi_yeh 0x10006cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-farsi-yeh"></a><h3>IBUS_Arabic_farsi_yeh</h3>
+<pre class="programlisting">#define IBUS_Arabic_farsi_yeh 0x10006cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-yeh-baree"></a><h3>IBUS_Arabic_yeh_baree</h3>
+<pre class="programlisting">#define IBUS_Arabic_yeh_baree 0x10006d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-heh-goal"></a><h3>IBUS_Arabic_heh_goal</h3>
+<pre class="programlisting">#define IBUS_Arabic_heh_goal 0x10006c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Arabic-switch"></a><h3>IBUS_Arabic_switch</h3>
+<pre class="programlisting">#define IBUS_Arabic_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-GHE-bar"></a><h3>IBUS_Cyrillic_GHE_bar</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_GHE_bar 0x1000492
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ghe-bar"></a><h3>IBUS_Cyrillic_ghe_bar</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ghe_bar 0x1000493
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ZHE-descender"></a><h3>IBUS_Cyrillic_ZHE_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ZHE_descender 0x1000496
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-zhe-descender"></a><h3>IBUS_Cyrillic_zhe_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_zhe_descender 0x1000497
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-KA-descender"></a><h3>IBUS_Cyrillic_KA_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_KA_descender 0x100049a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ka-descender"></a><h3>IBUS_Cyrillic_ka_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ka_descender 0x100049b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-KA-vertstroke"></a><h3>IBUS_Cyrillic_KA_vertstroke</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_KA_vertstroke 0x100049c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ka-vertstroke"></a><h3>IBUS_Cyrillic_ka_vertstroke</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ka_vertstroke 0x100049d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-EN-descender"></a><h3>IBUS_Cyrillic_EN_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_EN_descender 0x10004a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-en-descender"></a><h3>IBUS_Cyrillic_en_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_en_descender 0x10004a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-U-straight"></a><h3>IBUS_Cyrillic_U_straight</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_U_straight 0x10004ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-u-straight"></a><h3>IBUS_Cyrillic_u_straight</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_u_straight 0x10004af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-U-straight-bar"></a><h3>IBUS_Cyrillic_U_straight_bar</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_U_straight_bar 0x10004b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-u-straight-bar"></a><h3>IBUS_Cyrillic_u_straight_bar</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_u_straight_bar 0x10004b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-HA-descender"></a><h3>IBUS_Cyrillic_HA_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_HA_descender 0x10004b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ha-descender"></a><h3>IBUS_Cyrillic_ha_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ha_descender 0x10004b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-CHE-descender"></a><h3>IBUS_Cyrillic_CHE_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_CHE_descender 0x10004b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-che-descender"></a><h3>IBUS_Cyrillic_che_descender</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_che_descender 0x10004b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-CHE-vertstroke"></a><h3>IBUS_Cyrillic_CHE_vertstroke</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_CHE_vertstroke 0x10004b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-che-vertstroke"></a><h3>IBUS_Cyrillic_che_vertstroke</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_che_vertstroke 0x10004b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-SHHA"></a><h3>IBUS_Cyrillic_SHHA</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_SHHA 0x10004ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-shha"></a><h3>IBUS_Cyrillic_shha</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_shha 0x10004bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-SCHWA"></a><h3>IBUS_Cyrillic_SCHWA</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_SCHWA 0x10004d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-schwa"></a><h3>IBUS_Cyrillic_schwa</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_schwa 0x10004d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-I-macron"></a><h3>IBUS_Cyrillic_I_macron</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_I_macron 0x10004e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-i-macron"></a><h3>IBUS_Cyrillic_i_macron</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_i_macron 0x10004e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-O-bar"></a><h3>IBUS_Cyrillic_O_bar</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_O_bar 0x10004e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-o-bar"></a><h3>IBUS_Cyrillic_o_bar</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_o_bar 0x10004e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-U-macron"></a><h3>IBUS_Cyrillic_U_macron</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_U_macron 0x10004ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-u-macron"></a><h3>IBUS_Cyrillic_u_macron</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_u_macron 0x10004ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-dje"></a><h3>IBUS_Serbian_dje</h3>
+<pre class="programlisting">#define IBUS_Serbian_dje 0x6a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Macedonia-gje"></a><h3>IBUS_Macedonia_gje</h3>
+<pre class="programlisting">#define IBUS_Macedonia_gje 0x6a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-io"></a><h3>IBUS_Cyrillic_io</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_io 0x6a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukrainian-ie"></a><h3>IBUS_Ukrainian_ie</h3>
+<pre class="programlisting">#define IBUS_Ukrainian_ie 0x6a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukranian-je"></a><h3>IBUS_Ukranian_je</h3>
+<pre class="programlisting">#define IBUS_Ukranian_je 0x6a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Macedonia-dse"></a><h3>IBUS_Macedonia_dse</h3>
+<pre class="programlisting">#define IBUS_Macedonia_dse 0x6a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukrainian-i"></a><h3>IBUS_Ukrainian_i</h3>
+<pre class="programlisting">#define IBUS_Ukrainian_i 0x6a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukranian-i"></a><h3>IBUS_Ukranian_i</h3>
+<pre class="programlisting">#define IBUS_Ukranian_i 0x6a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukrainian-yi"></a><h3>IBUS_Ukrainian_yi</h3>
+<pre class="programlisting">#define IBUS_Ukrainian_yi 0x6a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukranian-yi"></a><h3>IBUS_Ukranian_yi</h3>
+<pre class="programlisting">#define IBUS_Ukranian_yi 0x6a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-je"></a><h3>IBUS_Cyrillic_je</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_je 0x6a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-je"></a><h3>IBUS_Serbian_je</h3>
+<pre class="programlisting">#define IBUS_Serbian_je 0x6a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-lje"></a><h3>IBUS_Cyrillic_lje</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_lje 0x6a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-lje"></a><h3>IBUS_Serbian_lje</h3>
+<pre class="programlisting">#define IBUS_Serbian_lje 0x6a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-nje"></a><h3>IBUS_Cyrillic_nje</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_nje 0x6aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-nje"></a><h3>IBUS_Serbian_nje</h3>
+<pre class="programlisting">#define IBUS_Serbian_nje 0x6aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-tshe"></a><h3>IBUS_Serbian_tshe</h3>
+<pre class="programlisting">#define IBUS_Serbian_tshe 0x6ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Macedonia-kje"></a><h3>IBUS_Macedonia_kje</h3>
+<pre class="programlisting">#define IBUS_Macedonia_kje 0x6ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukrainian-ghe-with-upturn"></a><h3>IBUS_Ukrainian_ghe_with_upturn</h3>
+<pre class="programlisting">#define IBUS_Ukrainian_ghe_with_upturn 0x6ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Byelorussian-shortu"></a><h3>IBUS_Byelorussian_shortu</h3>
+<pre class="programlisting">#define IBUS_Byelorussian_shortu 0x6ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-dzhe"></a><h3>IBUS_Cyrillic_dzhe</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_dzhe 0x6af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-dze"></a><h3>IBUS_Serbian_dze</h3>
+<pre class="programlisting">#define IBUS_Serbian_dze 0x6af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-numerosign"></a><h3>IBUS_numerosign</h3>
+<pre class="programlisting">#define IBUS_numerosign 0x6b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-DJE"></a><h3>IBUS_Serbian_DJE</h3>
+<pre class="programlisting">#define IBUS_Serbian_DJE 0x6b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Macedonia-GJE"></a><h3>IBUS_Macedonia_GJE</h3>
+<pre class="programlisting">#define IBUS_Macedonia_GJE 0x6b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-IO"></a><h3>IBUS_Cyrillic_IO</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_IO 0x6b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukrainian-IE"></a><h3>IBUS_Ukrainian_IE</h3>
+<pre class="programlisting">#define IBUS_Ukrainian_IE 0x6b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukranian-JE"></a><h3>IBUS_Ukranian_JE</h3>
+<pre class="programlisting">#define IBUS_Ukranian_JE 0x6b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Macedonia-DSE"></a><h3>IBUS_Macedonia_DSE</h3>
+<pre class="programlisting">#define IBUS_Macedonia_DSE 0x6b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukrainian-I"></a><h3>IBUS_Ukrainian_I</h3>
+<pre class="programlisting">#define IBUS_Ukrainian_I 0x6b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukranian-I"></a><h3>IBUS_Ukranian_I</h3>
+<pre class="programlisting">#define IBUS_Ukranian_I 0x6b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukrainian-YI"></a><h3>IBUS_Ukrainian_YI</h3>
+<pre class="programlisting">#define IBUS_Ukrainian_YI 0x6b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukranian-YI"></a><h3>IBUS_Ukranian_YI</h3>
+<pre class="programlisting">#define IBUS_Ukranian_YI 0x6b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-JE"></a><h3>IBUS_Cyrillic_JE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_JE 0x6b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-JE"></a><h3>IBUS_Serbian_JE</h3>
+<pre class="programlisting">#define IBUS_Serbian_JE 0x6b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-LJE"></a><h3>IBUS_Cyrillic_LJE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_LJE 0x6b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-LJE"></a><h3>IBUS_Serbian_LJE</h3>
+<pre class="programlisting">#define IBUS_Serbian_LJE 0x6b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-NJE"></a><h3>IBUS_Cyrillic_NJE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_NJE 0x6ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-NJE"></a><h3>IBUS_Serbian_NJE</h3>
+<pre class="programlisting">#define IBUS_Serbian_NJE 0x6ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-TSHE"></a><h3>IBUS_Serbian_TSHE</h3>
+<pre class="programlisting">#define IBUS_Serbian_TSHE 0x6bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Macedonia-KJE"></a><h3>IBUS_Macedonia_KJE</h3>
+<pre class="programlisting">#define IBUS_Macedonia_KJE 0x6bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ukrainian-GHE-WITH-UPTURN"></a><h3>IBUS_Ukrainian_GHE_WITH_UPTURN</h3>
+<pre class="programlisting">#define IBUS_Ukrainian_GHE_WITH_UPTURN 0x6bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Byelorussian-SHORTU"></a><h3>IBUS_Byelorussian_SHORTU</h3>
+<pre class="programlisting">#define IBUS_Byelorussian_SHORTU 0x6be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-DZHE"></a><h3>IBUS_Cyrillic_DZHE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_DZHE 0x6bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Serbian-DZE"></a><h3>IBUS_Serbian_DZE</h3>
+<pre class="programlisting">#define IBUS_Serbian_DZE 0x6bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-yu"></a><h3>IBUS_Cyrillic_yu</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_yu 0x6c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-a"></a><h3>IBUS_Cyrillic_a</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_a 0x6c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-be"></a><h3>IBUS_Cyrillic_be</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_be 0x6c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-tse"></a><h3>IBUS_Cyrillic_tse</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_tse 0x6c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-de"></a><h3>IBUS_Cyrillic_de</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_de 0x6c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ie"></a><h3>IBUS_Cyrillic_ie</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ie 0x6c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ef"></a><h3>IBUS_Cyrillic_ef</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ef 0x6c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ghe"></a><h3>IBUS_Cyrillic_ghe</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ghe 0x6c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ha"></a><h3>IBUS_Cyrillic_ha</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ha 0x6c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-i"></a><h3>IBUS_Cyrillic_i</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_i 0x6c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-shorti"></a><h3>IBUS_Cyrillic_shorti</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_shorti 0x6ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ka"></a><h3>IBUS_Cyrillic_ka</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ka 0x6cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-el"></a><h3>IBUS_Cyrillic_el</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_el 0x6cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-em"></a><h3>IBUS_Cyrillic_em</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_em 0x6cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-en"></a><h3>IBUS_Cyrillic_en</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_en 0x6ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-o"></a><h3>IBUS_Cyrillic_o</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_o 0x6cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-pe"></a><h3>IBUS_Cyrillic_pe</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_pe 0x6d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ya"></a><h3>IBUS_Cyrillic_ya</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ya 0x6d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-er"></a><h3>IBUS_Cyrillic_er</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_er 0x6d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-es"></a><h3>IBUS_Cyrillic_es</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_es 0x6d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-te"></a><h3>IBUS_Cyrillic_te</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_te 0x6d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-u"></a><h3>IBUS_Cyrillic_u</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_u 0x6d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-zhe"></a><h3>IBUS_Cyrillic_zhe</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_zhe 0x6d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ve"></a><h3>IBUS_Cyrillic_ve</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ve 0x6d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-softsign"></a><h3>IBUS_Cyrillic_softsign</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_softsign 0x6d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-yeru"></a><h3>IBUS_Cyrillic_yeru</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_yeru 0x6d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ze"></a><h3>IBUS_Cyrillic_ze</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ze 0x6da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-sha"></a><h3>IBUS_Cyrillic_sha</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_sha 0x6db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-e"></a><h3>IBUS_Cyrillic_e</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_e 0x6dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-shcha"></a><h3>IBUS_Cyrillic_shcha</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_shcha 0x6dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-che"></a><h3>IBUS_Cyrillic_che</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_che 0x6de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-hardsign"></a><h3>IBUS_Cyrillic_hardsign</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_hardsign 0x6df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-YU"></a><h3>IBUS_Cyrillic_YU</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_YU 0x6e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-A"></a><h3>IBUS_Cyrillic_A</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_A 0x6e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-BE"></a><h3>IBUS_Cyrillic_BE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_BE 0x6e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-TSE"></a><h3>IBUS_Cyrillic_TSE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_TSE 0x6e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-DE"></a><h3>IBUS_Cyrillic_DE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_DE 0x6e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-IE"></a><h3>IBUS_Cyrillic_IE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_IE 0x6e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-EF"></a><h3>IBUS_Cyrillic_EF</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_EF 0x6e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-GHE"></a><h3>IBUS_Cyrillic_GHE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_GHE 0x6e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-HA"></a><h3>IBUS_Cyrillic_HA</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_HA 0x6e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-I"></a><h3>IBUS_Cyrillic_I</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_I 0x6e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-SHORTI"></a><h3>IBUS_Cyrillic_SHORTI</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_SHORTI 0x6ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-KA"></a><h3>IBUS_Cyrillic_KA</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_KA 0x6eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-EL"></a><h3>IBUS_Cyrillic_EL</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_EL 0x6ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-EM"></a><h3>IBUS_Cyrillic_EM</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_EM 0x6ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-EN"></a><h3>IBUS_Cyrillic_EN</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_EN 0x6ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-O"></a><h3>IBUS_Cyrillic_O</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_O 0x6ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-PE"></a><h3>IBUS_Cyrillic_PE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_PE 0x6f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-YA"></a><h3>IBUS_Cyrillic_YA</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_YA 0x6f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ER"></a><h3>IBUS_Cyrillic_ER</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ER 0x6f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ES"></a><h3>IBUS_Cyrillic_ES</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ES 0x6f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-TE"></a><h3>IBUS_Cyrillic_TE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_TE 0x6f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-U"></a><h3>IBUS_Cyrillic_U</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_U 0x6f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ZHE"></a><h3>IBUS_Cyrillic_ZHE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ZHE 0x6f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-VE"></a><h3>IBUS_Cyrillic_VE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_VE 0x6f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-SOFTSIGN"></a><h3>IBUS_Cyrillic_SOFTSIGN</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_SOFTSIGN 0x6f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-YERU"></a><h3>IBUS_Cyrillic_YERU</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_YERU 0x6f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-ZE"></a><h3>IBUS_Cyrillic_ZE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_ZE 0x6fa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-SHA"></a><h3>IBUS_Cyrillic_SHA</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_SHA 0x6fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-E"></a><h3>IBUS_Cyrillic_E</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_E 0x6fc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-SHCHA"></a><h3>IBUS_Cyrillic_SHCHA</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_SHCHA 0x6fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-CHE"></a><h3>IBUS_Cyrillic_CHE</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_CHE 0x6fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Cyrillic-HARDSIGN"></a><h3>IBUS_Cyrillic_HARDSIGN</h3>
+<pre class="programlisting">#define IBUS_Cyrillic_HARDSIGN 0x6ff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-ALPHAaccent"></a><h3>IBUS_Greek_ALPHAaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_ALPHAaccent 0x7a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-EPSILONaccent"></a><h3>IBUS_Greek_EPSILONaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_EPSILONaccent 0x7a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-ETAaccent"></a><h3>IBUS_Greek_ETAaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_ETAaccent 0x7a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-IOTAaccent"></a><h3>IBUS_Greek_IOTAaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_IOTAaccent 0x7a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-IOTAdieresis"></a><h3>IBUS_Greek_IOTAdieresis</h3>
+<pre class="programlisting">#define IBUS_Greek_IOTAdieresis 0x7a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-IOTAdiaeresis"></a><h3>IBUS_Greek_IOTAdiaeresis</h3>
+<pre class="programlisting">#define IBUS_Greek_IOTAdiaeresis 0x7a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-OMICRONaccent"></a><h3>IBUS_Greek_OMICRONaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_OMICRONaccent 0x7a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-UPSILONaccent"></a><h3>IBUS_Greek_UPSILONaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_UPSILONaccent 0x7a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-UPSILONdieresis"></a><h3>IBUS_Greek_UPSILONdieresis</h3>
+<pre class="programlisting">#define IBUS_Greek_UPSILONdieresis 0x7a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-OMEGAaccent"></a><h3>IBUS_Greek_OMEGAaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_OMEGAaccent 0x7ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-accentdieresis"></a><h3>IBUS_Greek_accentdieresis</h3>
+<pre class="programlisting">#define IBUS_Greek_accentdieresis 0x7ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-horizbar"></a><h3>IBUS_Greek_horizbar</h3>
+<pre class="programlisting">#define IBUS_Greek_horizbar 0x7af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-alphaaccent"></a><h3>IBUS_Greek_alphaaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_alphaaccent 0x7b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-epsilonaccent"></a><h3>IBUS_Greek_epsilonaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_epsilonaccent 0x7b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-etaaccent"></a><h3>IBUS_Greek_etaaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_etaaccent 0x7b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-iotaaccent"></a><h3>IBUS_Greek_iotaaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_iotaaccent 0x7b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-iotadieresis"></a><h3>IBUS_Greek_iotadieresis</h3>
+<pre class="programlisting">#define IBUS_Greek_iotadieresis 0x7b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-iotaaccentdieresis"></a><h3>IBUS_Greek_iotaaccentdieresis</h3>
+<pre class="programlisting">#define IBUS_Greek_iotaaccentdieresis 0x7b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-omicronaccent"></a><h3>IBUS_Greek_omicronaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_omicronaccent 0x7b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-upsilonaccent"></a><h3>IBUS_Greek_upsilonaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_upsilonaccent 0x7b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-upsilondieresis"></a><h3>IBUS_Greek_upsilondieresis</h3>
+<pre class="programlisting">#define IBUS_Greek_upsilondieresis 0x7b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-upsilonaccentdieresis"></a><h3>IBUS_Greek_upsilonaccentdieresis</h3>
+<pre class="programlisting">#define IBUS_Greek_upsilonaccentdieresis 0x7ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-omegaaccent"></a><h3>IBUS_Greek_omegaaccent</h3>
+<pre class="programlisting">#define IBUS_Greek_omegaaccent 0x7bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-ALPHA"></a><h3>IBUS_Greek_ALPHA</h3>
+<pre class="programlisting">#define IBUS_Greek_ALPHA 0x7c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-BETA"></a><h3>IBUS_Greek_BETA</h3>
+<pre class="programlisting">#define IBUS_Greek_BETA 0x7c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-GAMMA"></a><h3>IBUS_Greek_GAMMA</h3>
+<pre class="programlisting">#define IBUS_Greek_GAMMA 0x7c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-DELTA"></a><h3>IBUS_Greek_DELTA</h3>
+<pre class="programlisting">#define IBUS_Greek_DELTA 0x7c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-EPSILON"></a><h3>IBUS_Greek_EPSILON</h3>
+<pre class="programlisting">#define IBUS_Greek_EPSILON 0x7c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-ZETA"></a><h3>IBUS_Greek_ZETA</h3>
+<pre class="programlisting">#define IBUS_Greek_ZETA 0x7c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-ETA"></a><h3>IBUS_Greek_ETA</h3>
+<pre class="programlisting">#define IBUS_Greek_ETA 0x7c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-THETA"></a><h3>IBUS_Greek_THETA</h3>
+<pre class="programlisting">#define IBUS_Greek_THETA 0x7c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-IOTA"></a><h3>IBUS_Greek_IOTA</h3>
+<pre class="programlisting">#define IBUS_Greek_IOTA 0x7c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-KAPPA"></a><h3>IBUS_Greek_KAPPA</h3>
+<pre class="programlisting">#define IBUS_Greek_KAPPA 0x7ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-LAMDA"></a><h3>IBUS_Greek_LAMDA</h3>
+<pre class="programlisting">#define IBUS_Greek_LAMDA 0x7cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-LAMBDA"></a><h3>IBUS_Greek_LAMBDA</h3>
+<pre class="programlisting">#define IBUS_Greek_LAMBDA 0x7cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-MU"></a><h3>IBUS_Greek_MU</h3>
+<pre class="programlisting">#define IBUS_Greek_MU 0x7cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-NU"></a><h3>IBUS_Greek_NU</h3>
+<pre class="programlisting">#define IBUS_Greek_NU 0x7cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-XI"></a><h3>IBUS_Greek_XI</h3>
+<pre class="programlisting">#define IBUS_Greek_XI 0x7ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-OMICRON"></a><h3>IBUS_Greek_OMICRON</h3>
+<pre class="programlisting">#define IBUS_Greek_OMICRON 0x7cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-PI"></a><h3>IBUS_Greek_PI</h3>
+<pre class="programlisting">#define IBUS_Greek_PI 0x7d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-RHO"></a><h3>IBUS_Greek_RHO</h3>
+<pre class="programlisting">#define IBUS_Greek_RHO 0x7d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-SIGMA"></a><h3>IBUS_Greek_SIGMA</h3>
+<pre class="programlisting">#define IBUS_Greek_SIGMA 0x7d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-TAU"></a><h3>IBUS_Greek_TAU</h3>
+<pre class="programlisting">#define IBUS_Greek_TAU 0x7d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-UPSILON"></a><h3>IBUS_Greek_UPSILON</h3>
+<pre class="programlisting">#define IBUS_Greek_UPSILON 0x7d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-PHI"></a><h3>IBUS_Greek_PHI</h3>
+<pre class="programlisting">#define IBUS_Greek_PHI 0x7d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-CHI"></a><h3>IBUS_Greek_CHI</h3>
+<pre class="programlisting">#define IBUS_Greek_CHI 0x7d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-PSI"></a><h3>IBUS_Greek_PSI</h3>
+<pre class="programlisting">#define IBUS_Greek_PSI 0x7d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-OMEGA"></a><h3>IBUS_Greek_OMEGA</h3>
+<pre class="programlisting">#define IBUS_Greek_OMEGA 0x7d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-alpha"></a><h3>IBUS_Greek_alpha</h3>
+<pre class="programlisting">#define IBUS_Greek_alpha 0x7e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-beta"></a><h3>IBUS_Greek_beta</h3>
+<pre class="programlisting">#define IBUS_Greek_beta 0x7e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-gamma"></a><h3>IBUS_Greek_gamma</h3>
+<pre class="programlisting">#define IBUS_Greek_gamma 0x7e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-delta"></a><h3>IBUS_Greek_delta</h3>
+<pre class="programlisting">#define IBUS_Greek_delta 0x7e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-epsilon"></a><h3>IBUS_Greek_epsilon</h3>
+<pre class="programlisting">#define IBUS_Greek_epsilon 0x7e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-zeta"></a><h3>IBUS_Greek_zeta</h3>
+<pre class="programlisting">#define IBUS_Greek_zeta 0x7e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-eta"></a><h3>IBUS_Greek_eta</h3>
+<pre class="programlisting">#define IBUS_Greek_eta 0x7e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-theta"></a><h3>IBUS_Greek_theta</h3>
+<pre class="programlisting">#define IBUS_Greek_theta 0x7e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-iota"></a><h3>IBUS_Greek_iota</h3>
+<pre class="programlisting">#define IBUS_Greek_iota 0x7e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-kappa"></a><h3>IBUS_Greek_kappa</h3>
+<pre class="programlisting">#define IBUS_Greek_kappa 0x7ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-lamda"></a><h3>IBUS_Greek_lamda</h3>
+<pre class="programlisting">#define IBUS_Greek_lamda 0x7eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-lambda"></a><h3>IBUS_Greek_lambda</h3>
+<pre class="programlisting">#define IBUS_Greek_lambda 0x7eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-mu"></a><h3>IBUS_Greek_mu</h3>
+<pre class="programlisting">#define IBUS_Greek_mu 0x7ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-nu"></a><h3>IBUS_Greek_nu</h3>
+<pre class="programlisting">#define IBUS_Greek_nu 0x7ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-xi"></a><h3>IBUS_Greek_xi</h3>
+<pre class="programlisting">#define IBUS_Greek_xi 0x7ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-omicron"></a><h3>IBUS_Greek_omicron</h3>
+<pre class="programlisting">#define IBUS_Greek_omicron 0x7ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-pi"></a><h3>IBUS_Greek_pi</h3>
+<pre class="programlisting">#define IBUS_Greek_pi 0x7f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-rho"></a><h3>IBUS_Greek_rho</h3>
+<pre class="programlisting">#define IBUS_Greek_rho 0x7f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-sigma"></a><h3>IBUS_Greek_sigma</h3>
+<pre class="programlisting">#define IBUS_Greek_sigma 0x7f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-finalsmallsigma"></a><h3>IBUS_Greek_finalsmallsigma</h3>
+<pre class="programlisting">#define IBUS_Greek_finalsmallsigma 0x7f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-tau"></a><h3>IBUS_Greek_tau</h3>
+<pre class="programlisting">#define IBUS_Greek_tau 0x7f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-upsilon"></a><h3>IBUS_Greek_upsilon</h3>
+<pre class="programlisting">#define IBUS_Greek_upsilon 0x7f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-phi"></a><h3>IBUS_Greek_phi</h3>
+<pre class="programlisting">#define IBUS_Greek_phi 0x7f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-chi"></a><h3>IBUS_Greek_chi</h3>
+<pre class="programlisting">#define IBUS_Greek_chi 0x7f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-psi"></a><h3>IBUS_Greek_psi</h3>
+<pre class="programlisting">#define IBUS_Greek_psi 0x7f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-omega"></a><h3>IBUS_Greek_omega</h3>
+<pre class="programlisting">#define IBUS_Greek_omega 0x7f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Greek-switch"></a><h3>IBUS_Greek_switch</h3>
+<pre class="programlisting">#define IBUS_Greek_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftradical"></a><h3>IBUS_leftradical</h3>
+<pre class="programlisting">#define IBUS_leftradical 0x8a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-topleftradical"></a><h3>IBUS_topleftradical</h3>
+<pre class="programlisting">#define IBUS_topleftradical 0x8a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-horizconnector"></a><h3>IBUS_horizconnector</h3>
+<pre class="programlisting">#define IBUS_horizconnector 0x8a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-topintegral"></a><h3>IBUS_topintegral</h3>
+<pre class="programlisting">#define IBUS_topintegral 0x8a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-botintegral"></a><h3>IBUS_botintegral</h3>
+<pre class="programlisting">#define IBUS_botintegral 0x8a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-vertconnector"></a><h3>IBUS_vertconnector</h3>
+<pre class="programlisting">#define IBUS_vertconnector 0x8a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-topleftsqbracket"></a><h3>IBUS_topleftsqbracket</h3>
+<pre class="programlisting">#define IBUS_topleftsqbracket 0x8a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-botleftsqbracket"></a><h3>IBUS_botleftsqbracket</h3>
+<pre class="programlisting">#define IBUS_botleftsqbracket 0x8a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-toprightsqbracket"></a><h3>IBUS_toprightsqbracket</h3>
+<pre class="programlisting">#define IBUS_toprightsqbracket 0x8a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-botrightsqbracket"></a><h3>IBUS_botrightsqbracket</h3>
+<pre class="programlisting">#define IBUS_botrightsqbracket 0x8aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-topleftparens"></a><h3>IBUS_topleftparens</h3>
+<pre class="programlisting">#define IBUS_topleftparens 0x8ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-botleftparens"></a><h3>IBUS_botleftparens</h3>
+<pre class="programlisting">#define IBUS_botleftparens 0x8ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-toprightparens"></a><h3>IBUS_toprightparens</h3>
+<pre class="programlisting">#define IBUS_toprightparens 0x8ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-botrightparens"></a><h3>IBUS_botrightparens</h3>
+<pre class="programlisting">#define IBUS_botrightparens 0x8ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftmiddlecurlybrace"></a><h3>IBUS_leftmiddlecurlybrace</h3>
+<pre class="programlisting">#define IBUS_leftmiddlecurlybrace 0x8af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightmiddlecurlybrace"></a><h3>IBUS_rightmiddlecurlybrace</h3>
+<pre class="programlisting">#define IBUS_rightmiddlecurlybrace 0x8b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-topleftsummation"></a><h3>IBUS_topleftsummation</h3>
+<pre class="programlisting">#define IBUS_topleftsummation 0x8b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-botleftsummation"></a><h3>IBUS_botleftsummation</h3>
+<pre class="programlisting">#define IBUS_botleftsummation 0x8b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-topvertsummationconnector"></a><h3>IBUS_topvertsummationconnector</h3>
+<pre class="programlisting">#define IBUS_topvertsummationconnector 0x8b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-botvertsummationconnector"></a><h3>IBUS_botvertsummationconnector</h3>
+<pre class="programlisting">#define IBUS_botvertsummationconnector 0x8b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-toprightsummation"></a><h3>IBUS_toprightsummation</h3>
+<pre class="programlisting">#define IBUS_toprightsummation 0x8b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-botrightsummation"></a><h3>IBUS_botrightsummation</h3>
+<pre class="programlisting">#define IBUS_botrightsummation 0x8b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightmiddlesummation"></a><h3>IBUS_rightmiddlesummation</h3>
+<pre class="programlisting">#define IBUS_rightmiddlesummation 0x8b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lessthanequal"></a><h3>IBUS_lessthanequal</h3>
+<pre class="programlisting">#define IBUS_lessthanequal 0x8bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-notequal"></a><h3>IBUS_notequal</h3>
+<pre class="programlisting">#define IBUS_notequal 0x8bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-greaterthanequal"></a><h3>IBUS_greaterthanequal</h3>
+<pre class="programlisting">#define IBUS_greaterthanequal 0x8be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-integral"></a><h3>IBUS_integral</h3>
+<pre class="programlisting">#define IBUS_integral 0x8bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-therefore"></a><h3>IBUS_therefore</h3>
+<pre class="programlisting">#define IBUS_therefore 0x8c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-variation"></a><h3>IBUS_variation</h3>
+<pre class="programlisting">#define IBUS_variation 0x8c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-infinity"></a><h3>IBUS_infinity</h3>
+<pre class="programlisting">#define IBUS_infinity 0x8c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-nabla"></a><h3>IBUS_nabla</h3>
+<pre class="programlisting">#define IBUS_nabla 0x8c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-approximate"></a><h3>IBUS_approximate</h3>
+<pre class="programlisting">#define IBUS_approximate 0x8c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-similarequal"></a><h3>IBUS_similarequal</h3>
+<pre class="programlisting">#define IBUS_similarequal 0x8c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ifonlyif"></a><h3>IBUS_ifonlyif</h3>
+<pre class="programlisting">#define IBUS_ifonlyif 0x8cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-implies"></a><h3>IBUS_implies</h3>
+<pre class="programlisting">#define IBUS_implies 0x8ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-identical"></a><h3>IBUS_identical</h3>
+<pre class="programlisting">#define IBUS_identical 0x8cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-radical"></a><h3>IBUS_radical</h3>
+<pre class="programlisting">#define IBUS_radical 0x8d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-includedin"></a><h3>IBUS_includedin</h3>
+<pre class="programlisting">#define IBUS_includedin 0x8da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-includes"></a><h3>IBUS_includes</h3>
+<pre class="programlisting">#define IBUS_includes 0x8db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-intersection"></a><h3>IBUS_intersection</h3>
+<pre class="programlisting">#define IBUS_intersection 0x8dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-union"></a><h3>IBUS_union</h3>
+<pre class="programlisting">#define IBUS_union 0x8dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-logicaland"></a><h3>IBUS_logicaland</h3>
+<pre class="programlisting">#define IBUS_logicaland 0x8de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-logicalor"></a><h3>IBUS_logicalor</h3>
+<pre class="programlisting">#define IBUS_logicalor 0x8df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-partialderivative"></a><h3>IBUS_partialderivative</h3>
+<pre class="programlisting">#define IBUS_partialderivative 0x8ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-function"></a><h3>IBUS_function</h3>
+<pre class="programlisting">#define IBUS_function 0x8f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftarrow"></a><h3>IBUS_leftarrow</h3>
+<pre class="programlisting">#define IBUS_leftarrow 0x8fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uparrow"></a><h3>IBUS_uparrow</h3>
+<pre class="programlisting">#define IBUS_uparrow 0x8fc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightarrow"></a><h3>IBUS_rightarrow</h3>
+<pre class="programlisting">#define IBUS_rightarrow 0x8fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-downarrow"></a><h3>IBUS_downarrow</h3>
+<pre class="programlisting">#define IBUS_downarrow 0x8fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-blank"></a><h3>IBUS_blank</h3>
+<pre class="programlisting">#define IBUS_blank 0x9df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-soliddiamond"></a><h3>IBUS_soliddiamond</h3>
+<pre class="programlisting">#define IBUS_soliddiamond 0x9e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-checkerboard"></a><h3>IBUS_checkerboard</h3>
+<pre class="programlisting">#define IBUS_checkerboard 0x9e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ht"></a><h3>IBUS_ht</h3>
+<pre class="programlisting">#define IBUS_ht 0x9e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ff"></a><h3>IBUS_ff</h3>
+<pre class="programlisting">#define IBUS_ff 0x9e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-cr"></a><h3>IBUS_cr</h3>
+<pre class="programlisting">#define IBUS_cr 0x9e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lf"></a><h3>IBUS_lf</h3>
+<pre class="programlisting">#define IBUS_lf 0x9e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-nl"></a><h3>IBUS_nl</h3>
+<pre class="programlisting">#define IBUS_nl 0x9e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-vt"></a><h3>IBUS_vt</h3>
+<pre class="programlisting">#define IBUS_vt 0x9e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lowrightcorner"></a><h3>IBUS_lowrightcorner</h3>
+<pre class="programlisting">#define IBUS_lowrightcorner 0x9ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uprightcorner"></a><h3>IBUS_uprightcorner</h3>
+<pre class="programlisting">#define IBUS_uprightcorner 0x9eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-upleftcorner"></a><h3>IBUS_upleftcorner</h3>
+<pre class="programlisting">#define IBUS_upleftcorner 0x9ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lowleftcorner"></a><h3>IBUS_lowleftcorner</h3>
+<pre class="programlisting">#define IBUS_lowleftcorner 0x9ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-crossinglines"></a><h3>IBUS_crossinglines</h3>
+<pre class="programlisting">#define IBUS_crossinglines 0x9ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-horizlinescan1"></a><h3>IBUS_horizlinescan1</h3>
+<pre class="programlisting">#define IBUS_horizlinescan1 0x9ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-horizlinescan3"></a><h3>IBUS_horizlinescan3</h3>
+<pre class="programlisting">#define IBUS_horizlinescan3 0x9f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-horizlinescan5"></a><h3>IBUS_horizlinescan5</h3>
+<pre class="programlisting">#define IBUS_horizlinescan5 0x9f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-horizlinescan7"></a><h3>IBUS_horizlinescan7</h3>
+<pre class="programlisting">#define IBUS_horizlinescan7 0x9f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-horizlinescan9"></a><h3>IBUS_horizlinescan9</h3>
+<pre class="programlisting">#define IBUS_horizlinescan9 0x9f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftt"></a><h3>IBUS_leftt</h3>
+<pre class="programlisting">#define IBUS_leftt 0x9f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightt"></a><h3>IBUS_rightt</h3>
+<pre class="programlisting">#define IBUS_rightt 0x9f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-bott"></a><h3>IBUS_bott</h3>
+<pre class="programlisting">#define IBUS_bott 0x9f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-topt"></a><h3>IBUS_topt</h3>
+<pre class="programlisting">#define IBUS_topt 0x9f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-vertbar"></a><h3>IBUS_vertbar</h3>
+<pre class="programlisting">#define IBUS_vertbar 0x9f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-emspace"></a><h3>IBUS_emspace</h3>
+<pre class="programlisting">#define IBUS_emspace 0xaa1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-enspace"></a><h3>IBUS_enspace</h3>
+<pre class="programlisting">#define IBUS_enspace 0xaa2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-em3space"></a><h3>IBUS_em3space</h3>
+<pre class="programlisting">#define IBUS_em3space 0xaa3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-em4space"></a><h3>IBUS_em4space</h3>
+<pre class="programlisting">#define IBUS_em4space 0xaa4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-digitspace"></a><h3>IBUS_digitspace</h3>
+<pre class="programlisting">#define IBUS_digitspace 0xaa5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-punctspace"></a><h3>IBUS_punctspace</h3>
+<pre class="programlisting">#define IBUS_punctspace 0xaa6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-thinspace"></a><h3>IBUS_thinspace</h3>
+<pre class="programlisting">#define IBUS_thinspace 0xaa7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hairspace"></a><h3>IBUS_hairspace</h3>
+<pre class="programlisting">#define IBUS_hairspace 0xaa8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-emdash"></a><h3>IBUS_emdash</h3>
+<pre class="programlisting">#define IBUS_emdash 0xaa9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-endash"></a><h3>IBUS_endash</h3>
+<pre class="programlisting">#define IBUS_endash 0xaaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-signifblank"></a><h3>IBUS_signifblank</h3>
+<pre class="programlisting">#define IBUS_signifblank 0xaac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ellipsis"></a><h3>IBUS_ellipsis</h3>
+<pre class="programlisting">#define IBUS_ellipsis 0xaae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-doubbaselinedot"></a><h3>IBUS_doubbaselinedot</h3>
+<pre class="programlisting">#define IBUS_doubbaselinedot 0xaaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-onethird"></a><h3>IBUS_onethird</h3>
+<pre class="programlisting">#define IBUS_onethird 0xab0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-twothirds"></a><h3>IBUS_twothirds</h3>
+<pre class="programlisting">#define IBUS_twothirds 0xab1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-onefifth"></a><h3>IBUS_onefifth</h3>
+<pre class="programlisting">#define IBUS_onefifth 0xab2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-twofifths"></a><h3>IBUS_twofifths</h3>
+<pre class="programlisting">#define IBUS_twofifths 0xab3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-threefifths"></a><h3>IBUS_threefifths</h3>
+<pre class="programlisting">#define IBUS_threefifths 0xab4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-fourfifths"></a><h3>IBUS_fourfifths</h3>
+<pre class="programlisting">#define IBUS_fourfifths 0xab5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-onesixth"></a><h3>IBUS_onesixth</h3>
+<pre class="programlisting">#define IBUS_onesixth 0xab6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-fivesixths"></a><h3>IBUS_fivesixths</h3>
+<pre class="programlisting">#define IBUS_fivesixths 0xab7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-careof"></a><h3>IBUS_careof</h3>
+<pre class="programlisting">#define IBUS_careof 0xab8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-figdash"></a><h3>IBUS_figdash</h3>
+<pre class="programlisting">#define IBUS_figdash 0xabb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftanglebracket"></a><h3>IBUS_leftanglebracket</h3>
+<pre class="programlisting">#define IBUS_leftanglebracket 0xabc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-decimalpoint"></a><h3>IBUS_decimalpoint</h3>
+<pre class="programlisting">#define IBUS_decimalpoint 0xabd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightanglebracket"></a><h3>IBUS_rightanglebracket</h3>
+<pre class="programlisting">#define IBUS_rightanglebracket 0xabe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-marker"></a><h3>IBUS_marker</h3>
+<pre class="programlisting">#define IBUS_marker 0xabf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-oneeighth"></a><h3>IBUS_oneeighth</h3>
+<pre class="programlisting">#define IBUS_oneeighth 0xac3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-threeeighths"></a><h3>IBUS_threeeighths</h3>
+<pre class="programlisting">#define IBUS_threeeighths 0xac4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-fiveeighths"></a><h3>IBUS_fiveeighths</h3>
+<pre class="programlisting">#define IBUS_fiveeighths 0xac5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-seveneighths"></a><h3>IBUS_seveneighths</h3>
+<pre class="programlisting">#define IBUS_seveneighths 0xac6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-trademark"></a><h3>IBUS_trademark</h3>
+<pre class="programlisting">#define IBUS_trademark 0xac9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-signaturemark"></a><h3>IBUS_signaturemark</h3>
+<pre class="programlisting">#define IBUS_signaturemark 0xaca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-trademarkincircle"></a><h3>IBUS_trademarkincircle</h3>
+<pre class="programlisting">#define IBUS_trademarkincircle 0xacb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftopentriangle"></a><h3>IBUS_leftopentriangle</h3>
+<pre class="programlisting">#define IBUS_leftopentriangle 0xacc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightopentriangle"></a><h3>IBUS_rightopentriangle</h3>
+<pre class="programlisting">#define IBUS_rightopentriangle 0xacd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-emopencircle"></a><h3>IBUS_emopencircle</h3>
+<pre class="programlisting">#define IBUS_emopencircle 0xace
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-emopenrectangle"></a><h3>IBUS_emopenrectangle</h3>
+<pre class="programlisting">#define IBUS_emopenrectangle 0xacf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftsinglequotemark"></a><h3>IBUS_leftsinglequotemark</h3>
+<pre class="programlisting">#define IBUS_leftsinglequotemark 0xad0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightsinglequotemark"></a><h3>IBUS_rightsinglequotemark</h3>
+<pre class="programlisting">#define IBUS_rightsinglequotemark 0xad1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftdoublequotemark"></a><h3>IBUS_leftdoublequotemark</h3>
+<pre class="programlisting">#define IBUS_leftdoublequotemark 0xad2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightdoublequotemark"></a><h3>IBUS_rightdoublequotemark</h3>
+<pre class="programlisting">#define IBUS_rightdoublequotemark 0xad3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-prescription"></a><h3>IBUS_prescription</h3>
+<pre class="programlisting">#define IBUS_prescription 0xad4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-minutes"></a><h3>IBUS_minutes</h3>
+<pre class="programlisting">#define IBUS_minutes 0xad6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-seconds"></a><h3>IBUS_seconds</h3>
+<pre class="programlisting">#define IBUS_seconds 0xad7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-latincross"></a><h3>IBUS_latincross</h3>
+<pre class="programlisting">#define IBUS_latincross 0xad9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hexagram"></a><h3>IBUS_hexagram</h3>
+<pre class="programlisting">#define IBUS_hexagram 0xada
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-filledrectbullet"></a><h3>IBUS_filledrectbullet</h3>
+<pre class="programlisting">#define IBUS_filledrectbullet 0xadb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-filledlefttribullet"></a><h3>IBUS_filledlefttribullet</h3>
+<pre class="programlisting">#define IBUS_filledlefttribullet 0xadc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-filledrighttribullet"></a><h3>IBUS_filledrighttribullet</h3>
+<pre class="programlisting">#define IBUS_filledrighttribullet 0xadd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-emfilledcircle"></a><h3>IBUS_emfilledcircle</h3>
+<pre class="programlisting">#define IBUS_emfilledcircle 0xade
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-emfilledrect"></a><h3>IBUS_emfilledrect</h3>
+<pre class="programlisting">#define IBUS_emfilledrect 0xadf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-enopencircbullet"></a><h3>IBUS_enopencircbullet</h3>
+<pre class="programlisting">#define IBUS_enopencircbullet 0xae0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-enopensquarebullet"></a><h3>IBUS_enopensquarebullet</h3>
+<pre class="programlisting">#define IBUS_enopensquarebullet 0xae1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-openrectbullet"></a><h3>IBUS_openrectbullet</h3>
+<pre class="programlisting">#define IBUS_openrectbullet 0xae2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-opentribulletup"></a><h3>IBUS_opentribulletup</h3>
+<pre class="programlisting">#define IBUS_opentribulletup 0xae3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-opentribulletdown"></a><h3>IBUS_opentribulletdown</h3>
+<pre class="programlisting">#define IBUS_opentribulletdown 0xae4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-openstar"></a><h3>IBUS_openstar</h3>
+<pre class="programlisting">#define IBUS_openstar 0xae5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-enfilledcircbullet"></a><h3>IBUS_enfilledcircbullet</h3>
+<pre class="programlisting">#define IBUS_enfilledcircbullet 0xae6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-enfilledsqbullet"></a><h3>IBUS_enfilledsqbullet</h3>
+<pre class="programlisting">#define IBUS_enfilledsqbullet 0xae7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-filledtribulletup"></a><h3>IBUS_filledtribulletup</h3>
+<pre class="programlisting">#define IBUS_filledtribulletup 0xae8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-filledtribulletdown"></a><h3>IBUS_filledtribulletdown</h3>
+<pre class="programlisting">#define IBUS_filledtribulletdown 0xae9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftpointer"></a><h3>IBUS_leftpointer</h3>
+<pre class="programlisting">#define IBUS_leftpointer 0xaea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightpointer"></a><h3>IBUS_rightpointer</h3>
+<pre class="programlisting">#define IBUS_rightpointer 0xaeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-club"></a><h3>IBUS_club</h3>
+<pre class="programlisting">#define IBUS_club 0xaec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-diamond"></a><h3>IBUS_diamond</h3>
+<pre class="programlisting">#define IBUS_diamond 0xaed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-heart"></a><h3>IBUS_heart</h3>
+<pre class="programlisting">#define IBUS_heart 0xaee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-maltesecross"></a><h3>IBUS_maltesecross</h3>
+<pre class="programlisting">#define IBUS_maltesecross 0xaf0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dagger"></a><h3>IBUS_dagger</h3>
+<pre class="programlisting">#define IBUS_dagger 0xaf1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-doubledagger"></a><h3>IBUS_doubledagger</h3>
+<pre class="programlisting">#define IBUS_doubledagger 0xaf2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-checkmark"></a><h3>IBUS_checkmark</h3>
+<pre class="programlisting">#define IBUS_checkmark 0xaf3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ballotcross"></a><h3>IBUS_ballotcross</h3>
+<pre class="programlisting">#define IBUS_ballotcross 0xaf4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-musicalsharp"></a><h3>IBUS_musicalsharp</h3>
+<pre class="programlisting">#define IBUS_musicalsharp 0xaf5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-musicalflat"></a><h3>IBUS_musicalflat</h3>
+<pre class="programlisting">#define IBUS_musicalflat 0xaf6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-malesymbol"></a><h3>IBUS_malesymbol</h3>
+<pre class="programlisting">#define IBUS_malesymbol 0xaf7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-femalesymbol"></a><h3>IBUS_femalesymbol</h3>
+<pre class="programlisting">#define IBUS_femalesymbol 0xaf8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-telephone"></a><h3>IBUS_telephone</h3>
+<pre class="programlisting">#define IBUS_telephone 0xaf9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-telephonerecorder"></a><h3>IBUS_telephonerecorder</h3>
+<pre class="programlisting">#define IBUS_telephonerecorder 0xafa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-phonographcopyright"></a><h3>IBUS_phonographcopyright</h3>
+<pre class="programlisting">#define IBUS_phonographcopyright 0xafb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-caret"></a><h3>IBUS_caret</h3>
+<pre class="programlisting">#define IBUS_caret 0xafc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-singlelowquotemark"></a><h3>IBUS_singlelowquotemark</h3>
+<pre class="programlisting">#define IBUS_singlelowquotemark 0xafd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-doublelowquotemark"></a><h3>IBUS_doublelowquotemark</h3>
+<pre class="programlisting">#define IBUS_doublelowquotemark 0xafe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-cursor"></a><h3>IBUS_cursor</h3>
+<pre class="programlisting">#define IBUS_cursor 0xaff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftcaret"></a><h3>IBUS_leftcaret</h3>
+<pre class="programlisting">#define IBUS_leftcaret 0xba3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightcaret"></a><h3>IBUS_rightcaret</h3>
+<pre class="programlisting">#define IBUS_rightcaret 0xba6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-downcaret"></a><h3>IBUS_downcaret</h3>
+<pre class="programlisting">#define IBUS_downcaret 0xba8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-upcaret"></a><h3>IBUS_upcaret</h3>
+<pre class="programlisting">#define IBUS_upcaret 0xba9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-overbar"></a><h3>IBUS_overbar</h3>
+<pre class="programlisting">#define IBUS_overbar 0xbc0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-downtack"></a><h3>IBUS_downtack</h3>
+<pre class="programlisting">#define IBUS_downtack 0xbc2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-upshoe"></a><h3>IBUS_upshoe</h3>
+<pre class="programlisting">#define IBUS_upshoe 0xbc3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-downstile"></a><h3>IBUS_downstile</h3>
+<pre class="programlisting">#define IBUS_downstile 0xbc4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-underbar"></a><h3>IBUS_underbar</h3>
+<pre class="programlisting">#define IBUS_underbar 0xbc6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-jot"></a><h3>IBUS_jot</h3>
+<pre class="programlisting">#define IBUS_jot 0xbca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-quad"></a><h3>IBUS_quad</h3>
+<pre class="programlisting">#define IBUS_quad 0xbcc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uptack"></a><h3>IBUS_uptack</h3>
+<pre class="programlisting">#define IBUS_uptack 0xbce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-circle"></a><h3>IBUS_circle</h3>
+<pre class="programlisting">#define IBUS_circle 0xbcf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-upstile"></a><h3>IBUS_upstile</h3>
+<pre class="programlisting">#define IBUS_upstile 0xbd3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-downshoe"></a><h3>IBUS_downshoe</h3>
+<pre class="programlisting">#define IBUS_downshoe 0xbd6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-rightshoe"></a><h3>IBUS_rightshoe</h3>
+<pre class="programlisting">#define IBUS_rightshoe 0xbd8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-leftshoe"></a><h3>IBUS_leftshoe</h3>
+<pre class="programlisting">#define IBUS_leftshoe 0xbda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lefttack"></a><h3>IBUS_lefttack</h3>
+<pre class="programlisting">#define IBUS_lefttack 0xbdc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-righttack"></a><h3>IBUS_righttack</h3>
+<pre class="programlisting">#define IBUS_righttack 0xbfc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-doublelowline"></a><h3>IBUS_hebrew_doublelowline</h3>
+<pre class="programlisting">#define IBUS_hebrew_doublelowline 0xcdf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-aleph"></a><h3>IBUS_hebrew_aleph</h3>
+<pre class="programlisting">#define IBUS_hebrew_aleph 0xce0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-bet"></a><h3>IBUS_hebrew_bet</h3>
+<pre class="programlisting">#define IBUS_hebrew_bet 0xce1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-beth"></a><h3>IBUS_hebrew_beth</h3>
+<pre class="programlisting">#define IBUS_hebrew_beth 0xce1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-gimel"></a><h3>IBUS_hebrew_gimel</h3>
+<pre class="programlisting">#define IBUS_hebrew_gimel 0xce2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-gimmel"></a><h3>IBUS_hebrew_gimmel</h3>
+<pre class="programlisting">#define IBUS_hebrew_gimmel 0xce2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-dalet"></a><h3>IBUS_hebrew_dalet</h3>
+<pre class="programlisting">#define IBUS_hebrew_dalet 0xce3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-daleth"></a><h3>IBUS_hebrew_daleth</h3>
+<pre class="programlisting">#define IBUS_hebrew_daleth 0xce3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-he"></a><h3>IBUS_hebrew_he</h3>
+<pre class="programlisting">#define IBUS_hebrew_he 0xce4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-waw"></a><h3>IBUS_hebrew_waw</h3>
+<pre class="programlisting">#define IBUS_hebrew_waw 0xce5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-zain"></a><h3>IBUS_hebrew_zain</h3>
+<pre class="programlisting">#define IBUS_hebrew_zain 0xce6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-zayin"></a><h3>IBUS_hebrew_zayin</h3>
+<pre class="programlisting">#define IBUS_hebrew_zayin 0xce6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-chet"></a><h3>IBUS_hebrew_chet</h3>
+<pre class="programlisting">#define IBUS_hebrew_chet 0xce7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-het"></a><h3>IBUS_hebrew_het</h3>
+<pre class="programlisting">#define IBUS_hebrew_het 0xce7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-tet"></a><h3>IBUS_hebrew_tet</h3>
+<pre class="programlisting">#define IBUS_hebrew_tet 0xce8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-teth"></a><h3>IBUS_hebrew_teth</h3>
+<pre class="programlisting">#define IBUS_hebrew_teth 0xce8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-yod"></a><h3>IBUS_hebrew_yod</h3>
+<pre class="programlisting">#define IBUS_hebrew_yod 0xce9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-finalkaph"></a><h3>IBUS_hebrew_finalkaph</h3>
+<pre class="programlisting">#define IBUS_hebrew_finalkaph 0xcea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-kaph"></a><h3>IBUS_hebrew_kaph</h3>
+<pre class="programlisting">#define IBUS_hebrew_kaph 0xceb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-lamed"></a><h3>IBUS_hebrew_lamed</h3>
+<pre class="programlisting">#define IBUS_hebrew_lamed 0xcec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-finalmem"></a><h3>IBUS_hebrew_finalmem</h3>
+<pre class="programlisting">#define IBUS_hebrew_finalmem 0xced
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-mem"></a><h3>IBUS_hebrew_mem</h3>
+<pre class="programlisting">#define IBUS_hebrew_mem 0xcee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-finalnun"></a><h3>IBUS_hebrew_finalnun</h3>
+<pre class="programlisting">#define IBUS_hebrew_finalnun 0xcef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-nun"></a><h3>IBUS_hebrew_nun</h3>
+<pre class="programlisting">#define IBUS_hebrew_nun 0xcf0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-samech"></a><h3>IBUS_hebrew_samech</h3>
+<pre class="programlisting">#define IBUS_hebrew_samech 0xcf1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-samekh"></a><h3>IBUS_hebrew_samekh</h3>
+<pre class="programlisting">#define IBUS_hebrew_samekh 0xcf1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-ayin"></a><h3>IBUS_hebrew_ayin</h3>
+<pre class="programlisting">#define IBUS_hebrew_ayin 0xcf2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-finalpe"></a><h3>IBUS_hebrew_finalpe</h3>
+<pre class="programlisting">#define IBUS_hebrew_finalpe 0xcf3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-pe"></a><h3>IBUS_hebrew_pe</h3>
+<pre class="programlisting">#define IBUS_hebrew_pe 0xcf4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-finalzade"></a><h3>IBUS_hebrew_finalzade</h3>
+<pre class="programlisting">#define IBUS_hebrew_finalzade 0xcf5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-finalzadi"></a><h3>IBUS_hebrew_finalzadi</h3>
+<pre class="programlisting">#define IBUS_hebrew_finalzadi 0xcf5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-zade"></a><h3>IBUS_hebrew_zade</h3>
+<pre class="programlisting">#define IBUS_hebrew_zade 0xcf6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-zadi"></a><h3>IBUS_hebrew_zadi</h3>
+<pre class="programlisting">#define IBUS_hebrew_zadi 0xcf6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-qoph"></a><h3>IBUS_hebrew_qoph</h3>
+<pre class="programlisting">#define IBUS_hebrew_qoph 0xcf7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-kuf"></a><h3>IBUS_hebrew_kuf</h3>
+<pre class="programlisting">#define IBUS_hebrew_kuf 0xcf7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-resh"></a><h3>IBUS_hebrew_resh</h3>
+<pre class="programlisting">#define IBUS_hebrew_resh 0xcf8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-shin"></a><h3>IBUS_hebrew_shin</h3>
+<pre class="programlisting">#define IBUS_hebrew_shin 0xcf9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-taw"></a><h3>IBUS_hebrew_taw</h3>
+<pre class="programlisting">#define IBUS_hebrew_taw 0xcfa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-hebrew-taf"></a><h3>IBUS_hebrew_taf</h3>
+<pre class="programlisting">#define IBUS_hebrew_taf 0xcfa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hebrew-switch"></a><h3>IBUS_Hebrew_switch</h3>
+<pre class="programlisting">#define IBUS_Hebrew_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-kokai"></a><h3>IBUS_Thai_kokai</h3>
+<pre class="programlisting">#define IBUS_Thai_kokai 0xda1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-khokhai"></a><h3>IBUS_Thai_khokhai</h3>
+<pre class="programlisting">#define IBUS_Thai_khokhai 0xda2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-khokhuat"></a><h3>IBUS_Thai_khokhuat</h3>
+<pre class="programlisting">#define IBUS_Thai_khokhuat 0xda3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-khokhwai"></a><h3>IBUS_Thai_khokhwai</h3>
+<pre class="programlisting">#define IBUS_Thai_khokhwai 0xda4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-khokhon"></a><h3>IBUS_Thai_khokhon</h3>
+<pre class="programlisting">#define IBUS_Thai_khokhon 0xda5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-khorakhang"></a><h3>IBUS_Thai_khorakhang</h3>
+<pre class="programlisting">#define IBUS_Thai_khorakhang 0xda6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-ngongu"></a><h3>IBUS_Thai_ngongu</h3>
+<pre class="programlisting">#define IBUS_Thai_ngongu 0xda7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-chochan"></a><h3>IBUS_Thai_chochan</h3>
+<pre class="programlisting">#define IBUS_Thai_chochan 0xda8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-choching"></a><h3>IBUS_Thai_choching</h3>
+<pre class="programlisting">#define IBUS_Thai_choching 0xda9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-chochang"></a><h3>IBUS_Thai_chochang</h3>
+<pre class="programlisting">#define IBUS_Thai_chochang 0xdaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-soso"></a><h3>IBUS_Thai_soso</h3>
+<pre class="programlisting">#define IBUS_Thai_soso 0xdab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-chochoe"></a><h3>IBUS_Thai_chochoe</h3>
+<pre class="programlisting">#define IBUS_Thai_chochoe 0xdac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-yoying"></a><h3>IBUS_Thai_yoying</h3>
+<pre class="programlisting">#define IBUS_Thai_yoying 0xdad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-dochada"></a><h3>IBUS_Thai_dochada</h3>
+<pre class="programlisting">#define IBUS_Thai_dochada 0xdae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-topatak"></a><h3>IBUS_Thai_topatak</h3>
+<pre class="programlisting">#define IBUS_Thai_topatak 0xdaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-thothan"></a><h3>IBUS_Thai_thothan</h3>
+<pre class="programlisting">#define IBUS_Thai_thothan 0xdb0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-thonangmontho"></a><h3>IBUS_Thai_thonangmontho</h3>
+<pre class="programlisting">#define IBUS_Thai_thonangmontho 0xdb1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-thophuthao"></a><h3>IBUS_Thai_thophuthao</h3>
+<pre class="programlisting">#define IBUS_Thai_thophuthao 0xdb2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-nonen"></a><h3>IBUS_Thai_nonen</h3>
+<pre class="programlisting">#define IBUS_Thai_nonen 0xdb3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-dodek"></a><h3>IBUS_Thai_dodek</h3>
+<pre class="programlisting">#define IBUS_Thai_dodek 0xdb4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-totao"></a><h3>IBUS_Thai_totao</h3>
+<pre class="programlisting">#define IBUS_Thai_totao 0xdb5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-thothung"></a><h3>IBUS_Thai_thothung</h3>
+<pre class="programlisting">#define IBUS_Thai_thothung 0xdb6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-thothahan"></a><h3>IBUS_Thai_thothahan</h3>
+<pre class="programlisting">#define IBUS_Thai_thothahan 0xdb7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-thothong"></a><h3>IBUS_Thai_thothong</h3>
+<pre class="programlisting">#define IBUS_Thai_thothong 0xdb8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-nonu"></a><h3>IBUS_Thai_nonu</h3>
+<pre class="programlisting">#define IBUS_Thai_nonu 0xdb9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-bobaimai"></a><h3>IBUS_Thai_bobaimai</h3>
+<pre class="programlisting">#define IBUS_Thai_bobaimai 0xdba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-popla"></a><h3>IBUS_Thai_popla</h3>
+<pre class="programlisting">#define IBUS_Thai_popla 0xdbb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-phophung"></a><h3>IBUS_Thai_phophung</h3>
+<pre class="programlisting">#define IBUS_Thai_phophung 0xdbc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-fofa"></a><h3>IBUS_Thai_fofa</h3>
+<pre class="programlisting">#define IBUS_Thai_fofa 0xdbd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-phophan"></a><h3>IBUS_Thai_phophan</h3>
+<pre class="programlisting">#define IBUS_Thai_phophan 0xdbe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-fofan"></a><h3>IBUS_Thai_fofan</h3>
+<pre class="programlisting">#define IBUS_Thai_fofan 0xdbf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-phosamphao"></a><h3>IBUS_Thai_phosamphao</h3>
+<pre class="programlisting">#define IBUS_Thai_phosamphao 0xdc0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-moma"></a><h3>IBUS_Thai_moma</h3>
+<pre class="programlisting">#define IBUS_Thai_moma 0xdc1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-yoyak"></a><h3>IBUS_Thai_yoyak</h3>
+<pre class="programlisting">#define IBUS_Thai_yoyak 0xdc2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-rorua"></a><h3>IBUS_Thai_rorua</h3>
+<pre class="programlisting">#define IBUS_Thai_rorua 0xdc3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-ru"></a><h3>IBUS_Thai_ru</h3>
+<pre class="programlisting">#define IBUS_Thai_ru 0xdc4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-loling"></a><h3>IBUS_Thai_loling</h3>
+<pre class="programlisting">#define IBUS_Thai_loling 0xdc5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-lu"></a><h3>IBUS_Thai_lu</h3>
+<pre class="programlisting">#define IBUS_Thai_lu 0xdc6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-wowaen"></a><h3>IBUS_Thai_wowaen</h3>
+<pre class="programlisting">#define IBUS_Thai_wowaen 0xdc7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-sosala"></a><h3>IBUS_Thai_sosala</h3>
+<pre class="programlisting">#define IBUS_Thai_sosala 0xdc8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-sorusi"></a><h3>IBUS_Thai_sorusi</h3>
+<pre class="programlisting">#define IBUS_Thai_sorusi 0xdc9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-sosua"></a><h3>IBUS_Thai_sosua</h3>
+<pre class="programlisting">#define IBUS_Thai_sosua 0xdca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-hohip"></a><h3>IBUS_Thai_hohip</h3>
+<pre class="programlisting">#define IBUS_Thai_hohip 0xdcb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-lochula"></a><h3>IBUS_Thai_lochula</h3>
+<pre class="programlisting">#define IBUS_Thai_lochula 0xdcc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-oang"></a><h3>IBUS_Thai_oang</h3>
+<pre class="programlisting">#define IBUS_Thai_oang 0xdcd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-honokhuk"></a><h3>IBUS_Thai_honokhuk</h3>
+<pre class="programlisting">#define IBUS_Thai_honokhuk 0xdce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-paiyannoi"></a><h3>IBUS_Thai_paiyannoi</h3>
+<pre class="programlisting">#define IBUS_Thai_paiyannoi 0xdcf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-saraa"></a><h3>IBUS_Thai_saraa</h3>
+<pre class="programlisting">#define IBUS_Thai_saraa 0xdd0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-maihanakat"></a><h3>IBUS_Thai_maihanakat</h3>
+<pre class="programlisting">#define IBUS_Thai_maihanakat 0xdd1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-saraaa"></a><h3>IBUS_Thai_saraaa</h3>
+<pre class="programlisting">#define IBUS_Thai_saraaa 0xdd2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-saraam"></a><h3>IBUS_Thai_saraam</h3>
+<pre class="programlisting">#define IBUS_Thai_saraam 0xdd3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-sarai"></a><h3>IBUS_Thai_sarai</h3>
+<pre class="programlisting">#define IBUS_Thai_sarai 0xdd4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-saraii"></a><h3>IBUS_Thai_saraii</h3>
+<pre class="programlisting">#define IBUS_Thai_saraii 0xdd5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-saraue"></a><h3>IBUS_Thai_saraue</h3>
+<pre class="programlisting">#define IBUS_Thai_saraue 0xdd6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-sarauee"></a><h3>IBUS_Thai_sarauee</h3>
+<pre class="programlisting">#define IBUS_Thai_sarauee 0xdd7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-sarau"></a><h3>IBUS_Thai_sarau</h3>
+<pre class="programlisting">#define IBUS_Thai_sarau 0xdd8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-sarauu"></a><h3>IBUS_Thai_sarauu</h3>
+<pre class="programlisting">#define IBUS_Thai_sarauu 0xdd9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-phinthu"></a><h3>IBUS_Thai_phinthu</h3>
+<pre class="programlisting">#define IBUS_Thai_phinthu 0xdda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-maihanakat-maitho"></a><h3>IBUS_Thai_maihanakat_maitho</h3>
+<pre class="programlisting">#define IBUS_Thai_maihanakat_maitho 0xdde
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-baht"></a><h3>IBUS_Thai_baht</h3>
+<pre class="programlisting">#define IBUS_Thai_baht 0xddf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-sarae"></a><h3>IBUS_Thai_sarae</h3>
+<pre class="programlisting">#define IBUS_Thai_sarae 0xde0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-saraae"></a><h3>IBUS_Thai_saraae</h3>
+<pre class="programlisting">#define IBUS_Thai_saraae 0xde1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-sarao"></a><h3>IBUS_Thai_sarao</h3>
+<pre class="programlisting">#define IBUS_Thai_sarao 0xde2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-saraaimaimuan"></a><h3>IBUS_Thai_saraaimaimuan</h3>
+<pre class="programlisting">#define IBUS_Thai_saraaimaimuan 0xde3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-saraaimaimalai"></a><h3>IBUS_Thai_saraaimaimalai</h3>
+<pre class="programlisting">#define IBUS_Thai_saraaimaimalai 0xde4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-lakkhangyao"></a><h3>IBUS_Thai_lakkhangyao</h3>
+<pre class="programlisting">#define IBUS_Thai_lakkhangyao 0xde5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-maiyamok"></a><h3>IBUS_Thai_maiyamok</h3>
+<pre class="programlisting">#define IBUS_Thai_maiyamok 0xde6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-maitaikhu"></a><h3>IBUS_Thai_maitaikhu</h3>
+<pre class="programlisting">#define IBUS_Thai_maitaikhu 0xde7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-maiek"></a><h3>IBUS_Thai_maiek</h3>
+<pre class="programlisting">#define IBUS_Thai_maiek 0xde8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-maitho"></a><h3>IBUS_Thai_maitho</h3>
+<pre class="programlisting">#define IBUS_Thai_maitho 0xde9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-maitri"></a><h3>IBUS_Thai_maitri</h3>
+<pre class="programlisting">#define IBUS_Thai_maitri 0xdea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-maichattawa"></a><h3>IBUS_Thai_maichattawa</h3>
+<pre class="programlisting">#define IBUS_Thai_maichattawa 0xdeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-thanthakhat"></a><h3>IBUS_Thai_thanthakhat</h3>
+<pre class="programlisting">#define IBUS_Thai_thanthakhat 0xdec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-nikhahit"></a><h3>IBUS_Thai_nikhahit</h3>
+<pre class="programlisting">#define IBUS_Thai_nikhahit 0xded
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-leksun"></a><h3>IBUS_Thai_leksun</h3>
+<pre class="programlisting">#define IBUS_Thai_leksun 0xdf0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-leknung"></a><h3>IBUS_Thai_leknung</h3>
+<pre class="programlisting">#define IBUS_Thai_leknung 0xdf1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-leksong"></a><h3>IBUS_Thai_leksong</h3>
+<pre class="programlisting">#define IBUS_Thai_leksong 0xdf2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-leksam"></a><h3>IBUS_Thai_leksam</h3>
+<pre class="programlisting">#define IBUS_Thai_leksam 0xdf3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-leksi"></a><h3>IBUS_Thai_leksi</h3>
+<pre class="programlisting">#define IBUS_Thai_leksi 0xdf4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-lekha"></a><h3>IBUS_Thai_lekha</h3>
+<pre class="programlisting">#define IBUS_Thai_lekha 0xdf5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-lekhok"></a><h3>IBUS_Thai_lekhok</h3>
+<pre class="programlisting">#define IBUS_Thai_lekhok 0xdf6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-lekchet"></a><h3>IBUS_Thai_lekchet</h3>
+<pre class="programlisting">#define IBUS_Thai_lekchet 0xdf7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-lekpaet"></a><h3>IBUS_Thai_lekpaet</h3>
+<pre class="programlisting">#define IBUS_Thai_lekpaet 0xdf8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Thai-lekkao"></a><h3>IBUS_Thai_lekkao</h3>
+<pre class="programlisting">#define IBUS_Thai_lekkao 0xdf9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul"></a><h3>IBUS_Hangul</h3>
+<pre class="programlisting">#define IBUS_Hangul 0xff31
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Start"></a><h3>IBUS_Hangul_Start</h3>
+<pre class="programlisting">#define IBUS_Hangul_Start 0xff32
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-End"></a><h3>IBUS_Hangul_End</h3>
+<pre class="programlisting">#define IBUS_Hangul_End 0xff33
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Hanja"></a><h3>IBUS_Hangul_Hanja</h3>
+<pre class="programlisting">#define IBUS_Hangul_Hanja 0xff34
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Jamo"></a><h3>IBUS_Hangul_Jamo</h3>
+<pre class="programlisting">#define IBUS_Hangul_Jamo 0xff35
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Romaja"></a><h3>IBUS_Hangul_Romaja</h3>
+<pre class="programlisting">#define IBUS_Hangul_Romaja 0xff36
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Codeinput"></a><h3>IBUS_Hangul_Codeinput</h3>
+<pre class="programlisting">#define IBUS_Hangul_Codeinput 0xff37
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Jeonja"></a><h3>IBUS_Hangul_Jeonja</h3>
+<pre class="programlisting">#define IBUS_Hangul_Jeonja 0xff38
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Banja"></a><h3>IBUS_Hangul_Banja</h3>
+<pre class="programlisting">#define IBUS_Hangul_Banja 0xff39
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-PreHanja"></a><h3>IBUS_Hangul_PreHanja</h3>
+<pre class="programlisting">#define IBUS_Hangul_PreHanja 0xff3a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-PostHanja"></a><h3>IBUS_Hangul_PostHanja</h3>
+<pre class="programlisting">#define IBUS_Hangul_PostHanja 0xff3b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-SingleCandidate"></a><h3>IBUS_Hangul_SingleCandidate</h3>
+<pre class="programlisting">#define IBUS_Hangul_SingleCandidate 0xff3c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-MultipleCandidate"></a><h3>IBUS_Hangul_MultipleCandidate</h3>
+<pre class="programlisting">#define IBUS_Hangul_MultipleCandidate 0xff3d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-PreviousCandidate"></a><h3>IBUS_Hangul_PreviousCandidate</h3>
+<pre class="programlisting">#define IBUS_Hangul_PreviousCandidate 0xff3e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Special"></a><h3>IBUS_Hangul_Special</h3>
+<pre class="programlisting">#define IBUS_Hangul_Special 0xff3f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-switch"></a><h3>IBUS_Hangul_switch</h3>
+<pre class="programlisting">#define IBUS_Hangul_switch 0xff7e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Kiyeog"></a><h3>IBUS_Hangul_Kiyeog</h3>
+<pre class="programlisting">#define IBUS_Hangul_Kiyeog 0xea1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-SsangKiyeog"></a><h3>IBUS_Hangul_SsangKiyeog</h3>
+<pre class="programlisting">#define IBUS_Hangul_SsangKiyeog 0xea2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-KiyeogSios"></a><h3>IBUS_Hangul_KiyeogSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_KiyeogSios 0xea3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Nieun"></a><h3>IBUS_Hangul_Nieun</h3>
+<pre class="programlisting">#define IBUS_Hangul_Nieun 0xea4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-NieunJieuj"></a><h3>IBUS_Hangul_NieunJieuj</h3>
+<pre class="programlisting">#define IBUS_Hangul_NieunJieuj 0xea5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-NieunHieuh"></a><h3>IBUS_Hangul_NieunHieuh</h3>
+<pre class="programlisting">#define IBUS_Hangul_NieunHieuh 0xea6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Dikeud"></a><h3>IBUS_Hangul_Dikeud</h3>
+<pre class="programlisting">#define IBUS_Hangul_Dikeud 0xea7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-SsangDikeud"></a><h3>IBUS_Hangul_SsangDikeud</h3>
+<pre class="programlisting">#define IBUS_Hangul_SsangDikeud 0xea8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Rieul"></a><h3>IBUS_Hangul_Rieul</h3>
+<pre class="programlisting">#define IBUS_Hangul_Rieul 0xea9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-RieulKiyeog"></a><h3>IBUS_Hangul_RieulKiyeog</h3>
+<pre class="programlisting">#define IBUS_Hangul_RieulKiyeog 0xeaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-RieulMieum"></a><h3>IBUS_Hangul_RieulMieum</h3>
+<pre class="programlisting">#define IBUS_Hangul_RieulMieum 0xeab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-RieulPieub"></a><h3>IBUS_Hangul_RieulPieub</h3>
+<pre class="programlisting">#define IBUS_Hangul_RieulPieub 0xeac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-RieulSios"></a><h3>IBUS_Hangul_RieulSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_RieulSios 0xead
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-RieulTieut"></a><h3>IBUS_Hangul_RieulTieut</h3>
+<pre class="programlisting">#define IBUS_Hangul_RieulTieut 0xeae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-RieulPhieuf"></a><h3>IBUS_Hangul_RieulPhieuf</h3>
+<pre class="programlisting">#define IBUS_Hangul_RieulPhieuf 0xeaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-RieulHieuh"></a><h3>IBUS_Hangul_RieulHieuh</h3>
+<pre class="programlisting">#define IBUS_Hangul_RieulHieuh 0xeb0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Mieum"></a><h3>IBUS_Hangul_Mieum</h3>
+<pre class="programlisting">#define IBUS_Hangul_Mieum 0xeb1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Pieub"></a><h3>IBUS_Hangul_Pieub</h3>
+<pre class="programlisting">#define IBUS_Hangul_Pieub 0xeb2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-SsangPieub"></a><h3>IBUS_Hangul_SsangPieub</h3>
+<pre class="programlisting">#define IBUS_Hangul_SsangPieub 0xeb3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-PieubSios"></a><h3>IBUS_Hangul_PieubSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_PieubSios 0xeb4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Sios"></a><h3>IBUS_Hangul_Sios</h3>
+<pre class="programlisting">#define IBUS_Hangul_Sios 0xeb5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-SsangSios"></a><h3>IBUS_Hangul_SsangSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_SsangSios 0xeb6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Ieung"></a><h3>IBUS_Hangul_Ieung</h3>
+<pre class="programlisting">#define IBUS_Hangul_Ieung 0xeb7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Jieuj"></a><h3>IBUS_Hangul_Jieuj</h3>
+<pre class="programlisting">#define IBUS_Hangul_Jieuj 0xeb8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-SsangJieuj"></a><h3>IBUS_Hangul_SsangJieuj</h3>
+<pre class="programlisting">#define IBUS_Hangul_SsangJieuj 0xeb9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Cieuc"></a><h3>IBUS_Hangul_Cieuc</h3>
+<pre class="programlisting">#define IBUS_Hangul_Cieuc 0xeba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Khieuq"></a><h3>IBUS_Hangul_Khieuq</h3>
+<pre class="programlisting">#define IBUS_Hangul_Khieuq 0xebb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Tieut"></a><h3>IBUS_Hangul_Tieut</h3>
+<pre class="programlisting">#define IBUS_Hangul_Tieut 0xebc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Phieuf"></a><h3>IBUS_Hangul_Phieuf</h3>
+<pre class="programlisting">#define IBUS_Hangul_Phieuf 0xebd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-Hieuh"></a><h3>IBUS_Hangul_Hieuh</h3>
+<pre class="programlisting">#define IBUS_Hangul_Hieuh 0xebe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-A"></a><h3>IBUS_Hangul_A</h3>
+<pre class="programlisting">#define IBUS_Hangul_A 0xebf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-AE"></a><h3>IBUS_Hangul_AE</h3>
+<pre class="programlisting">#define IBUS_Hangul_AE 0xec0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-YA"></a><h3>IBUS_Hangul_YA</h3>
+<pre class="programlisting">#define IBUS_Hangul_YA 0xec1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-YAE"></a><h3>IBUS_Hangul_YAE</h3>
+<pre class="programlisting">#define IBUS_Hangul_YAE 0xec2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-EO"></a><h3>IBUS_Hangul_EO</h3>
+<pre class="programlisting">#define IBUS_Hangul_EO 0xec3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-E"></a><h3>IBUS_Hangul_E</h3>
+<pre class="programlisting">#define IBUS_Hangul_E 0xec4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-YEO"></a><h3>IBUS_Hangul_YEO</h3>
+<pre class="programlisting">#define IBUS_Hangul_YEO 0xec5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-YE"></a><h3>IBUS_Hangul_YE</h3>
+<pre class="programlisting">#define IBUS_Hangul_YE 0xec6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-O"></a><h3>IBUS_Hangul_O</h3>
+<pre class="programlisting">#define IBUS_Hangul_O 0xec7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-WA"></a><h3>IBUS_Hangul_WA</h3>
+<pre class="programlisting">#define IBUS_Hangul_WA 0xec8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-WAE"></a><h3>IBUS_Hangul_WAE</h3>
+<pre class="programlisting">#define IBUS_Hangul_WAE 0xec9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-OE"></a><h3>IBUS_Hangul_OE</h3>
+<pre class="programlisting">#define IBUS_Hangul_OE 0xeca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-YO"></a><h3>IBUS_Hangul_YO</h3>
+<pre class="programlisting">#define IBUS_Hangul_YO 0xecb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-U"></a><h3>IBUS_Hangul_U</h3>
+<pre class="programlisting">#define IBUS_Hangul_U 0xecc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-WEO"></a><h3>IBUS_Hangul_WEO</h3>
+<pre class="programlisting">#define IBUS_Hangul_WEO 0xecd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-WE"></a><h3>IBUS_Hangul_WE</h3>
+<pre class="programlisting">#define IBUS_Hangul_WE 0xece
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-WI"></a><h3>IBUS_Hangul_WI</h3>
+<pre class="programlisting">#define IBUS_Hangul_WI 0xecf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-YU"></a><h3>IBUS_Hangul_YU</h3>
+<pre class="programlisting">#define IBUS_Hangul_YU 0xed0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-EU"></a><h3>IBUS_Hangul_EU</h3>
+<pre class="programlisting">#define IBUS_Hangul_EU 0xed1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-YI"></a><h3>IBUS_Hangul_YI</h3>
+<pre class="programlisting">#define IBUS_Hangul_YI 0xed2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-I"></a><h3>IBUS_Hangul_I</h3>
+<pre class="programlisting">#define IBUS_Hangul_I 0xed3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Kiyeog"></a><h3>IBUS_Hangul_J_Kiyeog</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Kiyeog 0xed4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-SsangKiyeog"></a><h3>IBUS_Hangul_J_SsangKiyeog</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_SsangKiyeog 0xed5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-KiyeogSios"></a><h3>IBUS_Hangul_J_KiyeogSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_KiyeogSios 0xed6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Nieun"></a><h3>IBUS_Hangul_J_Nieun</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Nieun 0xed7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-NieunJieuj"></a><h3>IBUS_Hangul_J_NieunJieuj</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_NieunJieuj 0xed8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-NieunHieuh"></a><h3>IBUS_Hangul_J_NieunHieuh</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_NieunHieuh 0xed9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Dikeud"></a><h3>IBUS_Hangul_J_Dikeud</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Dikeud 0xeda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Rieul"></a><h3>IBUS_Hangul_J_Rieul</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Rieul 0xedb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-RieulKiyeog"></a><h3>IBUS_Hangul_J_RieulKiyeog</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_RieulKiyeog 0xedc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-RieulMieum"></a><h3>IBUS_Hangul_J_RieulMieum</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_RieulMieum 0xedd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-RieulPieub"></a><h3>IBUS_Hangul_J_RieulPieub</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_RieulPieub 0xede
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-RieulSios"></a><h3>IBUS_Hangul_J_RieulSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_RieulSios 0xedf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-RieulTieut"></a><h3>IBUS_Hangul_J_RieulTieut</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_RieulTieut 0xee0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-RieulPhieuf"></a><h3>IBUS_Hangul_J_RieulPhieuf</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_RieulPhieuf 0xee1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-RieulHieuh"></a><h3>IBUS_Hangul_J_RieulHieuh</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_RieulHieuh 0xee2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Mieum"></a><h3>IBUS_Hangul_J_Mieum</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Mieum 0xee3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Pieub"></a><h3>IBUS_Hangul_J_Pieub</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Pieub 0xee4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-PieubSios"></a><h3>IBUS_Hangul_J_PieubSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_PieubSios 0xee5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Sios"></a><h3>IBUS_Hangul_J_Sios</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Sios 0xee6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-SsangSios"></a><h3>IBUS_Hangul_J_SsangSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_SsangSios 0xee7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Ieung"></a><h3>IBUS_Hangul_J_Ieung</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Ieung 0xee8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Jieuj"></a><h3>IBUS_Hangul_J_Jieuj</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Jieuj 0xee9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Cieuc"></a><h3>IBUS_Hangul_J_Cieuc</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Cieuc 0xeea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Khieuq"></a><h3>IBUS_Hangul_J_Khieuq</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Khieuq 0xeeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Tieut"></a><h3>IBUS_Hangul_J_Tieut</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Tieut 0xeec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Phieuf"></a><h3>IBUS_Hangul_J_Phieuf</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Phieuf 0xeed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-Hieuh"></a><h3>IBUS_Hangul_J_Hieuh</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_Hieuh 0xeee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-RieulYeorinHieuh"></a><h3>IBUS_Hangul_RieulYeorinHieuh</h3>
+<pre class="programlisting">#define IBUS_Hangul_RieulYeorinHieuh 0xeef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-SunkyeongeumMieum"></a><h3>IBUS_Hangul_SunkyeongeumMieum</h3>
+<pre class="programlisting">#define IBUS_Hangul_SunkyeongeumMieum 0xef0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-SunkyeongeumPieub"></a><h3>IBUS_Hangul_SunkyeongeumPieub</h3>
+<pre class="programlisting">#define IBUS_Hangul_SunkyeongeumPieub 0xef1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-PanSios"></a><h3>IBUS_Hangul_PanSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_PanSios 0xef2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-KkogjiDalrinIeung"></a><h3>IBUS_Hangul_KkogjiDalrinIeung</h3>
+<pre class="programlisting">#define IBUS_Hangul_KkogjiDalrinIeung 0xef3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-SunkyeongeumPhieuf"></a><h3>IBUS_Hangul_SunkyeongeumPhieuf</h3>
+<pre class="programlisting">#define IBUS_Hangul_SunkyeongeumPhieuf 0xef4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-YeorinHieuh"></a><h3>IBUS_Hangul_YeorinHieuh</h3>
+<pre class="programlisting">#define IBUS_Hangul_YeorinHieuh 0xef5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-AraeA"></a><h3>IBUS_Hangul_AraeA</h3>
+<pre class="programlisting">#define IBUS_Hangul_AraeA 0xef6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-AraeAE"></a><h3>IBUS_Hangul_AraeAE</h3>
+<pre class="programlisting">#define IBUS_Hangul_AraeAE 0xef7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-PanSios"></a><h3>IBUS_Hangul_J_PanSios</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_PanSios 0xef8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-KkogjiDalrinIeung"></a><h3>IBUS_Hangul_J_KkogjiDalrinIeung</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_KkogjiDalrinIeung 0xef9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Hangul-J-YeorinHieuh"></a><h3>IBUS_Hangul_J_YeorinHieuh</h3>
+<pre class="programlisting">#define IBUS_Hangul_J_YeorinHieuh 0xefa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Korean-Won"></a><h3>IBUS_Korean_Won</h3>
+<pre class="programlisting">#define IBUS_Korean_Won 0xeff
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ligature-ew"></a><h3>IBUS_Armenian_ligature_ew</h3>
+<pre class="programlisting">#define IBUS_Armenian_ligature_ew 0x1000587
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-full-stop"></a><h3>IBUS_Armenian_full_stop</h3>
+<pre class="programlisting">#define IBUS_Armenian_full_stop 0x1000589
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-verjaket"></a><h3>IBUS_Armenian_verjaket</h3>
+<pre class="programlisting">#define IBUS_Armenian_verjaket 0x1000589
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-separation-mark"></a><h3>IBUS_Armenian_separation_mark</h3>
+<pre class="programlisting">#define IBUS_Armenian_separation_mark 0x100055d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-but"></a><h3>IBUS_Armenian_but</h3>
+<pre class="programlisting">#define IBUS_Armenian_but 0x100055d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-hyphen"></a><h3>IBUS_Armenian_hyphen</h3>
+<pre class="programlisting">#define IBUS_Armenian_hyphen 0x100058a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-yentamna"></a><h3>IBUS_Armenian_yentamna</h3>
+<pre class="programlisting">#define IBUS_Armenian_yentamna 0x100058a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-exclam"></a><h3>IBUS_Armenian_exclam</h3>
+<pre class="programlisting">#define IBUS_Armenian_exclam 0x100055c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-amanak"></a><h3>IBUS_Armenian_amanak</h3>
+<pre class="programlisting">#define IBUS_Armenian_amanak 0x100055c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-accent"></a><h3>IBUS_Armenian_accent</h3>
+<pre class="programlisting">#define IBUS_Armenian_accent 0x100055b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-shesht"></a><h3>IBUS_Armenian_shesht</h3>
+<pre class="programlisting">#define IBUS_Armenian_shesht 0x100055b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-question"></a><h3>IBUS_Armenian_question</h3>
+<pre class="programlisting">#define IBUS_Armenian_question 0x100055e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-paruyk"></a><h3>IBUS_Armenian_paruyk</h3>
+<pre class="programlisting">#define IBUS_Armenian_paruyk 0x100055e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-AYB"></a><h3>IBUS_Armenian_AYB</h3>
+<pre class="programlisting">#define IBUS_Armenian_AYB 0x1000531
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ayb"></a><h3>IBUS_Armenian_ayb</h3>
+<pre class="programlisting">#define IBUS_Armenian_ayb 0x1000561
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-BEN"></a><h3>IBUS_Armenian_BEN</h3>
+<pre class="programlisting">#define IBUS_Armenian_BEN 0x1000532
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ben"></a><h3>IBUS_Armenian_ben</h3>
+<pre class="programlisting">#define IBUS_Armenian_ben 0x1000562
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-GIM"></a><h3>IBUS_Armenian_GIM</h3>
+<pre class="programlisting">#define IBUS_Armenian_GIM 0x1000533
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-gim"></a><h3>IBUS_Armenian_gim</h3>
+<pre class="programlisting">#define IBUS_Armenian_gim 0x1000563
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-DA"></a><h3>IBUS_Armenian_DA</h3>
+<pre class="programlisting">#define IBUS_Armenian_DA 0x1000534
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-da"></a><h3>IBUS_Armenian_da</h3>
+<pre class="programlisting">#define IBUS_Armenian_da 0x1000564
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-YECH"></a><h3>IBUS_Armenian_YECH</h3>
+<pre class="programlisting">#define IBUS_Armenian_YECH 0x1000535
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-yech"></a><h3>IBUS_Armenian_yech</h3>
+<pre class="programlisting">#define IBUS_Armenian_yech 0x1000565
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ZA"></a><h3>IBUS_Armenian_ZA</h3>
+<pre class="programlisting">#define IBUS_Armenian_ZA 0x1000536
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-za"></a><h3>IBUS_Armenian_za</h3>
+<pre class="programlisting">#define IBUS_Armenian_za 0x1000566
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-E"></a><h3>IBUS_Armenian_E</h3>
+<pre class="programlisting">#define IBUS_Armenian_E 0x1000537
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-e"></a><h3>IBUS_Armenian_e</h3>
+<pre class="programlisting">#define IBUS_Armenian_e 0x1000567
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-AT"></a><h3>IBUS_Armenian_AT</h3>
+<pre class="programlisting">#define IBUS_Armenian_AT 0x1000538
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-at"></a><h3>IBUS_Armenian_at</h3>
+<pre class="programlisting">#define IBUS_Armenian_at 0x1000568
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-TO"></a><h3>IBUS_Armenian_TO</h3>
+<pre class="programlisting">#define IBUS_Armenian_TO 0x1000539
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-to"></a><h3>IBUS_Armenian_to</h3>
+<pre class="programlisting">#define IBUS_Armenian_to 0x1000569
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ZHE"></a><h3>IBUS_Armenian_ZHE</h3>
+<pre class="programlisting">#define IBUS_Armenian_ZHE 0x100053a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-zhe"></a><h3>IBUS_Armenian_zhe</h3>
+<pre class="programlisting">#define IBUS_Armenian_zhe 0x100056a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-INI"></a><h3>IBUS_Armenian_INI</h3>
+<pre class="programlisting">#define IBUS_Armenian_INI 0x100053b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ini"></a><h3>IBUS_Armenian_ini</h3>
+<pre class="programlisting">#define IBUS_Armenian_ini 0x100056b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-LYUN"></a><h3>IBUS_Armenian_LYUN</h3>
+<pre class="programlisting">#define IBUS_Armenian_LYUN 0x100053c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-lyun"></a><h3>IBUS_Armenian_lyun</h3>
+<pre class="programlisting">#define IBUS_Armenian_lyun 0x100056c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-KHE"></a><h3>IBUS_Armenian_KHE</h3>
+<pre class="programlisting">#define IBUS_Armenian_KHE 0x100053d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-khe"></a><h3>IBUS_Armenian_khe</h3>
+<pre class="programlisting">#define IBUS_Armenian_khe 0x100056d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-TSA"></a><h3>IBUS_Armenian_TSA</h3>
+<pre class="programlisting">#define IBUS_Armenian_TSA 0x100053e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-tsa"></a><h3>IBUS_Armenian_tsa</h3>
+<pre class="programlisting">#define IBUS_Armenian_tsa 0x100056e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-KEN"></a><h3>IBUS_Armenian_KEN</h3>
+<pre class="programlisting">#define IBUS_Armenian_KEN 0x100053f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ken"></a><h3>IBUS_Armenian_ken</h3>
+<pre class="programlisting">#define IBUS_Armenian_ken 0x100056f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-HO"></a><h3>IBUS_Armenian_HO</h3>
+<pre class="programlisting">#define IBUS_Armenian_HO 0x1000540
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ho"></a><h3>IBUS_Armenian_ho</h3>
+<pre class="programlisting">#define IBUS_Armenian_ho 0x1000570
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-DZA"></a><h3>IBUS_Armenian_DZA</h3>
+<pre class="programlisting">#define IBUS_Armenian_DZA 0x1000541
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-dza"></a><h3>IBUS_Armenian_dza</h3>
+<pre class="programlisting">#define IBUS_Armenian_dza 0x1000571
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-GHAT"></a><h3>IBUS_Armenian_GHAT</h3>
+<pre class="programlisting">#define IBUS_Armenian_GHAT 0x1000542
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ghat"></a><h3>IBUS_Armenian_ghat</h3>
+<pre class="programlisting">#define IBUS_Armenian_ghat 0x1000572
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-TCHE"></a><h3>IBUS_Armenian_TCHE</h3>
+<pre class="programlisting">#define IBUS_Armenian_TCHE 0x1000543
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-tche"></a><h3>IBUS_Armenian_tche</h3>
+<pre class="programlisting">#define IBUS_Armenian_tche 0x1000573
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-MEN"></a><h3>IBUS_Armenian_MEN</h3>
+<pre class="programlisting">#define IBUS_Armenian_MEN 0x1000544
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-men"></a><h3>IBUS_Armenian_men</h3>
+<pre class="programlisting">#define IBUS_Armenian_men 0x1000574
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-HI"></a><h3>IBUS_Armenian_HI</h3>
+<pre class="programlisting">#define IBUS_Armenian_HI 0x1000545
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-hi"></a><h3>IBUS_Armenian_hi</h3>
+<pre class="programlisting">#define IBUS_Armenian_hi 0x1000575
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-NU"></a><h3>IBUS_Armenian_NU</h3>
+<pre class="programlisting">#define IBUS_Armenian_NU 0x1000546
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-nu"></a><h3>IBUS_Armenian_nu</h3>
+<pre class="programlisting">#define IBUS_Armenian_nu 0x1000576
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-SHA"></a><h3>IBUS_Armenian_SHA</h3>
+<pre class="programlisting">#define IBUS_Armenian_SHA 0x1000547
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-sha"></a><h3>IBUS_Armenian_sha</h3>
+<pre class="programlisting">#define IBUS_Armenian_sha 0x1000577
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-VO"></a><h3>IBUS_Armenian_VO</h3>
+<pre class="programlisting">#define IBUS_Armenian_VO 0x1000548
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-vo"></a><h3>IBUS_Armenian_vo</h3>
+<pre class="programlisting">#define IBUS_Armenian_vo 0x1000578
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-CHA"></a><h3>IBUS_Armenian_CHA</h3>
+<pre class="programlisting">#define IBUS_Armenian_CHA 0x1000549
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-cha"></a><h3>IBUS_Armenian_cha</h3>
+<pre class="programlisting">#define IBUS_Armenian_cha 0x1000579
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-PE"></a><h3>IBUS_Armenian_PE</h3>
+<pre class="programlisting">#define IBUS_Armenian_PE 0x100054a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-pe"></a><h3>IBUS_Armenian_pe</h3>
+<pre class="programlisting">#define IBUS_Armenian_pe 0x100057a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-JE"></a><h3>IBUS_Armenian_JE</h3>
+<pre class="programlisting">#define IBUS_Armenian_JE 0x100054b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-je"></a><h3>IBUS_Armenian_je</h3>
+<pre class="programlisting">#define IBUS_Armenian_je 0x100057b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-RA"></a><h3>IBUS_Armenian_RA</h3>
+<pre class="programlisting">#define IBUS_Armenian_RA 0x100054c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ra"></a><h3>IBUS_Armenian_ra</h3>
+<pre class="programlisting">#define IBUS_Armenian_ra 0x100057c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-SE"></a><h3>IBUS_Armenian_SE</h3>
+<pre class="programlisting">#define IBUS_Armenian_SE 0x100054d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-se"></a><h3>IBUS_Armenian_se</h3>
+<pre class="programlisting">#define IBUS_Armenian_se 0x100057d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-VEV"></a><h3>IBUS_Armenian_VEV</h3>
+<pre class="programlisting">#define IBUS_Armenian_VEV 0x100054e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-vev"></a><h3>IBUS_Armenian_vev</h3>
+<pre class="programlisting">#define IBUS_Armenian_vev 0x100057e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-TYUN"></a><h3>IBUS_Armenian_TYUN</h3>
+<pre class="programlisting">#define IBUS_Armenian_TYUN 0x100054f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-tyun"></a><h3>IBUS_Armenian_tyun</h3>
+<pre class="programlisting">#define IBUS_Armenian_tyun 0x100057f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-RE"></a><h3>IBUS_Armenian_RE</h3>
+<pre class="programlisting">#define IBUS_Armenian_RE 0x1000550
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-re"></a><h3>IBUS_Armenian_re</h3>
+<pre class="programlisting">#define IBUS_Armenian_re 0x1000580
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-TSO"></a><h3>IBUS_Armenian_TSO</h3>
+<pre class="programlisting">#define IBUS_Armenian_TSO 0x1000551
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-tso"></a><h3>IBUS_Armenian_tso</h3>
+<pre class="programlisting">#define IBUS_Armenian_tso 0x1000581
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-VYUN"></a><h3>IBUS_Armenian_VYUN</h3>
+<pre class="programlisting">#define IBUS_Armenian_VYUN 0x1000552
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-vyun"></a><h3>IBUS_Armenian_vyun</h3>
+<pre class="programlisting">#define IBUS_Armenian_vyun 0x1000582
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-PYUR"></a><h3>IBUS_Armenian_PYUR</h3>
+<pre class="programlisting">#define IBUS_Armenian_PYUR 0x1000553
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-pyur"></a><h3>IBUS_Armenian_pyur</h3>
+<pre class="programlisting">#define IBUS_Armenian_pyur 0x1000583
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-KE"></a><h3>IBUS_Armenian_KE</h3>
+<pre class="programlisting">#define IBUS_Armenian_KE 0x1000554
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-ke"></a><h3>IBUS_Armenian_ke</h3>
+<pre class="programlisting">#define IBUS_Armenian_ke 0x1000584
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-O"></a><h3>IBUS_Armenian_O</h3>
+<pre class="programlisting">#define IBUS_Armenian_O 0x1000555
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-o"></a><h3>IBUS_Armenian_o</h3>
+<pre class="programlisting">#define IBUS_Armenian_o 0x1000585
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-FE"></a><h3>IBUS_Armenian_FE</h3>
+<pre class="programlisting">#define IBUS_Armenian_FE 0x1000556
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-fe"></a><h3>IBUS_Armenian_fe</h3>
+<pre class="programlisting">#define IBUS_Armenian_fe 0x1000586
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Armenian-apostrophe"></a><h3>IBUS_Armenian_apostrophe</h3>
+<pre class="programlisting">#define IBUS_Armenian_apostrophe 0x100055a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-an"></a><h3>IBUS_Georgian_an</h3>
+<pre class="programlisting">#define IBUS_Georgian_an 0x10010d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-ban"></a><h3>IBUS_Georgian_ban</h3>
+<pre class="programlisting">#define IBUS_Georgian_ban 0x10010d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-gan"></a><h3>IBUS_Georgian_gan</h3>
+<pre class="programlisting">#define IBUS_Georgian_gan 0x10010d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-don"></a><h3>IBUS_Georgian_don</h3>
+<pre class="programlisting">#define IBUS_Georgian_don 0x10010d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-en"></a><h3>IBUS_Georgian_en</h3>
+<pre class="programlisting">#define IBUS_Georgian_en 0x10010d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-vin"></a><h3>IBUS_Georgian_vin</h3>
+<pre class="programlisting">#define IBUS_Georgian_vin 0x10010d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-zen"></a><h3>IBUS_Georgian_zen</h3>
+<pre class="programlisting">#define IBUS_Georgian_zen 0x10010d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-tan"></a><h3>IBUS_Georgian_tan</h3>
+<pre class="programlisting">#define IBUS_Georgian_tan 0x10010d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-in"></a><h3>IBUS_Georgian_in</h3>
+<pre class="programlisting">#define IBUS_Georgian_in 0x10010d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-kan"></a><h3>IBUS_Georgian_kan</h3>
+<pre class="programlisting">#define IBUS_Georgian_kan 0x10010d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-las"></a><h3>IBUS_Georgian_las</h3>
+<pre class="programlisting">#define IBUS_Georgian_las 0x10010da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-man"></a><h3>IBUS_Georgian_man</h3>
+<pre class="programlisting">#define IBUS_Georgian_man 0x10010db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-nar"></a><h3>IBUS_Georgian_nar</h3>
+<pre class="programlisting">#define IBUS_Georgian_nar 0x10010dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-on"></a><h3>IBUS_Georgian_on</h3>
+<pre class="programlisting">#define IBUS_Georgian_on 0x10010dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-par"></a><h3>IBUS_Georgian_par</h3>
+<pre class="programlisting">#define IBUS_Georgian_par 0x10010de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-zhar"></a><h3>IBUS_Georgian_zhar</h3>
+<pre class="programlisting">#define IBUS_Georgian_zhar 0x10010df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-rae"></a><h3>IBUS_Georgian_rae</h3>
+<pre class="programlisting">#define IBUS_Georgian_rae 0x10010e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-san"></a><h3>IBUS_Georgian_san</h3>
+<pre class="programlisting">#define IBUS_Georgian_san 0x10010e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-tar"></a><h3>IBUS_Georgian_tar</h3>
+<pre class="programlisting">#define IBUS_Georgian_tar 0x10010e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-un"></a><h3>IBUS_Georgian_un</h3>
+<pre class="programlisting">#define IBUS_Georgian_un 0x10010e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-phar"></a><h3>IBUS_Georgian_phar</h3>
+<pre class="programlisting">#define IBUS_Georgian_phar 0x10010e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-khar"></a><h3>IBUS_Georgian_khar</h3>
+<pre class="programlisting">#define IBUS_Georgian_khar 0x10010e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-ghan"></a><h3>IBUS_Georgian_ghan</h3>
+<pre class="programlisting">#define IBUS_Georgian_ghan 0x10010e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-qar"></a><h3>IBUS_Georgian_qar</h3>
+<pre class="programlisting">#define IBUS_Georgian_qar 0x10010e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-shin"></a><h3>IBUS_Georgian_shin</h3>
+<pre class="programlisting">#define IBUS_Georgian_shin 0x10010e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-chin"></a><h3>IBUS_Georgian_chin</h3>
+<pre class="programlisting">#define IBUS_Georgian_chin 0x10010e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-can"></a><h3>IBUS_Georgian_can</h3>
+<pre class="programlisting">#define IBUS_Georgian_can 0x10010ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-jil"></a><h3>IBUS_Georgian_jil</h3>
+<pre class="programlisting">#define IBUS_Georgian_jil 0x10010eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-cil"></a><h3>IBUS_Georgian_cil</h3>
+<pre class="programlisting">#define IBUS_Georgian_cil 0x10010ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-char"></a><h3>IBUS_Georgian_char</h3>
+<pre class="programlisting">#define IBUS_Georgian_char 0x10010ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-xan"></a><h3>IBUS_Georgian_xan</h3>
+<pre class="programlisting">#define IBUS_Georgian_xan 0x10010ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-jhan"></a><h3>IBUS_Georgian_jhan</h3>
+<pre class="programlisting">#define IBUS_Georgian_jhan 0x10010ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-hae"></a><h3>IBUS_Georgian_hae</h3>
+<pre class="programlisting">#define IBUS_Georgian_hae 0x10010f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-he"></a><h3>IBUS_Georgian_he</h3>
+<pre class="programlisting">#define IBUS_Georgian_he 0x10010f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-hie"></a><h3>IBUS_Georgian_hie</h3>
+<pre class="programlisting">#define IBUS_Georgian_hie 0x10010f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-we"></a><h3>IBUS_Georgian_we</h3>
+<pre class="programlisting">#define IBUS_Georgian_we 0x10010f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-har"></a><h3>IBUS_Georgian_har</h3>
+<pre class="programlisting">#define IBUS_Georgian_har 0x10010f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-hoe"></a><h3>IBUS_Georgian_hoe</h3>
+<pre class="programlisting">#define IBUS_Georgian_hoe 0x10010f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Georgian-fi"></a><h3>IBUS_Georgian_fi</h3>
+<pre class="programlisting">#define IBUS_Georgian_fi 0x10010f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Xabovedot"></a><h3>IBUS_Xabovedot</h3>
+<pre class="programlisting">#define IBUS_Xabovedot 0x1001e8a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ibreve"></a><h3>IBUS_Ibreve</h3>
+<pre class="programlisting">#define IBUS_Ibreve 0x100012c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Zstroke"></a><h3>IBUS_Zstroke</h3>
+<pre class="programlisting">#define IBUS_Zstroke 0x10001b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Gcaron"></a><h3>IBUS_Gcaron</h3>
+<pre class="programlisting">#define IBUS_Gcaron 0x10001e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ocaron"></a><h3>IBUS_Ocaron</h3>
+<pre class="programlisting">#define IBUS_Ocaron 0x10001d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Obarred"></a><h3>IBUS_Obarred</h3>
+<pre class="programlisting">#define IBUS_Obarred 0x100019f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-xabovedot"></a><h3>IBUS_xabovedot</h3>
+<pre class="programlisting">#define IBUS_xabovedot 0x1001e8b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ibreve"></a><h3>IBUS_ibreve</h3>
+<pre class="programlisting">#define IBUS_ibreve 0x100012d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-zstroke"></a><h3>IBUS_zstroke</h3>
+<pre class="programlisting">#define IBUS_zstroke 0x10001b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-gcaron"></a><h3>IBUS_gcaron</h3>
+<pre class="programlisting">#define IBUS_gcaron 0x10001e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ocaron"></a><h3>IBUS_ocaron</h3>
+<pre class="programlisting">#define IBUS_ocaron 0x10001d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-obarred"></a><h3>IBUS_obarred</h3>
+<pre class="programlisting">#define IBUS_obarred 0x1000275
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-SCHWA:CAPS"></a><h3>IBUS_SCHWA</h3>
+<pre class="programlisting">#define IBUS_SCHWA 0x100018f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-schwa"></a><h3>IBUS_schwa</h3>
+<pre class="programlisting">#define IBUS_schwa 0x1000259
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Lbelowdot"></a><h3>IBUS_Lbelowdot</h3>
+<pre class="programlisting">#define IBUS_Lbelowdot 0x1001e36
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-lbelowdot"></a><h3>IBUS_lbelowdot</h3>
+<pre class="programlisting">#define IBUS_lbelowdot 0x1001e37
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Abelowdot"></a><h3>IBUS_Abelowdot</h3>
+<pre class="programlisting">#define IBUS_Abelowdot 0x1001ea0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-abelowdot"></a><h3>IBUS_abelowdot</h3>
+<pre class="programlisting">#define IBUS_abelowdot 0x1001ea1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ahook"></a><h3>IBUS_Ahook</h3>
+<pre class="programlisting">#define IBUS_Ahook 0x1001ea2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ahook"></a><h3>IBUS_ahook</h3>
+<pre class="programlisting">#define IBUS_ahook 0x1001ea3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Acircumflexacute"></a><h3>IBUS_Acircumflexacute</h3>
+<pre class="programlisting">#define IBUS_Acircumflexacute 0x1001ea4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-acircumflexacute"></a><h3>IBUS_acircumflexacute</h3>
+<pre class="programlisting">#define IBUS_acircumflexacute 0x1001ea5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Acircumflexgrave"></a><h3>IBUS_Acircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_Acircumflexgrave 0x1001ea6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-acircumflexgrave"></a><h3>IBUS_acircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_acircumflexgrave 0x1001ea7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Acircumflexhook"></a><h3>IBUS_Acircumflexhook</h3>
+<pre class="programlisting">#define IBUS_Acircumflexhook 0x1001ea8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-acircumflexhook"></a><h3>IBUS_acircumflexhook</h3>
+<pre class="programlisting">#define IBUS_acircumflexhook 0x1001ea9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Acircumflextilde"></a><h3>IBUS_Acircumflextilde</h3>
+<pre class="programlisting">#define IBUS_Acircumflextilde 0x1001eaa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-acircumflextilde"></a><h3>IBUS_acircumflextilde</h3>
+<pre class="programlisting">#define IBUS_acircumflextilde 0x1001eab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Acircumflexbelowdot"></a><h3>IBUS_Acircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_Acircumflexbelowdot 0x1001eac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-acircumflexbelowdot"></a><h3>IBUS_acircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_acircumflexbelowdot 0x1001ead
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Abreveacute"></a><h3>IBUS_Abreveacute</h3>
+<pre class="programlisting">#define IBUS_Abreveacute 0x1001eae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-abreveacute"></a><h3>IBUS_abreveacute</h3>
+<pre class="programlisting">#define IBUS_abreveacute 0x1001eaf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Abrevegrave"></a><h3>IBUS_Abrevegrave</h3>
+<pre class="programlisting">#define IBUS_Abrevegrave 0x1001eb0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-abrevegrave"></a><h3>IBUS_abrevegrave</h3>
+<pre class="programlisting">#define IBUS_abrevegrave 0x1001eb1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Abrevehook"></a><h3>IBUS_Abrevehook</h3>
+<pre class="programlisting">#define IBUS_Abrevehook 0x1001eb2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-abrevehook"></a><h3>IBUS_abrevehook</h3>
+<pre class="programlisting">#define IBUS_abrevehook 0x1001eb3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Abrevetilde"></a><h3>IBUS_Abrevetilde</h3>
+<pre class="programlisting">#define IBUS_Abrevetilde 0x1001eb4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-abrevetilde"></a><h3>IBUS_abrevetilde</h3>
+<pre class="programlisting">#define IBUS_abrevetilde 0x1001eb5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Abrevebelowdot"></a><h3>IBUS_Abrevebelowdot</h3>
+<pre class="programlisting">#define IBUS_Abrevebelowdot 0x1001eb6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-abrevebelowdot"></a><h3>IBUS_abrevebelowdot</h3>
+<pre class="programlisting">#define IBUS_abrevebelowdot 0x1001eb7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ebelowdot"></a><h3>IBUS_Ebelowdot</h3>
+<pre class="programlisting">#define IBUS_Ebelowdot 0x1001eb8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ebelowdot"></a><h3>IBUS_ebelowdot</h3>
+<pre class="programlisting">#define IBUS_ebelowdot 0x1001eb9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ehook"></a><h3>IBUS_Ehook</h3>
+<pre class="programlisting">#define IBUS_Ehook 0x1001eba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ehook"></a><h3>IBUS_ehook</h3>
+<pre class="programlisting">#define IBUS_ehook 0x1001ebb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Etilde"></a><h3>IBUS_Etilde</h3>
+<pre class="programlisting">#define IBUS_Etilde 0x1001ebc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-etilde"></a><h3>IBUS_etilde</h3>
+<pre class="programlisting">#define IBUS_etilde 0x1001ebd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ecircumflexacute"></a><h3>IBUS_Ecircumflexacute</h3>
+<pre class="programlisting">#define IBUS_Ecircumflexacute 0x1001ebe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ecircumflexacute"></a><h3>IBUS_ecircumflexacute</h3>
+<pre class="programlisting">#define IBUS_ecircumflexacute 0x1001ebf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ecircumflexgrave"></a><h3>IBUS_Ecircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_Ecircumflexgrave 0x1001ec0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ecircumflexgrave"></a><h3>IBUS_ecircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_ecircumflexgrave 0x1001ec1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ecircumflexhook"></a><h3>IBUS_Ecircumflexhook</h3>
+<pre class="programlisting">#define IBUS_Ecircumflexhook 0x1001ec2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ecircumflexhook"></a><h3>IBUS_ecircumflexhook</h3>
+<pre class="programlisting">#define IBUS_ecircumflexhook 0x1001ec3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ecircumflextilde"></a><h3>IBUS_Ecircumflextilde</h3>
+<pre class="programlisting">#define IBUS_Ecircumflextilde 0x1001ec4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ecircumflextilde"></a><h3>IBUS_ecircumflextilde</h3>
+<pre class="programlisting">#define IBUS_ecircumflextilde 0x1001ec5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ecircumflexbelowdot"></a><h3>IBUS_Ecircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_Ecircumflexbelowdot 0x1001ec6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ecircumflexbelowdot"></a><h3>IBUS_ecircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_ecircumflexbelowdot 0x1001ec7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ihook"></a><h3>IBUS_Ihook</h3>
+<pre class="programlisting">#define IBUS_Ihook 0x1001ec8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ihook"></a><h3>IBUS_ihook</h3>
+<pre class="programlisting">#define IBUS_ihook 0x1001ec9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ibelowdot"></a><h3>IBUS_Ibelowdot</h3>
+<pre class="programlisting">#define IBUS_Ibelowdot 0x1001eca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ibelowdot"></a><h3>IBUS_ibelowdot</h3>
+<pre class="programlisting">#define IBUS_ibelowdot 0x1001ecb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Obelowdot"></a><h3>IBUS_Obelowdot</h3>
+<pre class="programlisting">#define IBUS_Obelowdot 0x1001ecc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-obelowdot"></a><h3>IBUS_obelowdot</h3>
+<pre class="programlisting">#define IBUS_obelowdot 0x1001ecd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ohook"></a><h3>IBUS_Ohook</h3>
+<pre class="programlisting">#define IBUS_Ohook 0x1001ece
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ohook"></a><h3>IBUS_ohook</h3>
+<pre class="programlisting">#define IBUS_ohook 0x1001ecf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ocircumflexacute"></a><h3>IBUS_Ocircumflexacute</h3>
+<pre class="programlisting">#define IBUS_Ocircumflexacute 0x1001ed0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ocircumflexacute"></a><h3>IBUS_ocircumflexacute</h3>
+<pre class="programlisting">#define IBUS_ocircumflexacute 0x1001ed1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ocircumflexgrave"></a><h3>IBUS_Ocircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_Ocircumflexgrave 0x1001ed2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ocircumflexgrave"></a><h3>IBUS_ocircumflexgrave</h3>
+<pre class="programlisting">#define IBUS_ocircumflexgrave 0x1001ed3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ocircumflexhook"></a><h3>IBUS_Ocircumflexhook</h3>
+<pre class="programlisting">#define IBUS_Ocircumflexhook 0x1001ed4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ocircumflexhook"></a><h3>IBUS_ocircumflexhook</h3>
+<pre class="programlisting">#define IBUS_ocircumflexhook 0x1001ed5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ocircumflextilde"></a><h3>IBUS_Ocircumflextilde</h3>
+<pre class="programlisting">#define IBUS_Ocircumflextilde 0x1001ed6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ocircumflextilde"></a><h3>IBUS_ocircumflextilde</h3>
+<pre class="programlisting">#define IBUS_ocircumflextilde 0x1001ed7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ocircumflexbelowdot"></a><h3>IBUS_Ocircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_Ocircumflexbelowdot 0x1001ed8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ocircumflexbelowdot"></a><h3>IBUS_ocircumflexbelowdot</h3>
+<pre class="programlisting">#define IBUS_ocircumflexbelowdot 0x1001ed9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ohornacute"></a><h3>IBUS_Ohornacute</h3>
+<pre class="programlisting">#define IBUS_Ohornacute 0x1001eda
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ohornacute"></a><h3>IBUS_ohornacute</h3>
+<pre class="programlisting">#define IBUS_ohornacute 0x1001edb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ohorngrave"></a><h3>IBUS_Ohorngrave</h3>
+<pre class="programlisting">#define IBUS_Ohorngrave 0x1001edc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ohorngrave"></a><h3>IBUS_ohorngrave</h3>
+<pre class="programlisting">#define IBUS_ohorngrave 0x1001edd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ohornhook"></a><h3>IBUS_Ohornhook</h3>
+<pre class="programlisting">#define IBUS_Ohornhook 0x1001ede
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ohornhook"></a><h3>IBUS_ohornhook</h3>
+<pre class="programlisting">#define IBUS_ohornhook 0x1001edf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ohorntilde"></a><h3>IBUS_Ohorntilde</h3>
+<pre class="programlisting">#define IBUS_Ohorntilde 0x1001ee0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ohorntilde"></a><h3>IBUS_ohorntilde</h3>
+<pre class="programlisting">#define IBUS_ohorntilde 0x1001ee1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ohornbelowdot"></a><h3>IBUS_Ohornbelowdot</h3>
+<pre class="programlisting">#define IBUS_Ohornbelowdot 0x1001ee2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ohornbelowdot"></a><h3>IBUS_ohornbelowdot</h3>
+<pre class="programlisting">#define IBUS_ohornbelowdot 0x1001ee3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ubelowdot"></a><h3>IBUS_Ubelowdot</h3>
+<pre class="programlisting">#define IBUS_Ubelowdot 0x1001ee4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ubelowdot"></a><h3>IBUS_ubelowdot</h3>
+<pre class="programlisting">#define IBUS_ubelowdot 0x1001ee5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uhook"></a><h3>IBUS_Uhook</h3>
+<pre class="programlisting">#define IBUS_Uhook 0x1001ee6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uhook"></a><h3>IBUS_uhook</h3>
+<pre class="programlisting">#define IBUS_uhook 0x1001ee7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uhornacute"></a><h3>IBUS_Uhornacute</h3>
+<pre class="programlisting">#define IBUS_Uhornacute 0x1001ee8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uhornacute"></a><h3>IBUS_uhornacute</h3>
+<pre class="programlisting">#define IBUS_uhornacute 0x1001ee9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uhorngrave"></a><h3>IBUS_Uhorngrave</h3>
+<pre class="programlisting">#define IBUS_Uhorngrave 0x1001eea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uhorngrave"></a><h3>IBUS_uhorngrave</h3>
+<pre class="programlisting">#define IBUS_uhorngrave 0x1001eeb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uhornhook"></a><h3>IBUS_Uhornhook</h3>
+<pre class="programlisting">#define IBUS_Uhornhook 0x1001eec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uhornhook"></a><h3>IBUS_uhornhook</h3>
+<pre class="programlisting">#define IBUS_uhornhook 0x1001eed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uhorntilde"></a><h3>IBUS_Uhorntilde</h3>
+<pre class="programlisting">#define IBUS_Uhorntilde 0x1001eee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uhorntilde"></a><h3>IBUS_uhorntilde</h3>
+<pre class="programlisting">#define IBUS_uhorntilde 0x1001eef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uhornbelowdot"></a><h3>IBUS_Uhornbelowdot</h3>
+<pre class="programlisting">#define IBUS_Uhornbelowdot 0x1001ef0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uhornbelowdot"></a><h3>IBUS_uhornbelowdot</h3>
+<pre class="programlisting">#define IBUS_uhornbelowdot 0x1001ef1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ybelowdot"></a><h3>IBUS_Ybelowdot</h3>
+<pre class="programlisting">#define IBUS_Ybelowdot 0x1001ef4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ybelowdot"></a><h3>IBUS_ybelowdot</h3>
+<pre class="programlisting">#define IBUS_ybelowdot 0x1001ef5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Yhook"></a><h3>IBUS_Yhook</h3>
+<pre class="programlisting">#define IBUS_Yhook 0x1001ef6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-yhook"></a><h3>IBUS_yhook</h3>
+<pre class="programlisting">#define IBUS_yhook 0x1001ef7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ytilde"></a><h3>IBUS_Ytilde</h3>
+<pre class="programlisting">#define IBUS_Ytilde 0x1001ef8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ytilde"></a><h3>IBUS_ytilde</h3>
+<pre class="programlisting">#define IBUS_ytilde 0x1001ef9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Ohorn"></a><h3>IBUS_Ohorn</h3>
+<pre class="programlisting">#define IBUS_Ohorn 0x10001a0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ohorn"></a><h3>IBUS_ohorn</h3>
+<pre class="programlisting">#define IBUS_ohorn 0x10001a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-Uhorn"></a><h3>IBUS_Uhorn</h3>
+<pre class="programlisting">#define IBUS_Uhorn 0x10001af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-uhorn"></a><h3>IBUS_uhorn</h3>
+<pre class="programlisting">#define IBUS_uhorn 0x10001b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-EcuSign"></a><h3>IBUS_EcuSign</h3>
+<pre class="programlisting">#define IBUS_EcuSign 0x10020a0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ColonSign"></a><h3>IBUS_ColonSign</h3>
+<pre class="programlisting">#define IBUS_ColonSign 0x10020a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-CruzeiroSign"></a><h3>IBUS_CruzeiroSign</h3>
+<pre class="programlisting">#define IBUS_CruzeiroSign 0x10020a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-FFrancSign"></a><h3>IBUS_FFrancSign</h3>
+<pre class="programlisting">#define IBUS_FFrancSign 0x10020a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-LiraSign"></a><h3>IBUS_LiraSign</h3>
+<pre class="programlisting">#define IBUS_LiraSign 0x10020a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-MillSign"></a><h3>IBUS_MillSign</h3>
+<pre class="programlisting">#define IBUS_MillSign 0x10020a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-NairaSign"></a><h3>IBUS_NairaSign</h3>
+<pre class="programlisting">#define IBUS_NairaSign 0x10020a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PesetaSign"></a><h3>IBUS_PesetaSign</h3>
+<pre class="programlisting">#define IBUS_PesetaSign 0x10020a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-RupeeSign"></a><h3>IBUS_RupeeSign</h3>
+<pre class="programlisting">#define IBUS_RupeeSign 0x10020a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-WonSign"></a><h3>IBUS_WonSign</h3>
+<pre class="programlisting">#define IBUS_WonSign 0x10020a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-NewSheqelSign"></a><h3>IBUS_NewSheqelSign</h3>
+<pre class="programlisting">#define IBUS_NewSheqelSign 0x10020aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-DongSign"></a><h3>IBUS_DongSign</h3>
+<pre class="programlisting">#define IBUS_DongSign 0x10020ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-EuroSign"></a><h3>IBUS_EuroSign</h3>
+<pre class="programlisting">#define IBUS_EuroSign 0x20ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-zerosuperior"></a><h3>IBUS_zerosuperior</h3>
+<pre class="programlisting">#define IBUS_zerosuperior 0x1002070
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-foursuperior"></a><h3>IBUS_foursuperior</h3>
+<pre class="programlisting">#define IBUS_foursuperior 0x1002074
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-fivesuperior"></a><h3>IBUS_fivesuperior</h3>
+<pre class="programlisting">#define IBUS_fivesuperior 0x1002075
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-sixsuperior"></a><h3>IBUS_sixsuperior</h3>
+<pre class="programlisting">#define IBUS_sixsuperior 0x1002076
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-sevensuperior"></a><h3>IBUS_sevensuperior</h3>
+<pre class="programlisting">#define IBUS_sevensuperior 0x1002077
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-eightsuperior"></a><h3>IBUS_eightsuperior</h3>
+<pre class="programlisting">#define IBUS_eightsuperior 0x1002078
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ninesuperior"></a><h3>IBUS_ninesuperior</h3>
+<pre class="programlisting">#define IBUS_ninesuperior 0x1002079
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-zerosubscript"></a><h3>IBUS_zerosubscript</h3>
+<pre class="programlisting">#define IBUS_zerosubscript 0x1002080
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-onesubscript"></a><h3>IBUS_onesubscript</h3>
+<pre class="programlisting">#define IBUS_onesubscript 0x1002081
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-twosubscript"></a><h3>IBUS_twosubscript</h3>
+<pre class="programlisting">#define IBUS_twosubscript 0x1002082
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-threesubscript"></a><h3>IBUS_threesubscript</h3>
+<pre class="programlisting">#define IBUS_threesubscript 0x1002083
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-foursubscript"></a><h3>IBUS_foursubscript</h3>
+<pre class="programlisting">#define IBUS_foursubscript 0x1002084
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-fivesubscript"></a><h3>IBUS_fivesubscript</h3>
+<pre class="programlisting">#define IBUS_fivesubscript 0x1002085
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-sixsubscript"></a><h3>IBUS_sixsubscript</h3>
+<pre class="programlisting">#define IBUS_sixsubscript 0x1002086
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-sevensubscript"></a><h3>IBUS_sevensubscript</h3>
+<pre class="programlisting">#define IBUS_sevensubscript 0x1002087
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-eightsubscript"></a><h3>IBUS_eightsubscript</h3>
+<pre class="programlisting">#define IBUS_eightsubscript 0x1002088
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-ninesubscript"></a><h3>IBUS_ninesubscript</h3>
+<pre class="programlisting">#define IBUS_ninesubscript 0x1002089
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-partdifferential"></a><h3>IBUS_partdifferential</h3>
+<pre class="programlisting">#define IBUS_partdifferential 0x1002202
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-emptyset"></a><h3>IBUS_emptyset</h3>
+<pre class="programlisting">#define IBUS_emptyset 0x1002205
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-elementof"></a><h3>IBUS_elementof</h3>
+<pre class="programlisting">#define IBUS_elementof 0x1002208
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-notelementof"></a><h3>IBUS_notelementof</h3>
+<pre class="programlisting">#define IBUS_notelementof 0x1002209
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-containsas"></a><h3>IBUS_containsas</h3>
+<pre class="programlisting">#define IBUS_containsas 0x100220b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-squareroot"></a><h3>IBUS_squareroot</h3>
+<pre class="programlisting">#define IBUS_squareroot 0x100221a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-cuberoot"></a><h3>IBUS_cuberoot</h3>
+<pre class="programlisting">#define IBUS_cuberoot 0x100221b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-fourthroot"></a><h3>IBUS_fourthroot</h3>
+<pre class="programlisting">#define IBUS_fourthroot 0x100221c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-dintegral"></a><h3>IBUS_dintegral</h3>
+<pre class="programlisting">#define IBUS_dintegral 0x100222c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-tintegral"></a><h3>IBUS_tintegral</h3>
+<pre class="programlisting">#define IBUS_tintegral 0x100222d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-because"></a><h3>IBUS_because</h3>
+<pre class="programlisting">#define IBUS_because 0x1002235
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-approxeq"></a><h3>IBUS_approxeq</h3>
+<pre class="programlisting">#define IBUS_approxeq 0x1002248
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-notapproxeq"></a><h3>IBUS_notapproxeq</h3>
+<pre class="programlisting">#define IBUS_notapproxeq 0x1002247
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-notidentical"></a><h3>IBUS_notidentical</h3>
+<pre class="programlisting">#define IBUS_notidentical 0x1002262
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-stricteq"></a><h3>IBUS_stricteq</h3>
+<pre class="programlisting">#define IBUS_stricteq 0x1002263
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-1"></a><h3>IBUS_braille_dot_1</h3>
+<pre class="programlisting">#define IBUS_braille_dot_1 0xfff1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-2"></a><h3>IBUS_braille_dot_2</h3>
+<pre class="programlisting">#define IBUS_braille_dot_2 0xfff2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-3"></a><h3>IBUS_braille_dot_3</h3>
+<pre class="programlisting">#define IBUS_braille_dot_3 0xfff3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-4"></a><h3>IBUS_braille_dot_4</h3>
+<pre class="programlisting">#define IBUS_braille_dot_4 0xfff4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-5"></a><h3>IBUS_braille_dot_5</h3>
+<pre class="programlisting">#define IBUS_braille_dot_5 0xfff5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-6"></a><h3>IBUS_braille_dot_6</h3>
+<pre class="programlisting">#define IBUS_braille_dot_6 0xfff6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-7"></a><h3>IBUS_braille_dot_7</h3>
+<pre class="programlisting">#define IBUS_braille_dot_7 0xfff7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-8"></a><h3>IBUS_braille_dot_8</h3>
+<pre class="programlisting">#define IBUS_braille_dot_8 0xfff8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-9"></a><h3>IBUS_braille_dot_9</h3>
+<pre class="programlisting">#define IBUS_braille_dot_9 0xfff9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dot-10"></a><h3>IBUS_braille_dot_10</h3>
+<pre class="programlisting">#define IBUS_braille_dot_10 0xfffa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-blank"></a><h3>IBUS_braille_blank</h3>
+<pre class="programlisting">#define IBUS_braille_blank 0x1002800
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1"></a><h3>IBUS_braille_dots_1</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1 0x1002801
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2"></a><h3>IBUS_braille_dots_2</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2 0x1002802
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12"></a><h3>IBUS_braille_dots_12</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12 0x1002803
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3"></a><h3>IBUS_braille_dots_3</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3 0x1002804
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13"></a><h3>IBUS_braille_dots_13</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13 0x1002805
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23"></a><h3>IBUS_braille_dots_23</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23 0x1002806
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123"></a><h3>IBUS_braille_dots_123</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123 0x1002807
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-4"></a><h3>IBUS_braille_dots_4</h3>
+<pre class="programlisting">#define IBUS_braille_dots_4 0x1002808
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-14"></a><h3>IBUS_braille_dots_14</h3>
+<pre class="programlisting">#define IBUS_braille_dots_14 0x1002809
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-24"></a><h3>IBUS_braille_dots_24</h3>
+<pre class="programlisting">#define IBUS_braille_dots_24 0x100280a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-124"></a><h3>IBUS_braille_dots_124</h3>
+<pre class="programlisting">#define IBUS_braille_dots_124 0x100280b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-34"></a><h3>IBUS_braille_dots_34</h3>
+<pre class="programlisting">#define IBUS_braille_dots_34 0x100280c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-134"></a><h3>IBUS_braille_dots_134</h3>
+<pre class="programlisting">#define IBUS_braille_dots_134 0x100280d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-234"></a><h3>IBUS_braille_dots_234</h3>
+<pre class="programlisting">#define IBUS_braille_dots_234 0x100280e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1234"></a><h3>IBUS_braille_dots_1234</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1234 0x100280f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-5"></a><h3>IBUS_braille_dots_5</h3>
+<pre class="programlisting">#define IBUS_braille_dots_5 0x1002810
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-15"></a><h3>IBUS_braille_dots_15</h3>
+<pre class="programlisting">#define IBUS_braille_dots_15 0x1002811
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-25"></a><h3>IBUS_braille_dots_25</h3>
+<pre class="programlisting">#define IBUS_braille_dots_25 0x1002812
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-125"></a><h3>IBUS_braille_dots_125</h3>
+<pre class="programlisting">#define IBUS_braille_dots_125 0x1002813
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-35"></a><h3>IBUS_braille_dots_35</h3>
+<pre class="programlisting">#define IBUS_braille_dots_35 0x1002814
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-135"></a><h3>IBUS_braille_dots_135</h3>
+<pre class="programlisting">#define IBUS_braille_dots_135 0x1002815
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-235"></a><h3>IBUS_braille_dots_235</h3>
+<pre class="programlisting">#define IBUS_braille_dots_235 0x1002816
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1235"></a><h3>IBUS_braille_dots_1235</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1235 0x1002817
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-45"></a><h3>IBUS_braille_dots_45</h3>
+<pre class="programlisting">#define IBUS_braille_dots_45 0x1002818
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-145"></a><h3>IBUS_braille_dots_145</h3>
+<pre class="programlisting">#define IBUS_braille_dots_145 0x1002819
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-245"></a><h3>IBUS_braille_dots_245</h3>
+<pre class="programlisting">#define IBUS_braille_dots_245 0x100281a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1245"></a><h3>IBUS_braille_dots_1245</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1245 0x100281b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-345"></a><h3>IBUS_braille_dots_345</h3>
+<pre class="programlisting">#define IBUS_braille_dots_345 0x100281c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1345"></a><h3>IBUS_braille_dots_1345</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1345 0x100281d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2345"></a><h3>IBUS_braille_dots_2345</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2345 0x100281e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12345"></a><h3>IBUS_braille_dots_12345</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12345 0x100281f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-6"></a><h3>IBUS_braille_dots_6</h3>
+<pre class="programlisting">#define IBUS_braille_dots_6 0x1002820
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-16"></a><h3>IBUS_braille_dots_16</h3>
+<pre class="programlisting">#define IBUS_braille_dots_16 0x1002821
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-26"></a><h3>IBUS_braille_dots_26</h3>
+<pre class="programlisting">#define IBUS_braille_dots_26 0x1002822
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-126"></a><h3>IBUS_braille_dots_126</h3>
+<pre class="programlisting">#define IBUS_braille_dots_126 0x1002823
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-36"></a><h3>IBUS_braille_dots_36</h3>
+<pre class="programlisting">#define IBUS_braille_dots_36 0x1002824
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-136"></a><h3>IBUS_braille_dots_136</h3>
+<pre class="programlisting">#define IBUS_braille_dots_136 0x1002825
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-236"></a><h3>IBUS_braille_dots_236</h3>
+<pre class="programlisting">#define IBUS_braille_dots_236 0x1002826
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1236"></a><h3>IBUS_braille_dots_1236</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1236 0x1002827
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-46"></a><h3>IBUS_braille_dots_46</h3>
+<pre class="programlisting">#define IBUS_braille_dots_46 0x1002828
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-146"></a><h3>IBUS_braille_dots_146</h3>
+<pre class="programlisting">#define IBUS_braille_dots_146 0x1002829
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-246"></a><h3>IBUS_braille_dots_246</h3>
+<pre class="programlisting">#define IBUS_braille_dots_246 0x100282a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1246"></a><h3>IBUS_braille_dots_1246</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1246 0x100282b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-346"></a><h3>IBUS_braille_dots_346</h3>
+<pre class="programlisting">#define IBUS_braille_dots_346 0x100282c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1346"></a><h3>IBUS_braille_dots_1346</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1346 0x100282d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2346"></a><h3>IBUS_braille_dots_2346</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2346 0x100282e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12346"></a><h3>IBUS_braille_dots_12346</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12346 0x100282f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-56"></a><h3>IBUS_braille_dots_56</h3>
+<pre class="programlisting">#define IBUS_braille_dots_56 0x1002830
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-156"></a><h3>IBUS_braille_dots_156</h3>
+<pre class="programlisting">#define IBUS_braille_dots_156 0x1002831
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-256"></a><h3>IBUS_braille_dots_256</h3>
+<pre class="programlisting">#define IBUS_braille_dots_256 0x1002832
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1256"></a><h3>IBUS_braille_dots_1256</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1256 0x1002833
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-356"></a><h3>IBUS_braille_dots_356</h3>
+<pre class="programlisting">#define IBUS_braille_dots_356 0x1002834
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1356"></a><h3>IBUS_braille_dots_1356</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1356 0x1002835
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2356"></a><h3>IBUS_braille_dots_2356</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2356 0x1002836
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12356"></a><h3>IBUS_braille_dots_12356</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12356 0x1002837
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-456"></a><h3>IBUS_braille_dots_456</h3>
+<pre class="programlisting">#define IBUS_braille_dots_456 0x1002838
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1456"></a><h3>IBUS_braille_dots_1456</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1456 0x1002839
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2456"></a><h3>IBUS_braille_dots_2456</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2456 0x100283a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12456"></a><h3>IBUS_braille_dots_12456</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12456 0x100283b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3456"></a><h3>IBUS_braille_dots_3456</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3456 0x100283c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13456"></a><h3>IBUS_braille_dots_13456</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13456 0x100283d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23456"></a><h3>IBUS_braille_dots_23456</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23456 0x100283e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123456"></a><h3>IBUS_braille_dots_123456</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123456 0x100283f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-7"></a><h3>IBUS_braille_dots_7</h3>
+<pre class="programlisting">#define IBUS_braille_dots_7 0x1002840
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-17"></a><h3>IBUS_braille_dots_17</h3>
+<pre class="programlisting">#define IBUS_braille_dots_17 0x1002841
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-27"></a><h3>IBUS_braille_dots_27</h3>
+<pre class="programlisting">#define IBUS_braille_dots_27 0x1002842
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-127"></a><h3>IBUS_braille_dots_127</h3>
+<pre class="programlisting">#define IBUS_braille_dots_127 0x1002843
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-37"></a><h3>IBUS_braille_dots_37</h3>
+<pre class="programlisting">#define IBUS_braille_dots_37 0x1002844
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-137"></a><h3>IBUS_braille_dots_137</h3>
+<pre class="programlisting">#define IBUS_braille_dots_137 0x1002845
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-237"></a><h3>IBUS_braille_dots_237</h3>
+<pre class="programlisting">#define IBUS_braille_dots_237 0x1002846
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1237"></a><h3>IBUS_braille_dots_1237</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1237 0x1002847
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-47"></a><h3>IBUS_braille_dots_47</h3>
+<pre class="programlisting">#define IBUS_braille_dots_47 0x1002848
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-147"></a><h3>IBUS_braille_dots_147</h3>
+<pre class="programlisting">#define IBUS_braille_dots_147 0x1002849
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-247"></a><h3>IBUS_braille_dots_247</h3>
+<pre class="programlisting">#define IBUS_braille_dots_247 0x100284a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1247"></a><h3>IBUS_braille_dots_1247</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1247 0x100284b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-347"></a><h3>IBUS_braille_dots_347</h3>
+<pre class="programlisting">#define IBUS_braille_dots_347 0x100284c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1347"></a><h3>IBUS_braille_dots_1347</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1347 0x100284d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2347"></a><h3>IBUS_braille_dots_2347</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2347 0x100284e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12347"></a><h3>IBUS_braille_dots_12347</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12347 0x100284f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-57"></a><h3>IBUS_braille_dots_57</h3>
+<pre class="programlisting">#define IBUS_braille_dots_57 0x1002850
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-157"></a><h3>IBUS_braille_dots_157</h3>
+<pre class="programlisting">#define IBUS_braille_dots_157 0x1002851
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-257"></a><h3>IBUS_braille_dots_257</h3>
+<pre class="programlisting">#define IBUS_braille_dots_257 0x1002852
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1257"></a><h3>IBUS_braille_dots_1257</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1257 0x1002853
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-357"></a><h3>IBUS_braille_dots_357</h3>
+<pre class="programlisting">#define IBUS_braille_dots_357 0x1002854
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1357"></a><h3>IBUS_braille_dots_1357</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1357 0x1002855
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2357"></a><h3>IBUS_braille_dots_2357</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2357 0x1002856
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12357"></a><h3>IBUS_braille_dots_12357</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12357 0x1002857
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-457"></a><h3>IBUS_braille_dots_457</h3>
+<pre class="programlisting">#define IBUS_braille_dots_457 0x1002858
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1457"></a><h3>IBUS_braille_dots_1457</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1457 0x1002859
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2457"></a><h3>IBUS_braille_dots_2457</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2457 0x100285a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12457"></a><h3>IBUS_braille_dots_12457</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12457 0x100285b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3457"></a><h3>IBUS_braille_dots_3457</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3457 0x100285c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13457"></a><h3>IBUS_braille_dots_13457</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13457 0x100285d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23457"></a><h3>IBUS_braille_dots_23457</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23457 0x100285e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123457"></a><h3>IBUS_braille_dots_123457</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123457 0x100285f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-67"></a><h3>IBUS_braille_dots_67</h3>
+<pre class="programlisting">#define IBUS_braille_dots_67 0x1002860
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-167"></a><h3>IBUS_braille_dots_167</h3>
+<pre class="programlisting">#define IBUS_braille_dots_167 0x1002861
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-267"></a><h3>IBUS_braille_dots_267</h3>
+<pre class="programlisting">#define IBUS_braille_dots_267 0x1002862
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1267"></a><h3>IBUS_braille_dots_1267</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1267 0x1002863
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-367"></a><h3>IBUS_braille_dots_367</h3>
+<pre class="programlisting">#define IBUS_braille_dots_367 0x1002864
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1367"></a><h3>IBUS_braille_dots_1367</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1367 0x1002865
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2367"></a><h3>IBUS_braille_dots_2367</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2367 0x1002866
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12367"></a><h3>IBUS_braille_dots_12367</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12367 0x1002867
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-467"></a><h3>IBUS_braille_dots_467</h3>
+<pre class="programlisting">#define IBUS_braille_dots_467 0x1002868
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1467"></a><h3>IBUS_braille_dots_1467</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1467 0x1002869
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2467"></a><h3>IBUS_braille_dots_2467</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2467 0x100286a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12467"></a><h3>IBUS_braille_dots_12467</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12467 0x100286b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3467"></a><h3>IBUS_braille_dots_3467</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3467 0x100286c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13467"></a><h3>IBUS_braille_dots_13467</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13467 0x100286d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23467"></a><h3>IBUS_braille_dots_23467</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23467 0x100286e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123467"></a><h3>IBUS_braille_dots_123467</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123467 0x100286f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-567"></a><h3>IBUS_braille_dots_567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_567 0x1002870
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1567"></a><h3>IBUS_braille_dots_1567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1567 0x1002871
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2567"></a><h3>IBUS_braille_dots_2567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2567 0x1002872
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12567"></a><h3>IBUS_braille_dots_12567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12567 0x1002873
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3567"></a><h3>IBUS_braille_dots_3567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3567 0x1002874
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13567"></a><h3>IBUS_braille_dots_13567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13567 0x1002875
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23567"></a><h3>IBUS_braille_dots_23567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23567 0x1002876
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123567"></a><h3>IBUS_braille_dots_123567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123567 0x1002877
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-4567"></a><h3>IBUS_braille_dots_4567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_4567 0x1002878
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-14567"></a><h3>IBUS_braille_dots_14567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_14567 0x1002879
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-24567"></a><h3>IBUS_braille_dots_24567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_24567 0x100287a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-124567"></a><h3>IBUS_braille_dots_124567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_124567 0x100287b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-34567"></a><h3>IBUS_braille_dots_34567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_34567 0x100287c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-134567"></a><h3>IBUS_braille_dots_134567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_134567 0x100287d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-234567"></a><h3>IBUS_braille_dots_234567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_234567 0x100287e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1234567"></a><h3>IBUS_braille_dots_1234567</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1234567 0x100287f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-8"></a><h3>IBUS_braille_dots_8</h3>
+<pre class="programlisting">#define IBUS_braille_dots_8 0x1002880
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-18"></a><h3>IBUS_braille_dots_18</h3>
+<pre class="programlisting">#define IBUS_braille_dots_18 0x1002881
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-28"></a><h3>IBUS_braille_dots_28</h3>
+<pre class="programlisting">#define IBUS_braille_dots_28 0x1002882
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-128"></a><h3>IBUS_braille_dots_128</h3>
+<pre class="programlisting">#define IBUS_braille_dots_128 0x1002883
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-38"></a><h3>IBUS_braille_dots_38</h3>
+<pre class="programlisting">#define IBUS_braille_dots_38 0x1002884
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-138"></a><h3>IBUS_braille_dots_138</h3>
+<pre class="programlisting">#define IBUS_braille_dots_138 0x1002885
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-238"></a><h3>IBUS_braille_dots_238</h3>
+<pre class="programlisting">#define IBUS_braille_dots_238 0x1002886
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1238"></a><h3>IBUS_braille_dots_1238</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1238 0x1002887
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-48"></a><h3>IBUS_braille_dots_48</h3>
+<pre class="programlisting">#define IBUS_braille_dots_48 0x1002888
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-148"></a><h3>IBUS_braille_dots_148</h3>
+<pre class="programlisting">#define IBUS_braille_dots_148 0x1002889
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-248"></a><h3>IBUS_braille_dots_248</h3>
+<pre class="programlisting">#define IBUS_braille_dots_248 0x100288a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1248"></a><h3>IBUS_braille_dots_1248</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1248 0x100288b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-348"></a><h3>IBUS_braille_dots_348</h3>
+<pre class="programlisting">#define IBUS_braille_dots_348 0x100288c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1348"></a><h3>IBUS_braille_dots_1348</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1348 0x100288d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2348"></a><h3>IBUS_braille_dots_2348</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2348 0x100288e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12348"></a><h3>IBUS_braille_dots_12348</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12348 0x100288f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-58"></a><h3>IBUS_braille_dots_58</h3>
+<pre class="programlisting">#define IBUS_braille_dots_58 0x1002890
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-158"></a><h3>IBUS_braille_dots_158</h3>
+<pre class="programlisting">#define IBUS_braille_dots_158 0x1002891
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-258"></a><h3>IBUS_braille_dots_258</h3>
+<pre class="programlisting">#define IBUS_braille_dots_258 0x1002892
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1258"></a><h3>IBUS_braille_dots_1258</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1258 0x1002893
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-358"></a><h3>IBUS_braille_dots_358</h3>
+<pre class="programlisting">#define IBUS_braille_dots_358 0x1002894
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1358"></a><h3>IBUS_braille_dots_1358</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1358 0x1002895
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2358"></a><h3>IBUS_braille_dots_2358</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2358 0x1002896
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12358"></a><h3>IBUS_braille_dots_12358</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12358 0x1002897
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-458"></a><h3>IBUS_braille_dots_458</h3>
+<pre class="programlisting">#define IBUS_braille_dots_458 0x1002898
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1458"></a><h3>IBUS_braille_dots_1458</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1458 0x1002899
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2458"></a><h3>IBUS_braille_dots_2458</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2458 0x100289a
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12458"></a><h3>IBUS_braille_dots_12458</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12458 0x100289b
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3458"></a><h3>IBUS_braille_dots_3458</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3458 0x100289c
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13458"></a><h3>IBUS_braille_dots_13458</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13458 0x100289d
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23458"></a><h3>IBUS_braille_dots_23458</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23458 0x100289e
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123458"></a><h3>IBUS_braille_dots_123458</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123458 0x100289f
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-68"></a><h3>IBUS_braille_dots_68</h3>
+<pre class="programlisting">#define IBUS_braille_dots_68 0x10028a0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-168"></a><h3>IBUS_braille_dots_168</h3>
+<pre class="programlisting">#define IBUS_braille_dots_168 0x10028a1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-268"></a><h3>IBUS_braille_dots_268</h3>
+<pre class="programlisting">#define IBUS_braille_dots_268 0x10028a2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1268"></a><h3>IBUS_braille_dots_1268</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1268 0x10028a3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-368"></a><h3>IBUS_braille_dots_368</h3>
+<pre class="programlisting">#define IBUS_braille_dots_368 0x10028a4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1368"></a><h3>IBUS_braille_dots_1368</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1368 0x10028a5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2368"></a><h3>IBUS_braille_dots_2368</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2368 0x10028a6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12368"></a><h3>IBUS_braille_dots_12368</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12368 0x10028a7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-468"></a><h3>IBUS_braille_dots_468</h3>
+<pre class="programlisting">#define IBUS_braille_dots_468 0x10028a8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1468"></a><h3>IBUS_braille_dots_1468</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1468 0x10028a9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2468"></a><h3>IBUS_braille_dots_2468</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2468 0x10028aa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12468"></a><h3>IBUS_braille_dots_12468</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12468 0x10028ab
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3468"></a><h3>IBUS_braille_dots_3468</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3468 0x10028ac
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13468"></a><h3>IBUS_braille_dots_13468</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13468 0x10028ad
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23468"></a><h3>IBUS_braille_dots_23468</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23468 0x10028ae
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123468"></a><h3>IBUS_braille_dots_123468</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123468 0x10028af
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-568"></a><h3>IBUS_braille_dots_568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_568 0x10028b0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1568"></a><h3>IBUS_braille_dots_1568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1568 0x10028b1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2568"></a><h3>IBUS_braille_dots_2568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2568 0x10028b2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12568"></a><h3>IBUS_braille_dots_12568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12568 0x10028b3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3568"></a><h3>IBUS_braille_dots_3568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3568 0x10028b4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13568"></a><h3>IBUS_braille_dots_13568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13568 0x10028b5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23568"></a><h3>IBUS_braille_dots_23568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23568 0x10028b6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123568"></a><h3>IBUS_braille_dots_123568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123568 0x10028b7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-4568"></a><h3>IBUS_braille_dots_4568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_4568 0x10028b8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-14568"></a><h3>IBUS_braille_dots_14568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_14568 0x10028b9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-24568"></a><h3>IBUS_braille_dots_24568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_24568 0x10028ba
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-124568"></a><h3>IBUS_braille_dots_124568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_124568 0x10028bb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-34568"></a><h3>IBUS_braille_dots_34568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_34568 0x10028bc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-134568"></a><h3>IBUS_braille_dots_134568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_134568 0x10028bd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-234568"></a><h3>IBUS_braille_dots_234568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_234568 0x10028be
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1234568"></a><h3>IBUS_braille_dots_1234568</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1234568 0x10028bf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-78"></a><h3>IBUS_braille_dots_78</h3>
+<pre class="programlisting">#define IBUS_braille_dots_78 0x10028c0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-178"></a><h3>IBUS_braille_dots_178</h3>
+<pre class="programlisting">#define IBUS_braille_dots_178 0x10028c1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-278"></a><h3>IBUS_braille_dots_278</h3>
+<pre class="programlisting">#define IBUS_braille_dots_278 0x10028c2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1278"></a><h3>IBUS_braille_dots_1278</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1278 0x10028c3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-378"></a><h3>IBUS_braille_dots_378</h3>
+<pre class="programlisting">#define IBUS_braille_dots_378 0x10028c4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1378"></a><h3>IBUS_braille_dots_1378</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1378 0x10028c5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2378"></a><h3>IBUS_braille_dots_2378</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2378 0x10028c6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12378"></a><h3>IBUS_braille_dots_12378</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12378 0x10028c7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-478"></a><h3>IBUS_braille_dots_478</h3>
+<pre class="programlisting">#define IBUS_braille_dots_478 0x10028c8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1478"></a><h3>IBUS_braille_dots_1478</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1478 0x10028c9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2478"></a><h3>IBUS_braille_dots_2478</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2478 0x10028ca
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12478"></a><h3>IBUS_braille_dots_12478</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12478 0x10028cb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3478"></a><h3>IBUS_braille_dots_3478</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3478 0x10028cc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13478"></a><h3>IBUS_braille_dots_13478</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13478 0x10028cd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23478"></a><h3>IBUS_braille_dots_23478</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23478 0x10028ce
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123478"></a><h3>IBUS_braille_dots_123478</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123478 0x10028cf
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-578"></a><h3>IBUS_braille_dots_578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_578 0x10028d0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1578"></a><h3>IBUS_braille_dots_1578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1578 0x10028d1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2578"></a><h3>IBUS_braille_dots_2578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2578 0x10028d2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12578"></a><h3>IBUS_braille_dots_12578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12578 0x10028d3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3578"></a><h3>IBUS_braille_dots_3578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3578 0x10028d4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13578"></a><h3>IBUS_braille_dots_13578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13578 0x10028d5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23578"></a><h3>IBUS_braille_dots_23578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23578 0x10028d6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123578"></a><h3>IBUS_braille_dots_123578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123578 0x10028d7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-4578"></a><h3>IBUS_braille_dots_4578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_4578 0x10028d8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-14578"></a><h3>IBUS_braille_dots_14578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_14578 0x10028d9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-24578"></a><h3>IBUS_braille_dots_24578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_24578 0x10028da
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-124578"></a><h3>IBUS_braille_dots_124578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_124578 0x10028db
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-34578"></a><h3>IBUS_braille_dots_34578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_34578 0x10028dc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-134578"></a><h3>IBUS_braille_dots_134578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_134578 0x10028dd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-234578"></a><h3>IBUS_braille_dots_234578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_234578 0x10028de
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1234578"></a><h3>IBUS_braille_dots_1234578</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1234578 0x10028df
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-678"></a><h3>IBUS_braille_dots_678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_678 0x10028e0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1678"></a><h3>IBUS_braille_dots_1678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1678 0x10028e1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2678"></a><h3>IBUS_braille_dots_2678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2678 0x10028e2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12678"></a><h3>IBUS_braille_dots_12678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12678 0x10028e3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-3678"></a><h3>IBUS_braille_dots_3678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_3678 0x10028e4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-13678"></a><h3>IBUS_braille_dots_13678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_13678 0x10028e5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-23678"></a><h3>IBUS_braille_dots_23678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_23678 0x10028e6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-123678"></a><h3>IBUS_braille_dots_123678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_123678 0x10028e7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-4678"></a><h3>IBUS_braille_dots_4678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_4678 0x10028e8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-14678"></a><h3>IBUS_braille_dots_14678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_14678 0x10028e9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-24678"></a><h3>IBUS_braille_dots_24678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_24678 0x10028ea
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-124678"></a><h3>IBUS_braille_dots_124678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_124678 0x10028eb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-34678"></a><h3>IBUS_braille_dots_34678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_34678 0x10028ec
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-134678"></a><h3>IBUS_braille_dots_134678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_134678 0x10028ed
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-234678"></a><h3>IBUS_braille_dots_234678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_234678 0x10028ee
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1234678"></a><h3>IBUS_braille_dots_1234678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1234678 0x10028ef
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-5678"></a><h3>IBUS_braille_dots_5678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_5678 0x10028f0
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-15678"></a><h3>IBUS_braille_dots_15678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_15678 0x10028f1
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-25678"></a><h3>IBUS_braille_dots_25678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_25678 0x10028f2
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-125678"></a><h3>IBUS_braille_dots_125678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_125678 0x10028f3
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-35678"></a><h3>IBUS_braille_dots_35678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_35678 0x10028f4
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-135678"></a><h3>IBUS_braille_dots_135678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_135678 0x10028f5
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-235678"></a><h3>IBUS_braille_dots_235678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_235678 0x10028f6
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1235678"></a><h3>IBUS_braille_dots_1235678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1235678 0x10028f7
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-45678"></a><h3>IBUS_braille_dots_45678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_45678 0x10028f8
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-145678"></a><h3>IBUS_braille_dots_145678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_145678 0x10028f9
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-245678"></a><h3>IBUS_braille_dots_245678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_245678 0x10028fa
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1245678"></a><h3>IBUS_braille_dots_1245678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1245678 0x10028fb
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-345678"></a><h3>IBUS_braille_dots_345678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_345678 0x10028fc
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-1345678"></a><h3>IBUS_braille_dots_1345678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_1345678 0x10028fd
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-2345678"></a><h3>IBUS_braille_dots_2345678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_2345678 0x10028fe
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-braille-dots-12345678"></a><h3>IBUS_braille_dots_12345678</h3>
+<pre class="programlisting">#define IBUS_braille_dots_12345678 0x10028ff
+</pre>
+<p>
+</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-ibusshare.html b/docs/reference/ibus/html/ibus-ibusshare.html
new file mode 100644 (file)
index 0000000..1de1b4b
--- /dev/null
@@ -0,0 +1,591 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ibusshare</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch06.html" title="Internal">
+<link rel="prev" href="IBusObject.html" title="IBusObject">
+<link rel="next" href="ibus-ibustypes.html" title="ibustypes">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusObject.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-ibustypes.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-ibusshare.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-ibusshare.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-ibusshare"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-ibusshare.top_of_page"></a>ibusshare</span></h2>
+<p>ibusshare — Shared utility functions and definition.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="ibus-ibusshare.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="ibus-ibusshare.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="ibus-ibusshare.html#IBUS-DEPRECATED:CAPS" title="IBUS_DEPRECATED">IBUS_DEPRECATED</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-SERVICE-IBUS:CAPS" title="IBUS_SERVICE_IBUS">IBUS_SERVICE_IBUS</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-SERVICE-PANEL:CAPS" title="IBUS_SERVICE_PANEL">IBUS_SERVICE_PANEL</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-SERVICE-CONFIG:CAPS" title="IBUS_SERVICE_CONFIG">IBUS_SERVICE_CONFIG</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-SERVICE-NOTIFICATIONS:CAPS" title="IBUS_SERVICE_NOTIFICATIONS">IBUS_SERVICE_NOTIFICATIONS</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-PATH-IBUS:CAPS" title="IBUS_PATH_IBUS">IBUS_PATH_IBUS</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-PATH-FACTORY:CAPS" title="IBUS_PATH_FACTORY">IBUS_PATH_FACTORY</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-PATH-PANEL:CAPS" title="IBUS_PATH_PANEL">IBUS_PATH_PANEL</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-PATH-CONFIG:CAPS" title="IBUS_PATH_CONFIG">IBUS_PATH_CONFIG</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-PATH-NOTIFICATIONS:CAPS" title="IBUS_PATH_NOTIFICATIONS">IBUS_PATH_NOTIFICATIONS</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-PATH-INPUT-CONTEXT:CAPS" title="IBUS_PATH_INPUT_CONTEXT">IBUS_PATH_INPUT_CONTEXT</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-IBUS:CAPS" title="IBUS_INTERFACE_IBUS">IBUS_INTERFACE_IBUS</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-INPUT-CONTEXT:CAPS" title="IBUS_INTERFACE_INPUT_CONTEXT">IBUS_INTERFACE_INPUT_CONTEXT</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-FACTORY:CAPS" title="IBUS_INTERFACE_FACTORY">IBUS_INTERFACE_FACTORY</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-ENGINE:CAPS" title="IBUS_INTERFACE_ENGINE">IBUS_INTERFACE_ENGINE</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-PANEL:CAPS" title="IBUS_INTERFACE_PANEL">IBUS_INTERFACE_PANEL</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-CONFIG:CAPS" title="IBUS_INTERFACE_CONFIG">IBUS_INTERFACE_CONFIG</a>
+#define             <a class="link" href="ibus-ibusshare.html#IBUS-INTERFACE-NOTIFICATIONS:CAPS" title="IBUS_INTERFACE_NOTIFICATIONS">IBUS_INTERFACE_NOTIFICATIONS</a>
+const <span class="returnvalue">gchar</span> *       <a class="link" href="ibus-ibusshare.html#ibus-get-local-machine-id" title="ibus_get_local_machine_id ()">ibus_get_local_machine_id</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusshare.html#ibus-set-display" title="ibus_set_display ()">ibus_set_display</a>                    (<em class="parameter"><code>const <span class="type">gchar</span> *display</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="ibus-ibusshare.html#ibus-get-address" title="ibus_get_address ()">ibus_get_address</a>                    (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusshare.html#ibus-write-address" title="ibus_write_address ()">ibus_write_address</a>                  (<em class="parameter"><code>const <span class="type">gchar</span> *address</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="ibus-ibusshare.html#ibus-get-user-name" title="ibus_get_user_name ()">ibus_get_user_name</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">glong</span>               <a class="link" href="ibus-ibusshare.html#ibus-get-daemon-uid" title="ibus_get_daemon_uid ()">ibus_get_daemon_uid</a>                 (<em class="parameter"><code><span class="type">void</span></code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="ibus-ibusshare.html#ibus-get-socket-path" title="ibus_get_socket_path ()">ibus_get_socket_path</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">gint</span>                <a class="link" href="ibus-ibusshare.html#ibus-get-timeout" title="ibus_get_timeout ()">ibus_get_timeout</a>                    (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusshare.html#ibus-free-strv" title="ibus_free_strv ()">ibus_free_strv</a>                      (<em class="parameter"><code><span class="type">gchar</span> **strv</code></em>);
+const <span class="returnvalue">gchar</span> *       <a class="link" href="ibus-ibusshare.html#ibus-key-event-to-string" title="ibus_key_event_to_string ()">ibus_key_event_to_string</a>            (<em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>);
+<span class="returnvalue">gboolean</span>            <a class="link" href="ibus-ibusshare.html#ibus-key-event-from-string" title="ibus_key_event_from_string ()">ibus_key_event_from_string</a>          (<em class="parameter"><code>const <span class="type">gchar</span> *string</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *modifiers</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusshare.html#ibus-init" title="ibus_init ()">ibus_init</a>                           (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusshare.html#ibus-main" title="ibus_main ()">ibus_main</a>                           (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusshare.html#ibus-quit" title="ibus_quit ()">ibus_quit</a>                           (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusshare.html#ibus-set-log-handler" title="ibus_set_log_handler ()">ibus_set_log_handler</a>                (<em class="parameter"><code><span class="type">gboolean</span> verbose</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusshare.html#ibus-unset-log-handler" title="ibus_unset_log_handler ()">ibus_unset_log_handler</a>              (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusshare.description"></a><h2>Description</h2>
+<p>
+This file defines some utility functions and definition
+which are shared among ibus component and services.
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusshare.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBUS-DEPRECATED:CAPS"></a><h3>IBUS_DEPRECATED</h3>
+<pre class="programlisting">#define IBUS_DEPRECATED
+</pre>
+<p>
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-SERVICE-IBUS:CAPS"></a><h3>IBUS_SERVICE_IBUS</h3>
+<pre class="programlisting">#define IBUS_SERVICE_IBUS       "org.freedesktop.IBus"
+</pre>
+<p>
+Address of IBus service.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-SERVICE-PANEL:CAPS"></a><h3>IBUS_SERVICE_PANEL</h3>
+<pre class="programlisting">#define IBUS_SERVICE_PANEL      "org.freedesktop.IBus.Panel"
+</pre>
+<p>
+Address of IBus panel service.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-SERVICE-CONFIG:CAPS"></a><h3>IBUS_SERVICE_CONFIG</h3>
+<pre class="programlisting">#define IBUS_SERVICE_CONFIG     "org.freedesktop.IBus.Config"
+</pre>
+<p>
+Address of IBus config service.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-SERVICE-NOTIFICATIONS:CAPS"></a><h3>IBUS_SERVICE_NOTIFICATIONS</h3>
+<pre class="programlisting">#define IBUS_SERVICE_NOTIFICATIONS    "org.freedesktop.IBus.Notifications"
+</pre>
+<p>
+Address of IBus notification service.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PATH-IBUS:CAPS"></a><h3>IBUS_PATH_IBUS</h3>
+<pre class="programlisting">#define IBUS_PATH_IBUS          "/org/freedesktop/IBus"
+</pre>
+<p>
+D-Bus path for IBus
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PATH-FACTORY:CAPS"></a><h3>IBUS_PATH_FACTORY</h3>
+<pre class="programlisting">#define IBUS_PATH_FACTORY       "/org/freedesktop/IBus/Factory"
+</pre>
+<p>
+D-Bus path for IBus factory.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PATH-PANEL:CAPS"></a><h3>IBUS_PATH_PANEL</h3>
+<pre class="programlisting">#define IBUS_PATH_PANEL         "/org/freedesktop/IBus/Panel"
+</pre>
+<p>
+D-Bus path for IBus panel.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PATH-CONFIG:CAPS"></a><h3>IBUS_PATH_CONFIG</h3>
+<pre class="programlisting">#define IBUS_PATH_CONFIG        "/org/freedesktop/IBus/Config"
+</pre>
+<p>
+D-Bus path for IBus config.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PATH-NOTIFICATIONS:CAPS"></a><h3>IBUS_PATH_NOTIFICATIONS</h3>
+<pre class="programlisting">#define IBUS_PATH_NOTIFICATIONS "/org/freedesktop/IBus/Notifications"
+</pre>
+<p>
+D-Bus path for IBus notifications.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-PATH-INPUT-CONTEXT:CAPS"></a><h3>IBUS_PATH_INPUT_CONTEXT</h3>
+<pre class="programlisting">#define IBUS_PATH_INPUT_CONTEXT "/org/freedesktop/IBus/InputContext_%d"
+</pre>
+<p>
+Template of D-Bus path for IBus input context.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-INTERFACE-IBUS:CAPS"></a><h3>IBUS_INTERFACE_IBUS</h3>
+<pre class="programlisting">#define IBUS_INTERFACE_IBUS     "org.freedesktop.IBus"
+</pre>
+<p>
+D-Bus interface for IBus.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-INTERFACE-INPUT-CONTEXT:CAPS"></a><h3>IBUS_INTERFACE_INPUT_CONTEXT</h3>
+<pre class="programlisting">#define             IBUS_INTERFACE_INPUT_CONTEXT</pre>
+<p>
+D-Bus interface for IBus input context.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-INTERFACE-FACTORY:CAPS"></a><h3>IBUS_INTERFACE_FACTORY</h3>
+<pre class="programlisting">#define IBUS_INTERFACE_FACTORY  "org.freedesktop.IBus.Factory"
+</pre>
+<p>
+D-Bus interface for IBus factory.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-INTERFACE-ENGINE:CAPS"></a><h3>IBUS_INTERFACE_ENGINE</h3>
+<pre class="programlisting">#define IBUS_INTERFACE_ENGINE   "org.freedesktop.IBus.Engine"
+</pre>
+<p>
+D-Bus interface for IBus engine.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-INTERFACE-PANEL:CAPS"></a><h3>IBUS_INTERFACE_PANEL</h3>
+<pre class="programlisting">#define IBUS_INTERFACE_PANEL    "org.freedesktop.IBus.Panel"
+</pre>
+<p>
+D-Bus interface for IBus panel.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-INTERFACE-CONFIG:CAPS"></a><h3>IBUS_INTERFACE_CONFIG</h3>
+<pre class="programlisting">#define IBUS_INTERFACE_CONFIG   "org.freedesktop.IBus.Config"
+</pre>
+<p>
+D-Bus interface for IBus config.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-INTERFACE-NOTIFICATIONS:CAPS"></a><h3>IBUS_INTERFACE_NOTIFICATIONS</h3>
+<pre class="programlisting">#define IBUS_INTERFACE_NOTIFICATIONS    "org.freedesktop.IBus.Notifications"
+</pre>
+<p>
+D-Bus interface for IBus notifications.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-get-local-machine-id"></a><h3>ibus_get_local_machine_id ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_get_local_machine_id           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Obtains the machine UUID of the machine this process is running on.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated string that shows the UUID of the machine.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-set-display"></a><h3>ibus_set_display ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_set_display                    (<em class="parameter"><code>const <span class="type">gchar</span> *display</code></em>);</pre>
+<p>
+Set the display address.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>display</code></em> :</span></p></td>
+<td>Display address, as in DISPLAY environment for X.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-get-address"></a><h3>ibus_get_address ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_get_address                    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Return the D-Bus address of IBus.
+It will find the address from following source:
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><p>Environment variable IBUS_ADDRESS</p></li>
+<li class="listitem"><p>Socket file under ~/.config/ibus/bus/</p></li>
+</ol></div>
+<p>
+</p>
+<p>
+See also: <a class="link" href="ibus-ibusshare.html#ibus-write-address" title="ibus_write_address ()"><code class="function">ibus_write_address()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>D-Bus address of IBus. <code class="literal">NULL</code> for not found.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-write-address"></a><h3>ibus_write_address ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_write_address                  (<em class="parameter"><code>const <span class="type">gchar</span> *address</code></em>);</pre>
+<p>
+Write D-Bus address to socket file.
+</p>
+<p>
+See also: <a class="link" href="ibus-ibusshare.html#ibus-get-address" title="ibus_get_address ()"><code class="function">ibus_get_address()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
+<td>D-Bus address of IBus.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-get-user-name"></a><h3>ibus_get_user_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_get_user_name                  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Get the current user name.
+It is determined by:
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><p><code class="function">getlogin()</code></p></li>
+<li class="listitem"><p>Environment variable SUDO_USER</p></li>
+<li class="listitem"><p>Environment variable USERHELPER_UID</p></li>
+<li class="listitem"><p>Environment variable USERNAME</p></li>
+<li class="listitem"><p>Environment variable LOGNAME</p></li>
+<li class="listitem"><p>Environment variable USER</p></li>
+<li class="listitem"><p>Environment variable LNAME</p></li>
+</ol></div>
+<p>
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated string that stores current user name.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-get-daemon-uid"></a><h3>ibus_get_daemon_uid ()</h3>
+<pre class="programlisting"><span class="returnvalue">glong</span>               ibus_get_daemon_uid                 (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_get_daemon_uid</code> is deprecated and should not be used in newly-written code. This function has been deprecated and should
+not be used in newly written code.</p>
+</div>
+<p>
+Get UID of ibus-daemon.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>UID of ibus-daemon; or 0 if UID is not available.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-get-socket-path"></a><h3>ibus_get_socket_path ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_get_socket_path                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Get the path of socket file.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A newly allocated string that stores the path of socket file.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-get-timeout"></a><h3>ibus_get_timeout ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint</span>                ibus_get_timeout                    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Get the GDBus timeout in milliseconds. The timeout is for clients (e.g. im-ibus.so), not for ibus-daemon.
+Note that the timeout for ibus-daemon could be set by --timeout command line option of the daemon.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A GDBus timeout in milliseconds. -1 when default timeout for GDBus should be used.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-free-strv"></a><h3>ibus_free_strv ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_free_strv                      (<em class="parameter"><code><span class="type">gchar</span> **strv</code></em>);</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">ibus_free_strv</code> is deprecated and should not be used in newly-written code. This function has been deprecated and should
+not be used in newly written code.</p>
+</div>
+<p>
+Free a list of strings.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>strv</code></em> :</span></p></td>
+<td>List of strings.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-key-event-to-string"></a><h3>ibus_key_event_to_string ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_key_event_to_string            (<em class="parameter"><code><span class="type">guint</span> keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> modifiers</code></em>);</pre>
+<p>
+Return the name of a key symbol and modifiers.
+</p>
+<p>
+For example, if press ctrl, shift, and enter, then this function returns:
+Shift+Control+enter.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Key symbol.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modifiers</code></em> :</span></p></td>
+<td>Modifiers such as Ctrl or Shift.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The name of a key symbol and modifier.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-key-event-from-string"></a><h3>ibus_key_event_from_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">gboolean</span>            ibus_key_event_from_string          (<em class="parameter"><code>const <span class="type">gchar</span> *string</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *keyval</code></em>,
+                                                         <em class="parameter"><code><span class="type">guint</span> *modifiers</code></em>);</pre>
+<p>
+Parse key event string and return key symbol and modifiers.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
+<td>Key event string.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>keyval</code></em> :</span></p></td>
+<td>Variable that hold key symbol result.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modifiers</code></em> :</span></p></td>
+<td>Variable that hold modifiers result.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE for succeed; FALSE if failed.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-init"></a><h3>ibus_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_init                           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Initialize the ibus types.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-main"></a><h3>ibus_main ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_main                           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Runs an IBus main loop until <a class="link" href="ibus-ibusshare.html#ibus-quit" title="ibus_quit ()"><code class="function">ibus_quit()</code></a> is called in the loop.
+</p>
+<p>
+See also: <a class="link" href="ibus-ibusshare.html#ibus-quit" title="ibus_quit ()"><code class="function">ibus_quit()</code></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-quit"></a><h3>ibus_quit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_quit                           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Stops an IBus from running.
+</p>
+<p>
+Any calls to <a class="link" href="ibus-ibusshare.html#ibus-quit" title="ibus_quit ()"><code class="function">ibus_quit()</code></a> for the loop will return.
+See also: <a class="link" href="ibus-ibusshare.html#ibus-main" title="ibus_main ()"><code class="function">ibus_main()</code></a>.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-set-log-handler"></a><h3>ibus_set_log_handler ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_set_log_handler                (<em class="parameter"><code><span class="type">gboolean</span> verbose</code></em>);</pre>
+<p>
+Sets GLIB's log handler to ours. Our log handler adds time info
+including hour, minute, second, and microsecond, like:
+</p>
+<p>
+(ibus-daemon:7088): IBUS-DEBUG: 18:06:45.822819: ibus-daemon started
+</p>
+<p>
+If <em class="parameter"><code>verbose</code></em> is <code class="literal">TRUE</code>, all levels of messages will be logged. Otherwise,
+DEBUG and WARNING messages will be ignored.  The function is used in
+ibus-daemon, but can be useful for IBus client programs as well for
+debugging. It's totally fine for not calling this function. If you
+don't set a custom GLIB log handler, the default GLIB log handler will
+be used.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>verbose</code></em> :</span></p></td>
+<td>TRUE for verbose logging.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-unset-log-handler"></a><h3>ibus_unset_log_handler ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_unset_log_handler              (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Remove the log handler which is set by ibus_set_log_handler.
+</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-ibustypes.html b/docs/reference/ibus/html/ibus-ibustypes.html
new file mode 100644 (file)
index 0000000..f9a6c50
--- /dev/null
@@ -0,0 +1,715 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ibustypes</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch06.html" title="Internal">
+<link rel="prev" href="ibus-ibusshare.html" title="ibusshare">
+<link rel="next" href="api-index-full.html" title="Index">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ibus-ibusshare.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch06.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-ibustypes.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-ibustypes.description" class="shortcut">Description</a>
+                   | 
+                  <a href="#ibus-ibustypes.object-hierarchy" class="shortcut">Object Hierarchy</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-ibustypes"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-ibustypes.top_of_page"></a>ibustypes</span></h2>
+<p>ibustypes — Generic types for  IBus.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="ibus-ibustypes.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="ibus-ibustypes.synopsis"></a><h2>Synopsis</h2>
+<a name="IBusModifierType"></a><a name="IBusCapabilite"></a><a name="IBusOrientation"></a><pre class="synopsis">enum                <a class="link" href="ibus-ibustypes.html#IBusModifierType-enum" title="enum IBusModifierType">IBusModifierType</a>;
+enum                <a class="link" href="ibus-ibustypes.html#IBusCapabilite-enum" title="enum IBusCapabilite">IBusCapabilite</a>;
+enum                <a class="link" href="ibus-ibustypes.html#IBusPreeditFocusMode" title="enum IBusPreeditFocusMode">IBusPreeditFocusMode</a>;
+enum                <a class="link" href="ibus-ibustypes.html#IBusOrientation-enum" title="enum IBusOrientation">IBusOrientation</a>;
+enum                <a class="link" href="ibus-ibustypes.html#IBusBusNameFlag" title="enum IBusBusNameFlag">IBusBusNameFlag</a>;
+enum                <a class="link" href="ibus-ibustypes.html#IBusBusRequestNameReply" title="enum IBusBusRequestNameReply">IBusBusRequestNameReply</a>;
+enum                <a class="link" href="ibus-ibustypes.html#IBusBusStartServiceByNameReply" title="enum IBusBusStartServiceByNameReply">IBusBusStartServiceByNameReply</a>;
+enum                <a class="link" href="ibus-ibustypes.html#IBusError" title="enum IBusError">IBusError</a>;
+struct              <a class="link" href="ibus-ibustypes.html#IBusRectangle" title="struct IBusRectangle">IBusRectangle</a>;
+<span class="returnvalue">void</span>                (<a class="link" href="ibus-ibustypes.html#IBusFreeFunc" title="IBusFreeFunc ()">*IBusFreeFunc</a>)                     (<em class="parameter"><code><span class="type">gpointer</span> object</code></em>);
+enum                <a class="link" href="ibus-ibustypes.html#IBusInputPurpose" title="enum IBusInputPurpose">IBusInputPurpose</a>;
+enum                <a class="link" href="ibus-ibustypes.html#IBusInputHints" title="enum IBusInputHints">IBusInputHints</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibustypes.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+  GFlags
+   +----IBusModifierType
+</pre>
+<pre class="synopsis">
+  GFlags
+   +----IBusCapabilite
+</pre>
+<pre class="synopsis">
+  GEnum
+   +----IBusOrientation
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibustypes.description"></a><h2>Description</h2>
+<p>
+This section consists generic types for IBus, including shift/control key modifiers,
+and a rectangle structure.
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-ibustypes.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBusModifierType-enum"></a><h3>enum IBusModifierType</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_SHIFT_MASK    = 1 &lt;&lt; 0,
+    IBUS_LOCK_MASK     = 1 &lt;&lt; 1,
+    IBUS_CONTROL_MASK  = 1 &lt;&lt; 2,
+    IBUS_MOD1_MASK     = 1 &lt;&lt; 3,
+    IBUS_MOD2_MASK     = 1 &lt;&lt; 4,
+    IBUS_MOD3_MASK     = 1 &lt;&lt; 5,
+    IBUS_MOD4_MASK     = 1 &lt;&lt; 6,
+    IBUS_MOD5_MASK     = 1 &lt;&lt; 7,
+    IBUS_BUTTON1_MASK  = 1 &lt;&lt; 8,
+    IBUS_BUTTON2_MASK  = 1 &lt;&lt; 9,
+    IBUS_BUTTON3_MASK  = 1 &lt;&lt; 10,
+    IBUS_BUTTON4_MASK  = 1 &lt;&lt; 11,
+    IBUS_BUTTON5_MASK  = 1 &lt;&lt; 12,
+
+    /* The next few modifiers are used by XKB, so we skip to the end.
+     * Bits 15 - 23 are currently unused. Bit 29 is used internally.
+     */
+
+    /* ibus mask */
+    IBUS_HANDLED_MASK  = 1 &lt;&lt; 24,
+    IBUS_FORWARD_MASK  = 1 &lt;&lt; 25,
+    IBUS_IGNORED_MASK  = IBUS_FORWARD_MASK,
+
+    IBUS_SUPER_MASK    = 1 &lt;&lt; 26,
+    IBUS_HYPER_MASK    = 1 &lt;&lt; 27,
+    IBUS_META_MASK     = 1 &lt;&lt; 28,
+
+    IBUS_RELEASE_MASK  = 1 &lt;&lt; 30,
+
+    IBUS_MODIFIER_MASK = 0x5f001fff
+} IBusModifierType;
+</pre>
+<p>
+Handles key modifier such as control, shift and alt and release event.
+Note that nits 15 - 25 are currently unused, while bit 29 is used internally.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-SHIFT-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_SHIFT_MASK</code></span></p></td>
+<td>Shift  is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-LOCK-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_LOCK_MASK</code></span></p></td>
+<td>Cap Lock is locked.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-CONTROL-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_CONTROL_MASK</code></span></p></td>
+<td>Control key is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-MOD1-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_MOD1_MASK</code></span></p></td>
+<td>Modifier 1 (Usually Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)) activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-MOD2-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_MOD2_MASK</code></span></p></td>
+<td>Modifier 2 (Usually Num_Lock (0x4d)) activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-MOD3-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_MOD3_MASK</code></span></p></td>
+<td>Modifier 3 activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-MOD4-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_MOD4_MASK</code></span></p></td>
+<td>Modifier 4 (Usually Super_L (0xce),  Hyper_L (0xcf)) activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-MOD5-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_MOD5_MASK</code></span></p></td>
+<td>Modifier 5 (ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)) activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUTTON1-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_BUTTON1_MASK</code></span></p></td>
+<td>Mouse button 1 (left) is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUTTON2-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_BUTTON2_MASK</code></span></p></td>
+<td>Mouse button 2 (middle) is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUTTON3-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_BUTTON3_MASK</code></span></p></td>
+<td>Mouse button 3 (right) is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUTTON4-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_BUTTON4_MASK</code></span></p></td>
+<td>Mouse button 4 (scroll up) is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUTTON5-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_BUTTON5_MASK</code></span></p></td>
+<td>Mouse button 5 (scroll down) is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-HANDLED-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_HANDLED_MASK</code></span></p></td>
+<td>Handled mask indicates the event has been handled by ibus.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-FORWARD-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_FORWARD_MASK</code></span></p></td>
+<td>Forward mask indicates the event has been forward from ibus.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-IGNORED-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_IGNORED_MASK</code></span></p></td>
+<td>It is an alias of IBUS_FORWARD_MASK.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-SUPER-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_SUPER_MASK</code></span></p></td>
+<td>Super (Usually Win) key is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-HYPER-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_HYPER_MASK</code></span></p></td>
+<td>Hyper key is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-META-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_META_MASK</code></span></p></td>
+<td>Meta key is activated.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-RELEASE-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_RELEASE_MASK</code></span></p></td>
+<td>Key is released.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-MODIFIER-MASK:CAPS"></a><span class="term"><code class="literal">IBUS_MODIFIER_MASK</code></span></p></td>
+<td>Modifier mask for the all the masks above.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusCapabilite-enum"></a><h3>enum IBusCapabilite</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_CAP_PREEDIT_TEXT       = 1 &lt;&lt; 0,
+    IBUS_CAP_AUXILIARY_TEXT     = 1 &lt;&lt; 1,
+    IBUS_CAP_LOOKUP_TABLE       = 1 &lt;&lt; 2,
+    IBUS_CAP_FOCUS              = 1 &lt;&lt; 3,
+    IBUS_CAP_PROPERTY           = 1 &lt;&lt; 4,
+    IBUS_CAP_SURROUNDING_TEXT   = 1 &lt;&lt; 5,
+} IBusCapabilite;
+</pre>
+<p>
+Capability flags of UI.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-CAP-PREEDIT-TEXT:CAPS"></a><span class="term"><code class="literal">IBUS_CAP_PREEDIT_TEXT</code></span></p></td>
+<td>UI is capable to show pre-edit text.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-CAP-AUXILIARY-TEXT:CAPS"></a><span class="term"><code class="literal">IBUS_CAP_AUXILIARY_TEXT</code></span></p></td>
+<td>UI is capable to show auxiliary text.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-CAP-LOOKUP-TABLE:CAPS"></a><span class="term"><code class="literal">IBUS_CAP_LOOKUP_TABLE</code></span></p></td>
+<td>UI is capable to show the lookup table.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-CAP-FOCUS:CAPS"></a><span class="term"><code class="literal">IBUS_CAP_FOCUS</code></span></p></td>
+<td>UI is capable to get focus.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-CAP-PROPERTY:CAPS"></a><span class="term"><code class="literal">IBUS_CAP_PROPERTY</code></span></p></td>
+<td>UI is capable to have property.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-CAP-SURROUNDING-TEXT:CAPS"></a><span class="term"><code class="literal">IBUS_CAP_SURROUNDING_TEXT</code></span></p></td>
+<td>Client can provide surround text,
+ or IME can handle surround text.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusPreeditFocusMode"></a><h3>enum IBusPreeditFocusMode</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_ENGINE_PREEDIT_CLEAR   = 0,
+    IBUS_ENGINE_PREEDIT_COMMIT  = 1,
+} IBusPreeditFocusMode;
+</pre>
+<p>
+Pre-edit commit mode when the focus is lost.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-ENGINE-PREEDIT-CLEAR:CAPS"></a><span class="term"><code class="literal">IBUS_ENGINE_PREEDIT_CLEAR</code></span></p></td>
+<td>pre-edit text is cleared.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ENGINE-PREEDIT-COMMIT:CAPS"></a><span class="term"><code class="literal">IBUS_ENGINE_PREEDIT_COMMIT</code></span></p></td>
+<td>pre-edit text is committed.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusOrientation-enum"></a><h3>enum IBusOrientation</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_ORIENTATION_HORIZONTAL = 0,
+    IBUS_ORIENTATION_VERTICAL   = 1,
+    IBUS_ORIENTATION_SYSTEM     = 2,
+} IBusOrientation;
+</pre>
+<p>
+Orientation of UI.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-ORIENTATION-HORIZONTAL:CAPS"></a><span class="term"><code class="literal">IBUS_ORIENTATION_HORIZONTAL</code></span></p></td>
+<td>Horizontal orientation.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ORIENTATION-VERTICAL:CAPS"></a><span class="term"><code class="literal">IBUS_ORIENTATION_VERTICAL</code></span></p></td>
+<td>Vertival orientation.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ORIENTATION-SYSTEM:CAPS"></a><span class="term"><code class="literal">IBUS_ORIENTATION_SYSTEM</code></span></p></td>
+<td>Use ibus global orientation setup.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusBusNameFlag"></a><h3>enum IBusBusNameFlag</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT   = (1 &lt;&lt; 0),
+    IBUS_BUS_NAME_FLAG_REPLACE_EXISTING    = (1 &lt;&lt; 1),
+    IBUS_BUS_NAME_FLAG_DO_NOT_QUEUE        = (1 &lt;&lt; 2),
+} IBusBusNameFlag;
+</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-BUS-NAME-FLAG-ALLOW-REPLACEMENT:CAPS"></a><span class="term"><code class="literal">IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT</code></span></p></td>
+<td>   same as DBUS_NAME_FLAG_ALLOW_REPLACEMENT        
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUS-NAME-FLAG-REPLACE-EXISTING:CAPS"></a><span class="term"><code class="literal">IBUS_BUS_NAME_FLAG_REPLACE_EXISTING</code></span></p></td>
+<td>   same as DBUS_NAME_FLAG_REPLACE_EXISTING
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUS-NAME-FLAG-DO-NOT-QUEUE:CAPS"></a><span class="term"><code class="literal">IBUS_BUS_NAME_FLAG_DO_NOT_QUEUE</code></span></p></td>
+<td>   same as DBUS_NAME_FLAG_DO_NOT_QUEUE 
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusBusRequestNameReply"></a><h3>enum IBusBusRequestNameReply</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_BUS_REQUEST_NAME_REPLY_PRIMARY_OWNER   = 1,
+    IBUS_BUS_REQUEST_NAME_REPLY_IN_QUEUE        = 2,
+    IBUS_BUS_REQUEST_NAME_REPLY_EXISTS          = 3,
+    IBUS_BUS_REQUEST_NAME_REPLY_ALREADY_OWNER   = 4,
+} IBusBusRequestNameReply;
+</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-BUS-REQUEST-NAME-REPLY-PRIMARY-OWNER:CAPS"></a><span class="term"><code class="literal">IBUS_BUS_REQUEST_NAME_REPLY_PRIMARY_OWNER</code></span></p></td>
+<td>   same as DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUS-REQUEST-NAME-REPLY-IN-QUEUE:CAPS"></a><span class="term"><code class="literal">IBUS_BUS_REQUEST_NAME_REPLY_IN_QUEUE</code></span></p></td>
+<td>   same as DBUS_REQUEST_NAME_REPLY_IN_QUEUE
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUS-REQUEST-NAME-REPLY-EXISTS:CAPS"></a><span class="term"><code class="literal">IBUS_BUS_REQUEST_NAME_REPLY_EXISTS</code></span></p></td>
+<td>   same as DBUS_REQUEST_NAME_REPLY_EXISTS
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUS-REQUEST-NAME-REPLY-ALREADY-OWNER:CAPS"></a><span class="term"><code class="literal">IBUS_BUS_REQUEST_NAME_REPLY_ALREADY_OWNER</code></span></p></td>
+<td>   same as DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusBusStartServiceByNameReply"></a><h3>enum IBusBusStartServiceByNameReply</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_BUS_START_REPLY_SUCCESS = 1,
+    IBUS_BUS_START_REPLY_ALREADY_RUNNING = 2,
+} IBusBusStartServiceByNameReply;
+</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-BUS-START-REPLY-SUCCESS:CAPS"></a><span class="term"><code class="literal">IBUS_BUS_START_REPLY_SUCCESS</code></span></p></td>
+<td>   same as DBUS_START_REPLY_SUCCESS
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-BUS-START-REPLY-ALREADY-RUNNING:CAPS"></a><span class="term"><code class="literal">IBUS_BUS_START_REPLY_ALREADY_RUNNING</code></span></p></td>
+<td>   same as DBUS_START_REPLY_ALREADY_RUNNING
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusError"></a><h3>enum IBusError</h3>
+<pre class="programlisting">typedef enum {
+    IBUS_ERROR_NO_ENGINE,
+    IBUS_ERROR_NO_CONFIG,
+    IBUS_ERROR_FAILED
+} IBusError;
+</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-ERROR-NO-ENGINE:CAPS"></a><span class="term"><code class="literal">IBUS_ERROR_NO_ENGINE</code></span></p></td>
+<td>There is no engine associated with input context.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ERROR-NO-CONFIG:CAPS"></a><span class="term"><code class="literal">IBUS_ERROR_NO_CONFIG</code></span></p></td>
+<td>There is no config module running.
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-ERROR-FAILED:CAPS"></a><span class="term"><code class="literal">IBUS_ERROR_FAILED</code></span></p></td>
+<td>General failure.
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusRectangle"></a><h3>struct IBusRectangle</h3>
+<pre class="programlisting">struct IBusRectangle {
+    gint x;
+    gint y;
+    gint width;
+    gint height;
+};
+</pre>
+<p>
+Rectangle definition.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">gint</span> <em class="structfield"><code><a name="IBusRectangle.x"></a>x</code></em>;</span></p></td>
+<td>x coordinate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gint</span> <em class="structfield"><code><a name="IBusRectangle.y"></a>y</code></em>;</span></p></td>
+<td>y coordinate.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gint</span> <em class="structfield"><code><a name="IBusRectangle.width"></a>width</code></em>;</span></p></td>
+<td>width of the rectangle.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gint</span> <em class="structfield"><code><a name="IBusRectangle.height"></a>height</code></em>;</span></p></td>
+<td>height of the renctangl.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusFreeFunc"></a><h3>IBusFreeFunc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                (*IBusFreeFunc)                     (<em class="parameter"><code><span class="type">gpointer</span> object</code></em>);</pre>
+<p>
+Free function prototype.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
+<td>object to be freed.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputPurpose"></a><h3>enum IBusInputPurpose</h3>
+<pre class="programlisting">typedef enum {
+  IBUS_INPUT_PURPOSE_FREE_FORM,
+  IBUS_INPUT_PURPOSE_ALPHA,
+  IBUS_INPUT_PURPOSE_DIGITS,
+  IBUS_INPUT_PURPOSE_NUMBER,
+  IBUS_INPUT_PURPOSE_PHONE,
+  IBUS_INPUT_PURPOSE_URL,
+  IBUS_INPUT_PURPOSE_EMAIL,
+  IBUS_INPUT_PURPOSE_NAME,
+  IBUS_INPUT_PURPOSE_PASSWORD,
+  IBUS_INPUT_PURPOSE_PIN
+} IBusInputPurpose;
+</pre>
+<p>
+Describes primary purpose of the input context.  This information
+is particularly useful to implement intelligent behavior in
+engines, such as automatic input-mode switch and text prediction.
+</p>
+<p>
+This enumeration may be extended in the future; engines should
+interpret unknown values as 'free form'.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-FREE-FORM:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_FREE_FORM</code></span></p></td>
+<td>Allow any character
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-ALPHA:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_ALPHA</code></span></p></td>
+<td>Allow only alphabetic characters
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-DIGITS:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_DIGITS</code></span></p></td>
+<td>Allow only digits
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-NUMBER:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_NUMBER</code></span></p></td>
+<td>Edited field expects numbers
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-PHONE:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_PHONE</code></span></p></td>
+<td>Edited field expects phone number
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-URL:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_URL</code></span></p></td>
+<td>Edited field expects URL
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-EMAIL:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_EMAIL</code></span></p></td>
+<td>Edited field expects email address
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-NAME:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_NAME</code></span></p></td>
+<td>Edited field expects the name of a person
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-PASSWORD:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_PASSWORD</code></span></p></td>
+<td>Like <em class="parameter"><code>IBUS_INPUT_PURPOSE_FREE_FORM</code></em>,
+but characters are hidden
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-PURPOSE-PIN:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_PURPOSE_PIN</code></span></p></td>
+<td>Like <em class="parameter"><code>IBUS_INPUT_PURPOSE_DIGITS</code></em>, but
+characters are hidden
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBusInputHints"></a><h3>enum IBusInputHints</h3>
+<pre class="programlisting">typedef enum {
+  IBUS_INPUT_HINT_NONE                = 0,
+  IBUS_INPUT_HINT_SPELLCHECK          = 1 &lt;&lt; 0,
+  IBUS_INPUT_HINT_NO_SPELLCHECK       = 1 &lt;&lt; 1,
+  IBUS_INPUT_HINT_WORD_COMPLETION     = 1 &lt;&lt; 2,
+  IBUS_INPUT_HINT_LOWERCASE           = 1 &lt;&lt; 3,
+  IBUS_INPUT_HINT_UPPERCASE_CHARS     = 1 &lt;&lt; 4,
+  IBUS_INPUT_HINT_UPPERCASE_WORDS     = 1 &lt;&lt; 5,
+  IBUS_INPUT_HINT_UPPERCASE_SENTENCES = 1 &lt;&lt; 6,
+  IBUS_INPUT_HINT_INHIBIT_OSK         = 1 &lt;&lt; 7
+} IBusInputHints;
+</pre>
+<p>
+Describes hints that might be taken into account by engines.  Note
+that engines may already tailor their behaviour according to the
+<a class="link" href="ibus-ibustypes.html#IBusInputPurpose" title="enum IBusInputPurpose"><span class="type">IBusInputPurpose</span></a> of the entry.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><a name="IBUS-INPUT-HINT-NONE:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_HINT_NONE</code></span></p></td>
+<td>No special behaviour suggested
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-HINT-SPELLCHECK:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_HINT_SPELLCHECK</code></span></p></td>
+<td>Suggest checking for typos
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-HINT-NO-SPELLCHECK:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_HINT_NO_SPELLCHECK</code></span></p></td>
+<td>Suggest not checking for typos
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-HINT-WORD-COMPLETION:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_HINT_WORD_COMPLETION</code></span></p></td>
+<td>Suggest word completion
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-HINT-LOWERCASE:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_HINT_LOWERCASE</code></span></p></td>
+<td>Suggest to convert all text to lowercase
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-HINT-UPPERCASE-CHARS:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_HINT_UPPERCASE_CHARS</code></span></p></td>
+<td>Suggest to capitalize all text
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-HINT-UPPERCASE-WORDS:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_HINT_UPPERCASE_WORDS</code></span></p></td>
+<td>Suggest to capitalize the first
+    character of each word
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-HINT-UPPERCASE-SENTENCES:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_HINT_UPPERCASE_SENTENCES</code></span></p></td>
+<td>Suggest to capitalize the
+    first word of each sentence
+</td>
+</tr>
+<tr>
+<td><p><a name="IBUS-INPUT-HINT-INHIBIT-OSK:CAPS"></a><span class="term"><code class="literal">IBUS_INPUT_HINT_INHIBIT_OSK</code></span></p></td>
+<td>Suggest to not show an onscreen keyboard
+    (e.g for a calculator that already has all the keys).
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-ibusutil.html b/docs/reference/ibus/html/ibus-ibusutil.html
new file mode 100644 (file)
index 0000000..db7bd12
--- /dev/null
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ibusutil</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch03.html" title="Input method engine">
+<link rel="prev" href="ibus-IBusKeysyms.html" title="IBusKeysyms">
+<link rel="next" href="ch04.html" title="Configuration">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ibus-IBusKeysyms.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ch04.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-ibusutil.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-ibusutil.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-ibusutil"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-ibusutil.top_of_page"></a>ibusutil</span></h2>
+<p>ibusutil — Utilities with C-Language.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="ibus-ibusutil.stability-level"></a><h2>Stability Level</h2>
+Unstable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="ibus-ibusutil.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">const <span class="returnvalue">gchar</span> *       <a class="link" href="ibus-ibusutil.html#ibus-get-language-name" title="ibus_get_language_name ()">ibus_get_language_name</a>              (<em class="parameter"><code>const <span class="type">gchar</span> *_locale</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusutil.description"></a><h2>Description</h2>
+<p>
+Utilized functions are available for miscellaneous purposes.
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusutil.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="ibus-get-language-name"></a><h3>ibus_get_language_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">gchar</span> *       ibus_get_language_name              (<em class="parameter"><code>const <span class="type">gchar</span> *_locale</code></em>);</pre>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>_locale</code></em> :</span></p></td>
+<td>A const locale name.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>language name</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-ibusversion.html b/docs/reference/ibus/html/ibus-ibusversion.html
new file mode 100644 (file)
index 0000000..63ae636
--- /dev/null
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ibusversion</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch04.html" title="Configuration">
+<link rel="prev" href="IBusRegistry.html" title="IBusRegistry">
+<link rel="next" href="ibus-ibusxml.html" title="ibusxml">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="IBusRegistry.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ibus-ibusxml.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-ibusversion.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-ibusversion.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-ibusversion"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-ibusversion.top_of_page"></a>ibusversion</span></h2>
+<p>ibusversion — Current version of IBus.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="ibus-ibusversion.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="ibus-ibusversion.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">#define             <a class="link" href="ibus-ibusversion.html#IBUS-MAJOR-VERSION:CAPS" title="IBUS_MAJOR_VERSION">IBUS_MAJOR_VERSION</a>
+#define             <a class="link" href="ibus-ibusversion.html#IBUS-MINOR-VERSION:CAPS" title="IBUS_MINOR_VERSION">IBUS_MINOR_VERSION</a>
+#define             <a class="link" href="ibus-ibusversion.html#IBUS-MICRO-VERSION:CAPS" title="IBUS_MICRO_VERSION">IBUS_MICRO_VERSION</a>
+#define             <a class="link" href="ibus-ibusversion.html#IBUS-CHECK-VERSION:CAPS" title="IBUS_CHECK_VERSION()">IBUS_CHECK_VERSION</a>                  (major,
+                                                         minor,
+                                                         micro)
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusversion.description"></a><h2>Description</h2>
+<p>
+IBusVersion shows the current IBus version.
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusversion.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="IBUS-MAJOR-VERSION:CAPS"></a><h3>IBUS_MAJOR_VERSION</h3>
+<pre class="programlisting">#define IBUS_MAJOR_VERSION                         (1)
+</pre>
+<p>
+IBus major version.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-MINOR-VERSION:CAPS"></a><h3>IBUS_MINOR_VERSION</h3>
+<pre class="programlisting">#define IBUS_MINOR_VERSION                         (5)
+</pre>
+<p>
+IBus minor version.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-MICRO-VERSION:CAPS"></a><h3>IBUS_MICRO_VERSION</h3>
+<pre class="programlisting">#define IBUS_MICRO_VERSION                         (4)
+</pre>
+<p>
+IBus micro version.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="IBUS-CHECK-VERSION:CAPS"></a><h3>IBUS_CHECK_VERSION()</h3>
+<pre class="programlisting">#define             IBUS_CHECK_VERSION(major,minor,micro)</pre>
+<p>
+Check whether the current IBus version is equal to or greater than
+given major.minor.micro.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
+<td>Major version of ibus.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>minor</code></em> :</span></p></td>
+<td>Minor version of ibus.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>micro</code></em> :</span></p></td>
+<td>Micro version of ibus.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus-ibusxml.html b/docs/reference/ibus/html/ibus-ibusxml.html
new file mode 100644 (file)
index 0000000..d13ad92
--- /dev/null
@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ibusxml</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="up" href="ch04.html" title="Configuration">
+<link rel="prev" href="ibus-ibusversion.html" title="ibusversion">
+<link rel="next" href="ch05.html" title="Communication">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ibus-ibusversion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch04.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">IBus Reference Manual</th>
+<td><a accesskey="n" href="ch05.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#ibus-ibusxml.synopsis" class="shortcut">Top</a>
+                   | 
+                  <a href="#ibus-ibusxml.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="ibus-ibusxml"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="ibus-ibusxml.top_of_page"></a>ibusxml</span></h2>
+<p>ibusxml — XML handling functions for IBus.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="ibus-ibusxml.stability-level"></a><h2>Stability Level</h2>
+Stable, unless otherwise indicated
+</div>
+<div class="refsynopsisdiv">
+<a name="ibus-ibusxml.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">                    <a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode">XMLNode</a>;
+<a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="returnvalue">XMLNode</span></a> *           <a class="link" href="ibus-ibusxml.html#ibus-xml-parse-file" title="ibus_xml_parse_file ()">ibus_xml_parse_file</a>                 (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);
+<a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="returnvalue">XMLNode</span></a> *           <a class="link" href="ibus-ibusxml.html#ibus-xml-parse-buffer" title="ibus_xml_parse_buffer ()">ibus_xml_parse_buffer</a>               (<em class="parameter"><code>const <span class="type">gchar</span> *buffer</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusxml.html#ibus-xml-free" title="ibus_xml_free ()">ibus_xml_free</a>                       (<em class="parameter"><code><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="ibus-ibusxml.html#ibus-xml-output" title="ibus_xml_output ()">ibus_xml_output</a>                     (<em class="parameter"><code>const <a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusxml.description"></a><h2>Description</h2>
+<p>
+IBusXML lists data structure and handling function for XML in IBus.
+</p>
+</div>
+<div class="refsect1">
+<a name="ibus-ibusxml.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="XMLNode"></a><h3>XMLNode</h3>
+<pre class="programlisting">typedef struct {
+    gchar  *name;
+    gchar  *text;
+    gchar  **attributes;
+    GList *sub_nodes;
+} XMLNode;
+</pre>
+<p>
+A data type representing an XML nod.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">gchar</span> *<em class="structfield"><code><a name="XMLNode.name"></a>name</code></em>;</span></p></td>
+<td>Name of XML tag.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gchar</span> *<em class="structfield"><code><a name="XMLNode.text"></a>text</code></em>;</span></p></td>
+<td>Text enclosed by XML start tag and end tag. i.e. <code class="sgmltag-element">text</code>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">gchar</span> **<em class="structfield"><code><a name="XMLNode.attributes"></a>attributes</code></em>;</span></p></td>
+<td>Attributes of the XML node.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">GList</span> *<em class="structfield"><code><a name="XMLNode.sub-nodes"></a>sub_nodes</code></em>;</span></p></td>
+<td>Children node of this XML node.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-xml-parse-file"></a><h3>ibus_xml_parse_file ()</h3>
+<pre class="programlisting"><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="returnvalue">XMLNode</span></a> *           ibus_xml_parse_file                 (<em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
+<p>
+Parse an XML file and return a corresponding XML tree.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>File name to be parsed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Root node of parsed XML tree.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-xml-parse-buffer"></a><h3>ibus_xml_parse_buffer ()</h3>
+<pre class="programlisting"><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="returnvalue">XMLNode</span></a> *           ibus_xml_parse_buffer               (<em class="parameter"><code>const <span class="type">gchar</span> *buffer</code></em>);</pre>
+<p>
+Parse a string buffer which contains an XML-formatted string,
+and return a corresponding XML tree.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>Buffer to be parsed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Root node of parsed XML tree.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-xml-free"></a><h3>ibus_xml_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_xml_free                       (<em class="parameter"><code><a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>);</pre>
+<p>
+Free an XML tree.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>Root node of an XML tree.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ibus-xml-output"></a><h3>ibus_xml_output ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>                ibus_xml_output                     (<em class="parameter"><code>const <a class="link" href="ibus-ibusxml.html#XMLNode" title="XMLNode"><span class="type">XMLNode</span></a> *node</code></em>,
+                                                         <em class="parameter"><code><span class="type">GString</span> *output</code></em>);</pre>
+<p>
+Output an XML tree to a GString.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>node</code></em> :</span></p></td>
+<td>Root node of an XML tree.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
+<td>GString which stores the output.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/ibus.devhelp2 b/docs/reference/ibus/html/ibus.devhelp2
new file mode 100644 (file)
index 0000000..297058f
--- /dev/null
@@ -0,0 +1,4753 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+<book xmlns="http://www.devhelp.net/book" title="IBus Reference Manual" link="index.html" author="" name="ibus" version="2" language="c">
+  <chapters>
+    <sub name="Overview" link="ch01.html"/>
+    <sub name="Panel (User Interfaces)" link="ch02.html">
+      <sub name="IBusAttribute" link="IBusAttribute.html"/>
+      <sub name="IBusAttrList" link="IBusAttrList.html"/>
+      <sub name="IBusHotkeyProfile" link="IBusHotkeyProfile.html"/>
+      <sub name="IBusLookupTable" link="IBusLookupTable.html"/>
+      <sub name="IBusPanelService" link="IBusPanelService.html"/>
+      <sub name="IBusProperty" link="IBusProperty.html"/>
+      <sub name="IBusPropList" link="IBusPropList.html"/>
+      <sub name="IBusText" link="IBusText.html"/>
+    </sub>
+    <sub name="Input method engine" link="ch03.html">
+      <sub name="IBusComponent" link="IBusComponent.html"/>
+      <sub name="IBusEngine" link="IBusEngine.html"/>
+      <sub name="IBusEngineDesc" link="IBusEngineDesc.html"/>
+      <sub name="IBusEngineSimple" link="ibus-IBusEngineSimple.html"/>
+      <sub name="IBusFactory" link="IBusFactory.html"/>
+      <sub name="IBusInputContext" link="IBusInputContext.html"/>
+      <sub name="ibuskeys" link="ibus-ibuskeys.html"/>
+      <sub name="IBusKeymap" link="IBusKeymap.html"/>
+      <sub name="ibuskeysyms-compat" link="ibus-ibuskeysyms-compat.html"/>
+      <sub name="IBusKeysyms" link="ibus-IBusKeysyms.html"/>
+      <sub name="ibusutil" link="ibus-ibusutil.html"/>
+    </sub>
+    <sub name="Configuration" link="ch04.html">
+      <sub name="IBusConfig" link="IBusConfig.html"/>
+      <sub name="IBusConfigService" link="IBusConfigService.html"/>
+      <sub name="IBusObservedPath" link="IBusObservedPath.html"/>
+      <sub name="IBusRegistry" link="IBusRegistry.html"/>
+      <sub name="ibusversion" link="ibus-ibusversion.html"/>
+      <sub name="ibusxml" link="ibus-ibusxml.html"/>
+    </sub>
+    <sub name="Communication" link="ch05.html">
+      <sub name="IBusBus" link="IBusBus.html"/>
+      <sub name="IBusProxy" link="IBusProxy.html"/>
+      <sub name="IBusSerializable" link="IBusSerializable.html"/>
+      <sub name="IBusService" link="IBusService.html"/>
+    </sub>
+    <sub name="Internal" link="ch06.html">
+      <sub name="ibusdebug" link="ibus-ibusdebug.html"/>
+      <sub name="ibuserror" link="ibus-ibuserror.html"/>
+      <sub name="IBusObject" link="IBusObject.html"/>
+      <sub name="ibusshare" link="ibus-ibusshare.html"/>
+      <sub name="ibustypes" link="ibus-ibustypes.html"/>
+    </sub>
+    <sub name="Index" link="api-index-full.html"/>
+    <sub name="Index of deprecated symbols" link="api-index-deprecated.html"/>
+    <sub name="Annotation Glossary" link="annotation-glossary.html"/>
+  </chapters>
+  <functions>
+    <keyword type="enum" name="enum IBusAttrType" link="IBusAttribute.html#IBusAttrType-enum"/>
+    <keyword type="enum" name="enum IBusAttrUnderline" link="IBusAttribute.html#IBusAttrUnderline-enum"/>
+    <keyword type="struct" name="struct IBusAttribute" link="IBusAttribute.html#IBusAttribute-struct"/>
+    <keyword type="struct" name="struct IBusAttributeClass" link="IBusAttribute.html#IBusAttributeClass"/>
+    <keyword type="function" name="ibus_attribute_new ()" link="IBusAttribute.html#ibus-attribute-new"/>
+    <keyword type="function" name="ibus_attribute_get_attr_type ()" link="IBusAttribute.html#ibus-attribute-get-attr-type"/>
+    <keyword type="function" name="ibus_attribute_get_value ()" link="IBusAttribute.html#ibus-attribute-get-value"/>
+    <keyword type="function" name="ibus_attribute_get_start_index ()" link="IBusAttribute.html#ibus-attribute-get-start-index"/>
+    <keyword type="function" name="ibus_attribute_get_end_index ()" link="IBusAttribute.html#ibus-attribute-get-end-index"/>
+    <keyword type="function" name="ibus_attr_underline_new ()" link="IBusAttribute.html#ibus-attr-underline-new"/>
+    <keyword type="function" name="ibus_attr_foreground_new ()" link="IBusAttribute.html#ibus-attr-foreground-new"/>
+    <keyword type="function" name="ibus_attr_background_new ()" link="IBusAttribute.html#ibus-attr-background-new"/>
+    <keyword type="struct" name="struct IBusAttrList" link="IBusAttrList.html#IBusAttrList-struct"/>
+    <keyword type="struct" name="struct IBusAttrListClass" link="IBusAttrList.html#IBusAttrListClass"/>
+    <keyword type="function" name="ibus_attr_list_new ()" link="IBusAttrList.html#ibus-attr-list-new"/>
+    <keyword type="function" name="ibus_attr_list_append ()" link="IBusAttrList.html#ibus-attr-list-append"/>
+    <keyword type="function" name="ibus_attr_list_get ()" link="IBusAttrList.html#ibus-attr-list-get"/>
+    <keyword type="struct" name="struct IBusHotkeyProfile" link="IBusHotkeyProfile.html#IBusHotkeyProfile-struct"/>
+    <keyword type="struct" name="struct IBusHotkeyProfileClass" link="IBusHotkeyProfile.html#IBusHotkeyProfileClass"/>
+    <keyword type="function" name="ibus_hotkey_profile_add_hotkey ()" link="IBusHotkeyProfile.html#ibus-hotkey-profile-add-hotkey"/>
+    <keyword type="function" name="ibus_hotkey_profile_add_hotkey_from_string ()" link="IBusHotkeyProfile.html#ibus-hotkey-profile-add-hotkey-from-string"/>
+    <keyword type="function" name="ibus_hotkey_profile_remove_hotkey ()" link="IBusHotkeyProfile.html#ibus-hotkey-profile-remove-hotkey"/>
+    <keyword type="function" name="ibus_hotkey_profile_remove_hotkey_by_event ()" link="IBusHotkeyProfile.html#ibus-hotkey-profile-remove-hotkey-by-event"/>
+    <keyword type="function" name="ibus_hotkey_profile_filter_key_event ()" link="IBusHotkeyProfile.html#ibus-hotkey-profile-filter-key-event"/>
+    <keyword type="function" name="ibus_hotkey_profile_lookup_hotkey ()" link="IBusHotkeyProfile.html#ibus-hotkey-profile-lookup-hotkey"/>
+    <keyword type="signal" name="The &quot;trigger&quot; signal" link="IBusHotkeyProfile.html#IBusHotkeyProfile-trigger"/>
+    <keyword type="struct" name="struct IBusLookupTable" link="IBusLookupTable.html#IBusLookupTable-struct"/>
+    <keyword type="struct" name="struct IBusLookupTableClass" link="IBusLookupTable.html#IBusLookupTableClass"/>
+    <keyword type="function" name="ibus_lookup_table_new ()" link="IBusLookupTable.html#ibus-lookup-table-new"/>
+    <keyword type="function" name="ibus_lookup_table_append_candidate ()" link="IBusLookupTable.html#ibus-lookup-table-append-candidate"/>
+    <keyword type="function" name="ibus_lookup_table_get_number_of_candidates ()" link="IBusLookupTable.html#ibus-lookup-table-get-number-of-candidates"/>
+    <keyword type="function" name="ibus_lookup_table_get_candidate ()" link="IBusLookupTable.html#ibus-lookup-table-get-candidate"/>
+    <keyword type="function" name="ibus_lookup_table_append_label ()" link="IBusLookupTable.html#ibus-lookup-table-append-label"/>
+    <keyword type="function" name="ibus_lookup_table_set_label ()" link="IBusLookupTable.html#ibus-lookup-table-set-label"/>
+    <keyword type="function" name="ibus_lookup_table_get_label ()" link="IBusLookupTable.html#ibus-lookup-table-get-label"/>
+    <keyword type="function" name="ibus_lookup_table_set_cursor_pos ()" link="IBusLookupTable.html#ibus-lookup-table-set-cursor-pos"/>
+    <keyword type="function" name="ibus_lookup_table_get_cursor_pos ()" link="IBusLookupTable.html#ibus-lookup-table-get-cursor-pos"/>
+    <keyword type="function" name="ibus_lookup_table_set_cursor_visible ()" link="IBusLookupTable.html#ibus-lookup-table-set-cursor-visible"/>
+    <keyword type="function" name="ibus_lookup_table_is_cursor_visible ()" link="IBusLookupTable.html#ibus-lookup-table-is-cursor-visible"/>
+    <keyword type="function" name="ibus_lookup_table_get_cursor_in_page ()" link="IBusLookupTable.html#ibus-lookup-table-get-cursor-in-page"/>
+    <keyword type="function" name="ibus_lookup_table_set_page_size ()" link="IBusLookupTable.html#ibus-lookup-table-set-page-size"/>
+    <keyword type="function" name="ibus_lookup_table_get_page_size ()" link="IBusLookupTable.html#ibus-lookup-table-get-page-size"/>
+    <keyword type="function" name="ibus_lookup_table_set_round ()" link="IBusLookupTable.html#ibus-lookup-table-set-round"/>
+    <keyword type="function" name="ibus_lookup_table_is_round ()" link="IBusLookupTable.html#ibus-lookup-table-is-round"/>
+    <keyword type="function" name="ibus_lookup_table_set_orientation ()" link="IBusLookupTable.html#ibus-lookup-table-set-orientation"/>
+    <keyword type="function" name="ibus_lookup_table_get_orientation ()" link="IBusLookupTable.html#ibus-lookup-table-get-orientation"/>
+    <keyword type="function" name="ibus_lookup_table_clear ()" link="IBusLookupTable.html#ibus-lookup-table-clear"/>
+    <keyword type="function" name="ibus_lookup_table_page_up ()" link="IBusLookupTable.html#ibus-lookup-table-page-up"/>
+    <keyword type="function" name="ibus_lookup_table_page_down ()" link="IBusLookupTable.html#ibus-lookup-table-page-down"/>
+    <keyword type="function" name="ibus_lookup_table_cursor_up ()" link="IBusLookupTable.html#ibus-lookup-table-cursor-up"/>
+    <keyword type="function" name="ibus_lookup_table_cursor_down ()" link="IBusLookupTable.html#ibus-lookup-table-cursor-down"/>
+    <keyword type="struct" name="struct IBusPanelService" link="IBusPanelService.html#IBusPanelService-struct"/>
+    <keyword type="struct" name="struct IBusPanelServiceClass" link="IBusPanelService.html#IBusPanelServiceClass"/>
+    <keyword type="function" name="ibus_panel_service_new ()" link="IBusPanelService.html#ibus-panel-service-new"/>
+    <keyword type="function" name="ibus_panel_service_candidate_clicked ()" link="IBusPanelService.html#ibus-panel-service-candidate-clicked"/>
+    <keyword type="function" name="ibus_panel_service_cursor_down ()" link="IBusPanelService.html#ibus-panel-service-cursor-down"/>
+    <keyword type="function" name="ibus_panel_service_cursor_up ()" link="IBusPanelService.html#ibus-panel-service-cursor-up"/>
+    <keyword type="function" name="ibus_panel_service_page_down ()" link="IBusPanelService.html#ibus-panel-service-page-down"/>
+    <keyword type="function" name="ibus_panel_service_page_up ()" link="IBusPanelService.html#ibus-panel-service-page-up"/>
+    <keyword type="function" name="ibus_panel_service_property_activate ()" link="IBusPanelService.html#ibus-panel-service-property-activate"/>
+    <keyword type="function" name="ibus_panel_service_property_show ()" link="IBusPanelService.html#ibus-panel-service-property-show"/>
+    <keyword type="function" name="ibus_panel_service_property_hide ()" link="IBusPanelService.html#ibus-panel-service-property-hide"/>
+    <keyword type="signal" name="The &quot;cursor-down-lookup-table&quot; signal" link="IBusPanelService.html#IBusPanelService-cursor-down-lookup-table"/>
+    <keyword type="signal" name="The &quot;cursor-up-lookup-table&quot; signal" link="IBusPanelService.html#IBusPanelService-cursor-up-lookup-table"/>
+    <keyword type="signal" name="The &quot;destroy-context&quot; signal" link="IBusPanelService.html#IBusPanelService-destroy-context"/>
+    <keyword type="signal" name="The &quot;focus-in&quot; signal" link="IBusPanelService.html#IBusPanelService-focus-in"/>
+    <keyword type="signal" name="The &quot;focus-out&quot; signal" link="IBusPanelService.html#IBusPanelService-focus-out"/>
+    <keyword type="signal" name="The &quot;hide-auxiliary-text&quot; signal" link="IBusPanelService.html#IBusPanelService-hide-auxiliary-text"/>
+    <keyword type="signal" name="The &quot;hide-language-bar&quot; signal" link="IBusPanelService.html#IBusPanelService-hide-language-bar"/>
+    <keyword type="signal" name="The &quot;hide-lookup-table&quot; signal" link="IBusPanelService.html#IBusPanelService-hide-lookup-table"/>
+    <keyword type="signal" name="The &quot;hide-preedit-text&quot; signal" link="IBusPanelService.html#IBusPanelService-hide-preedit-text"/>
+    <keyword type="signal" name="The &quot;page-down-lookup-table&quot; signal" link="IBusPanelService.html#IBusPanelService-page-down-lookup-table"/>
+    <keyword type="signal" name="The &quot;page-up-lookup-table&quot; signal" link="IBusPanelService.html#IBusPanelService-page-up-lookup-table"/>
+    <keyword type="signal" name="The &quot;register-properties&quot; signal" link="IBusPanelService.html#IBusPanelService-register-properties"/>
+    <keyword type="signal" name="The &quot;reset&quot; signal" link="IBusPanelService.html#IBusPanelService-reset"/>
+    <keyword type="signal" name="The &quot;set-cursor-location&quot; signal" link="IBusPanelService.html#IBusPanelService-set-cursor-location"/>
+    <keyword type="signal" name="The &quot;show-auxiliary-text&quot; signal" link="IBusPanelService.html#IBusPanelService-show-auxiliary-text"/>
+    <keyword type="signal" name="The &quot;show-language-bar&quot; signal" link="IBusPanelService.html#IBusPanelService-show-language-bar"/>
+    <keyword type="signal" name="The &quot;show-lookup-table&quot; signal" link="IBusPanelService.html#IBusPanelService-show-lookup-table"/>
+    <keyword type="signal" name="The &quot;show-preedit-text&quot; signal" link="IBusPanelService.html#IBusPanelService-show-preedit-text"/>
+    <keyword type="signal" name="The &quot;start-setup&quot; signal" link="IBusPanelService.html#IBusPanelService-start-setup"/>
+    <keyword type="signal" name="The &quot;state-changed&quot; signal" link="IBusPanelService.html#IBusPanelService-state-changed"/>
+    <keyword type="signal" name="The &quot;update-auxiliary-text&quot; signal" link="IBusPanelService.html#IBusPanelService-update-auxiliary-text"/>
+    <keyword type="signal" name="The &quot;update-lookup-table&quot; signal" link="IBusPanelService.html#IBusPanelService-update-lookup-table"/>
+    <keyword type="signal" name="The &quot;update-preedit-text&quot; signal" link="IBusPanelService.html#IBusPanelService-update-preedit-text"/>
+    <keyword type="signal" name="The &quot;update-property&quot; signal" link="IBusPanelService.html#IBusPanelService-update-property"/>
+    <keyword type="enum" name="enum IBusPropType" link="IBusProperty.html#IBusPropType-enum"/>
+    <keyword type="enum" name="enum IBusPropState" link="IBusProperty.html#IBusPropState-enum"/>
+    <keyword type="struct" name="struct IBusProperty" link="IBusProperty.html#IBusProperty-struct"/>
+    <keyword type="struct" name="struct IBusPropertyClass" link="IBusProperty.html#IBusPropertyClass"/>
+    <keyword type="function" name="ibus_property_new ()" link="IBusProperty.html#ibus-property-new"/>
+    <keyword type="function" name="ibus_property_new_varargs ()" link="IBusProperty.html#ibus-property-new-varargs"/>
+    <keyword type="function" name="ibus_property_get_key ()" link="IBusProperty.html#ibus-property-get-key"/>
+    <keyword type="function" name="ibus_property_get_label ()" link="IBusProperty.html#ibus-property-get-label"/>
+    <keyword type="function" name="ibus_property_set_label ()" link="IBusProperty.html#ibus-property-set-label"/>
+    <keyword type="function" name="ibus_property_get_symbol ()" link="IBusProperty.html#ibus-property-get-symbol"/>
+    <keyword type="function" name="ibus_property_set_symbol ()" link="IBusProperty.html#ibus-property-set-symbol"/>
+    <keyword type="function" name="ibus_property_get_icon ()" link="IBusProperty.html#ibus-property-get-icon"/>
+    <keyword type="function" name="ibus_property_set_icon ()" link="IBusProperty.html#ibus-property-set-icon"/>
+    <keyword type="function" name="ibus_property_get_tooltip ()" link="IBusProperty.html#ibus-property-get-tooltip"/>
+    <keyword type="function" name="ibus_property_set_tooltip ()" link="IBusProperty.html#ibus-property-set-tooltip"/>
+    <keyword type="function" name="ibus_property_get_sensitive ()" link="IBusProperty.html#ibus-property-get-sensitive"/>
+    <keyword type="function" name="ibus_property_set_sensitive ()" link="IBusProperty.html#ibus-property-set-sensitive"/>
+    <keyword type="function" name="ibus_property_get_visible ()" link="IBusProperty.html#ibus-property-get-visible"/>
+    <keyword type="function" name="ibus_property_set_visible ()" link="IBusProperty.html#ibus-property-set-visible"/>
+    <keyword type="function" name="ibus_property_get_prop_type ()" link="IBusProperty.html#ibus-property-get-prop-type"/>
+    <keyword type="function" name="ibus_property_get_state ()" link="IBusProperty.html#ibus-property-get-state"/>
+    <keyword type="function" name="ibus_property_set_state ()" link="IBusProperty.html#ibus-property-set-state"/>
+    <keyword type="function" name="ibus_property_get_sub_props ()" link="IBusProperty.html#ibus-property-get-sub-props"/>
+    <keyword type="function" name="ibus_property_set_sub_props ()" link="IBusProperty.html#ibus-property-set-sub-props"/>
+    <keyword type="function" name="ibus_property_update ()" link="IBusProperty.html#ibus-property-update"/>
+    <keyword type="struct" name="IBusPropListClass" link="IBusProperty.html#IBusPropListClass"/>
+    <keyword type="struct" name="IBusPropList" link="IBusProperty.html#IBusPropList-struct"/>
+    <keyword type="property" name="The &quot;icon&quot; property" link="IBusProperty.html#IBusProperty--icon"/>
+    <keyword type="property" name="The &quot;key&quot; property" link="IBusProperty.html#IBusProperty--key"/>
+    <keyword type="property" name="The &quot;label&quot; property" link="IBusProperty.html#IBusProperty--label"/>
+    <keyword type="property" name="The &quot;prop-type&quot; property" link="IBusProperty.html#IBusProperty--prop-type"/>
+    <keyword type="property" name="The &quot;sensitive&quot; property" link="IBusProperty.html#IBusProperty--sensitive"/>
+    <keyword type="property" name="The &quot;state&quot; property" link="IBusProperty.html#IBusProperty--state"/>
+    <keyword type="property" name="The &quot;sub-props&quot; property" link="IBusProperty.html#IBusProperty--sub-props"/>
+    <keyword type="property" name="The &quot;symbol&quot; property" link="IBusProperty.html#IBusProperty--symbol"/>
+    <keyword type="property" name="The &quot;tooltip&quot; property" link="IBusProperty.html#IBusProperty--tooltip"/>
+    <keyword type="property" name="The &quot;visible&quot; property" link="IBusProperty.html#IBusProperty--visible"/>
+    <keyword type="struct" name="IBusPropList" link="IBusPropList.html#IBusPropList-struct"/>
+    <keyword type="struct" name="IBusPropListClass" link="IBusPropList.html#IBusPropListClass"/>
+    <keyword type="function" name="ibus_prop_list_new ()" link="IBusPropList.html#ibus-prop-list-new"/>
+    <keyword type="function" name="ibus_prop_list_append ()" link="IBusPropList.html#ibus-prop-list-append"/>
+    <keyword type="function" name="ibus_prop_list_get ()" link="IBusPropList.html#ibus-prop-list-get"/>
+    <keyword type="function" name="ibus_prop_list_update_property ()" link="IBusPropList.html#ibus-prop-list-update-property"/>
+    <keyword type="struct" name="struct IBusText" link="IBusText.html#IBusText-struct"/>
+    <keyword type="struct" name="struct IBusTextClass" link="IBusText.html#IBusTextClass"/>
+    <keyword type="function" name="ibus_text_new_from_string ()" link="IBusText.html#ibus-text-new-from-string"/>
+    <keyword type="function" name="ibus_text_new_from_ucs4 ()" link="IBusText.html#ibus-text-new-from-ucs4"/>
+    <keyword type="function" name="ibus_text_new_from_static_string ()" link="IBusText.html#ibus-text-new-from-static-string"/>
+    <keyword type="function" name="ibus_text_new_from_printf ()" link="IBusText.html#ibus-text-new-from-printf"/>
+    <keyword type="function" name="ibus_text_new_from_unichar ()" link="IBusText.html#ibus-text-new-from-unichar"/>
+    <keyword type="function" name="ibus_text_append_attribute ()" link="IBusText.html#ibus-text-append-attribute"/>
+    <keyword type="function" name="ibus_text_get_length ()" link="IBusText.html#ibus-text-get-length"/>
+    <keyword type="function" name="ibus_text_get_is_static ()" link="IBusText.html#ibus-text-get-is-static"/>
+    <keyword type="function" name="ibus_text_get_text ()" link="IBusText.html#ibus-text-get-text"/>
+    <keyword type="function" name="ibus_text_get_attributes ()" link="IBusText.html#ibus-text-get-attributes"/>
+    <keyword type="function" name="ibus_text_set_attributes ()" link="IBusText.html#ibus-text-set-attributes"/>
+    <keyword type="struct" name="struct IBusComponent" link="IBusComponent.html#IBusComponent-struct"/>
+    <keyword type="struct" name="struct IBusComponentClass" link="IBusComponent.html#IBusComponentClass"/>
+    <keyword type="function" name="ibus_component_new ()" link="IBusComponent.html#ibus-component-new"/>
+    <keyword type="function" name="ibus_component_new_varargs ()" link="IBusComponent.html#ibus-component-new-varargs"/>
+    <keyword type="function" name="ibus_component_new_from_xml_node ()" link="IBusComponent.html#ibus-component-new-from-xml-node"/>
+    <keyword type="function" name="ibus_component_new_from_file ()" link="IBusComponent.html#ibus-component-new-from-file"/>
+    <keyword type="function" name="ibus_component_get_name ()" link="IBusComponent.html#ibus-component-get-name"/>
+    <keyword type="function" name="ibus_component_get_description ()" link="IBusComponent.html#ibus-component-get-description"/>
+    <keyword type="function" name="ibus_component_get_version ()" link="IBusComponent.html#ibus-component-get-version"/>
+    <keyword type="function" name="ibus_component_get_license ()" link="IBusComponent.html#ibus-component-get-license"/>
+    <keyword type="function" name="ibus_component_get_author ()" link="IBusComponent.html#ibus-component-get-author"/>
+    <keyword type="function" name="ibus_component_get_homepage ()" link="IBusComponent.html#ibus-component-get-homepage"/>
+    <keyword type="function" name="ibus_component_get_exec ()" link="IBusComponent.html#ibus-component-get-exec"/>
+    <keyword type="function" name="ibus_component_get_textdomain ()" link="IBusComponent.html#ibus-component-get-textdomain"/>
+    <keyword type="function" name="ibus_component_add_observed_path ()" link="IBusComponent.html#ibus-component-add-observed-path"/>
+    <keyword type="function" name="ibus_component_add_engine ()" link="IBusComponent.html#ibus-component-add-engine"/>
+    <keyword type="function" name="ibus_component_get_engines ()" link="IBusComponent.html#ibus-component-get-engines"/>
+    <keyword type="function" name="ibus_component_output ()" link="IBusComponent.html#ibus-component-output"/>
+    <keyword type="function" name="ibus_component_output_engines ()" link="IBusComponent.html#ibus-component-output-engines"/>
+    <keyword type="function" name="ibus_component_check_modification ()" link="IBusComponent.html#ibus-component-check-modification"/>
+    <keyword type="function" name="ibus_component_get_observed_paths ()" link="IBusComponent.html#ibus-component-get-observed-paths"/>
+    <keyword type="property" name="The &quot;author&quot; property" link="IBusComponent.html#IBusComponent--author"/>
+    <keyword type="property" name="The &quot;command-line&quot; property" link="IBusComponent.html#IBusComponent--command-line"/>
+    <keyword type="property" name="The &quot;description&quot; property" link="IBusComponent.html#IBusComponent--description"/>
+    <keyword type="property" name="The &quot;homepage&quot; property" link="IBusComponent.html#IBusComponent--homepage"/>
+    <keyword type="property" name="The &quot;license&quot; property" link="IBusComponent.html#IBusComponent--license"/>
+    <keyword type="property" name="The &quot;name&quot; property" link="IBusComponent.html#IBusComponent--name"/>
+    <keyword type="property" name="The &quot;textdomain&quot; property" link="IBusComponent.html#IBusComponent--textdomain"/>
+    <keyword type="property" name="The &quot;version&quot; property" link="IBusComponent.html#IBusComponent--version"/>
+    <keyword type="struct" name="struct IBusEngine" link="IBusEngine.html#IBusEngine-struct"/>
+    <keyword type="struct" name="struct IBusEngineClass" link="IBusEngine.html#IBusEngineClass"/>
+    <keyword type="function" name="ibus_engine_new ()" link="IBusEngine.html#ibus-engine-new"/>
+    <keyword type="function" name="ibus_engine_new_with_type ()" link="IBusEngine.html#ibus-engine-new-with-type"/>
+    <keyword type="function" name="ibus_engine_commit_text ()" link="IBusEngine.html#ibus-engine-commit-text"/>
+    <keyword type="function" name="ibus_engine_update_preedit_text ()" link="IBusEngine.html#ibus-engine-update-preedit-text"/>
+    <keyword type="function" name="ibus_engine_update_preedit_text_with_mode ()" link="IBusEngine.html#ibus-engine-update-preedit-text-with-mode"/>
+    <keyword type="function" name="ibus_engine_show_preedit_text ()" link="IBusEngine.html#ibus-engine-show-preedit-text"/>
+    <keyword type="function" name="ibus_engine_hide_preedit_text ()" link="IBusEngine.html#ibus-engine-hide-preedit-text"/>
+    <keyword type="function" name="ibus_engine_update_auxiliary_text ()" link="IBusEngine.html#ibus-engine-update-auxiliary-text"/>
+    <keyword type="function" name="ibus_engine_show_auxiliary_text ()" link="IBusEngine.html#ibus-engine-show-auxiliary-text"/>
+    <keyword type="function" name="ibus_engine_hide_auxiliary_text ()" link="IBusEngine.html#ibus-engine-hide-auxiliary-text"/>
+    <keyword type="function" name="ibus_engine_update_lookup_table ()" link="IBusEngine.html#ibus-engine-update-lookup-table"/>
+    <keyword type="function" name="ibus_engine_update_lookup_table_fast ()" link="IBusEngine.html#ibus-engine-update-lookup-table-fast"/>
+    <keyword type="function" name="ibus_engine_show_lookup_table ()" link="IBusEngine.html#ibus-engine-show-lookup-table"/>
+    <keyword type="function" name="ibus_engine_hide_lookup_table ()" link="IBusEngine.html#ibus-engine-hide-lookup-table"/>
+    <keyword type="function" name="ibus_engine_forward_key_event ()" link="IBusEngine.html#ibus-engine-forward-key-event"/>
+    <keyword type="function" name="ibus_engine_register_properties ()" link="IBusEngine.html#ibus-engine-register-properties"/>
+    <keyword type="function" name="ibus_engine_update_property ()" link="IBusEngine.html#ibus-engine-update-property"/>
+    <keyword type="function" name="ibus_engine_delete_surrounding_text ()" link="IBusEngine.html#ibus-engine-delete-surrounding-text"/>
+    <keyword type="function" name="ibus_engine_get_surrounding_text ()" link="IBusEngine.html#ibus-engine-get-surrounding-text"/>
+    <keyword type="function" name="ibus_engine_get_content_type ()" link="IBusEngine.html#ibus-engine-get-content-type"/>
+    <keyword type="function" name="ibus_engine_get_name ()" link="IBusEngine.html#ibus-engine-get-name"/>
+    <keyword type="property" name="The &quot;engine-name&quot; property" link="IBusEngine.html#IBusEngine--engine-name"/>
+    <keyword type="signal" name="The &quot;cancel-hand-writing&quot; signal" link="IBusEngine.html#IBusEngine-cancel-hand-writing"/>
+    <keyword type="signal" name="The &quot;candidate-clicked&quot; signal" link="IBusEngine.html#IBusEngine-candidate-clicked"/>
+    <keyword type="signal" name="The &quot;cursor-down&quot; signal" link="IBusEngine.html#IBusEngine-cursor-down"/>
+    <keyword type="signal" name="The &quot;cursor-up&quot; signal" link="IBusEngine.html#IBusEngine-cursor-up"/>
+    <keyword type="signal" name="The &quot;disable&quot; signal" link="IBusEngine.html#IBusEngine-disable"/>
+    <keyword type="signal" name="The &quot;enable&quot; signal" link="IBusEngine.html#IBusEngine-enable"/>
+    <keyword type="signal" name="The &quot;focus-in&quot; signal" link="IBusEngine.html#IBusEngine-focus-in"/>
+    <keyword type="signal" name="The &quot;focus-out&quot; signal" link="IBusEngine.html#IBusEngine-focus-out"/>
+    <keyword type="signal" name="The &quot;page-down&quot; signal" link="IBusEngine.html#IBusEngine-page-down"/>
+    <keyword type="signal" name="The &quot;page-up&quot; signal" link="IBusEngine.html#IBusEngine-page-up"/>
+    <keyword type="signal" name="The &quot;process-hand-writing-event&quot; signal" link="IBusEngine.html#IBusEngine-process-hand-writing-event"/>
+    <keyword type="signal" name="The &quot;process-key-event&quot; signal" link="IBusEngine.html#IBusEngine-process-key-event"/>
+    <keyword type="signal" name="The &quot;property-activate&quot; signal" link="IBusEngine.html#IBusEngine-property-activate"/>
+    <keyword type="signal" name="The &quot;property-hide&quot; signal" link="IBusEngine.html#IBusEngine-property-hide"/>
+    <keyword type="signal" name="The &quot;property-show&quot; signal" link="IBusEngine.html#IBusEngine-property-show"/>
+    <keyword type="signal" name="The &quot;reset&quot; signal" link="IBusEngine.html#IBusEngine-reset"/>
+    <keyword type="signal" name="The &quot;set-capabilities&quot; signal" link="IBusEngine.html#IBusEngine-set-capabilities"/>
+    <keyword type="signal" name="The &quot;set-content-type&quot; signal" link="IBusEngine.html#IBusEngine-set-content-type"/>
+    <keyword type="signal" name="The &quot;set-cursor-location&quot; signal" link="IBusEngine.html#IBusEngine-set-cursor-location"/>
+    <keyword type="signal" name="The &quot;set-surrounding-text&quot; signal" link="IBusEngine.html#IBusEngine-set-surrounding-text"/>
+    <keyword type="struct" name="struct IBusEngineDesc" link="IBusEngineDesc.html#IBusEngineDesc-struct"/>
+    <keyword type="struct" name="struct IBusEngineDescClass" link="IBusEngineDesc.html#IBusEngineDescClass"/>
+    <keyword type="function" name="ibus_engine_desc_new ()" link="IBusEngineDesc.html#ibus-engine-desc-new"/>
+    <keyword type="function" name="ibus_engine_desc_new_varargs ()" link="IBusEngineDesc.html#ibus-engine-desc-new-varargs"/>
+    <keyword type="function" name="ibus_engine_desc_new_from_xml_node ()" link="IBusEngineDesc.html#ibus-engine-desc-new-from-xml-node"/>
+    <keyword type="function" name="ibus_engine_desc_get_name ()" link="IBusEngineDesc.html#ibus-engine-desc-get-name"/>
+    <keyword type="function" name="ibus_engine_desc_get_longname ()" link="IBusEngineDesc.html#ibus-engine-desc-get-longname"/>
+    <keyword type="function" name="ibus_engine_desc_get_description ()" link="IBusEngineDesc.html#ibus-engine-desc-get-description"/>
+    <keyword type="function" name="ibus_engine_desc_get_language ()" link="IBusEngineDesc.html#ibus-engine-desc-get-language"/>
+    <keyword type="function" name="ibus_engine_desc_get_license ()" link="IBusEngineDesc.html#ibus-engine-desc-get-license"/>
+    <keyword type="function" name="ibus_engine_desc_get_author ()" link="IBusEngineDesc.html#ibus-engine-desc-get-author"/>
+    <keyword type="function" name="ibus_engine_desc_get_icon ()" link="IBusEngineDesc.html#ibus-engine-desc-get-icon"/>
+    <keyword type="function" name="ibus_engine_desc_get_layout ()" link="IBusEngineDesc.html#ibus-engine-desc-get-layout"/>
+    <keyword type="function" name="ibus_engine_desc_get_layout_variant ()" link="IBusEngineDesc.html#ibus-engine-desc-get-layout-variant"/>
+    <keyword type="function" name="ibus_engine_desc_get_layout_option ()" link="IBusEngineDesc.html#ibus-engine-desc-get-layout-option"/>
+    <keyword type="function" name="ibus_engine_desc_get_rank ()" link="IBusEngineDesc.html#ibus-engine-desc-get-rank"/>
+    <keyword type="function" name="ibus_engine_desc_get_hotkeys ()" link="IBusEngineDesc.html#ibus-engine-desc-get-hotkeys"/>
+    <keyword type="function" name="ibus_engine_desc_get_symbol ()" link="IBusEngineDesc.html#ibus-engine-desc-get-symbol"/>
+    <keyword type="function" name="ibus_engine_desc_get_setup ()" link="IBusEngineDesc.html#ibus-engine-desc-get-setup"/>
+    <keyword type="function" name="ibus_engine_desc_get_version ()" link="IBusEngineDesc.html#ibus-engine-desc-get-version"/>
+    <keyword type="function" name="ibus_engine_desc_get_textdomain ()" link="IBusEngineDesc.html#ibus-engine-desc-get-textdomain"/>
+    <keyword type="function" name="ibus_engine_desc_output ()" link="IBusEngineDesc.html#ibus-engine-desc-output"/>
+    <keyword type="property" name="The &quot;author&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--author"/>
+    <keyword type="property" name="The &quot;description&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--description"/>
+    <keyword type="property" name="The &quot;hotkeys&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--hotkeys"/>
+    <keyword type="property" name="The &quot;icon&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--icon"/>
+    <keyword type="property" name="The &quot;language&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--language"/>
+    <keyword type="property" name="The &quot;layout&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--layout"/>
+    <keyword type="property" name="The &quot;layout-option&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--layout-option"/>
+    <keyword type="property" name="The &quot;layout-variant&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--layout-variant"/>
+    <keyword type="property" name="The &quot;license&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--license"/>
+    <keyword type="property" name="The &quot;longname&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--longname"/>
+    <keyword type="property" name="The &quot;name&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--name"/>
+    <keyword type="property" name="The &quot;rank&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--rank"/>
+    <keyword type="property" name="The &quot;setup&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--setup"/>
+    <keyword type="property" name="The &quot;symbol&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--symbol"/>
+    <keyword type="property" name="The &quot;textdomain&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--textdomain"/>
+    <keyword type="property" name="The &quot;version&quot; property" link="IBusEngineDesc.html#IBusEngineDesc--version"/>
+    <keyword type="macro" name="IBUS_MAX_COMPOSE_LEN" link="ibus-IBusEngineSimple.html#IBUS-MAX-COMPOSE-LEN:CAPS"/>
+    <keyword type="struct" name="struct IBusEngineSimple" link="ibus-IBusEngineSimple.html#IBusEngineSimple"/>
+    <keyword type="struct" name="struct IBusEngineSimpleClass" link="ibus-IBusEngineSimple.html#IBusEngineSimpleClass"/>
+    <keyword type="function" name="ibus_engine_simple_add_table ()" link="ibus-IBusEngineSimple.html#ibus-engine-simple-add-table"/>
+    <keyword type="struct" name="struct IBusFactory" link="IBusFactory.html#IBusFactory-struct"/>
+    <keyword type="struct" name="struct IBusFactoryClass" link="IBusFactory.html#IBusFactoryClass"/>
+    <keyword type="function" name="ibus_factory_new ()" link="IBusFactory.html#ibus-factory-new"/>
+    <keyword type="function" name="ibus_factory_add_engine ()" link="IBusFactory.html#ibus-factory-add-engine"/>
+    <keyword type="function" name="ibus_factory_create_engine ()" link="IBusFactory.html#ibus-factory-create-engine"/>
+    <keyword type="signal" name="The &quot;create-engine&quot; signal" link="IBusFactory.html#IBusFactory-create-engine"/>
+    <keyword type="struct" name="struct IBusInputContext" link="IBusInputContext.html#IBusInputContext-struct"/>
+    <keyword type="struct" name="struct IBusInputContextClass" link="IBusInputContext.html#IBusInputContextClass"/>
+    <keyword type="function" name="ibus_input_context_new ()" link="IBusInputContext.html#ibus-input-context-new"/>
+    <keyword type="function" name="ibus_input_context_new_async ()" link="IBusInputContext.html#ibus-input-context-new-async"/>
+    <keyword type="function" name="ibus_input_context_new_async_finish ()" link="IBusInputContext.html#ibus-input-context-new-async-finish"/>
+    <keyword type="function" name="ibus_input_context_get_input_context ()" link="IBusInputContext.html#ibus-input-context-get-input-context"/>
+    <keyword type="function" name="ibus_input_context_get_input_context_async ()" link="IBusInputContext.html#ibus-input-context-get-input-context-async"/>
+    <keyword type="function" name="ibus_input_context_get_input_context_async_finish ()" link="IBusInputContext.html#ibus-input-context-get-input-context-async-finish"/>
+    <keyword type="function" name="ibus_input_context_process_hand_writing_event ()" link="IBusInputContext.html#ibus-input-context-process-hand-writing-event"/>
+    <keyword type="function" name="ibus_input_context_cancel_hand_writing ()" link="IBusInputContext.html#ibus-input-context-cancel-hand-writing"/>
+    <keyword type="function" name="ibus_input_context_process_key_event_async ()" link="IBusInputContext.html#ibus-input-context-process-key-event-async"/>
+    <keyword type="function" name="ibus_input_context_process_key_event_async_finish ()" link="IBusInputContext.html#ibus-input-context-process-key-event-async-finish"/>
+    <keyword type="function" name="ibus_input_context_process_key_event ()" link="IBusInputContext.html#ibus-input-context-process-key-event"/>
+    <keyword type="function" name="ibus_input_context_set_cursor_location ()" link="IBusInputContext.html#ibus-input-context-set-cursor-location"/>
+    <keyword type="function" name="ibus_input_context_set_capabilities ()" link="IBusInputContext.html#ibus-input-context-set-capabilities"/>
+    <keyword type="function" name="ibus_input_context_property_activate ()" link="IBusInputContext.html#ibus-input-context-property-activate"/>
+    <keyword type="function" name="ibus_input_context_focus_in ()" link="IBusInputContext.html#ibus-input-context-focus-in"/>
+    <keyword type="function" name="ibus_input_context_focus_out ()" link="IBusInputContext.html#ibus-input-context-focus-out"/>
+    <keyword type="function" name="ibus_input_context_reset ()" link="IBusInputContext.html#ibus-input-context-reset"/>
+    <keyword type="function" name="ibus_input_context_get_engine_async ()" link="IBusInputContext.html#ibus-input-context-get-engine-async"/>
+    <keyword type="function" name="ibus_input_context_get_engine_async_finish ()" link="IBusInputContext.html#ibus-input-context-get-engine-async-finish"/>
+    <keyword type="function" name="ibus_input_context_get_engine ()" link="IBusInputContext.html#ibus-input-context-get-engine"/>
+    <keyword type="function" name="ibus_input_context_set_engine ()" link="IBusInputContext.html#ibus-input-context-set-engine"/>
+    <keyword type="function" name="ibus_input_context_set_surrounding_text ()" link="IBusInputContext.html#ibus-input-context-set-surrounding-text"/>
+    <keyword type="function" name="ibus_input_context_needs_surrounding_text ()" link="IBusInputContext.html#ibus-input-context-needs-surrounding-text"/>
+    <keyword type="function" name="ibus_input_context_set_content_type ()" link="IBusInputContext.html#ibus-input-context-set-content-type"/>
+    <keyword type="signal" name="The &quot;commit-text&quot; signal" link="IBusInputContext.html#IBusInputContext-commit-text"/>
+    <keyword type="signal" name="The &quot;cursor-down-lookup-table&quot; signal" link="IBusInputContext.html#IBusInputContext-cursor-down-lookup-table"/>
+    <keyword type="signal" name="The &quot;cursor-up-lookup-table&quot; signal" link="IBusInputContext.html#IBusInputContext-cursor-up-lookup-table"/>
+    <keyword type="signal" name="The &quot;delete-surrounding-text&quot; signal" link="IBusInputContext.html#IBusInputContext-delete-surrounding-text"/>
+    <keyword type="signal" name="The &quot;disabled&quot; signal" link="IBusInputContext.html#IBusInputContext-disabled"/>
+    <keyword type="signal" name="The &quot;enabled&quot; signal" link="IBusInputContext.html#IBusInputContext-enabled"/>
+    <keyword type="signal" name="The &quot;forward-key-event&quot; signal" link="IBusInputContext.html#IBusInputContext-forward-key-event"/>
+    <keyword type="signal" name="The &quot;hide-auxiliary-text&quot; signal" link="IBusInputContext.html#IBusInputContext-hide-auxiliary-text"/>
+    <keyword type="signal" name="The &quot;hide-lookup-table&quot; signal" link="IBusInputContext.html#IBusInputContext-hide-lookup-table"/>
+    <keyword type="signal" name="The &quot;hide-preedit-text&quot; signal" link="IBusInputContext.html#IBusInputContext-hide-preedit-text"/>
+    <keyword type="signal" name="The &quot;page-down-lookup-table&quot; signal" link="IBusInputContext.html#IBusInputContext-page-down-lookup-table"/>
+    <keyword type="signal" name="The &quot;page-up-lookup-table&quot; signal" link="IBusInputContext.html#IBusInputContext-page-up-lookup-table"/>
+    <keyword type="signal" name="The &quot;register-properties&quot; signal" link="IBusInputContext.html#IBusInputContext-register-properties"/>
+    <keyword type="signal" name="The &quot;show-auxiliary-text&quot; signal" link="IBusInputContext.html#IBusInputContext-show-auxiliary-text"/>
+    <keyword type="signal" name="The &quot;show-lookup-table&quot; signal" link="IBusInputContext.html#IBusInputContext-show-lookup-table"/>
+    <keyword type="signal" name="The &quot;show-preedit-text&quot; signal" link="IBusInputContext.html#IBusInputContext-show-preedit-text"/>
+    <keyword type="signal" name="The &quot;update-auxiliary-text&quot; signal" link="IBusInputContext.html#IBusInputContext-update-auxiliary-text"/>
+    <keyword type="signal" name="The &quot;update-lookup-table&quot; signal" link="IBusInputContext.html#IBusInputContext-update-lookup-table"/>
+    <keyword type="signal" name="The &quot;update-preedit-text&quot; signal" link="IBusInputContext.html#IBusInputContext-update-preedit-text"/>
+    <keyword type="signal" name="The &quot;update-property&quot; signal" link="IBusInputContext.html#IBusInputContext-update-property"/>
+    <keyword type="function" name="ibus_keyval_name ()" link="ibus-ibuskeys.html#ibus-keyval-name"/>
+    <keyword type="function" name="ibus_keyval_from_name ()" link="ibus-ibuskeys.html#ibus-keyval-from-name"/>
+    <keyword type="function" name="ibus_unicode_to_keyval ()" link="ibus-ibuskeys.html#ibus-unicode-to-keyval"/>
+    <keyword type="function" name="ibus_keyval_to_unicode ()" link="ibus-ibuskeys.html#ibus-keyval-to-unicode"/>
+    <keyword type="struct" name="struct IBusKeymap" link="IBusKeymap.html#IBusKeymap-struct"/>
+    <keyword type="struct" name="struct IBusKeymapClass" link="IBusKeymap.html#IBusKeymapClass"/>
+    <keyword type="function" name="ibus_keymap_new ()" link="IBusKeymap.html#ibus-keymap-new" deprecated=""/>
+    <keyword type="function" name="ibus_keymap_get ()" link="IBusKeymap.html#ibus-keymap-get"/>
+    <keyword type="function" name="ibus_keymap_lookup_keysym ()" link="IBusKeymap.html#ibus-keymap-lookup-keysym"/>
+    <keyword type="macro" name="IBUS_VoidSymbol" link="ibus-ibuskeysyms-compat.html#IBUS-VoidSymbol"/>
+    <keyword type="macro" name="IBUS_BackSpace" link="ibus-ibuskeysyms-compat.html#IBUS-BackSpace"/>
+    <keyword type="macro" name="IBUS_Tab" link="ibus-ibuskeysyms-compat.html#IBUS-Tab"/>
+    <keyword type="macro" name="IBUS_Linefeed" link="ibus-ibuskeysyms-compat.html#IBUS-Linefeed"/>
+    <keyword type="macro" name="IBUS_Clear" link="ibus-ibuskeysyms-compat.html#IBUS-Clear"/>
+    <keyword type="macro" name="IBUS_Return" link="ibus-ibuskeysyms-compat.html#IBUS-Return"/>
+    <keyword type="macro" name="IBUS_Pause" link="ibus-ibuskeysyms-compat.html#IBUS-Pause"/>
+    <keyword type="macro" name="IBUS_Scroll_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-Scroll-Lock"/>
+    <keyword type="macro" name="IBUS_Sys_Req" link="ibus-ibuskeysyms-compat.html#IBUS-Sys-Req"/>
+    <keyword type="macro" name="IBUS_Escape" link="ibus-ibuskeysyms-compat.html#IBUS-Escape"/>
+    <keyword type="macro" name="IBUS_Delete" link="ibus-ibuskeysyms-compat.html#IBUS-Delete"/>
+    <keyword type="macro" name="IBUS_Multi_key" link="ibus-ibuskeysyms-compat.html#IBUS-Multi-key"/>
+    <keyword type="macro" name="IBUS_Codeinput" link="ibus-ibuskeysyms-compat.html#IBUS-Codeinput"/>
+    <keyword type="macro" name="IBUS_SingleCandidate" link="ibus-ibuskeysyms-compat.html#IBUS-SingleCandidate"/>
+    <keyword type="macro" name="IBUS_MultipleCandidate" link="ibus-ibuskeysyms-compat.html#IBUS-MultipleCandidate"/>
+    <keyword type="macro" name="IBUS_PreviousCandidate" link="ibus-ibuskeysyms-compat.html#IBUS-PreviousCandidate"/>
+    <keyword type="macro" name="IBUS_Kanji" link="ibus-ibuskeysyms-compat.html#IBUS-Kanji"/>
+    <keyword type="macro" name="IBUS_Muhenkan" link="ibus-ibuskeysyms-compat.html#IBUS-Muhenkan"/>
+    <keyword type="macro" name="IBUS_Henkan_Mode" link="ibus-ibuskeysyms-compat.html#IBUS-Henkan-Mode"/>
+    <keyword type="macro" name="IBUS_Henkan" link="ibus-ibuskeysyms-compat.html#IBUS-Henkan"/>
+    <keyword type="macro" name="IBUS_Romaji" link="ibus-ibuskeysyms-compat.html#IBUS-Romaji"/>
+    <keyword type="macro" name="IBUS_Hiragana" link="ibus-ibuskeysyms-compat.html#IBUS-Hiragana"/>
+    <keyword type="macro" name="IBUS_Katakana" link="ibus-ibuskeysyms-compat.html#IBUS-Katakana"/>
+    <keyword type="macro" name="IBUS_Hiragana_Katakana" link="ibus-ibuskeysyms-compat.html#IBUS-Hiragana-Katakana"/>
+    <keyword type="macro" name="IBUS_Zenkaku" link="ibus-ibuskeysyms-compat.html#IBUS-Zenkaku"/>
+    <keyword type="macro" name="IBUS_Hankaku" link="ibus-ibuskeysyms-compat.html#IBUS-Hankaku"/>
+    <keyword type="macro" name="IBUS_Zenkaku_Hankaku" link="ibus-ibuskeysyms-compat.html#IBUS-Zenkaku-Hankaku"/>
+    <keyword type="macro" name="IBUS_Touroku" link="ibus-ibuskeysyms-compat.html#IBUS-Touroku"/>
+    <keyword type="macro" name="IBUS_Massyo" link="ibus-ibuskeysyms-compat.html#IBUS-Massyo"/>
+    <keyword type="macro" name="IBUS_Kana_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-Kana-Lock"/>
+    <keyword type="macro" name="IBUS_Kana_Shift" link="ibus-ibuskeysyms-compat.html#IBUS-Kana-Shift"/>
+    <keyword type="macro" name="IBUS_Eisu_Shift" link="ibus-ibuskeysyms-compat.html#IBUS-Eisu-Shift"/>
+    <keyword type="macro" name="IBUS_Eisu_toggle" link="ibus-ibuskeysyms-compat.html#IBUS-Eisu-toggle"/>
+    <keyword type="macro" name="IBUS_Kanji_Bangou" link="ibus-ibuskeysyms-compat.html#IBUS-Kanji-Bangou"/>
+    <keyword type="macro" name="IBUS_Zen_Koho" link="ibus-ibuskeysyms-compat.html#IBUS-Zen-Koho"/>
+    <keyword type="macro" name="IBUS_Mae_Koho" link="ibus-ibuskeysyms-compat.html#IBUS-Mae-Koho"/>
+    <keyword type="macro" name="IBUS_Home" link="ibus-ibuskeysyms-compat.html#IBUS-Home"/>
+    <keyword type="macro" name="IBUS_Left" link="ibus-ibuskeysyms-compat.html#IBUS-Left"/>
+    <keyword type="macro" name="IBUS_Up" link="ibus-ibuskeysyms-compat.html#IBUS-Up"/>
+    <keyword type="macro" name="IBUS_Right" link="ibus-ibuskeysyms-compat.html#IBUS-Right"/>
+    <keyword type="macro" name="IBUS_Down" link="ibus-ibuskeysyms-compat.html#IBUS-Down"/>
+    <keyword type="macro" name="IBUS_Prior" link="ibus-ibuskeysyms-compat.html#IBUS-Prior"/>
+    <keyword type="macro" name="IBUS_Page_Up" link="ibus-ibuskeysyms-compat.html#IBUS-Page-Up"/>
+    <keyword type="macro" name="IBUS_Next" link="ibus-ibuskeysyms-compat.html#IBUS-Next"/>
+    <keyword type="macro" name="IBUS_Page_Down" link="ibus-ibuskeysyms-compat.html#IBUS-Page-Down"/>
+    <keyword type="macro" name="IBUS_End" link="ibus-ibuskeysyms-compat.html#IBUS-End"/>
+    <keyword type="macro" name="IBUS_Begin" link="ibus-ibuskeysyms-compat.html#IBUS-Begin"/>
+    <keyword type="macro" name="IBUS_Select" link="ibus-ibuskeysyms-compat.html#IBUS-Select"/>
+    <keyword type="macro" name="IBUS_Print" link="ibus-ibuskeysyms-compat.html#IBUS-Print"/>
+    <keyword type="macro" name="IBUS_Execute" link="ibus-ibuskeysyms-compat.html#IBUS-Execute"/>
+    <keyword type="macro" name="IBUS_Insert" link="ibus-ibuskeysyms-compat.html#IBUS-Insert"/>
+    <keyword type="macro" name="IBUS_Undo" link="ibus-ibuskeysyms-compat.html#IBUS-Undo"/>
+    <keyword type="macro" name="IBUS_Redo" link="ibus-ibuskeysyms-compat.html#IBUS-Redo"/>
+    <keyword type="macro" name="IBUS_Menu" link="ibus-ibuskeysyms-compat.html#IBUS-Menu"/>
+    <keyword type="macro" name="IBUS_Find" link="ibus-ibuskeysyms-compat.html#IBUS-Find"/>
+    <keyword type="macro" name="IBUS_Cancel" link="ibus-ibuskeysyms-compat.html#IBUS-Cancel"/>
+    <keyword type="macro" name="IBUS_Help" link="ibus-ibuskeysyms-compat.html#IBUS-Help"/>
+    <keyword type="macro" name="IBUS_Break" link="ibus-ibuskeysyms-compat.html#IBUS-Break"/>
+    <keyword type="macro" name="IBUS_Mode_switch" link="ibus-ibuskeysyms-compat.html#IBUS-Mode-switch"/>
+    <keyword type="macro" name="IBUS_script_switch" link="ibus-ibuskeysyms-compat.html#IBUS-script-switch"/>
+    <keyword type="macro" name="IBUS_Num_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-Num-Lock"/>
+    <keyword type="macro" name="IBUS_KP_Space" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Space"/>
+    <keyword type="macro" name="IBUS_KP_Tab" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Tab"/>
+    <keyword type="macro" name="IBUS_KP_Enter" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Enter"/>
+    <keyword type="macro" name="IBUS_KP_F1" link="ibus-ibuskeysyms-compat.html#IBUS-KP-F1:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_F2" link="ibus-ibuskeysyms-compat.html#IBUS-KP-F2:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_F3" link="ibus-ibuskeysyms-compat.html#IBUS-KP-F3:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_F4" link="ibus-ibuskeysyms-compat.html#IBUS-KP-F4:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_Home" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Home"/>
+    <keyword type="macro" name="IBUS_KP_Left" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Left"/>
+    <keyword type="macro" name="IBUS_KP_Up" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Up"/>
+    <keyword type="macro" name="IBUS_KP_Right" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Right"/>
+    <keyword type="macro" name="IBUS_KP_Down" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Down"/>
+    <keyword type="macro" name="IBUS_KP_Prior" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Prior"/>
+    <keyword type="macro" name="IBUS_KP_Page_Up" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Page-Up"/>
+    <keyword type="macro" name="IBUS_KP_Next" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Next"/>
+    <keyword type="macro" name="IBUS_KP_Page_Down" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Page-Down"/>
+    <keyword type="macro" name="IBUS_KP_End" link="ibus-ibuskeysyms-compat.html#IBUS-KP-End"/>
+    <keyword type="macro" name="IBUS_KP_Begin" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Begin"/>
+    <keyword type="macro" name="IBUS_KP_Insert" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Insert"/>
+    <keyword type="macro" name="IBUS_KP_Delete" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Delete"/>
+    <keyword type="macro" name="IBUS_KP_Equal" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Equal"/>
+    <keyword type="macro" name="IBUS_KP_Multiply" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Multiply"/>
+    <keyword type="macro" name="IBUS_KP_Add" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Add"/>
+    <keyword type="macro" name="IBUS_KP_Separator" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Separator"/>
+    <keyword type="macro" name="IBUS_KP_Subtract" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Subtract"/>
+    <keyword type="macro" name="IBUS_KP_Decimal" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Decimal"/>
+    <keyword type="macro" name="IBUS_KP_Divide" link="ibus-ibuskeysyms-compat.html#IBUS-KP-Divide"/>
+    <keyword type="macro" name="IBUS_KP_0" link="ibus-ibuskeysyms-compat.html#IBUS-KP-0:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_1" link="ibus-ibuskeysyms-compat.html#IBUS-KP-1:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_2" link="ibus-ibuskeysyms-compat.html#IBUS-KP-2:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_3" link="ibus-ibuskeysyms-compat.html#IBUS-KP-3:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_4" link="ibus-ibuskeysyms-compat.html#IBUS-KP-4:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_5" link="ibus-ibuskeysyms-compat.html#IBUS-KP-5:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_6" link="ibus-ibuskeysyms-compat.html#IBUS-KP-6:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_7" link="ibus-ibuskeysyms-compat.html#IBUS-KP-7:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_8" link="ibus-ibuskeysyms-compat.html#IBUS-KP-8:CAPS"/>
+    <keyword type="macro" name="IBUS_KP_9" link="ibus-ibuskeysyms-compat.html#IBUS-KP-9:CAPS"/>
+    <keyword type="macro" name="IBUS_F1" link="ibus-ibuskeysyms-compat.html#IBUS-F1:CAPS"/>
+    <keyword type="macro" name="IBUS_F2" link="ibus-ibuskeysyms-compat.html#IBUS-F2:CAPS"/>
+    <keyword type="macro" name="IBUS_F3" link="ibus-ibuskeysyms-compat.html#IBUS-F3:CAPS"/>
+    <keyword type="macro" name="IBUS_F4" link="ibus-ibuskeysyms-compat.html#IBUS-F4:CAPS"/>
+    <keyword type="macro" name="IBUS_F5" link="ibus-ibuskeysyms-compat.html#IBUS-F5:CAPS"/>
+    <keyword type="macro" name="IBUS_F6" link="ibus-ibuskeysyms-compat.html#IBUS-F6:CAPS"/>
+    <keyword type="macro" name="IBUS_F7" link="ibus-ibuskeysyms-compat.html#IBUS-F7:CAPS"/>
+    <keyword type="macro" name="IBUS_F8" link="ibus-ibuskeysyms-compat.html#IBUS-F8:CAPS"/>
+    <keyword type="macro" name="IBUS_F9" link="ibus-ibuskeysyms-compat.html#IBUS-F9:CAPS"/>
+    <keyword type="macro" name="IBUS_F10" link="ibus-ibuskeysyms-compat.html#IBUS-F10:CAPS"/>
+    <keyword type="macro" name="IBUS_F11" link="ibus-ibuskeysyms-compat.html#IBUS-F11:CAPS"/>
+    <keyword type="macro" name="IBUS_L1" link="ibus-ibuskeysyms-compat.html#IBUS-L1:CAPS"/>
+    <keyword type="macro" name="IBUS_F12" link="ibus-ibuskeysyms-compat.html#IBUS-F12:CAPS"/>
+    <keyword type="macro" name="IBUS_L2" link="ibus-ibuskeysyms-compat.html#IBUS-L2:CAPS"/>
+    <keyword type="macro" name="IBUS_F13" link="ibus-ibuskeysyms-compat.html#IBUS-F13:CAPS"/>
+    <keyword type="macro" name="IBUS_L3" link="ibus-ibuskeysyms-compat.html#IBUS-L3:CAPS"/>
+    <keyword type="macro" name="IBUS_F14" link="ibus-ibuskeysyms-compat.html#IBUS-F14:CAPS"/>
+    <keyword type="macro" name="IBUS_L4" link="ibus-ibuskeysyms-compat.html#IBUS-L4:CAPS"/>
+    <keyword type="macro" name="IBUS_F15" link="ibus-ibuskeysyms-compat.html#IBUS-F15:CAPS"/>
+    <keyword type="macro" name="IBUS_L5" link="ibus-ibuskeysyms-compat.html#IBUS-L5:CAPS"/>
+    <keyword type="macro" name="IBUS_F16" link="ibus-ibuskeysyms-compat.html#IBUS-F16:CAPS"/>
+    <keyword type="macro" name="IBUS_L6" link="ibus-ibuskeysyms-compat.html#IBUS-L6:CAPS"/>
+    <keyword type="macro" name="IBUS_F17" link="ibus-ibuskeysyms-compat.html#IBUS-F17:CAPS"/>
+    <keyword type="macro" name="IBUS_L7" link="ibus-ibuskeysyms-compat.html#IBUS-L7:CAPS"/>
+    <keyword type="macro" name="IBUS_F18" link="ibus-ibuskeysyms-compat.html#IBUS-F18:CAPS"/>
+    <keyword type="macro" name="IBUS_L8" link="ibus-ibuskeysyms-compat.html#IBUS-L8:CAPS"/>
+    <keyword type="macro" name="IBUS_F19" link="ibus-ibuskeysyms-compat.html#IBUS-F19:CAPS"/>
+    <keyword type="macro" name="IBUS_L9" link="ibus-ibuskeysyms-compat.html#IBUS-L9:CAPS"/>
+    <keyword type="macro" name="IBUS_F20" link="ibus-ibuskeysyms-compat.html#IBUS-F20:CAPS"/>
+    <keyword type="macro" name="IBUS_L10" link="ibus-ibuskeysyms-compat.html#IBUS-L10:CAPS"/>
+    <keyword type="macro" name="IBUS_F21" link="ibus-ibuskeysyms-compat.html#IBUS-F21:CAPS"/>
+    <keyword type="macro" name="IBUS_R1" link="ibus-ibuskeysyms-compat.html#IBUS-R1:CAPS"/>
+    <keyword type="macro" name="IBUS_F22" link="ibus-ibuskeysyms-compat.html#IBUS-F22:CAPS"/>
+    <keyword type="macro" name="IBUS_R2" link="ibus-ibuskeysyms-compat.html#IBUS-R2:CAPS"/>
+    <keyword type="macro" name="IBUS_F23" link="ibus-ibuskeysyms-compat.html#IBUS-F23:CAPS"/>
+    <keyword type="macro" name="IBUS_R3" link="ibus-ibuskeysyms-compat.html#IBUS-R3:CAPS"/>
+    <keyword type="macro" name="IBUS_F24" link="ibus-ibuskeysyms-compat.html#IBUS-F24:CAPS"/>
+    <keyword type="macro" name="IBUS_R4" link="ibus-ibuskeysyms-compat.html#IBUS-R4:CAPS"/>
+    <keyword type="macro" name="IBUS_F25" link="ibus-ibuskeysyms-compat.html#IBUS-F25:CAPS"/>
+    <keyword type="macro" name="IBUS_R5" link="ibus-ibuskeysyms-compat.html#IBUS-R5:CAPS"/>
+    <keyword type="macro" name="IBUS_F26" link="ibus-ibuskeysyms-compat.html#IBUS-F26:CAPS"/>
+    <keyword type="macro" name="IBUS_R6" link="ibus-ibuskeysyms-compat.html#IBUS-R6:CAPS"/>
+    <keyword type="macro" name="IBUS_F27" link="ibus-ibuskeysyms-compat.html#IBUS-F27:CAPS"/>
+    <keyword type="macro" name="IBUS_R7" link="ibus-ibuskeysyms-compat.html#IBUS-R7:CAPS"/>
+    <keyword type="macro" name="IBUS_F28" link="ibus-ibuskeysyms-compat.html#IBUS-F28:CAPS"/>
+    <keyword type="macro" name="IBUS_R8" link="ibus-ibuskeysyms-compat.html#IBUS-R8:CAPS"/>
+    <keyword type="macro" name="IBUS_F29" link="ibus-ibuskeysyms-compat.html#IBUS-F29:CAPS"/>
+    <keyword type="macro" name="IBUS_R9" link="ibus-ibuskeysyms-compat.html#IBUS-R9:CAPS"/>
+    <keyword type="macro" name="IBUS_F30" link="ibus-ibuskeysyms-compat.html#IBUS-F30:CAPS"/>
+    <keyword type="macro" name="IBUS_R10" link="ibus-ibuskeysyms-compat.html#IBUS-R10:CAPS"/>
+    <keyword type="macro" name="IBUS_F31" link="ibus-ibuskeysyms-compat.html#IBUS-F31:CAPS"/>
+    <keyword type="macro" name="IBUS_R11" link="ibus-ibuskeysyms-compat.html#IBUS-R11:CAPS"/>
+    <keyword type="macro" name="IBUS_F32" link="ibus-ibuskeysyms-compat.html#IBUS-F32:CAPS"/>
+    <keyword type="macro" name="IBUS_R12" link="ibus-ibuskeysyms-compat.html#IBUS-R12:CAPS"/>
+    <keyword type="macro" name="IBUS_F33" link="ibus-ibuskeysyms-compat.html#IBUS-F33:CAPS"/>
+    <keyword type="macro" name="IBUS_R13" link="ibus-ibuskeysyms-compat.html#IBUS-R13:CAPS"/>
+    <keyword type="macro" name="IBUS_F34" link="ibus-ibuskeysyms-compat.html#IBUS-F34:CAPS"/>
+    <keyword type="macro" name="IBUS_R14" link="ibus-ibuskeysyms-compat.html#IBUS-R14:CAPS"/>
+    <keyword type="macro" name="IBUS_F35" link="ibus-ibuskeysyms-compat.html#IBUS-F35:CAPS"/>
+    <keyword type="macro" name="IBUS_R15" link="ibus-ibuskeysyms-compat.html#IBUS-R15:CAPS"/>
+    <keyword type="macro" name="IBUS_Shift_L" link="ibus-ibuskeysyms-compat.html#IBUS-Shift-L"/>
+    <keyword type="macro" name="IBUS_Shift_R" link="ibus-ibuskeysyms-compat.html#IBUS-Shift-R"/>
+    <keyword type="macro" name="IBUS_Control_L" link="ibus-ibuskeysyms-compat.html#IBUS-Control-L"/>
+    <keyword type="macro" name="IBUS_Control_R" link="ibus-ibuskeysyms-compat.html#IBUS-Control-R"/>
+    <keyword type="macro" name="IBUS_Caps_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-Caps-Lock"/>
+    <keyword type="macro" name="IBUS_Shift_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-Shift-Lock"/>
+    <keyword type="macro" name="IBUS_Meta_L" link="ibus-ibuskeysyms-compat.html#IBUS-Meta-L"/>
+    <keyword type="macro" name="IBUS_Meta_R" link="ibus-ibuskeysyms-compat.html#IBUS-Meta-R"/>
+    <keyword type="macro" name="IBUS_Alt_L" link="ibus-ibuskeysyms-compat.html#IBUS-Alt-L"/>
+    <keyword type="macro" name="IBUS_Alt_R" link="ibus-ibuskeysyms-compat.html#IBUS-Alt-R"/>
+    <keyword type="macro" name="IBUS_Super_L" link="ibus-ibuskeysyms-compat.html#IBUS-Super-L"/>
+    <keyword type="macro" name="IBUS_Super_R" link="ibus-ibuskeysyms-compat.html#IBUS-Super-R"/>
+    <keyword type="macro" name="IBUS_Hyper_L" link="ibus-ibuskeysyms-compat.html#IBUS-Hyper-L"/>
+    <keyword type="macro" name="IBUS_Hyper_R" link="ibus-ibuskeysyms-compat.html#IBUS-Hyper-R"/>
+    <keyword type="macro" name="IBUS_ISO_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Lock"/>
+    <keyword type="macro" name="IBUS_ISO_Level2_Latch" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level2-Latch"/>
+    <keyword type="macro" name="IBUS_ISO_Level3_Shift" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Shift"/>
+    <keyword type="macro" name="IBUS_ISO_Level3_Latch" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Latch"/>
+    <keyword type="macro" name="IBUS_ISO_Level3_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Lock"/>
+    <keyword type="macro" name="IBUS_ISO_Level5_Shift" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Shift"/>
+    <keyword type="macro" name="IBUS_ISO_Level5_Latch" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Latch"/>
+    <keyword type="macro" name="IBUS_ISO_Level5_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Lock"/>
+    <keyword type="macro" name="IBUS_ISO_Group_Shift" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Shift"/>
+    <keyword type="macro" name="IBUS_ISO_Group_Latch" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Latch"/>
+    <keyword type="macro" name="IBUS_ISO_Group_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Lock"/>
+    <keyword type="macro" name="IBUS_ISO_Next_Group" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Next-Group"/>
+    <keyword type="macro" name="IBUS_ISO_Next_Group_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Next-Group-Lock"/>
+    <keyword type="macro" name="IBUS_ISO_Prev_Group" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Prev-Group"/>
+    <keyword type="macro" name="IBUS_ISO_Prev_Group_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Prev-Group-Lock"/>
+    <keyword type="macro" name="IBUS_ISO_First_Group" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-First-Group"/>
+    <keyword type="macro" name="IBUS_ISO_First_Group_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-First-Group-Lock"/>
+    <keyword type="macro" name="IBUS_ISO_Last_Group" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Last-Group"/>
+    <keyword type="macro" name="IBUS_ISO_Last_Group_Lock" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Last-Group-Lock"/>
+    <keyword type="macro" name="IBUS_ISO_Left_Tab" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Left-Tab"/>
+    <keyword type="macro" name="IBUS_ISO_Move_Line_Up" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Move-Line-Up"/>
+    <keyword type="macro" name="IBUS_ISO_Move_Line_Down" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Move-Line-Down"/>
+    <keyword type="macro" name="IBUS_ISO_Partial_Line_Up" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Line-Up"/>
+    <keyword type="macro" name="IBUS_ISO_Partial_Line_Down" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Line-Down"/>
+    <keyword type="macro" name="IBUS_ISO_Partial_Space_Left" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Space-Left"/>
+    <keyword type="macro" name="IBUS_ISO_Partial_Space_Right" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Space-Right"/>
+    <keyword type="macro" name="IBUS_ISO_Set_Margin_Left" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Set-Margin-Left"/>
+    <keyword type="macro" name="IBUS_ISO_Set_Margin_Right" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Set-Margin-Right"/>
+    <keyword type="macro" name="IBUS_ISO_Release_Margin_Left" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Margin-Left"/>
+    <keyword type="macro" name="IBUS_ISO_Release_Margin_Right" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Margin-Right"/>
+    <keyword type="macro" name="IBUS_ISO_Release_Both_Margins" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Both-Margins"/>
+    <keyword type="macro" name="IBUS_ISO_Fast_Cursor_Left" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Left"/>
+    <keyword type="macro" name="IBUS_ISO_Fast_Cursor_Right" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Right"/>
+    <keyword type="macro" name="IBUS_ISO_Fast_Cursor_Up" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Up"/>
+    <keyword type="macro" name="IBUS_ISO_Fast_Cursor_Down" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Down"/>
+    <keyword type="macro" name="IBUS_ISO_Continuous_Underline" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Continuous-Underline"/>
+    <keyword type="macro" name="IBUS_ISO_Discontinuous_Underline" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Discontinuous-Underline"/>
+    <keyword type="macro" name="IBUS_ISO_Emphasize" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Emphasize"/>
+    <keyword type="macro" name="IBUS_ISO_Center_Object" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Center-Object"/>
+    <keyword type="macro" name="IBUS_ISO_Enter" link="ibus-ibuskeysyms-compat.html#IBUS-ISO-Enter"/>
+    <keyword type="macro" name="IBUS_dead_grave" link="ibus-ibuskeysyms-compat.html#IBUS-dead-grave"/>
+    <keyword type="macro" name="IBUS_dead_acute" link="ibus-ibuskeysyms-compat.html#IBUS-dead-acute"/>
+    <keyword type="macro" name="IBUS_dead_circumflex" link="ibus-ibuskeysyms-compat.html#IBUS-dead-circumflex"/>
+    <keyword type="macro" name="IBUS_dead_tilde" link="ibus-ibuskeysyms-compat.html#IBUS-dead-tilde"/>
+    <keyword type="macro" name="IBUS_dead_perispomeni" link="ibus-ibuskeysyms-compat.html#IBUS-dead-perispomeni"/>
+    <keyword type="macro" name="IBUS_dead_macron" link="ibus-ibuskeysyms-compat.html#IBUS-dead-macron"/>
+    <keyword type="macro" name="IBUS_dead_breve" link="ibus-ibuskeysyms-compat.html#IBUS-dead-breve"/>
+    <keyword type="macro" name="IBUS_dead_abovedot" link="ibus-ibuskeysyms-compat.html#IBUS-dead-abovedot"/>
+    <keyword type="macro" name="IBUS_dead_diaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-dead-diaeresis"/>
+    <keyword type="macro" name="IBUS_dead_abovering" link="ibus-ibuskeysyms-compat.html#IBUS-dead-abovering"/>
+    <keyword type="macro" name="IBUS_dead_doubleacute" link="ibus-ibuskeysyms-compat.html#IBUS-dead-doubleacute"/>
+    <keyword type="macro" name="IBUS_dead_caron" link="ibus-ibuskeysyms-compat.html#IBUS-dead-caron"/>
+    <keyword type="macro" name="IBUS_dead_cedilla" link="ibus-ibuskeysyms-compat.html#IBUS-dead-cedilla"/>
+    <keyword type="macro" name="IBUS_dead_ogonek" link="ibus-ibuskeysyms-compat.html#IBUS-dead-ogonek"/>
+    <keyword type="macro" name="IBUS_dead_iota" link="ibus-ibuskeysyms-compat.html#IBUS-dead-iota"/>
+    <keyword type="macro" name="IBUS_dead_voiced_sound" link="ibus-ibuskeysyms-compat.html#IBUS-dead-voiced-sound"/>
+    <keyword type="macro" name="IBUS_dead_semivoiced_sound" link="ibus-ibuskeysyms-compat.html#IBUS-dead-semivoiced-sound"/>
+    <keyword type="macro" name="IBUS_dead_belowdot" link="ibus-ibuskeysyms-compat.html#IBUS-dead-belowdot"/>
+    <keyword type="macro" name="IBUS_dead_hook" link="ibus-ibuskeysyms-compat.html#IBUS-dead-hook"/>
+    <keyword type="macro" name="IBUS_dead_horn" link="ibus-ibuskeysyms-compat.html#IBUS-dead-horn"/>
+    <keyword type="macro" name="IBUS_dead_stroke" link="ibus-ibuskeysyms-compat.html#IBUS-dead-stroke"/>
+    <keyword type="macro" name="IBUS_dead_abovecomma" link="ibus-ibuskeysyms-compat.html#IBUS-dead-abovecomma"/>
+    <keyword type="macro" name="IBUS_dead_psili" link="ibus-ibuskeysyms-compat.html#IBUS-dead-psili"/>
+    <keyword type="macro" name="IBUS_dead_abovereversedcomma" link="ibus-ibuskeysyms-compat.html#IBUS-dead-abovereversedcomma"/>
+    <keyword type="macro" name="IBUS_dead_dasia" link="ibus-ibuskeysyms-compat.html#IBUS-dead-dasia"/>
+    <keyword type="macro" name="IBUS_dead_belowring" link="ibus-ibuskeysyms-compat.html#IBUS-dead-belowring"/>
+    <keyword type="macro" name="IBUS_dead_belowmacron" link="ibus-ibuskeysyms-compat.html#IBUS-dead-belowmacron"/>
+    <keyword type="macro" name="IBUS_dead_belowcircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-dead-belowcircumflex"/>
+    <keyword type="macro" name="IBUS_dead_belowtilde" link="ibus-ibuskeysyms-compat.html#IBUS-dead-belowtilde"/>
+    <keyword type="macro" name="IBUS_dead_belowbreve" link="ibus-ibuskeysyms-compat.html#IBUS-dead-belowbreve"/>
+    <keyword type="macro" name="IBUS_dead_belowdiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-dead-belowdiaeresis"/>
+    <keyword type="macro" name="IBUS_First_Virtual_Screen" link="ibus-ibuskeysyms-compat.html#IBUS-First-Virtual-Screen"/>
+    <keyword type="macro" name="IBUS_Prev_Virtual_Screen" link="ibus-ibuskeysyms-compat.html#IBUS-Prev-Virtual-Screen"/>
+    <keyword type="macro" name="IBUS_Next_Virtual_Screen" link="ibus-ibuskeysyms-compat.html#IBUS-Next-Virtual-Screen"/>
+    <keyword type="macro" name="IBUS_Last_Virtual_Screen" link="ibus-ibuskeysyms-compat.html#IBUS-Last-Virtual-Screen"/>
+    <keyword type="macro" name="IBUS_Terminate_Server" link="ibus-ibuskeysyms-compat.html#IBUS-Terminate-Server"/>
+    <keyword type="macro" name="IBUS_AccessX_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-AccessX-Enable"/>
+    <keyword type="macro" name="IBUS_AccessX_Feedback_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-AccessX-Feedback-Enable"/>
+    <keyword type="macro" name="IBUS_RepeatKeys_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-RepeatKeys-Enable"/>
+    <keyword type="macro" name="IBUS_SlowKeys_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-SlowKeys-Enable"/>
+    <keyword type="macro" name="IBUS_BounceKeys_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-BounceKeys-Enable"/>
+    <keyword type="macro" name="IBUS_StickyKeys_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-StickyKeys-Enable"/>
+    <keyword type="macro" name="IBUS_MouseKeys_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-MouseKeys-Enable"/>
+    <keyword type="macro" name="IBUS_MouseKeys_Accel_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-MouseKeys-Accel-Enable"/>
+    <keyword type="macro" name="IBUS_Overlay1_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-Overlay1-Enable"/>
+    <keyword type="macro" name="IBUS_Overlay2_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-Overlay2-Enable"/>
+    <keyword type="macro" name="IBUS_AudibleBell_Enable" link="ibus-ibuskeysyms-compat.html#IBUS-AudibleBell-Enable"/>
+    <keyword type="macro" name="IBUS_Pointer_Left" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Left"/>
+    <keyword type="macro" name="IBUS_Pointer_Right" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Right"/>
+    <keyword type="macro" name="IBUS_Pointer_Up" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Up"/>
+    <keyword type="macro" name="IBUS_Pointer_Down" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Down"/>
+    <keyword type="macro" name="IBUS_Pointer_UpLeft" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-UpLeft"/>
+    <keyword type="macro" name="IBUS_Pointer_UpRight" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-UpRight"/>
+    <keyword type="macro" name="IBUS_Pointer_DownLeft" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DownLeft"/>
+    <keyword type="macro" name="IBUS_Pointer_DownRight" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DownRight"/>
+    <keyword type="macro" name="IBUS_Pointer_Button_Dflt" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button-Dflt"/>
+    <keyword type="macro" name="IBUS_Pointer_Button1" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button1"/>
+    <keyword type="macro" name="IBUS_Pointer_Button2" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button2"/>
+    <keyword type="macro" name="IBUS_Pointer_Button3" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button3"/>
+    <keyword type="macro" name="IBUS_Pointer_Button4" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button4"/>
+    <keyword type="macro" name="IBUS_Pointer_Button5" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button5"/>
+    <keyword type="macro" name="IBUS_Pointer_DblClick_Dflt" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick-Dflt"/>
+    <keyword type="macro" name="IBUS_Pointer_DblClick1" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick1"/>
+    <keyword type="macro" name="IBUS_Pointer_DblClick2" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick2"/>
+    <keyword type="macro" name="IBUS_Pointer_DblClick3" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick3"/>
+    <keyword type="macro" name="IBUS_Pointer_DblClick4" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick4"/>
+    <keyword type="macro" name="IBUS_Pointer_DblClick5" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick5"/>
+    <keyword type="macro" name="IBUS_Pointer_Drag_Dflt" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag-Dflt"/>
+    <keyword type="macro" name="IBUS_Pointer_Drag1" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag1"/>
+    <keyword type="macro" name="IBUS_Pointer_Drag2" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag2"/>
+    <keyword type="macro" name="IBUS_Pointer_Drag3" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag3"/>
+    <keyword type="macro" name="IBUS_Pointer_Drag4" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag4"/>
+    <keyword type="macro" name="IBUS_Pointer_Drag5" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag5"/>
+    <keyword type="macro" name="IBUS_Pointer_EnableKeys" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-EnableKeys"/>
+    <keyword type="macro" name="IBUS_Pointer_Accelerate" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-Accelerate"/>
+    <keyword type="macro" name="IBUS_Pointer_DfltBtnNext" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DfltBtnNext"/>
+    <keyword type="macro" name="IBUS_Pointer_DfltBtnPrev" link="ibus-ibuskeysyms-compat.html#IBUS-Pointer-DfltBtnPrev"/>
+    <keyword type="macro" name="IBUS_3270_Duplicate" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Duplicate"/>
+    <keyword type="macro" name="IBUS_3270_FieldMark" link="ibus-ibuskeysyms-compat.html#IBUS-3270-FieldMark"/>
+    <keyword type="macro" name="IBUS_3270_Right2" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Right2"/>
+    <keyword type="macro" name="IBUS_3270_Left2" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Left2"/>
+    <keyword type="macro" name="IBUS_3270_BackTab" link="ibus-ibuskeysyms-compat.html#IBUS-3270-BackTab"/>
+    <keyword type="macro" name="IBUS_3270_EraseEOF" link="ibus-ibuskeysyms-compat.html#IBUS-3270-EraseEOF"/>
+    <keyword type="macro" name="IBUS_3270_EraseInput" link="ibus-ibuskeysyms-compat.html#IBUS-3270-EraseInput"/>
+    <keyword type="macro" name="IBUS_3270_Reset" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Reset"/>
+    <keyword type="macro" name="IBUS_3270_Quit" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Quit"/>
+    <keyword type="macro" name="IBUS_3270_PA1" link="ibus-ibuskeysyms-compat.html#IBUS-3270-PA1:CAPS"/>
+    <keyword type="macro" name="IBUS_3270_PA2" link="ibus-ibuskeysyms-compat.html#IBUS-3270-PA2:CAPS"/>
+    <keyword type="macro" name="IBUS_3270_PA3" link="ibus-ibuskeysyms-compat.html#IBUS-3270-PA3:CAPS"/>
+    <keyword type="macro" name="IBUS_3270_Test" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Test"/>
+    <keyword type="macro" name="IBUS_3270_Attn" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Attn"/>
+    <keyword type="macro" name="IBUS_3270_CursorBlink" link="ibus-ibuskeysyms-compat.html#IBUS-3270-CursorBlink"/>
+    <keyword type="macro" name="IBUS_3270_AltCursor" link="ibus-ibuskeysyms-compat.html#IBUS-3270-AltCursor"/>
+    <keyword type="macro" name="IBUS_3270_KeyClick" link="ibus-ibuskeysyms-compat.html#IBUS-3270-KeyClick"/>
+    <keyword type="macro" name="IBUS_3270_Jump" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Jump"/>
+    <keyword type="macro" name="IBUS_3270_Ident" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Ident"/>
+    <keyword type="macro" name="IBUS_3270_Rule" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Rule"/>
+    <keyword type="macro" name="IBUS_3270_Copy" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Copy"/>
+    <keyword type="macro" name="IBUS_3270_Play" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Play"/>
+    <keyword type="macro" name="IBUS_3270_Setup" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Setup"/>
+    <keyword type="macro" name="IBUS_3270_Record" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Record"/>
+    <keyword type="macro" name="IBUS_3270_ChangeScreen" link="ibus-ibuskeysyms-compat.html#IBUS-3270-ChangeScreen"/>
+    <keyword type="macro" name="IBUS_3270_DeleteWord" link="ibus-ibuskeysyms-compat.html#IBUS-3270-DeleteWord"/>
+    <keyword type="macro" name="IBUS_3270_ExSelect" link="ibus-ibuskeysyms-compat.html#IBUS-3270-ExSelect"/>
+    <keyword type="macro" name="IBUS_3270_CursorSelect" link="ibus-ibuskeysyms-compat.html#IBUS-3270-CursorSelect"/>
+    <keyword type="macro" name="IBUS_3270_PrintScreen" link="ibus-ibuskeysyms-compat.html#IBUS-3270-PrintScreen"/>
+    <keyword type="macro" name="IBUS_3270_Enter" link="ibus-ibuskeysyms-compat.html#IBUS-3270-Enter"/>
+    <keyword type="macro" name="IBUS_space" link="ibus-ibuskeysyms-compat.html#IBUS-space"/>
+    <keyword type="macro" name="IBUS_exclam" link="ibus-ibuskeysyms-compat.html#IBUS-exclam"/>
+    <keyword type="macro" name="IBUS_quotedbl" link="ibus-ibuskeysyms-compat.html#IBUS-quotedbl"/>
+    <keyword type="macro" name="IBUS_numbersign" link="ibus-ibuskeysyms-compat.html#IBUS-numbersign"/>
+    <keyword type="macro" name="IBUS_dollar" link="ibus-ibuskeysyms-compat.html#IBUS-dollar"/>
+    <keyword type="macro" name="IBUS_percent" link="ibus-ibuskeysyms-compat.html#IBUS-percent"/>
+    <keyword type="macro" name="IBUS_ampersand" link="ibus-ibuskeysyms-compat.html#IBUS-ampersand"/>
+    <keyword type="macro" name="IBUS_apostrophe" link="ibus-ibuskeysyms-compat.html#IBUS-apostrophe"/>
+    <keyword type="macro" name="IBUS_quoteright" link="ibus-ibuskeysyms-compat.html#IBUS-quoteright"/>
+    <keyword type="macro" name="IBUS_parenleft" link="ibus-ibuskeysyms-compat.html#IBUS-parenleft"/>
+    <keyword type="macro" name="IBUS_parenright" link="ibus-ibuskeysyms-compat.html#IBUS-parenright"/>
+    <keyword type="macro" name="IBUS_asterisk" link="ibus-ibuskeysyms-compat.html#IBUS-asterisk"/>
+    <keyword type="macro" name="IBUS_plus" link="ibus-ibuskeysyms-compat.html#IBUS-plus"/>
+    <keyword type="macro" name="IBUS_comma" link="ibus-ibuskeysyms-compat.html#IBUS-comma"/>
+    <keyword type="macro" name="IBUS_minus" link="ibus-ibuskeysyms-compat.html#IBUS-minus"/>
+    <keyword type="macro" name="IBUS_period" link="ibus-ibuskeysyms-compat.html#IBUS-period"/>
+    <keyword type="macro" name="IBUS_slash" link="ibus-ibuskeysyms-compat.html#IBUS-slash"/>
+    <keyword type="macro" name="IBUS_0" link="ibus-ibuskeysyms-compat.html#IBUS-0:CAPS"/>
+    <keyword type="macro" name="IBUS_1" link="ibus-ibuskeysyms-compat.html#IBUS-1:CAPS"/>
+    <keyword type="macro" name="IBUS_2" link="ibus-ibuskeysyms-compat.html#IBUS-2:CAPS"/>
+    <keyword type="macro" name="IBUS_3" link="ibus-ibuskeysyms-compat.html#IBUS-3:CAPS"/>
+    <keyword type="macro" name="IBUS_4" link="ibus-ibuskeysyms-compat.html#IBUS-4:CAPS"/>
+    <keyword type="macro" name="IBUS_5" link="ibus-ibuskeysyms-compat.html#IBUS-5:CAPS"/>
+    <keyword type="macro" name="IBUS_6" link="ibus-ibuskeysyms-compat.html#IBUS-6:CAPS"/>
+    <keyword type="macro" name="IBUS_7" link="ibus-ibuskeysyms-compat.html#IBUS-7:CAPS"/>
+    <keyword type="macro" name="IBUS_8" link="ibus-ibuskeysyms-compat.html#IBUS-8:CAPS"/>
+    <keyword type="macro" name="IBUS_9" link="ibus-ibuskeysyms-compat.html#IBUS-9:CAPS"/>
+    <keyword type="macro" name="IBUS_colon" link="ibus-ibuskeysyms-compat.html#IBUS-colon"/>
+    <keyword type="macro" name="IBUS_semicolon" link="ibus-ibuskeysyms-compat.html#IBUS-semicolon"/>
+    <keyword type="macro" name="IBUS_less" link="ibus-ibuskeysyms-compat.html#IBUS-less"/>
+    <keyword type="macro" name="IBUS_equal" link="ibus-ibuskeysyms-compat.html#IBUS-equal"/>
+    <keyword type="macro" name="IBUS_greater" link="ibus-ibuskeysyms-compat.html#IBUS-greater"/>
+    <keyword type="macro" name="IBUS_question" link="ibus-ibuskeysyms-compat.html#IBUS-question"/>
+    <keyword type="macro" name="IBUS_at" link="ibus-ibuskeysyms-compat.html#IBUS-at"/>
+    <keyword type="macro" name="IBUS_A" link="ibus-ibuskeysyms-compat.html#IBUS-A:CAPS"/>
+    <keyword type="macro" name="IBUS_B" link="ibus-ibuskeysyms-compat.html#IBUS-B:CAPS"/>
+    <keyword type="macro" name="IBUS_C" link="ibus-ibuskeysyms-compat.html#IBUS-C:CAPS"/>
+    <keyword type="macro" name="IBUS_D" link="ibus-ibuskeysyms-compat.html#IBUS-D:CAPS"/>
+    <keyword type="macro" name="IBUS_E" link="ibus-ibuskeysyms-compat.html#IBUS-E:CAPS"/>
+    <keyword type="macro" name="IBUS_F" link="ibus-ibuskeysyms-compat.html#IBUS-F:CAPS"/>
+    <keyword type="macro" name="IBUS_G" link="ibus-ibuskeysyms-compat.html#IBUS-G:CAPS"/>
+    <keyword type="macro" name="IBUS_H" link="ibus-ibuskeysyms-compat.html#IBUS-H:CAPS"/>
+    <keyword type="macro" name="IBUS_I" link="ibus-ibuskeysyms-compat.html#IBUS-I:CAPS"/>
+    <keyword type="macro" name="IBUS_J" link="ibus-ibuskeysyms-compat.html#IBUS-J:CAPS"/>
+    <keyword type="macro" name="IBUS_K" link="ibus-ibuskeysyms-compat.html#IBUS-K:CAPS"/>
+    <keyword type="macro" name="IBUS_L" link="ibus-ibuskeysyms-compat.html#IBUS-L:CAPS"/>
+    <keyword type="macro" name="IBUS_M" link="ibus-ibuskeysyms-compat.html#IBUS-M:CAPS"/>
+    <keyword type="macro" name="IBUS_N" link="ibus-ibuskeysyms-compat.html#IBUS-N:CAPS"/>
+    <keyword type="macro" name="IBUS_O" link="ibus-ibuskeysyms-compat.html#IBUS-O:CAPS"/>
+    <keyword type="macro" name="IBUS_P" link="ibus-ibuskeysyms-compat.html#IBUS-P:CAPS"/>
+    <keyword type="macro" name="IBUS_Q" link="ibus-ibuskeysyms-compat.html#IBUS-Q:CAPS"/>
+    <keyword type="macro" name="IBUS_R" link="ibus-ibuskeysyms-compat.html#IBUS-R:CAPS"/>
+    <keyword type="macro" name="IBUS_S" link="ibus-ibuskeysyms-compat.html#IBUS-S:CAPS"/>
+    <keyword type="macro" name="IBUS_T" link="ibus-ibuskeysyms-compat.html#IBUS-T:CAPS"/>
+    <keyword type="macro" name="IBUS_U" link="ibus-ibuskeysyms-compat.html#IBUS-U:CAPS"/>
+    <keyword type="macro" name="IBUS_V" link="ibus-ibuskeysyms-compat.html#IBUS-V:CAPS"/>
+    <keyword type="macro" name="IBUS_W" link="ibus-ibuskeysyms-compat.html#IBUS-W:CAPS"/>
+    <keyword type="macro" name="IBUS_X" link="ibus-ibuskeysyms-compat.html#IBUS-X:CAPS"/>
+    <keyword type="macro" name="IBUS_Y" link="ibus-ibuskeysyms-compat.html#IBUS-Y:CAPS"/>
+    <keyword type="macro" name="IBUS_Z" link="ibus-ibuskeysyms-compat.html#IBUS-Z:CAPS"/>
+    <keyword type="macro" name="IBUS_bracketleft" link="ibus-ibuskeysyms-compat.html#IBUS-bracketleft"/>
+    <keyword type="macro" name="IBUS_backslash" link="ibus-ibuskeysyms-compat.html#IBUS-backslash"/>
+    <keyword type="macro" name="IBUS_bracketright" link="ibus-ibuskeysyms-compat.html#IBUS-bracketright"/>
+    <keyword type="macro" name="IBUS_asciicircum" link="ibus-ibuskeysyms-compat.html#IBUS-asciicircum"/>
+    <keyword type="macro" name="IBUS_underscore" link="ibus-ibuskeysyms-compat.html#IBUS-underscore"/>
+    <keyword type="macro" name="IBUS_grave" link="ibus-ibuskeysyms-compat.html#IBUS-grave"/>
+    <keyword type="macro" name="IBUS_quoteleft" link="ibus-ibuskeysyms-compat.html#IBUS-quoteleft"/>
+    <keyword type="macro" name="IBUS_a" link="ibus-ibuskeysyms-compat.html#IBUS-a"/>
+    <keyword type="macro" name="IBUS_b" link="ibus-ibuskeysyms-compat.html#IBUS-b"/>
+    <keyword type="macro" name="IBUS_c" link="ibus-ibuskeysyms-compat.html#IBUS-c"/>
+    <keyword type="macro" name="IBUS_d" link="ibus-ibuskeysyms-compat.html#IBUS-d"/>
+    <keyword type="macro" name="IBUS_e" link="ibus-ibuskeysyms-compat.html#IBUS-e"/>
+    <keyword type="macro" name="IBUS_f" link="ibus-ibuskeysyms-compat.html#IBUS-f"/>
+    <keyword type="macro" name="IBUS_g" link="ibus-ibuskeysyms-compat.html#IBUS-g"/>
+    <keyword type="macro" name="IBUS_h" link="ibus-ibuskeysyms-compat.html#IBUS-h"/>
+    <keyword type="macro" name="IBUS_i" link="ibus-ibuskeysyms-compat.html#IBUS-i"/>
+    <keyword type="macro" name="IBUS_j" link="ibus-ibuskeysyms-compat.html#IBUS-j"/>
+    <keyword type="macro" name="IBUS_k" link="ibus-ibuskeysyms-compat.html#IBUS-k"/>
+    <keyword type="macro" name="IBUS_l" link="ibus-ibuskeysyms-compat.html#IBUS-l"/>
+    <keyword type="macro" name="IBUS_m" link="ibus-ibuskeysyms-compat.html#IBUS-m"/>
+    <keyword type="macro" name="IBUS_n" link="ibus-ibuskeysyms-compat.html#IBUS-n"/>
+    <keyword type="macro" name="IBUS_o" link="ibus-ibuskeysyms-compat.html#IBUS-o"/>
+    <keyword type="macro" name="IBUS_p" link="ibus-ibuskeysyms-compat.html#IBUS-p"/>
+    <keyword type="macro" name="IBUS_q" link="ibus-ibuskeysyms-compat.html#IBUS-q"/>
+    <keyword type="macro" name="IBUS_r" link="ibus-ibuskeysyms-compat.html#IBUS-r"/>
+    <keyword type="macro" name="IBUS_s" link="ibus-ibuskeysyms-compat.html#IBUS-s"/>
+    <keyword type="macro" name="IBUS_t" link="ibus-ibuskeysyms-compat.html#IBUS-t"/>
+    <keyword type="macro" name="IBUS_u" link="ibus-ibuskeysyms-compat.html#IBUS-u"/>
+    <keyword type="macro" name="IBUS_v" link="ibus-ibuskeysyms-compat.html#IBUS-v"/>
+    <keyword type="macro" name="IBUS_w" link="ibus-ibuskeysyms-compat.html#IBUS-w"/>
+    <keyword type="macro" name="IBUS_x" link="ibus-ibuskeysyms-compat.html#IBUS-x"/>
+    <keyword type="macro" name="IBUS_y" link="ibus-ibuskeysyms-compat.html#IBUS-y"/>
+    <keyword type="macro" name="IBUS_z" link="ibus-ibuskeysyms-compat.html#IBUS-z"/>
+    <keyword type="macro" name="IBUS_braceleft" link="ibus-ibuskeysyms-compat.html#IBUS-braceleft"/>
+    <keyword type="macro" name="IBUS_bar" link="ibus-ibuskeysyms-compat.html#IBUS-bar"/>
+    <keyword type="macro" name="IBUS_braceright" link="ibus-ibuskeysyms-compat.html#IBUS-braceright"/>
+    <keyword type="macro" name="IBUS_asciitilde" link="ibus-ibuskeysyms-compat.html#IBUS-asciitilde"/>
+    <keyword type="macro" name="IBUS_nobreakspace" link="ibus-ibuskeysyms-compat.html#IBUS-nobreakspace"/>
+    <keyword type="macro" name="IBUS_exclamdown" link="ibus-ibuskeysyms-compat.html#IBUS-exclamdown"/>
+    <keyword type="macro" name="IBUS_cent" link="ibus-ibuskeysyms-compat.html#IBUS-cent"/>
+    <keyword type="macro" name="IBUS_sterling" link="ibus-ibuskeysyms-compat.html#IBUS-sterling"/>
+    <keyword type="macro" name="IBUS_currency" link="ibus-ibuskeysyms-compat.html#IBUS-currency"/>
+    <keyword type="macro" name="IBUS_yen" link="ibus-ibuskeysyms-compat.html#IBUS-yen"/>
+    <keyword type="macro" name="IBUS_brokenbar" link="ibus-ibuskeysyms-compat.html#IBUS-brokenbar"/>
+    <keyword type="macro" name="IBUS_section" link="ibus-ibuskeysyms-compat.html#IBUS-section"/>
+    <keyword type="macro" name="IBUS_diaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-diaeresis"/>
+    <keyword type="macro" name="IBUS_copyright" link="ibus-ibuskeysyms-compat.html#IBUS-copyright"/>
+    <keyword type="macro" name="IBUS_ordfeminine" link="ibus-ibuskeysyms-compat.html#IBUS-ordfeminine"/>
+    <keyword type="macro" name="IBUS_guillemotleft" link="ibus-ibuskeysyms-compat.html#IBUS-guillemotleft"/>
+    <keyword type="macro" name="IBUS_notsign" link="ibus-ibuskeysyms-compat.html#IBUS-notsign"/>
+    <keyword type="macro" name="IBUS_hyphen" link="ibus-ibuskeysyms-compat.html#IBUS-hyphen"/>
+    <keyword type="macro" name="IBUS_registered" link="ibus-ibuskeysyms-compat.html#IBUS-registered"/>
+    <keyword type="macro" name="IBUS_macron" link="ibus-ibuskeysyms-compat.html#IBUS-macron"/>
+    <keyword type="macro" name="IBUS_degree" link="ibus-ibuskeysyms-compat.html#IBUS-degree"/>
+    <keyword type="macro" name="IBUS_plusminus" link="ibus-ibuskeysyms-compat.html#IBUS-plusminus"/>
+    <keyword type="macro" name="IBUS_twosuperior" link="ibus-ibuskeysyms-compat.html#IBUS-twosuperior"/>
+    <keyword type="macro" name="IBUS_threesuperior" link="ibus-ibuskeysyms-compat.html#IBUS-threesuperior"/>
+    <keyword type="macro" name="IBUS_acute" link="ibus-ibuskeysyms-compat.html#IBUS-acute"/>
+    <keyword type="macro" name="IBUS_mu" link="ibus-ibuskeysyms-compat.html#IBUS-mu"/>
+    <keyword type="macro" name="IBUS_paragraph" link="ibus-ibuskeysyms-compat.html#IBUS-paragraph"/>
+    <keyword type="macro" name="IBUS_periodcentered" link="ibus-ibuskeysyms-compat.html#IBUS-periodcentered"/>
+    <keyword type="macro" name="IBUS_cedilla" link="ibus-ibuskeysyms-compat.html#IBUS-cedilla"/>
+    <keyword type="macro" name="IBUS_onesuperior" link="ibus-ibuskeysyms-compat.html#IBUS-onesuperior"/>
+    <keyword type="macro" name="IBUS_masculine" link="ibus-ibuskeysyms-compat.html#IBUS-masculine"/>
+    <keyword type="macro" name="IBUS_guillemotright" link="ibus-ibuskeysyms-compat.html#IBUS-guillemotright"/>
+    <keyword type="macro" name="IBUS_onequarter" link="ibus-ibuskeysyms-compat.html#IBUS-onequarter"/>
+    <keyword type="macro" name="IBUS_onehalf" link="ibus-ibuskeysyms-compat.html#IBUS-onehalf"/>
+    <keyword type="macro" name="IBUS_threequarters" link="ibus-ibuskeysyms-compat.html#IBUS-threequarters"/>
+    <keyword type="macro" name="IBUS_questiondown" link="ibus-ibuskeysyms-compat.html#IBUS-questiondown"/>
+    <keyword type="macro" name="IBUS_Agrave" link="ibus-ibuskeysyms-compat.html#IBUS-Agrave"/>
+    <keyword type="macro" name="IBUS_Aacute" link="ibus-ibuskeysyms-compat.html#IBUS-Aacute"/>
+    <keyword type="macro" name="IBUS_Acircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Acircumflex"/>
+    <keyword type="macro" name="IBUS_Atilde" link="ibus-ibuskeysyms-compat.html#IBUS-Atilde"/>
+    <keyword type="macro" name="IBUS_Adiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-Adiaeresis"/>
+    <keyword type="macro" name="IBUS_Aring" link="ibus-ibuskeysyms-compat.html#IBUS-Aring"/>
+    <keyword type="macro" name="IBUS_AE" link="ibus-ibuskeysyms-compat.html#IBUS-AE:CAPS"/>
+    <keyword type="macro" name="IBUS_Ccedilla" link="ibus-ibuskeysyms-compat.html#IBUS-Ccedilla"/>
+    <keyword type="macro" name="IBUS_Egrave" link="ibus-ibuskeysyms-compat.html#IBUS-Egrave"/>
+    <keyword type="macro" name="IBUS_Eacute" link="ibus-ibuskeysyms-compat.html#IBUS-Eacute"/>
+    <keyword type="macro" name="IBUS_Ecircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflex"/>
+    <keyword type="macro" name="IBUS_Ediaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-Ediaeresis"/>
+    <keyword type="macro" name="IBUS_Igrave" link="ibus-ibuskeysyms-compat.html#IBUS-Igrave"/>
+    <keyword type="macro" name="IBUS_Iacute" link="ibus-ibuskeysyms-compat.html#IBUS-Iacute"/>
+    <keyword type="macro" name="IBUS_Icircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Icircumflex"/>
+    <keyword type="macro" name="IBUS_Idiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-Idiaeresis"/>
+    <keyword type="macro" name="IBUS_ETH" link="ibus-ibuskeysyms-compat.html#IBUS-ETH:CAPS"/>
+    <keyword type="macro" name="IBUS_Eth" link="ibus-ibuskeysyms-compat.html#IBUS-Eth"/>
+    <keyword type="macro" name="IBUS_Ntilde" link="ibus-ibuskeysyms-compat.html#IBUS-Ntilde"/>
+    <keyword type="macro" name="IBUS_Ograve" link="ibus-ibuskeysyms-compat.html#IBUS-Ograve"/>
+    <keyword type="macro" name="IBUS_Oacute" link="ibus-ibuskeysyms-compat.html#IBUS-Oacute"/>
+    <keyword type="macro" name="IBUS_Ocircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflex"/>
+    <keyword type="macro" name="IBUS_Otilde" link="ibus-ibuskeysyms-compat.html#IBUS-Otilde"/>
+    <keyword type="macro" name="IBUS_Odiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-Odiaeresis"/>
+    <keyword type="macro" name="IBUS_multiply" link="ibus-ibuskeysyms-compat.html#IBUS-multiply"/>
+    <keyword type="macro" name="IBUS_Oslash" link="ibus-ibuskeysyms-compat.html#IBUS-Oslash"/>
+    <keyword type="macro" name="IBUS_Ooblique" link="ibus-ibuskeysyms-compat.html#IBUS-Ooblique"/>
+    <keyword type="macro" name="IBUS_Ugrave" link="ibus-ibuskeysyms-compat.html#IBUS-Ugrave"/>
+    <keyword type="macro" name="IBUS_Uacute" link="ibus-ibuskeysyms-compat.html#IBUS-Uacute"/>
+    <keyword type="macro" name="IBUS_Ucircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Ucircumflex"/>
+    <keyword type="macro" name="IBUS_Udiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-Udiaeresis"/>
+    <keyword type="macro" name="IBUS_Yacute" link="ibus-ibuskeysyms-compat.html#IBUS-Yacute"/>
+    <keyword type="macro" name="IBUS_THORN" link="ibus-ibuskeysyms-compat.html#IBUS-THORN:CAPS"/>
+    <keyword type="macro" name="IBUS_Thorn" link="ibus-ibuskeysyms-compat.html#IBUS-Thorn"/>
+    <keyword type="macro" name="IBUS_ssharp" link="ibus-ibuskeysyms-compat.html#IBUS-ssharp"/>
+    <keyword type="macro" name="IBUS_agrave" link="ibus-ibuskeysyms-compat.html#IBUS-agrave"/>
+    <keyword type="macro" name="IBUS_aacute" link="ibus-ibuskeysyms-compat.html#IBUS-aacute"/>
+    <keyword type="macro" name="IBUS_acircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-acircumflex"/>
+    <keyword type="macro" name="IBUS_atilde" link="ibus-ibuskeysyms-compat.html#IBUS-atilde"/>
+    <keyword type="macro" name="IBUS_adiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-adiaeresis"/>
+    <keyword type="macro" name="IBUS_aring" link="ibus-ibuskeysyms-compat.html#IBUS-aring"/>
+    <keyword type="macro" name="IBUS_ae" link="ibus-ibuskeysyms-compat.html#IBUS-ae"/>
+    <keyword type="macro" name="IBUS_ccedilla" link="ibus-ibuskeysyms-compat.html#IBUS-ccedilla"/>
+    <keyword type="macro" name="IBUS_egrave" link="ibus-ibuskeysyms-compat.html#IBUS-egrave"/>
+    <keyword type="macro" name="IBUS_eacute" link="ibus-ibuskeysyms-compat.html#IBUS-eacute"/>
+    <keyword type="macro" name="IBUS_ecircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-ecircumflex"/>
+    <keyword type="macro" name="IBUS_ediaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-ediaeresis"/>
+    <keyword type="macro" name="IBUS_igrave" link="ibus-ibuskeysyms-compat.html#IBUS-igrave"/>
+    <keyword type="macro" name="IBUS_iacute" link="ibus-ibuskeysyms-compat.html#IBUS-iacute"/>
+    <keyword type="macro" name="IBUS_icircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-icircumflex"/>
+    <keyword type="macro" name="IBUS_idiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-idiaeresis"/>
+    <keyword type="macro" name="IBUS_eth" link="ibus-ibuskeysyms-compat.html#IBUS-eth"/>
+    <keyword type="macro" name="IBUS_ntilde" link="ibus-ibuskeysyms-compat.html#IBUS-ntilde"/>
+    <keyword type="macro" name="IBUS_ograve" link="ibus-ibuskeysyms-compat.html#IBUS-ograve"/>
+    <keyword type="macro" name="IBUS_oacute" link="ibus-ibuskeysyms-compat.html#IBUS-oacute"/>
+    <keyword type="macro" name="IBUS_ocircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-ocircumflex"/>
+    <keyword type="macro" name="IBUS_otilde" link="ibus-ibuskeysyms-compat.html#IBUS-otilde"/>
+    <keyword type="macro" name="IBUS_odiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-odiaeresis"/>
+    <keyword type="macro" name="IBUS_division" link="ibus-ibuskeysyms-compat.html#IBUS-division"/>
+    <keyword type="macro" name="IBUS_oslash" link="ibus-ibuskeysyms-compat.html#IBUS-oslash"/>
+    <keyword type="macro" name="IBUS_ooblique" link="ibus-ibuskeysyms-compat.html#IBUS-ooblique"/>
+    <keyword type="macro" name="IBUS_ugrave" link="ibus-ibuskeysyms-compat.html#IBUS-ugrave"/>
+    <keyword type="macro" name="IBUS_uacute" link="ibus-ibuskeysyms-compat.html#IBUS-uacute"/>
+    <keyword type="macro" name="IBUS_ucircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-ucircumflex"/>
+    <keyword type="macro" name="IBUS_udiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-udiaeresis"/>
+    <keyword type="macro" name="IBUS_yacute" link="ibus-ibuskeysyms-compat.html#IBUS-yacute"/>
+    <keyword type="macro" name="IBUS_thorn" link="ibus-ibuskeysyms-compat.html#IBUS-thorn"/>
+    <keyword type="macro" name="IBUS_ydiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-ydiaeresis"/>
+    <keyword type="macro" name="IBUS_Aogonek" link="ibus-ibuskeysyms-compat.html#IBUS-Aogonek"/>
+    <keyword type="macro" name="IBUS_breve" link="ibus-ibuskeysyms-compat.html#IBUS-breve"/>
+    <keyword type="macro" name="IBUS_Lstroke" link="ibus-ibuskeysyms-compat.html#IBUS-Lstroke"/>
+    <keyword type="macro" name="IBUS_Lcaron" link="ibus-ibuskeysyms-compat.html#IBUS-Lcaron"/>
+    <keyword type="macro" name="IBUS_Sacute" link="ibus-ibuskeysyms-compat.html#IBUS-Sacute"/>
+    <keyword type="macro" name="IBUS_Scaron" link="ibus-ibuskeysyms-compat.html#IBUS-Scaron"/>
+    <keyword type="macro" name="IBUS_Scedilla" link="ibus-ibuskeysyms-compat.html#IBUS-Scedilla"/>
+    <keyword type="macro" name="IBUS_Tcaron" link="ibus-ibuskeysyms-compat.html#IBUS-Tcaron"/>
+    <keyword type="macro" name="IBUS_Zacute" link="ibus-ibuskeysyms-compat.html#IBUS-Zacute"/>
+    <keyword type="macro" name="IBUS_Zcaron" link="ibus-ibuskeysyms-compat.html#IBUS-Zcaron"/>
+    <keyword type="macro" name="IBUS_Zabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Zabovedot"/>
+    <keyword type="macro" name="IBUS_aogonek" link="ibus-ibuskeysyms-compat.html#IBUS-aogonek"/>
+    <keyword type="macro" name="IBUS_ogonek" link="ibus-ibuskeysyms-compat.html#IBUS-ogonek"/>
+    <keyword type="macro" name="IBUS_lstroke" link="ibus-ibuskeysyms-compat.html#IBUS-lstroke"/>
+    <keyword type="macro" name="IBUS_lcaron" link="ibus-ibuskeysyms-compat.html#IBUS-lcaron"/>
+    <keyword type="macro" name="IBUS_sacute" link="ibus-ibuskeysyms-compat.html#IBUS-sacute"/>
+    <keyword type="macro" name="IBUS_caron" link="ibus-ibuskeysyms-compat.html#IBUS-caron"/>
+    <keyword type="macro" name="IBUS_scaron" link="ibus-ibuskeysyms-compat.html#IBUS-scaron"/>
+    <keyword type="macro" name="IBUS_scedilla" link="ibus-ibuskeysyms-compat.html#IBUS-scedilla"/>
+    <keyword type="macro" name="IBUS_tcaron" link="ibus-ibuskeysyms-compat.html#IBUS-tcaron"/>
+    <keyword type="macro" name="IBUS_zacute" link="ibus-ibuskeysyms-compat.html#IBUS-zacute"/>
+    <keyword type="macro" name="IBUS_doubleacute" link="ibus-ibuskeysyms-compat.html#IBUS-doubleacute"/>
+    <keyword type="macro" name="IBUS_zcaron" link="ibus-ibuskeysyms-compat.html#IBUS-zcaron"/>
+    <keyword type="macro" name="IBUS_zabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-zabovedot"/>
+    <keyword type="macro" name="IBUS_Racute" link="ibus-ibuskeysyms-compat.html#IBUS-Racute"/>
+    <keyword type="macro" name="IBUS_Abreve" link="ibus-ibuskeysyms-compat.html#IBUS-Abreve"/>
+    <keyword type="macro" name="IBUS_Lacute" link="ibus-ibuskeysyms-compat.html#IBUS-Lacute"/>
+    <keyword type="macro" name="IBUS_Cacute" link="ibus-ibuskeysyms-compat.html#IBUS-Cacute"/>
+    <keyword type="macro" name="IBUS_Ccaron" link="ibus-ibuskeysyms-compat.html#IBUS-Ccaron"/>
+    <keyword type="macro" name="IBUS_Eogonek" link="ibus-ibuskeysyms-compat.html#IBUS-Eogonek"/>
+    <keyword type="macro" name="IBUS_Ecaron" link="ibus-ibuskeysyms-compat.html#IBUS-Ecaron"/>
+    <keyword type="macro" name="IBUS_Dcaron" link="ibus-ibuskeysyms-compat.html#IBUS-Dcaron"/>
+    <keyword type="macro" name="IBUS_Dstroke" link="ibus-ibuskeysyms-compat.html#IBUS-Dstroke"/>
+    <keyword type="macro" name="IBUS_Nacute" link="ibus-ibuskeysyms-compat.html#IBUS-Nacute"/>
+    <keyword type="macro" name="IBUS_Ncaron" link="ibus-ibuskeysyms-compat.html#IBUS-Ncaron"/>
+    <keyword type="macro" name="IBUS_Odoubleacute" link="ibus-ibuskeysyms-compat.html#IBUS-Odoubleacute"/>
+    <keyword type="macro" name="IBUS_Rcaron" link="ibus-ibuskeysyms-compat.html#IBUS-Rcaron"/>
+    <keyword type="macro" name="IBUS_Uring" link="ibus-ibuskeysyms-compat.html#IBUS-Uring"/>
+    <keyword type="macro" name="IBUS_Udoubleacute" link="ibus-ibuskeysyms-compat.html#IBUS-Udoubleacute"/>
+    <keyword type="macro" name="IBUS_Tcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-Tcedilla"/>
+    <keyword type="macro" name="IBUS_racute" link="ibus-ibuskeysyms-compat.html#IBUS-racute"/>
+    <keyword type="macro" name="IBUS_abreve" link="ibus-ibuskeysyms-compat.html#IBUS-abreve"/>
+    <keyword type="macro" name="IBUS_lacute" link="ibus-ibuskeysyms-compat.html#IBUS-lacute"/>
+    <keyword type="macro" name="IBUS_cacute" link="ibus-ibuskeysyms-compat.html#IBUS-cacute"/>
+    <keyword type="macro" name="IBUS_ccaron" link="ibus-ibuskeysyms-compat.html#IBUS-ccaron"/>
+    <keyword type="macro" name="IBUS_eogonek" link="ibus-ibuskeysyms-compat.html#IBUS-eogonek"/>
+    <keyword type="macro" name="IBUS_ecaron" link="ibus-ibuskeysyms-compat.html#IBUS-ecaron"/>
+    <keyword type="macro" name="IBUS_dcaron" link="ibus-ibuskeysyms-compat.html#IBUS-dcaron"/>
+    <keyword type="macro" name="IBUS_dstroke" link="ibus-ibuskeysyms-compat.html#IBUS-dstroke"/>
+    <keyword type="macro" name="IBUS_nacute" link="ibus-ibuskeysyms-compat.html#IBUS-nacute"/>
+    <keyword type="macro" name="IBUS_ncaron" link="ibus-ibuskeysyms-compat.html#IBUS-ncaron"/>
+    <keyword type="macro" name="IBUS_odoubleacute" link="ibus-ibuskeysyms-compat.html#IBUS-odoubleacute"/>
+    <keyword type="macro" name="IBUS_udoubleacute" link="ibus-ibuskeysyms-compat.html#IBUS-udoubleacute"/>
+    <keyword type="macro" name="IBUS_rcaron" link="ibus-ibuskeysyms-compat.html#IBUS-rcaron"/>
+    <keyword type="macro" name="IBUS_uring" link="ibus-ibuskeysyms-compat.html#IBUS-uring"/>
+    <keyword type="macro" name="IBUS_tcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-tcedilla"/>
+    <keyword type="macro" name="IBUS_abovedot" link="ibus-ibuskeysyms-compat.html#IBUS-abovedot"/>
+    <keyword type="macro" name="IBUS_Hstroke" link="ibus-ibuskeysyms-compat.html#IBUS-Hstroke"/>
+    <keyword type="macro" name="IBUS_Hcircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Hcircumflex"/>
+    <keyword type="macro" name="IBUS_Iabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Iabovedot"/>
+    <keyword type="macro" name="IBUS_Gbreve" link="ibus-ibuskeysyms-compat.html#IBUS-Gbreve"/>
+    <keyword type="macro" name="IBUS_Jcircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Jcircumflex"/>
+    <keyword type="macro" name="IBUS_hstroke" link="ibus-ibuskeysyms-compat.html#IBUS-hstroke"/>
+    <keyword type="macro" name="IBUS_hcircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-hcircumflex"/>
+    <keyword type="macro" name="IBUS_idotless" link="ibus-ibuskeysyms-compat.html#IBUS-idotless"/>
+    <keyword type="macro" name="IBUS_gbreve" link="ibus-ibuskeysyms-compat.html#IBUS-gbreve"/>
+    <keyword type="macro" name="IBUS_jcircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-jcircumflex"/>
+    <keyword type="macro" name="IBUS_Cabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Cabovedot"/>
+    <keyword type="macro" name="IBUS_Ccircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Ccircumflex"/>
+    <keyword type="macro" name="IBUS_Gabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Gabovedot"/>
+    <keyword type="macro" name="IBUS_Gcircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Gcircumflex"/>
+    <keyword type="macro" name="IBUS_Ubreve" link="ibus-ibuskeysyms-compat.html#IBUS-Ubreve"/>
+    <keyword type="macro" name="IBUS_Scircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Scircumflex"/>
+    <keyword type="macro" name="IBUS_cabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-cabovedot"/>
+    <keyword type="macro" name="IBUS_ccircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-ccircumflex"/>
+    <keyword type="macro" name="IBUS_gabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-gabovedot"/>
+    <keyword type="macro" name="IBUS_gcircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-gcircumflex"/>
+    <keyword type="macro" name="IBUS_ubreve" link="ibus-ibuskeysyms-compat.html#IBUS-ubreve"/>
+    <keyword type="macro" name="IBUS_scircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-scircumflex"/>
+    <keyword type="macro" name="IBUS_kra" link="ibus-ibuskeysyms-compat.html#IBUS-kra"/>
+    <keyword type="macro" name="IBUS_kappa" link="ibus-ibuskeysyms-compat.html#IBUS-kappa"/>
+    <keyword type="macro" name="IBUS_Rcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-Rcedilla"/>
+    <keyword type="macro" name="IBUS_Itilde" link="ibus-ibuskeysyms-compat.html#IBUS-Itilde"/>
+    <keyword type="macro" name="IBUS_Lcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-Lcedilla"/>
+    <keyword type="macro" name="IBUS_Emacron" link="ibus-ibuskeysyms-compat.html#IBUS-Emacron"/>
+    <keyword type="macro" name="IBUS_Gcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-Gcedilla"/>
+    <keyword type="macro" name="IBUS_Tslash" link="ibus-ibuskeysyms-compat.html#IBUS-Tslash"/>
+    <keyword type="macro" name="IBUS_rcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-rcedilla"/>
+    <keyword type="macro" name="IBUS_itilde" link="ibus-ibuskeysyms-compat.html#IBUS-itilde"/>
+    <keyword type="macro" name="IBUS_lcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-lcedilla"/>
+    <keyword type="macro" name="IBUS_emacron" link="ibus-ibuskeysyms-compat.html#IBUS-emacron"/>
+    <keyword type="macro" name="IBUS_gcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-gcedilla"/>
+    <keyword type="macro" name="IBUS_tslash" link="ibus-ibuskeysyms-compat.html#IBUS-tslash"/>
+    <keyword type="macro" name="IBUS_ENG" link="ibus-ibuskeysyms-compat.html#IBUS-ENG:CAPS"/>
+    <keyword type="macro" name="IBUS_eng" link="ibus-ibuskeysyms-compat.html#IBUS-eng"/>
+    <keyword type="macro" name="IBUS_Amacron" link="ibus-ibuskeysyms-compat.html#IBUS-Amacron"/>
+    <keyword type="macro" name="IBUS_Iogonek" link="ibus-ibuskeysyms-compat.html#IBUS-Iogonek"/>
+    <keyword type="macro" name="IBUS_Eabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Eabovedot"/>
+    <keyword type="macro" name="IBUS_Imacron" link="ibus-ibuskeysyms-compat.html#IBUS-Imacron"/>
+    <keyword type="macro" name="IBUS_Ncedilla" link="ibus-ibuskeysyms-compat.html#IBUS-Ncedilla"/>
+    <keyword type="macro" name="IBUS_Omacron" link="ibus-ibuskeysyms-compat.html#IBUS-Omacron"/>
+    <keyword type="macro" name="IBUS_Kcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-Kcedilla"/>
+    <keyword type="macro" name="IBUS_Uogonek" link="ibus-ibuskeysyms-compat.html#IBUS-Uogonek"/>
+    <keyword type="macro" name="IBUS_Utilde" link="ibus-ibuskeysyms-compat.html#IBUS-Utilde"/>
+    <keyword type="macro" name="IBUS_Umacron" link="ibus-ibuskeysyms-compat.html#IBUS-Umacron"/>
+    <keyword type="macro" name="IBUS_amacron" link="ibus-ibuskeysyms-compat.html#IBUS-amacron"/>
+    <keyword type="macro" name="IBUS_iogonek" link="ibus-ibuskeysyms-compat.html#IBUS-iogonek"/>
+    <keyword type="macro" name="IBUS_eabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-eabovedot"/>
+    <keyword type="macro" name="IBUS_imacron" link="ibus-ibuskeysyms-compat.html#IBUS-imacron"/>
+    <keyword type="macro" name="IBUS_ncedilla" link="ibus-ibuskeysyms-compat.html#IBUS-ncedilla"/>
+    <keyword type="macro" name="IBUS_omacron" link="ibus-ibuskeysyms-compat.html#IBUS-omacron"/>
+    <keyword type="macro" name="IBUS_kcedilla" link="ibus-ibuskeysyms-compat.html#IBUS-kcedilla"/>
+    <keyword type="macro" name="IBUS_uogonek" link="ibus-ibuskeysyms-compat.html#IBUS-uogonek"/>
+    <keyword type="macro" name="IBUS_utilde" link="ibus-ibuskeysyms-compat.html#IBUS-utilde"/>
+    <keyword type="macro" name="IBUS_umacron" link="ibus-ibuskeysyms-compat.html#IBUS-umacron"/>
+    <keyword type="macro" name="IBUS_Babovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Babovedot"/>
+    <keyword type="macro" name="IBUS_babovedot" link="ibus-ibuskeysyms-compat.html#IBUS-babovedot"/>
+    <keyword type="macro" name="IBUS_Dabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Dabovedot"/>
+    <keyword type="macro" name="IBUS_Wgrave" link="ibus-ibuskeysyms-compat.html#IBUS-Wgrave"/>
+    <keyword type="macro" name="IBUS_Wacute" link="ibus-ibuskeysyms-compat.html#IBUS-Wacute"/>
+    <keyword type="macro" name="IBUS_dabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-dabovedot"/>
+    <keyword type="macro" name="IBUS_Ygrave" link="ibus-ibuskeysyms-compat.html#IBUS-Ygrave"/>
+    <keyword type="macro" name="IBUS_Fabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Fabovedot"/>
+    <keyword type="macro" name="IBUS_fabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-fabovedot"/>
+    <keyword type="macro" name="IBUS_Mabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Mabovedot"/>
+    <keyword type="macro" name="IBUS_mabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-mabovedot"/>
+    <keyword type="macro" name="IBUS_Pabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Pabovedot"/>
+    <keyword type="macro" name="IBUS_wgrave" link="ibus-ibuskeysyms-compat.html#IBUS-wgrave"/>
+    <keyword type="macro" name="IBUS_pabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-pabovedot"/>
+    <keyword type="macro" name="IBUS_wacute" link="ibus-ibuskeysyms-compat.html#IBUS-wacute"/>
+    <keyword type="macro" name="IBUS_Sabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Sabovedot"/>
+    <keyword type="macro" name="IBUS_ygrave" link="ibus-ibuskeysyms-compat.html#IBUS-ygrave"/>
+    <keyword type="macro" name="IBUS_Wdiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-Wdiaeresis"/>
+    <keyword type="macro" name="IBUS_wdiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-wdiaeresis"/>
+    <keyword type="macro" name="IBUS_sabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-sabovedot"/>
+    <keyword type="macro" name="IBUS_Wcircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Wcircumflex"/>
+    <keyword type="macro" name="IBUS_Tabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Tabovedot"/>
+    <keyword type="macro" name="IBUS_Ycircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-Ycircumflex"/>
+    <keyword type="macro" name="IBUS_wcircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-wcircumflex"/>
+    <keyword type="macro" name="IBUS_tabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-tabovedot"/>
+    <keyword type="macro" name="IBUS_ycircumflex" link="ibus-ibuskeysyms-compat.html#IBUS-ycircumflex"/>
+    <keyword type="macro" name="IBUS_OE" link="ibus-ibuskeysyms-compat.html#IBUS-OE:CAPS"/>
+    <keyword type="macro" name="IBUS_oe" link="ibus-ibuskeysyms-compat.html#IBUS-oe"/>
+    <keyword type="macro" name="IBUS_Ydiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-Ydiaeresis"/>
+    <keyword type="macro" name="IBUS_overline" link="ibus-ibuskeysyms-compat.html#IBUS-overline"/>
+    <keyword type="macro" name="IBUS_kana_fullstop" link="ibus-ibuskeysyms-compat.html#IBUS-kana-fullstop"/>
+    <keyword type="macro" name="IBUS_kana_openingbracket" link="ibus-ibuskeysyms-compat.html#IBUS-kana-openingbracket"/>
+    <keyword type="macro" name="IBUS_kana_closingbracket" link="ibus-ibuskeysyms-compat.html#IBUS-kana-closingbracket"/>
+    <keyword type="macro" name="IBUS_kana_comma" link="ibus-ibuskeysyms-compat.html#IBUS-kana-comma"/>
+    <keyword type="macro" name="IBUS_kana_conjunctive" link="ibus-ibuskeysyms-compat.html#IBUS-kana-conjunctive"/>
+    <keyword type="macro" name="IBUS_kana_middledot" link="ibus-ibuskeysyms-compat.html#IBUS-kana-middledot"/>
+    <keyword type="macro" name="IBUS_kana_WO" link="ibus-ibuskeysyms-compat.html#IBUS-kana-WO"/>
+    <keyword type="macro" name="IBUS_kana_a" link="ibus-ibuskeysyms-compat.html#IBUS-kana-a"/>
+    <keyword type="macro" name="IBUS_kana_i" link="ibus-ibuskeysyms-compat.html#IBUS-kana-i"/>
+    <keyword type="macro" name="IBUS_kana_u" link="ibus-ibuskeysyms-compat.html#IBUS-kana-u"/>
+    <keyword type="macro" name="IBUS_kana_e" link="ibus-ibuskeysyms-compat.html#IBUS-kana-e"/>
+    <keyword type="macro" name="IBUS_kana_o" link="ibus-ibuskeysyms-compat.html#IBUS-kana-o"/>
+    <keyword type="macro" name="IBUS_kana_ya" link="ibus-ibuskeysyms-compat.html#IBUS-kana-ya"/>
+    <keyword type="macro" name="IBUS_kana_yu" link="ibus-ibuskeysyms-compat.html#IBUS-kana-yu"/>
+    <keyword type="macro" name="IBUS_kana_yo" link="ibus-ibuskeysyms-compat.html#IBUS-kana-yo"/>
+    <keyword type="macro" name="IBUS_kana_tsu" link="ibus-ibuskeysyms-compat.html#IBUS-kana-tsu"/>
+    <keyword type="macro" name="IBUS_kana_tu" link="ibus-ibuskeysyms-compat.html#IBUS-kana-tu"/>
+    <keyword type="macro" name="IBUS_prolongedsound" link="ibus-ibuskeysyms-compat.html#IBUS-prolongedsound"/>
+    <keyword type="macro" name="IBUS_kana_A" link="ibus-ibuskeysyms-compat.html#IBUS-kana-A"/>
+    <keyword type="macro" name="IBUS_kana_I" link="ibus-ibuskeysyms-compat.html#IBUS-kana-I"/>
+    <keyword type="macro" name="IBUS_kana_U" link="ibus-ibuskeysyms-compat.html#IBUS-kana-U"/>
+    <keyword type="macro" name="IBUS_kana_E" link="ibus-ibuskeysyms-compat.html#IBUS-kana-E"/>
+    <keyword type="macro" name="IBUS_kana_O" link="ibus-ibuskeysyms-compat.html#IBUS-kana-O"/>
+    <keyword type="macro" name="IBUS_kana_KA" link="ibus-ibuskeysyms-compat.html#IBUS-kana-KA"/>
+    <keyword type="macro" name="IBUS_kana_KI" link="ibus-ibuskeysyms-compat.html#IBUS-kana-KI"/>
+    <keyword type="macro" name="IBUS_kana_KU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-KU"/>
+    <keyword type="macro" name="IBUS_kana_KE" link="ibus-ibuskeysyms-compat.html#IBUS-kana-KE"/>
+    <keyword type="macro" name="IBUS_kana_KO" link="ibus-ibuskeysyms-compat.html#IBUS-kana-KO"/>
+    <keyword type="macro" name="IBUS_kana_SA" link="ibus-ibuskeysyms-compat.html#IBUS-kana-SA"/>
+    <keyword type="macro" name="IBUS_kana_SHI" link="ibus-ibuskeysyms-compat.html#IBUS-kana-SHI"/>
+    <keyword type="macro" name="IBUS_kana_SU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-SU"/>
+    <keyword type="macro" name="IBUS_kana_SE" link="ibus-ibuskeysyms-compat.html#IBUS-kana-SE"/>
+    <keyword type="macro" name="IBUS_kana_SO" link="ibus-ibuskeysyms-compat.html#IBUS-kana-SO"/>
+    <keyword type="macro" name="IBUS_kana_TA" link="ibus-ibuskeysyms-compat.html#IBUS-kana-TA"/>
+    <keyword type="macro" name="IBUS_kana_CHI" link="ibus-ibuskeysyms-compat.html#IBUS-kana-CHI"/>
+    <keyword type="macro" name="IBUS_kana_TI" link="ibus-ibuskeysyms-compat.html#IBUS-kana-TI"/>
+    <keyword type="macro" name="IBUS_kana_TSU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-TSU"/>
+    <keyword type="macro" name="IBUS_kana_TU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-TU"/>
+    <keyword type="macro" name="IBUS_kana_TE" link="ibus-ibuskeysyms-compat.html#IBUS-kana-TE"/>
+    <keyword type="macro" name="IBUS_kana_TO" link="ibus-ibuskeysyms-compat.html#IBUS-kana-TO"/>
+    <keyword type="macro" name="IBUS_kana_NA" link="ibus-ibuskeysyms-compat.html#IBUS-kana-NA"/>
+    <keyword type="macro" name="IBUS_kana_NI" link="ibus-ibuskeysyms-compat.html#IBUS-kana-NI"/>
+    <keyword type="macro" name="IBUS_kana_NU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-NU"/>
+    <keyword type="macro" name="IBUS_kana_NE" link="ibus-ibuskeysyms-compat.html#IBUS-kana-NE"/>
+    <keyword type="macro" name="IBUS_kana_NO" link="ibus-ibuskeysyms-compat.html#IBUS-kana-NO"/>
+    <keyword type="macro" name="IBUS_kana_HA" link="ibus-ibuskeysyms-compat.html#IBUS-kana-HA"/>
+    <keyword type="macro" name="IBUS_kana_HI" link="ibus-ibuskeysyms-compat.html#IBUS-kana-HI"/>
+    <keyword type="macro" name="IBUS_kana_FU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-FU"/>
+    <keyword type="macro" name="IBUS_kana_HU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-HU"/>
+    <keyword type="macro" name="IBUS_kana_HE" link="ibus-ibuskeysyms-compat.html#IBUS-kana-HE"/>
+    <keyword type="macro" name="IBUS_kana_HO" link="ibus-ibuskeysyms-compat.html#IBUS-kana-HO"/>
+    <keyword type="macro" name="IBUS_kana_MA" link="ibus-ibuskeysyms-compat.html#IBUS-kana-MA"/>
+    <keyword type="macro" name="IBUS_kana_MI" link="ibus-ibuskeysyms-compat.html#IBUS-kana-MI"/>
+    <keyword type="macro" name="IBUS_kana_MU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-MU"/>
+    <keyword type="macro" name="IBUS_kana_ME" link="ibus-ibuskeysyms-compat.html#IBUS-kana-ME"/>
+    <keyword type="macro" name="IBUS_kana_MO" link="ibus-ibuskeysyms-compat.html#IBUS-kana-MO"/>
+    <keyword type="macro" name="IBUS_kana_YA" link="ibus-ibuskeysyms-compat.html#IBUS-kana-YA"/>
+    <keyword type="macro" name="IBUS_kana_YU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-YU"/>
+    <keyword type="macro" name="IBUS_kana_YO" link="ibus-ibuskeysyms-compat.html#IBUS-kana-YO"/>
+    <keyword type="macro" name="IBUS_kana_RA" link="ibus-ibuskeysyms-compat.html#IBUS-kana-RA"/>
+    <keyword type="macro" name="IBUS_kana_RI" link="ibus-ibuskeysyms-compat.html#IBUS-kana-RI"/>
+    <keyword type="macro" name="IBUS_kana_RU" link="ibus-ibuskeysyms-compat.html#IBUS-kana-RU"/>
+    <keyword type="macro" name="IBUS_kana_RE" link="ibus-ibuskeysyms-compat.html#IBUS-kana-RE"/>
+    <keyword type="macro" name="IBUS_kana_RO" link="ibus-ibuskeysyms-compat.html#IBUS-kana-RO"/>
+    <keyword type="macro" name="IBUS_kana_WA" link="ibus-ibuskeysyms-compat.html#IBUS-kana-WA"/>
+    <keyword type="macro" name="IBUS_kana_N" link="ibus-ibuskeysyms-compat.html#IBUS-kana-N"/>
+    <keyword type="macro" name="IBUS_voicedsound" link="ibus-ibuskeysyms-compat.html#IBUS-voicedsound"/>
+    <keyword type="macro" name="IBUS_semivoicedsound" link="ibus-ibuskeysyms-compat.html#IBUS-semivoicedsound"/>
+    <keyword type="macro" name="IBUS_kana_switch" link="ibus-ibuskeysyms-compat.html#IBUS-kana-switch"/>
+    <keyword type="macro" name="IBUS_Farsi_0" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-0"/>
+    <keyword type="macro" name="IBUS_Farsi_1" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-1"/>
+    <keyword type="macro" name="IBUS_Farsi_2" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-2"/>
+    <keyword type="macro" name="IBUS_Farsi_3" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-3"/>
+    <keyword type="macro" name="IBUS_Farsi_4" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-4"/>
+    <keyword type="macro" name="IBUS_Farsi_5" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-5"/>
+    <keyword type="macro" name="IBUS_Farsi_6" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-6"/>
+    <keyword type="macro" name="IBUS_Farsi_7" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-7"/>
+    <keyword type="macro" name="IBUS_Farsi_8" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-8"/>
+    <keyword type="macro" name="IBUS_Farsi_9" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-9"/>
+    <keyword type="macro" name="IBUS_Arabic_percent" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-percent"/>
+    <keyword type="macro" name="IBUS_Arabic_superscript_alef" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-superscript-alef"/>
+    <keyword type="macro" name="IBUS_Arabic_tteh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tteh"/>
+    <keyword type="macro" name="IBUS_Arabic_peh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-peh"/>
+    <keyword type="macro" name="IBUS_Arabic_tcheh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tcheh"/>
+    <keyword type="macro" name="IBUS_Arabic_ddal" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ddal"/>
+    <keyword type="macro" name="IBUS_Arabic_rreh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-rreh"/>
+    <keyword type="macro" name="IBUS_Arabic_comma" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-comma"/>
+    <keyword type="macro" name="IBUS_Arabic_fullstop" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-fullstop"/>
+    <keyword type="macro" name="IBUS_Arabic_0" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-0"/>
+    <keyword type="macro" name="IBUS_Arabic_1" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-1"/>
+    <keyword type="macro" name="IBUS_Arabic_2" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-2"/>
+    <keyword type="macro" name="IBUS_Arabic_3" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-3"/>
+    <keyword type="macro" name="IBUS_Arabic_4" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-4"/>
+    <keyword type="macro" name="IBUS_Arabic_5" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-5"/>
+    <keyword type="macro" name="IBUS_Arabic_6" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-6"/>
+    <keyword type="macro" name="IBUS_Arabic_7" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-7"/>
+    <keyword type="macro" name="IBUS_Arabic_8" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-8"/>
+    <keyword type="macro" name="IBUS_Arabic_9" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-9"/>
+    <keyword type="macro" name="IBUS_Arabic_semicolon" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-semicolon"/>
+    <keyword type="macro" name="IBUS_Arabic_question_mark" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-question-mark"/>
+    <keyword type="macro" name="IBUS_Arabic_hamza" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza"/>
+    <keyword type="macro" name="IBUS_Arabic_maddaonalef" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-maddaonalef"/>
+    <keyword type="macro" name="IBUS_Arabic_hamzaonalef" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonalef"/>
+    <keyword type="macro" name="IBUS_Arabic_hamzaonwaw" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonwaw"/>
+    <keyword type="macro" name="IBUS_Arabic_hamzaunderalef" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaunderalef"/>
+    <keyword type="macro" name="IBUS_Arabic_hamzaonyeh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonyeh"/>
+    <keyword type="macro" name="IBUS_Arabic_alef" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-alef"/>
+    <keyword type="macro" name="IBUS_Arabic_beh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-beh"/>
+    <keyword type="macro" name="IBUS_Arabic_tehmarbuta" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tehmarbuta"/>
+    <keyword type="macro" name="IBUS_Arabic_teh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-teh"/>
+    <keyword type="macro" name="IBUS_Arabic_theh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-theh"/>
+    <keyword type="macro" name="IBUS_Arabic_jeem" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-jeem"/>
+    <keyword type="macro" name="IBUS_Arabic_hah" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hah"/>
+    <keyword type="macro" name="IBUS_Arabic_khah" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-khah"/>
+    <keyword type="macro" name="IBUS_Arabic_dal" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-dal"/>
+    <keyword type="macro" name="IBUS_Arabic_thal" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-thal"/>
+    <keyword type="macro" name="IBUS_Arabic_ra" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ra"/>
+    <keyword type="macro" name="IBUS_Arabic_zain" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-zain"/>
+    <keyword type="macro" name="IBUS_Arabic_seen" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-seen"/>
+    <keyword type="macro" name="IBUS_Arabic_sheen" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-sheen"/>
+    <keyword type="macro" name="IBUS_Arabic_sad" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-sad"/>
+    <keyword type="macro" name="IBUS_Arabic_dad" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-dad"/>
+    <keyword type="macro" name="IBUS_Arabic_tah" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tah"/>
+    <keyword type="macro" name="IBUS_Arabic_zah" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-zah"/>
+    <keyword type="macro" name="IBUS_Arabic_ain" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ain"/>
+    <keyword type="macro" name="IBUS_Arabic_ghain" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ghain"/>
+    <keyword type="macro" name="IBUS_Arabic_tatweel" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-tatweel"/>
+    <keyword type="macro" name="IBUS_Arabic_feh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-feh"/>
+    <keyword type="macro" name="IBUS_Arabic_qaf" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-qaf"/>
+    <keyword type="macro" name="IBUS_Arabic_kaf" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-kaf"/>
+    <keyword type="macro" name="IBUS_Arabic_lam" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-lam"/>
+    <keyword type="macro" name="IBUS_Arabic_meem" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-meem"/>
+    <keyword type="macro" name="IBUS_Arabic_noon" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-noon"/>
+    <keyword type="macro" name="IBUS_Arabic_ha" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-ha"/>
+    <keyword type="macro" name="IBUS_Arabic_heh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh"/>
+    <keyword type="macro" name="IBUS_Arabic_waw" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-waw"/>
+    <keyword type="macro" name="IBUS_Arabic_alefmaksura" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-alefmaksura"/>
+    <keyword type="macro" name="IBUS_Arabic_yeh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-yeh"/>
+    <keyword type="macro" name="IBUS_Arabic_fathatan" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-fathatan"/>
+    <keyword type="macro" name="IBUS_Arabic_dammatan" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-dammatan"/>
+    <keyword type="macro" name="IBUS_Arabic_kasratan" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-kasratan"/>
+    <keyword type="macro" name="IBUS_Arabic_fatha" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-fatha"/>
+    <keyword type="macro" name="IBUS_Arabic_damma" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-damma"/>
+    <keyword type="macro" name="IBUS_Arabic_kasra" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-kasra"/>
+    <keyword type="macro" name="IBUS_Arabic_shadda" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-shadda"/>
+    <keyword type="macro" name="IBUS_Arabic_sukun" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-sukun"/>
+    <keyword type="macro" name="IBUS_Arabic_madda_above" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-madda-above"/>
+    <keyword type="macro" name="IBUS_Arabic_hamza_above" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza-above"/>
+    <keyword type="macro" name="IBUS_Arabic_hamza_below" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza-below"/>
+    <keyword type="macro" name="IBUS_Arabic_jeh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-jeh"/>
+    <keyword type="macro" name="IBUS_Arabic_veh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-veh"/>
+    <keyword type="macro" name="IBUS_Arabic_keheh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-keheh"/>
+    <keyword type="macro" name="IBUS_Arabic_gaf" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-gaf"/>
+    <keyword type="macro" name="IBUS_Arabic_noon_ghunna" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-noon-ghunna"/>
+    <keyword type="macro" name="IBUS_Arabic_heh_doachashmee" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh-doachashmee"/>
+    <keyword type="macro" name="IBUS_Farsi_yeh" link="ibus-ibuskeysyms-compat.html#IBUS-Farsi-yeh"/>
+    <keyword type="macro" name="IBUS_Arabic_farsi_yeh" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-farsi-yeh"/>
+    <keyword type="macro" name="IBUS_Arabic_yeh_baree" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-yeh-baree"/>
+    <keyword type="macro" name="IBUS_Arabic_heh_goal" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh-goal"/>
+    <keyword type="macro" name="IBUS_Arabic_switch" link="ibus-ibuskeysyms-compat.html#IBUS-Arabic-switch"/>
+    <keyword type="macro" name="IBUS_Cyrillic_GHE_bar" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-GHE-bar"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ghe_bar" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ghe-bar"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ZHE_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZHE-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_zhe_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-zhe-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_KA_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ka_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_KA_vertstroke" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA-vertstroke"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ka_vertstroke" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka-vertstroke"/>
+    <keyword type="macro" name="IBUS_Cyrillic_EN_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EN-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_en_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-en-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_U_straight" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-straight"/>
+    <keyword type="macro" name="IBUS_Cyrillic_u_straight" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-straight"/>
+    <keyword type="macro" name="IBUS_Cyrillic_U_straight_bar" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-straight-bar"/>
+    <keyword type="macro" name="IBUS_Cyrillic_u_straight_bar" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-straight-bar"/>
+    <keyword type="macro" name="IBUS_Cyrillic_HA_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HA-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ha_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ha-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_CHE_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_che_descender" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che-descender"/>
+    <keyword type="macro" name="IBUS_Cyrillic_CHE_vertstroke" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE-vertstroke"/>
+    <keyword type="macro" name="IBUS_Cyrillic_che_vertstroke" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che-vertstroke"/>
+    <keyword type="macro" name="IBUS_Cyrillic_SHHA" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHHA"/>
+    <keyword type="macro" name="IBUS_Cyrillic_shha" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shha"/>
+    <keyword type="macro" name="IBUS_Cyrillic_SCHWA" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SCHWA"/>
+    <keyword type="macro" name="IBUS_Cyrillic_schwa" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-schwa"/>
+    <keyword type="macro" name="IBUS_Cyrillic_I_macron" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-I-macron"/>
+    <keyword type="macro" name="IBUS_Cyrillic_i_macron" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-i-macron"/>
+    <keyword type="macro" name="IBUS_Cyrillic_O_bar" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-O-bar"/>
+    <keyword type="macro" name="IBUS_Cyrillic_o_bar" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-o-bar"/>
+    <keyword type="macro" name="IBUS_Cyrillic_U_macron" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-macron"/>
+    <keyword type="macro" name="IBUS_Cyrillic_u_macron" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-macron"/>
+    <keyword type="macro" name="IBUS_Serbian_dje" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-dje"/>
+    <keyword type="macro" name="IBUS_Macedonia_gje" link="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-gje"/>
+    <keyword type="macro" name="IBUS_Cyrillic_io" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-io"/>
+    <keyword type="macro" name="IBUS_Ukrainian_ie" link="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-ie"/>
+    <keyword type="macro" name="IBUS_Ukranian_je" link="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-je"/>
+    <keyword type="macro" name="IBUS_Macedonia_dse" link="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-dse"/>
+    <keyword type="macro" name="IBUS_Ukrainian_i" link="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-i"/>
+    <keyword type="macro" name="IBUS_Ukranian_i" link="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-i"/>
+    <keyword type="macro" name="IBUS_Ukrainian_yi" link="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-yi"/>
+    <keyword type="macro" name="IBUS_Ukranian_yi" link="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-yi"/>
+    <keyword type="macro" name="IBUS_Cyrillic_je" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-je"/>
+    <keyword type="macro" name="IBUS_Serbian_je" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-je"/>
+    <keyword type="macro" name="IBUS_Cyrillic_lje" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-lje"/>
+    <keyword type="macro" name="IBUS_Serbian_lje" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-lje"/>
+    <keyword type="macro" name="IBUS_Cyrillic_nje" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-nje"/>
+    <keyword type="macro" name="IBUS_Serbian_nje" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-nje"/>
+    <keyword type="macro" name="IBUS_Serbian_tshe" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-tshe"/>
+    <keyword type="macro" name="IBUS_Macedonia_kje" link="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-kje"/>
+    <keyword type="macro" name="IBUS_Ukrainian_ghe_with_upturn" link="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-ghe-with-upturn"/>
+    <keyword type="macro" name="IBUS_Byelorussian_shortu" link="ibus-ibuskeysyms-compat.html#IBUS-Byelorussian-shortu"/>
+    <keyword type="macro" name="IBUS_Cyrillic_dzhe" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-dzhe"/>
+    <keyword type="macro" name="IBUS_Serbian_dze" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-dze"/>
+    <keyword type="macro" name="IBUS_numerosign" link="ibus-ibuskeysyms-compat.html#IBUS-numerosign"/>
+    <keyword type="macro" name="IBUS_Serbian_DJE" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-DJE"/>
+    <keyword type="macro" name="IBUS_Macedonia_GJE" link="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-GJE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_IO" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-IO"/>
+    <keyword type="macro" name="IBUS_Ukrainian_IE" link="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-IE"/>
+    <keyword type="macro" name="IBUS_Ukranian_JE" link="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-JE"/>
+    <keyword type="macro" name="IBUS_Macedonia_DSE" link="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-DSE"/>
+    <keyword type="macro" name="IBUS_Ukrainian_I" link="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-I"/>
+    <keyword type="macro" name="IBUS_Ukranian_I" link="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-I"/>
+    <keyword type="macro" name="IBUS_Ukrainian_YI" link="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-YI"/>
+    <keyword type="macro" name="IBUS_Ukranian_YI" link="ibus-ibuskeysyms-compat.html#IBUS-Ukranian-YI"/>
+    <keyword type="macro" name="IBUS_Cyrillic_JE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-JE"/>
+    <keyword type="macro" name="IBUS_Serbian_JE" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-JE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_LJE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-LJE"/>
+    <keyword type="macro" name="IBUS_Serbian_LJE" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-LJE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_NJE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-NJE"/>
+    <keyword type="macro" name="IBUS_Serbian_NJE" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-NJE"/>
+    <keyword type="macro" name="IBUS_Serbian_TSHE" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-TSHE"/>
+    <keyword type="macro" name="IBUS_Macedonia_KJE" link="ibus-ibuskeysyms-compat.html#IBUS-Macedonia-KJE"/>
+    <keyword type="macro" name="IBUS_Ukrainian_GHE_WITH_UPTURN" link="ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-GHE-WITH-UPTURN"/>
+    <keyword type="macro" name="IBUS_Byelorussian_SHORTU" link="ibus-ibuskeysyms-compat.html#IBUS-Byelorussian-SHORTU"/>
+    <keyword type="macro" name="IBUS_Cyrillic_DZHE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-DZHE"/>
+    <keyword type="macro" name="IBUS_Serbian_DZE" link="ibus-ibuskeysyms-compat.html#IBUS-Serbian-DZE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_yu" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-yu"/>
+    <keyword type="macro" name="IBUS_Cyrillic_a" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-a"/>
+    <keyword type="macro" name="IBUS_Cyrillic_be" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-be"/>
+    <keyword type="macro" name="IBUS_Cyrillic_tse" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-tse"/>
+    <keyword type="macro" name="IBUS_Cyrillic_de" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-de"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ie" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ie"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ef" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ef"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ghe" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ghe"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ha" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ha"/>
+    <keyword type="macro" name="IBUS_Cyrillic_i" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-i"/>
+    <keyword type="macro" name="IBUS_Cyrillic_shorti" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shorti"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ka" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka"/>
+    <keyword type="macro" name="IBUS_Cyrillic_el" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-el"/>
+    <keyword type="macro" name="IBUS_Cyrillic_em" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-em"/>
+    <keyword type="macro" name="IBUS_Cyrillic_en" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-en"/>
+    <keyword type="macro" name="IBUS_Cyrillic_o" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-o"/>
+    <keyword type="macro" name="IBUS_Cyrillic_pe" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-pe"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ya" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ya"/>
+    <keyword type="macro" name="IBUS_Cyrillic_er" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-er"/>
+    <keyword type="macro" name="IBUS_Cyrillic_es" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-es"/>
+    <keyword type="macro" name="IBUS_Cyrillic_te" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-te"/>
+    <keyword type="macro" name="IBUS_Cyrillic_u" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u"/>
+    <keyword type="macro" name="IBUS_Cyrillic_zhe" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-zhe"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ve" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ve"/>
+    <keyword type="macro" name="IBUS_Cyrillic_softsign" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-softsign"/>
+    <keyword type="macro" name="IBUS_Cyrillic_yeru" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-yeru"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ze" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ze"/>
+    <keyword type="macro" name="IBUS_Cyrillic_sha" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-sha"/>
+    <keyword type="macro" name="IBUS_Cyrillic_e" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-e"/>
+    <keyword type="macro" name="IBUS_Cyrillic_shcha" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shcha"/>
+    <keyword type="macro" name="IBUS_Cyrillic_che" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che"/>
+    <keyword type="macro" name="IBUS_Cyrillic_hardsign" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-hardsign"/>
+    <keyword type="macro" name="IBUS_Cyrillic_YU" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YU"/>
+    <keyword type="macro" name="IBUS_Cyrillic_A" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-A"/>
+    <keyword type="macro" name="IBUS_Cyrillic_BE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-BE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_TSE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-TSE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_DE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-DE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_IE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-IE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_EF" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EF"/>
+    <keyword type="macro" name="IBUS_Cyrillic_GHE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-GHE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_HA" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HA"/>
+    <keyword type="macro" name="IBUS_Cyrillic_I" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-I"/>
+    <keyword type="macro" name="IBUS_Cyrillic_SHORTI" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHORTI"/>
+    <keyword type="macro" name="IBUS_Cyrillic_KA" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA"/>
+    <keyword type="macro" name="IBUS_Cyrillic_EL" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EL"/>
+    <keyword type="macro" name="IBUS_Cyrillic_EM" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EM"/>
+    <keyword type="macro" name="IBUS_Cyrillic_EN" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EN"/>
+    <keyword type="macro" name="IBUS_Cyrillic_O" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-O"/>
+    <keyword type="macro" name="IBUS_Cyrillic_PE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-PE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_YA" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YA"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ER" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ER"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ES" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ES"/>
+    <keyword type="macro" name="IBUS_Cyrillic_TE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-TE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_U" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ZHE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZHE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_VE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-VE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_SOFTSIGN" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SOFTSIGN"/>
+    <keyword type="macro" name="IBUS_Cyrillic_YERU" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YERU"/>
+    <keyword type="macro" name="IBUS_Cyrillic_ZE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_SHA" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHA"/>
+    <keyword type="macro" name="IBUS_Cyrillic_E" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-E"/>
+    <keyword type="macro" name="IBUS_Cyrillic_SHCHA" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHCHA"/>
+    <keyword type="macro" name="IBUS_Cyrillic_CHE" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE"/>
+    <keyword type="macro" name="IBUS_Cyrillic_HARDSIGN" link="ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HARDSIGN"/>
+    <keyword type="macro" name="IBUS_Greek_ALPHAaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-ALPHAaccent"/>
+    <keyword type="macro" name="IBUS_Greek_EPSILONaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-EPSILONaccent"/>
+    <keyword type="macro" name="IBUS_Greek_ETAaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-ETAaccent"/>
+    <keyword type="macro" name="IBUS_Greek_IOTAaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAaccent"/>
+    <keyword type="macro" name="IBUS_Greek_IOTAdieresis" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAdieresis"/>
+    <keyword type="macro" name="IBUS_Greek_IOTAdiaeresis" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAdiaeresis"/>
+    <keyword type="macro" name="IBUS_Greek_OMICRONaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMICRONaccent"/>
+    <keyword type="macro" name="IBUS_Greek_UPSILONaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILONaccent"/>
+    <keyword type="macro" name="IBUS_Greek_UPSILONdieresis" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILONdieresis"/>
+    <keyword type="macro" name="IBUS_Greek_OMEGAaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMEGAaccent"/>
+    <keyword type="macro" name="IBUS_Greek_accentdieresis" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-accentdieresis"/>
+    <keyword type="macro" name="IBUS_Greek_horizbar" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-horizbar"/>
+    <keyword type="macro" name="IBUS_Greek_alphaaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-alphaaccent"/>
+    <keyword type="macro" name="IBUS_Greek_epsilonaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-epsilonaccent"/>
+    <keyword type="macro" name="IBUS_Greek_etaaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-etaaccent"/>
+    <keyword type="macro" name="IBUS_Greek_iotaaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-iotaaccent"/>
+    <keyword type="macro" name="IBUS_Greek_iotadieresis" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-iotadieresis"/>
+    <keyword type="macro" name="IBUS_Greek_iotaaccentdieresis" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-iotaaccentdieresis"/>
+    <keyword type="macro" name="IBUS_Greek_omicronaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-omicronaccent"/>
+    <keyword type="macro" name="IBUS_Greek_upsilonaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilonaccent"/>
+    <keyword type="macro" name="IBUS_Greek_upsilondieresis" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilondieresis"/>
+    <keyword type="macro" name="IBUS_Greek_upsilonaccentdieresis" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilonaccentdieresis"/>
+    <keyword type="macro" name="IBUS_Greek_omegaaccent" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-omegaaccent"/>
+    <keyword type="macro" name="IBUS_Greek_ALPHA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-ALPHA"/>
+    <keyword type="macro" name="IBUS_Greek_BETA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-BETA"/>
+    <keyword type="macro" name="IBUS_Greek_GAMMA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-GAMMA"/>
+    <keyword type="macro" name="IBUS_Greek_DELTA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-DELTA"/>
+    <keyword type="macro" name="IBUS_Greek_EPSILON" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-EPSILON"/>
+    <keyword type="macro" name="IBUS_Greek_ZETA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-ZETA"/>
+    <keyword type="macro" name="IBUS_Greek_ETA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-ETA"/>
+    <keyword type="macro" name="IBUS_Greek_THETA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-THETA"/>
+    <keyword type="macro" name="IBUS_Greek_IOTA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTA"/>
+    <keyword type="macro" name="IBUS_Greek_KAPPA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-KAPPA"/>
+    <keyword type="macro" name="IBUS_Greek_LAMDA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-LAMDA"/>
+    <keyword type="macro" name="IBUS_Greek_LAMBDA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-LAMBDA"/>
+    <keyword type="macro" name="IBUS_Greek_MU" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-MU"/>
+    <keyword type="macro" name="IBUS_Greek_NU" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-NU"/>
+    <keyword type="macro" name="IBUS_Greek_XI" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-XI"/>
+    <keyword type="macro" name="IBUS_Greek_OMICRON" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMICRON"/>
+    <keyword type="macro" name="IBUS_Greek_PI" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-PI"/>
+    <keyword type="macro" name="IBUS_Greek_RHO" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-RHO"/>
+    <keyword type="macro" name="IBUS_Greek_SIGMA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-SIGMA"/>
+    <keyword type="macro" name="IBUS_Greek_TAU" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-TAU"/>
+    <keyword type="macro" name="IBUS_Greek_UPSILON" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILON"/>
+    <keyword type="macro" name="IBUS_Greek_PHI" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-PHI"/>
+    <keyword type="macro" name="IBUS_Greek_CHI" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-CHI"/>
+    <keyword type="macro" name="IBUS_Greek_PSI" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-PSI"/>
+    <keyword type="macro" name="IBUS_Greek_OMEGA" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-OMEGA"/>
+    <keyword type="macro" name="IBUS_Greek_alpha" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-alpha"/>
+    <keyword type="macro" name="IBUS_Greek_beta" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-beta"/>
+    <keyword type="macro" name="IBUS_Greek_gamma" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-gamma"/>
+    <keyword type="macro" name="IBUS_Greek_delta" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-delta"/>
+    <keyword type="macro" name="IBUS_Greek_epsilon" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-epsilon"/>
+    <keyword type="macro" name="IBUS_Greek_zeta" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-zeta"/>
+    <keyword type="macro" name="IBUS_Greek_eta" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-eta"/>
+    <keyword type="macro" name="IBUS_Greek_theta" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-theta"/>
+    <keyword type="macro" name="IBUS_Greek_iota" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-iota"/>
+    <keyword type="macro" name="IBUS_Greek_kappa" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-kappa"/>
+    <keyword type="macro" name="IBUS_Greek_lamda" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-lamda"/>
+    <keyword type="macro" name="IBUS_Greek_lambda" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-lambda"/>
+    <keyword type="macro" name="IBUS_Greek_mu" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-mu"/>
+    <keyword type="macro" name="IBUS_Greek_nu" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-nu"/>
+    <keyword type="macro" name="IBUS_Greek_xi" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-xi"/>
+    <keyword type="macro" name="IBUS_Greek_omicron" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-omicron"/>
+    <keyword type="macro" name="IBUS_Greek_pi" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-pi"/>
+    <keyword type="macro" name="IBUS_Greek_rho" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-rho"/>
+    <keyword type="macro" name="IBUS_Greek_sigma" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-sigma"/>
+    <keyword type="macro" name="IBUS_Greek_finalsmallsigma" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-finalsmallsigma"/>
+    <keyword type="macro" name="IBUS_Greek_tau" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-tau"/>
+    <keyword type="macro" name="IBUS_Greek_upsilon" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilon"/>
+    <keyword type="macro" name="IBUS_Greek_phi" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-phi"/>
+    <keyword type="macro" name="IBUS_Greek_chi" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-chi"/>
+    <keyword type="macro" name="IBUS_Greek_psi" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-psi"/>
+    <keyword type="macro" name="IBUS_Greek_omega" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-omega"/>
+    <keyword type="macro" name="IBUS_Greek_switch" link="ibus-ibuskeysyms-compat.html#IBUS-Greek-switch"/>
+    <keyword type="macro" name="IBUS_leftradical" link="ibus-ibuskeysyms-compat.html#IBUS-leftradical"/>
+    <keyword type="macro" name="IBUS_topleftradical" link="ibus-ibuskeysyms-compat.html#IBUS-topleftradical"/>
+    <keyword type="macro" name="IBUS_horizconnector" link="ibus-ibuskeysyms-compat.html#IBUS-horizconnector"/>
+    <keyword type="macro" name="IBUS_topintegral" link="ibus-ibuskeysyms-compat.html#IBUS-topintegral"/>
+    <keyword type="macro" name="IBUS_botintegral" link="ibus-ibuskeysyms-compat.html#IBUS-botintegral"/>
+    <keyword type="macro" name="IBUS_vertconnector" link="ibus-ibuskeysyms-compat.html#IBUS-vertconnector"/>
+    <keyword type="macro" name="IBUS_topleftsqbracket" link="ibus-ibuskeysyms-compat.html#IBUS-topleftsqbracket"/>
+    <keyword type="macro" name="IBUS_botleftsqbracket" link="ibus-ibuskeysyms-compat.html#IBUS-botleftsqbracket"/>
+    <keyword type="macro" name="IBUS_toprightsqbracket" link="ibus-ibuskeysyms-compat.html#IBUS-toprightsqbracket"/>
+    <keyword type="macro" name="IBUS_botrightsqbracket" link="ibus-ibuskeysyms-compat.html#IBUS-botrightsqbracket"/>
+    <keyword type="macro" name="IBUS_topleftparens" link="ibus-ibuskeysyms-compat.html#IBUS-topleftparens"/>
+    <keyword type="macro" name="IBUS_botleftparens" link="ibus-ibuskeysyms-compat.html#IBUS-botleftparens"/>
+    <keyword type="macro" name="IBUS_toprightparens" link="ibus-ibuskeysyms-compat.html#IBUS-toprightparens"/>
+    <keyword type="macro" name="IBUS_botrightparens" link="ibus-ibuskeysyms-compat.html#IBUS-botrightparens"/>
+    <keyword type="macro" name="IBUS_leftmiddlecurlybrace" link="ibus-ibuskeysyms-compat.html#IBUS-leftmiddlecurlybrace"/>
+    <keyword type="macro" name="IBUS_rightmiddlecurlybrace" link="ibus-ibuskeysyms-compat.html#IBUS-rightmiddlecurlybrace"/>
+    <keyword type="macro" name="IBUS_topleftsummation" link="ibus-ibuskeysyms-compat.html#IBUS-topleftsummation"/>
+    <keyword type="macro" name="IBUS_botleftsummation" link="ibus-ibuskeysyms-compat.html#IBUS-botleftsummation"/>
+    <keyword type="macro" name="IBUS_topvertsummationconnector" link="ibus-ibuskeysyms-compat.html#IBUS-topvertsummationconnector"/>
+    <keyword type="macro" name="IBUS_botvertsummationconnector" link="ibus-ibuskeysyms-compat.html#IBUS-botvertsummationconnector"/>
+    <keyword type="macro" name="IBUS_toprightsummation" link="ibus-ibuskeysyms-compat.html#IBUS-toprightsummation"/>
+    <keyword type="macro" name="IBUS_botrightsummation" link="ibus-ibuskeysyms-compat.html#IBUS-botrightsummation"/>
+    <keyword type="macro" name="IBUS_rightmiddlesummation" link="ibus-ibuskeysyms-compat.html#IBUS-rightmiddlesummation"/>
+    <keyword type="macro" name="IBUS_lessthanequal" link="ibus-ibuskeysyms-compat.html#IBUS-lessthanequal"/>
+    <keyword type="macro" name="IBUS_notequal" link="ibus-ibuskeysyms-compat.html#IBUS-notequal"/>
+    <keyword type="macro" name="IBUS_greaterthanequal" link="ibus-ibuskeysyms-compat.html#IBUS-greaterthanequal"/>
+    <keyword type="macro" name="IBUS_integral" link="ibus-ibuskeysyms-compat.html#IBUS-integral"/>
+    <keyword type="macro" name="IBUS_therefore" link="ibus-ibuskeysyms-compat.html#IBUS-therefore"/>
+    <keyword type="macro" name="IBUS_variation" link="ibus-ibuskeysyms-compat.html#IBUS-variation"/>
+    <keyword type="macro" name="IBUS_infinity" link="ibus-ibuskeysyms-compat.html#IBUS-infinity"/>
+    <keyword type="macro" name="IBUS_nabla" link="ibus-ibuskeysyms-compat.html#IBUS-nabla"/>
+    <keyword type="macro" name="IBUS_approximate" link="ibus-ibuskeysyms-compat.html#IBUS-approximate"/>
+    <keyword type="macro" name="IBUS_similarequal" link="ibus-ibuskeysyms-compat.html#IBUS-similarequal"/>
+    <keyword type="macro" name="IBUS_ifonlyif" link="ibus-ibuskeysyms-compat.html#IBUS-ifonlyif"/>
+    <keyword type="macro" name="IBUS_implies" link="ibus-ibuskeysyms-compat.html#IBUS-implies"/>
+    <keyword type="macro" name="IBUS_identical" link="ibus-ibuskeysyms-compat.html#IBUS-identical"/>
+    <keyword type="macro" name="IBUS_radical" link="ibus-ibuskeysyms-compat.html#IBUS-radical"/>
+    <keyword type="macro" name="IBUS_includedin" link="ibus-ibuskeysyms-compat.html#IBUS-includedin"/>
+    <keyword type="macro" name="IBUS_includes" link="ibus-ibuskeysyms-compat.html#IBUS-includes"/>
+    <keyword type="macro" name="IBUS_intersection" link="ibus-ibuskeysyms-compat.html#IBUS-intersection"/>
+    <keyword type="macro" name="IBUS_union" link="ibus-ibuskeysyms-compat.html#IBUS-union"/>
+    <keyword type="macro" name="IBUS_logicaland" link="ibus-ibuskeysyms-compat.html#IBUS-logicaland"/>
+    <keyword type="macro" name="IBUS_logicalor" link="ibus-ibuskeysyms-compat.html#IBUS-logicalor"/>
+    <keyword type="macro" name="IBUS_partialderivative" link="ibus-ibuskeysyms-compat.html#IBUS-partialderivative"/>
+    <keyword type="macro" name="IBUS_function" link="ibus-ibuskeysyms-compat.html#IBUS-function"/>
+    <keyword type="macro" name="IBUS_leftarrow" link="ibus-ibuskeysyms-compat.html#IBUS-leftarrow"/>
+    <keyword type="macro" name="IBUS_uparrow" link="ibus-ibuskeysyms-compat.html#IBUS-uparrow"/>
+    <keyword type="macro" name="IBUS_rightarrow" link="ibus-ibuskeysyms-compat.html#IBUS-rightarrow"/>
+    <keyword type="macro" name="IBUS_downarrow" link="ibus-ibuskeysyms-compat.html#IBUS-downarrow"/>
+    <keyword type="macro" name="IBUS_blank" link="ibus-ibuskeysyms-compat.html#IBUS-blank"/>
+    <keyword type="macro" name="IBUS_soliddiamond" link="ibus-ibuskeysyms-compat.html#IBUS-soliddiamond"/>
+    <keyword type="macro" name="IBUS_checkerboard" link="ibus-ibuskeysyms-compat.html#IBUS-checkerboard"/>
+    <keyword type="macro" name="IBUS_ht" link="ibus-ibuskeysyms-compat.html#IBUS-ht"/>
+    <keyword type="macro" name="IBUS_ff" link="ibus-ibuskeysyms-compat.html#IBUS-ff"/>
+    <keyword type="macro" name="IBUS_cr" link="ibus-ibuskeysyms-compat.html#IBUS-cr"/>
+    <keyword type="macro" name="IBUS_lf" link="ibus-ibuskeysyms-compat.html#IBUS-lf"/>
+    <keyword type="macro" name="IBUS_nl" link="ibus-ibuskeysyms-compat.html#IBUS-nl"/>
+    <keyword type="macro" name="IBUS_vt" link="ibus-ibuskeysyms-compat.html#IBUS-vt"/>
+    <keyword type="macro" name="IBUS_lowrightcorner" link="ibus-ibuskeysyms-compat.html#IBUS-lowrightcorner"/>
+    <keyword type="macro" name="IBUS_uprightcorner" link="ibus-ibuskeysyms-compat.html#IBUS-uprightcorner"/>
+    <keyword type="macro" name="IBUS_upleftcorner" link="ibus-ibuskeysyms-compat.html#IBUS-upleftcorner"/>
+    <keyword type="macro" name="IBUS_lowleftcorner" link="ibus-ibuskeysyms-compat.html#IBUS-lowleftcorner"/>
+    <keyword type="macro" name="IBUS_crossinglines" link="ibus-ibuskeysyms-compat.html#IBUS-crossinglines"/>
+    <keyword type="macro" name="IBUS_horizlinescan1" link="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan1"/>
+    <keyword type="macro" name="IBUS_horizlinescan3" link="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan3"/>
+    <keyword type="macro" name="IBUS_horizlinescan5" link="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan5"/>
+    <keyword type="macro" name="IBUS_horizlinescan7" link="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan7"/>
+    <keyword type="macro" name="IBUS_horizlinescan9" link="ibus-ibuskeysyms-compat.html#IBUS-horizlinescan9"/>
+    <keyword type="macro" name="IBUS_leftt" link="ibus-ibuskeysyms-compat.html#IBUS-leftt"/>
+    <keyword type="macro" name="IBUS_rightt" link="ibus-ibuskeysyms-compat.html#IBUS-rightt"/>
+    <keyword type="macro" name="IBUS_bott" link="ibus-ibuskeysyms-compat.html#IBUS-bott"/>
+    <keyword type="macro" name="IBUS_topt" link="ibus-ibuskeysyms-compat.html#IBUS-topt"/>
+    <keyword type="macro" name="IBUS_vertbar" link="ibus-ibuskeysyms-compat.html#IBUS-vertbar"/>
+    <keyword type="macro" name="IBUS_emspace" link="ibus-ibuskeysyms-compat.html#IBUS-emspace"/>
+    <keyword type="macro" name="IBUS_enspace" link="ibus-ibuskeysyms-compat.html#IBUS-enspace"/>
+    <keyword type="macro" name="IBUS_em3space" link="ibus-ibuskeysyms-compat.html#IBUS-em3space"/>
+    <keyword type="macro" name="IBUS_em4space" link="ibus-ibuskeysyms-compat.html#IBUS-em4space"/>
+    <keyword type="macro" name="IBUS_digitspace" link="ibus-ibuskeysyms-compat.html#IBUS-digitspace"/>
+    <keyword type="macro" name="IBUS_punctspace" link="ibus-ibuskeysyms-compat.html#IBUS-punctspace"/>
+    <keyword type="macro" name="IBUS_thinspace" link="ibus-ibuskeysyms-compat.html#IBUS-thinspace"/>
+    <keyword type="macro" name="IBUS_hairspace" link="ibus-ibuskeysyms-compat.html#IBUS-hairspace"/>
+    <keyword type="macro" name="IBUS_emdash" link="ibus-ibuskeysyms-compat.html#IBUS-emdash"/>
+    <keyword type="macro" name="IBUS_endash" link="ibus-ibuskeysyms-compat.html#IBUS-endash"/>
+    <keyword type="macro" name="IBUS_signifblank" link="ibus-ibuskeysyms-compat.html#IBUS-signifblank"/>
+    <keyword type="macro" name="IBUS_ellipsis" link="ibus-ibuskeysyms-compat.html#IBUS-ellipsis"/>
+    <keyword type="macro" name="IBUS_doubbaselinedot" link="ibus-ibuskeysyms-compat.html#IBUS-doubbaselinedot"/>
+    <keyword type="macro" name="IBUS_onethird" link="ibus-ibuskeysyms-compat.html#IBUS-onethird"/>
+    <keyword type="macro" name="IBUS_twothirds" link="ibus-ibuskeysyms-compat.html#IBUS-twothirds"/>
+    <keyword type="macro" name="IBUS_onefifth" link="ibus-ibuskeysyms-compat.html#IBUS-onefifth"/>
+    <keyword type="macro" name="IBUS_twofifths" link="ibus-ibuskeysyms-compat.html#IBUS-twofifths"/>
+    <keyword type="macro" name="IBUS_threefifths" link="ibus-ibuskeysyms-compat.html#IBUS-threefifths"/>
+    <keyword type="macro" name="IBUS_fourfifths" link="ibus-ibuskeysyms-compat.html#IBUS-fourfifths"/>
+    <keyword type="macro" name="IBUS_onesixth" link="ibus-ibuskeysyms-compat.html#IBUS-onesixth"/>
+    <keyword type="macro" name="IBUS_fivesixths" link="ibus-ibuskeysyms-compat.html#IBUS-fivesixths"/>
+    <keyword type="macro" name="IBUS_careof" link="ibus-ibuskeysyms-compat.html#IBUS-careof"/>
+    <keyword type="macro" name="IBUS_figdash" link="ibus-ibuskeysyms-compat.html#IBUS-figdash"/>
+    <keyword type="macro" name="IBUS_leftanglebracket" link="ibus-ibuskeysyms-compat.html#IBUS-leftanglebracket"/>
+    <keyword type="macro" name="IBUS_decimalpoint" link="ibus-ibuskeysyms-compat.html#IBUS-decimalpoint"/>
+    <keyword type="macro" name="IBUS_rightanglebracket" link="ibus-ibuskeysyms-compat.html#IBUS-rightanglebracket"/>
+    <keyword type="macro" name="IBUS_marker" link="ibus-ibuskeysyms-compat.html#IBUS-marker"/>
+    <keyword type="macro" name="IBUS_oneeighth" link="ibus-ibuskeysyms-compat.html#IBUS-oneeighth"/>
+    <keyword type="macro" name="IBUS_threeeighths" link="ibus-ibuskeysyms-compat.html#IBUS-threeeighths"/>
+    <keyword type="macro" name="IBUS_fiveeighths" link="ibus-ibuskeysyms-compat.html#IBUS-fiveeighths"/>
+    <keyword type="macro" name="IBUS_seveneighths" link="ibus-ibuskeysyms-compat.html#IBUS-seveneighths"/>
+    <keyword type="macro" name="IBUS_trademark" link="ibus-ibuskeysyms-compat.html#IBUS-trademark"/>
+    <keyword type="macro" name="IBUS_signaturemark" link="ibus-ibuskeysyms-compat.html#IBUS-signaturemark"/>
+    <keyword type="macro" name="IBUS_trademarkincircle" link="ibus-ibuskeysyms-compat.html#IBUS-trademarkincircle"/>
+    <keyword type="macro" name="IBUS_leftopentriangle" link="ibus-ibuskeysyms-compat.html#IBUS-leftopentriangle"/>
+    <keyword type="macro" name="IBUS_rightopentriangle" link="ibus-ibuskeysyms-compat.html#IBUS-rightopentriangle"/>
+    <keyword type="macro" name="IBUS_emopencircle" link="ibus-ibuskeysyms-compat.html#IBUS-emopencircle"/>
+    <keyword type="macro" name="IBUS_emopenrectangle" link="ibus-ibuskeysyms-compat.html#IBUS-emopenrectangle"/>
+    <keyword type="macro" name="IBUS_leftsinglequotemark" link="ibus-ibuskeysyms-compat.html#IBUS-leftsinglequotemark"/>
+    <keyword type="macro" name="IBUS_rightsinglequotemark" link="ibus-ibuskeysyms-compat.html#IBUS-rightsinglequotemark"/>
+    <keyword type="macro" name="IBUS_leftdoublequotemark" link="ibus-ibuskeysyms-compat.html#IBUS-leftdoublequotemark"/>
+    <keyword type="macro" name="IBUS_rightdoublequotemark" link="ibus-ibuskeysyms-compat.html#IBUS-rightdoublequotemark"/>
+    <keyword type="macro" name="IBUS_prescription" link="ibus-ibuskeysyms-compat.html#IBUS-prescription"/>
+    <keyword type="macro" name="IBUS_minutes" link="ibus-ibuskeysyms-compat.html#IBUS-minutes"/>
+    <keyword type="macro" name="IBUS_seconds" link="ibus-ibuskeysyms-compat.html#IBUS-seconds"/>
+    <keyword type="macro" name="IBUS_latincross" link="ibus-ibuskeysyms-compat.html#IBUS-latincross"/>
+    <keyword type="macro" name="IBUS_hexagram" link="ibus-ibuskeysyms-compat.html#IBUS-hexagram"/>
+    <keyword type="macro" name="IBUS_filledrectbullet" link="ibus-ibuskeysyms-compat.html#IBUS-filledrectbullet"/>
+    <keyword type="macro" name="IBUS_filledlefttribullet" link="ibus-ibuskeysyms-compat.html#IBUS-filledlefttribullet"/>
+    <keyword type="macro" name="IBUS_filledrighttribullet" link="ibus-ibuskeysyms-compat.html#IBUS-filledrighttribullet"/>
+    <keyword type="macro" name="IBUS_emfilledcircle" link="ibus-ibuskeysyms-compat.html#IBUS-emfilledcircle"/>
+    <keyword type="macro" name="IBUS_emfilledrect" link="ibus-ibuskeysyms-compat.html#IBUS-emfilledrect"/>
+    <keyword type="macro" name="IBUS_enopencircbullet" link="ibus-ibuskeysyms-compat.html#IBUS-enopencircbullet"/>
+    <keyword type="macro" name="IBUS_enopensquarebullet" link="ibus-ibuskeysyms-compat.html#IBUS-enopensquarebullet"/>
+    <keyword type="macro" name="IBUS_openrectbullet" link="ibus-ibuskeysyms-compat.html#IBUS-openrectbullet"/>
+    <keyword type="macro" name="IBUS_opentribulletup" link="ibus-ibuskeysyms-compat.html#IBUS-opentribulletup"/>
+    <keyword type="macro" name="IBUS_opentribulletdown" link="ibus-ibuskeysyms-compat.html#IBUS-opentribulletdown"/>
+    <keyword type="macro" name="IBUS_openstar" link="ibus-ibuskeysyms-compat.html#IBUS-openstar"/>
+    <keyword type="macro" name="IBUS_enfilledcircbullet" link="ibus-ibuskeysyms-compat.html#IBUS-enfilledcircbullet"/>
+    <keyword type="macro" name="IBUS_enfilledsqbullet" link="ibus-ibuskeysyms-compat.html#IBUS-enfilledsqbullet"/>
+    <keyword type="macro" name="IBUS_filledtribulletup" link="ibus-ibuskeysyms-compat.html#IBUS-filledtribulletup"/>
+    <keyword type="macro" name="IBUS_filledtribulletdown" link="ibus-ibuskeysyms-compat.html#IBUS-filledtribulletdown"/>
+    <keyword type="macro" name="IBUS_leftpointer" link="ibus-ibuskeysyms-compat.html#IBUS-leftpointer"/>
+    <keyword type="macro" name="IBUS_rightpointer" link="ibus-ibuskeysyms-compat.html#IBUS-rightpointer"/>
+    <keyword type="macro" name="IBUS_club" link="ibus-ibuskeysyms-compat.html#IBUS-club"/>
+    <keyword type="macro" name="IBUS_diamond" link="ibus-ibuskeysyms-compat.html#IBUS-diamond"/>
+    <keyword type="macro" name="IBUS_heart" link="ibus-ibuskeysyms-compat.html#IBUS-heart"/>
+    <keyword type="macro" name="IBUS_maltesecross" link="ibus-ibuskeysyms-compat.html#IBUS-maltesecross"/>
+    <keyword type="macro" name="IBUS_dagger" link="ibus-ibuskeysyms-compat.html#IBUS-dagger"/>
+    <keyword type="macro" name="IBUS_doubledagger" link="ibus-ibuskeysyms-compat.html#IBUS-doubledagger"/>
+    <keyword type="macro" name="IBUS_checkmark" link="ibus-ibuskeysyms-compat.html#IBUS-checkmark"/>
+    <keyword type="macro" name="IBUS_ballotcross" link="ibus-ibuskeysyms-compat.html#IBUS-ballotcross"/>
+    <keyword type="macro" name="IBUS_musicalsharp" link="ibus-ibuskeysyms-compat.html#IBUS-musicalsharp"/>
+    <keyword type="macro" name="IBUS_musicalflat" link="ibus-ibuskeysyms-compat.html#IBUS-musicalflat"/>
+    <keyword type="macro" name="IBUS_malesymbol" link="ibus-ibuskeysyms-compat.html#IBUS-malesymbol"/>
+    <keyword type="macro" name="IBUS_femalesymbol" link="ibus-ibuskeysyms-compat.html#IBUS-femalesymbol"/>
+    <keyword type="macro" name="IBUS_telephone" link="ibus-ibuskeysyms-compat.html#IBUS-telephone"/>
+    <keyword type="macro" name="IBUS_telephonerecorder" link="ibus-ibuskeysyms-compat.html#IBUS-telephonerecorder"/>
+    <keyword type="macro" name="IBUS_phonographcopyright" link="ibus-ibuskeysyms-compat.html#IBUS-phonographcopyright"/>
+    <keyword type="macro" name="IBUS_caret" link="ibus-ibuskeysyms-compat.html#IBUS-caret"/>
+    <keyword type="macro" name="IBUS_singlelowquotemark" link="ibus-ibuskeysyms-compat.html#IBUS-singlelowquotemark"/>
+    <keyword type="macro" name="IBUS_doublelowquotemark" link="ibus-ibuskeysyms-compat.html#IBUS-doublelowquotemark"/>
+    <keyword type="macro" name="IBUS_cursor" link="ibus-ibuskeysyms-compat.html#IBUS-cursor"/>
+    <keyword type="macro" name="IBUS_leftcaret" link="ibus-ibuskeysyms-compat.html#IBUS-leftcaret"/>
+    <keyword type="macro" name="IBUS_rightcaret" link="ibus-ibuskeysyms-compat.html#IBUS-rightcaret"/>
+    <keyword type="macro" name="IBUS_downcaret" link="ibus-ibuskeysyms-compat.html#IBUS-downcaret"/>
+    <keyword type="macro" name="IBUS_upcaret" link="ibus-ibuskeysyms-compat.html#IBUS-upcaret"/>
+    <keyword type="macro" name="IBUS_overbar" link="ibus-ibuskeysyms-compat.html#IBUS-overbar"/>
+    <keyword type="macro" name="IBUS_downtack" link="ibus-ibuskeysyms-compat.html#IBUS-downtack"/>
+    <keyword type="macro" name="IBUS_upshoe" link="ibus-ibuskeysyms-compat.html#IBUS-upshoe"/>
+    <keyword type="macro" name="IBUS_downstile" link="ibus-ibuskeysyms-compat.html#IBUS-downstile"/>
+    <keyword type="macro" name="IBUS_underbar" link="ibus-ibuskeysyms-compat.html#IBUS-underbar"/>
+    <keyword type="macro" name="IBUS_jot" link="ibus-ibuskeysyms-compat.html#IBUS-jot"/>
+    <keyword type="macro" name="IBUS_quad" link="ibus-ibuskeysyms-compat.html#IBUS-quad"/>
+    <keyword type="macro" name="IBUS_uptack" link="ibus-ibuskeysyms-compat.html#IBUS-uptack"/>
+    <keyword type="macro" name="IBUS_circle" link="ibus-ibuskeysyms-compat.html#IBUS-circle"/>
+    <keyword type="macro" name="IBUS_upstile" link="ibus-ibuskeysyms-compat.html#IBUS-upstile"/>
+    <keyword type="macro" name="IBUS_downshoe" link="ibus-ibuskeysyms-compat.html#IBUS-downshoe"/>
+    <keyword type="macro" name="IBUS_rightshoe" link="ibus-ibuskeysyms-compat.html#IBUS-rightshoe"/>
+    <keyword type="macro" name="IBUS_leftshoe" link="ibus-ibuskeysyms-compat.html#IBUS-leftshoe"/>
+    <keyword type="macro" name="IBUS_lefttack" link="ibus-ibuskeysyms-compat.html#IBUS-lefttack"/>
+    <keyword type="macro" name="IBUS_righttack" link="ibus-ibuskeysyms-compat.html#IBUS-righttack"/>
+    <keyword type="macro" name="IBUS_hebrew_doublelowline" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-doublelowline"/>
+    <keyword type="macro" name="IBUS_hebrew_aleph" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-aleph"/>
+    <keyword type="macro" name="IBUS_hebrew_bet" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-bet"/>
+    <keyword type="macro" name="IBUS_hebrew_beth" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-beth"/>
+    <keyword type="macro" name="IBUS_hebrew_gimel" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-gimel"/>
+    <keyword type="macro" name="IBUS_hebrew_gimmel" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-gimmel"/>
+    <keyword type="macro" name="IBUS_hebrew_dalet" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-dalet"/>
+    <keyword type="macro" name="IBUS_hebrew_daleth" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-daleth"/>
+    <keyword type="macro" name="IBUS_hebrew_he" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-he"/>
+    <keyword type="macro" name="IBUS_hebrew_waw" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-waw"/>
+    <keyword type="macro" name="IBUS_hebrew_zain" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zain"/>
+    <keyword type="macro" name="IBUS_hebrew_zayin" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zayin"/>
+    <keyword type="macro" name="IBUS_hebrew_chet" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-chet"/>
+    <keyword type="macro" name="IBUS_hebrew_het" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-het"/>
+    <keyword type="macro" name="IBUS_hebrew_tet" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-tet"/>
+    <keyword type="macro" name="IBUS_hebrew_teth" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-teth"/>
+    <keyword type="macro" name="IBUS_hebrew_yod" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-yod"/>
+    <keyword type="macro" name="IBUS_hebrew_finalkaph" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalkaph"/>
+    <keyword type="macro" name="IBUS_hebrew_kaph" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-kaph"/>
+    <keyword type="macro" name="IBUS_hebrew_lamed" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-lamed"/>
+    <keyword type="macro" name="IBUS_hebrew_finalmem" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalmem"/>
+    <keyword type="macro" name="IBUS_hebrew_mem" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-mem"/>
+    <keyword type="macro" name="IBUS_hebrew_finalnun" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalnun"/>
+    <keyword type="macro" name="IBUS_hebrew_nun" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-nun"/>
+    <keyword type="macro" name="IBUS_hebrew_samech" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-samech"/>
+    <keyword type="macro" name="IBUS_hebrew_samekh" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-samekh"/>
+    <keyword type="macro" name="IBUS_hebrew_ayin" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-ayin"/>
+    <keyword type="macro" name="IBUS_hebrew_finalpe" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalpe"/>
+    <keyword type="macro" name="IBUS_hebrew_pe" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-pe"/>
+    <keyword type="macro" name="IBUS_hebrew_finalzade" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalzade"/>
+    <keyword type="macro" name="IBUS_hebrew_finalzadi" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalzadi"/>
+    <keyword type="macro" name="IBUS_hebrew_zade" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zade"/>
+    <keyword type="macro" name="IBUS_hebrew_zadi" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-zadi"/>
+    <keyword type="macro" name="IBUS_hebrew_qoph" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-qoph"/>
+    <keyword type="macro" name="IBUS_hebrew_kuf" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-kuf"/>
+    <keyword type="macro" name="IBUS_hebrew_resh" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-resh"/>
+    <keyword type="macro" name="IBUS_hebrew_shin" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-shin"/>
+    <keyword type="macro" name="IBUS_hebrew_taw" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-taw"/>
+    <keyword type="macro" name="IBUS_hebrew_taf" link="ibus-ibuskeysyms-compat.html#IBUS-hebrew-taf"/>
+    <keyword type="macro" name="IBUS_Hebrew_switch" link="ibus-ibuskeysyms-compat.html#IBUS-Hebrew-switch"/>
+    <keyword type="macro" name="IBUS_Thai_kokai" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-kokai"/>
+    <keyword type="macro" name="IBUS_Thai_khokhai" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhai"/>
+    <keyword type="macro" name="IBUS_Thai_khokhuat" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhuat"/>
+    <keyword type="macro" name="IBUS_Thai_khokhwai" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhwai"/>
+    <keyword type="macro" name="IBUS_Thai_khokhon" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhon"/>
+    <keyword type="macro" name="IBUS_Thai_khorakhang" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-khorakhang"/>
+    <keyword type="macro" name="IBUS_Thai_ngongu" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-ngongu"/>
+    <keyword type="macro" name="IBUS_Thai_chochan" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-chochan"/>
+    <keyword type="macro" name="IBUS_Thai_choching" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-choching"/>
+    <keyword type="macro" name="IBUS_Thai_chochang" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-chochang"/>
+    <keyword type="macro" name="IBUS_Thai_soso" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-soso"/>
+    <keyword type="macro" name="IBUS_Thai_chochoe" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-chochoe"/>
+    <keyword type="macro" name="IBUS_Thai_yoying" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-yoying"/>
+    <keyword type="macro" name="IBUS_Thai_dochada" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-dochada"/>
+    <keyword type="macro" name="IBUS_Thai_topatak" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-topatak"/>
+    <keyword type="macro" name="IBUS_Thai_thothan" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothan"/>
+    <keyword type="macro" name="IBUS_Thai_thonangmontho" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-thonangmontho"/>
+    <keyword type="macro" name="IBUS_Thai_thophuthao" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-thophuthao"/>
+    <keyword type="macro" name="IBUS_Thai_nonen" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-nonen"/>
+    <keyword type="macro" name="IBUS_Thai_dodek" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-dodek"/>
+    <keyword type="macro" name="IBUS_Thai_totao" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-totao"/>
+    <keyword type="macro" name="IBUS_Thai_thothung" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothung"/>
+    <keyword type="macro" name="IBUS_Thai_thothahan" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothahan"/>
+    <keyword type="macro" name="IBUS_Thai_thothong" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-thothong"/>
+    <keyword type="macro" name="IBUS_Thai_nonu" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-nonu"/>
+    <keyword type="macro" name="IBUS_Thai_bobaimai" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-bobaimai"/>
+    <keyword type="macro" name="IBUS_Thai_popla" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-popla"/>
+    <keyword type="macro" name="IBUS_Thai_phophung" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-phophung"/>
+    <keyword type="macro" name="IBUS_Thai_fofa" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-fofa"/>
+    <keyword type="macro" name="IBUS_Thai_phophan" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-phophan"/>
+    <keyword type="macro" name="IBUS_Thai_fofan" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-fofan"/>
+    <keyword type="macro" name="IBUS_Thai_phosamphao" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-phosamphao"/>
+    <keyword type="macro" name="IBUS_Thai_moma" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-moma"/>
+    <keyword type="macro" name="IBUS_Thai_yoyak" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-yoyak"/>
+    <keyword type="macro" name="IBUS_Thai_rorua" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-rorua"/>
+    <keyword type="macro" name="IBUS_Thai_ru" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-ru"/>
+    <keyword type="macro" name="IBUS_Thai_loling" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-loling"/>
+    <keyword type="macro" name="IBUS_Thai_lu" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-lu"/>
+    <keyword type="macro" name="IBUS_Thai_wowaen" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-wowaen"/>
+    <keyword type="macro" name="IBUS_Thai_sosala" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-sosala"/>
+    <keyword type="macro" name="IBUS_Thai_sorusi" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-sorusi"/>
+    <keyword type="macro" name="IBUS_Thai_sosua" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-sosua"/>
+    <keyword type="macro" name="IBUS_Thai_hohip" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-hohip"/>
+    <keyword type="macro" name="IBUS_Thai_lochula" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-lochula"/>
+    <keyword type="macro" name="IBUS_Thai_oang" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-oang"/>
+    <keyword type="macro" name="IBUS_Thai_honokhuk" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-honokhuk"/>
+    <keyword type="macro" name="IBUS_Thai_paiyannoi" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-paiyannoi"/>
+    <keyword type="macro" name="IBUS_Thai_saraa" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraa"/>
+    <keyword type="macro" name="IBUS_Thai_maihanakat" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-maihanakat"/>
+    <keyword type="macro" name="IBUS_Thai_saraaa" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaa"/>
+    <keyword type="macro" name="IBUS_Thai_saraam" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraam"/>
+    <keyword type="macro" name="IBUS_Thai_sarai" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarai"/>
+    <keyword type="macro" name="IBUS_Thai_saraii" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraii"/>
+    <keyword type="macro" name="IBUS_Thai_saraue" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraue"/>
+    <keyword type="macro" name="IBUS_Thai_sarauee" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarauee"/>
+    <keyword type="macro" name="IBUS_Thai_sarau" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarau"/>
+    <keyword type="macro" name="IBUS_Thai_sarauu" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarauu"/>
+    <keyword type="macro" name="IBUS_Thai_phinthu" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-phinthu"/>
+    <keyword type="macro" name="IBUS_Thai_maihanakat_maitho" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-maihanakat-maitho"/>
+    <keyword type="macro" name="IBUS_Thai_baht" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-baht"/>
+    <keyword type="macro" name="IBUS_Thai_sarae" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarae"/>
+    <keyword type="macro" name="IBUS_Thai_saraae" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraae"/>
+    <keyword type="macro" name="IBUS_Thai_sarao" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-sarao"/>
+    <keyword type="macro" name="IBUS_Thai_saraaimaimuan" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaimaimuan"/>
+    <keyword type="macro" name="IBUS_Thai_saraaimaimalai" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaimaimalai"/>
+    <keyword type="macro" name="IBUS_Thai_lakkhangyao" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-lakkhangyao"/>
+    <keyword type="macro" name="IBUS_Thai_maiyamok" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-maiyamok"/>
+    <keyword type="macro" name="IBUS_Thai_maitaikhu" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-maitaikhu"/>
+    <keyword type="macro" name="IBUS_Thai_maiek" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-maiek"/>
+    <keyword type="macro" name="IBUS_Thai_maitho" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-maitho"/>
+    <keyword type="macro" name="IBUS_Thai_maitri" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-maitri"/>
+    <keyword type="macro" name="IBUS_Thai_maichattawa" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-maichattawa"/>
+    <keyword type="macro" name="IBUS_Thai_thanthakhat" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-thanthakhat"/>
+    <keyword type="macro" name="IBUS_Thai_nikhahit" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-nikhahit"/>
+    <keyword type="macro" name="IBUS_Thai_leksun" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksun"/>
+    <keyword type="macro" name="IBUS_Thai_leknung" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-leknung"/>
+    <keyword type="macro" name="IBUS_Thai_leksong" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksong"/>
+    <keyword type="macro" name="IBUS_Thai_leksam" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksam"/>
+    <keyword type="macro" name="IBUS_Thai_leksi" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-leksi"/>
+    <keyword type="macro" name="IBUS_Thai_lekha" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekha"/>
+    <keyword type="macro" name="IBUS_Thai_lekhok" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekhok"/>
+    <keyword type="macro" name="IBUS_Thai_lekchet" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekchet"/>
+    <keyword type="macro" name="IBUS_Thai_lekpaet" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekpaet"/>
+    <keyword type="macro" name="IBUS_Thai_lekkao" link="ibus-ibuskeysyms-compat.html#IBUS-Thai-lekkao"/>
+    <keyword type="macro" name="IBUS_Hangul" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul"/>
+    <keyword type="macro" name="IBUS_Hangul_Start" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Start"/>
+    <keyword type="macro" name="IBUS_Hangul_End" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-End"/>
+    <keyword type="macro" name="IBUS_Hangul_Hanja" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Hanja"/>
+    <keyword type="macro" name="IBUS_Hangul_Jamo" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jamo"/>
+    <keyword type="macro" name="IBUS_Hangul_Romaja" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Romaja"/>
+    <keyword type="macro" name="IBUS_Hangul_Codeinput" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Codeinput"/>
+    <keyword type="macro" name="IBUS_Hangul_Jeonja" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jeonja"/>
+    <keyword type="macro" name="IBUS_Hangul_Banja" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Banja"/>
+    <keyword type="macro" name="IBUS_Hangul_PreHanja" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PreHanja"/>
+    <keyword type="macro" name="IBUS_Hangul_PostHanja" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PostHanja"/>
+    <keyword type="macro" name="IBUS_Hangul_SingleCandidate" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SingleCandidate"/>
+    <keyword type="macro" name="IBUS_Hangul_MultipleCandidate" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-MultipleCandidate"/>
+    <keyword type="macro" name="IBUS_Hangul_PreviousCandidate" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PreviousCandidate"/>
+    <keyword type="macro" name="IBUS_Hangul_Special" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Special"/>
+    <keyword type="macro" name="IBUS_Hangul_switch" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-switch"/>
+    <keyword type="macro" name="IBUS_Hangul_Kiyeog" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Kiyeog"/>
+    <keyword type="macro" name="IBUS_Hangul_SsangKiyeog" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangKiyeog"/>
+    <keyword type="macro" name="IBUS_Hangul_KiyeogSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-KiyeogSios"/>
+    <keyword type="macro" name="IBUS_Hangul_Nieun" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Nieun"/>
+    <keyword type="macro" name="IBUS_Hangul_NieunJieuj" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-NieunJieuj"/>
+    <keyword type="macro" name="IBUS_Hangul_NieunHieuh" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-NieunHieuh"/>
+    <keyword type="macro" name="IBUS_Hangul_Dikeud" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Dikeud"/>
+    <keyword type="macro" name="IBUS_Hangul_SsangDikeud" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangDikeud"/>
+    <keyword type="macro" name="IBUS_Hangul_Rieul" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Rieul"/>
+    <keyword type="macro" name="IBUS_Hangul_RieulKiyeog" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulKiyeog"/>
+    <keyword type="macro" name="IBUS_Hangul_RieulMieum" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulMieum"/>
+    <keyword type="macro" name="IBUS_Hangul_RieulPieub" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulPieub"/>
+    <keyword type="macro" name="IBUS_Hangul_RieulSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulSios"/>
+    <keyword type="macro" name="IBUS_Hangul_RieulTieut" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulTieut"/>
+    <keyword type="macro" name="IBUS_Hangul_RieulPhieuf" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulPhieuf"/>
+    <keyword type="macro" name="IBUS_Hangul_RieulHieuh" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulHieuh"/>
+    <keyword type="macro" name="IBUS_Hangul_Mieum" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Mieum"/>
+    <keyword type="macro" name="IBUS_Hangul_Pieub" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Pieub"/>
+    <keyword type="macro" name="IBUS_Hangul_SsangPieub" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangPieub"/>
+    <keyword type="macro" name="IBUS_Hangul_PieubSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PieubSios"/>
+    <keyword type="macro" name="IBUS_Hangul_Sios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Sios"/>
+    <keyword type="macro" name="IBUS_Hangul_SsangSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangSios"/>
+    <keyword type="macro" name="IBUS_Hangul_Ieung" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Ieung"/>
+    <keyword type="macro" name="IBUS_Hangul_Jieuj" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jieuj"/>
+    <keyword type="macro" name="IBUS_Hangul_SsangJieuj" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangJieuj"/>
+    <keyword type="macro" name="IBUS_Hangul_Cieuc" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Cieuc"/>
+    <keyword type="macro" name="IBUS_Hangul_Khieuq" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Khieuq"/>
+    <keyword type="macro" name="IBUS_Hangul_Tieut" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Tieut"/>
+    <keyword type="macro" name="IBUS_Hangul_Phieuf" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Phieuf"/>
+    <keyword type="macro" name="IBUS_Hangul_Hieuh" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-Hieuh"/>
+    <keyword type="macro" name="IBUS_Hangul_A" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-A"/>
+    <keyword type="macro" name="IBUS_Hangul_AE" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-AE"/>
+    <keyword type="macro" name="IBUS_Hangul_YA" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YA"/>
+    <keyword type="macro" name="IBUS_Hangul_YAE" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YAE"/>
+    <keyword type="macro" name="IBUS_Hangul_EO" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-EO"/>
+    <keyword type="macro" name="IBUS_Hangul_E" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-E"/>
+    <keyword type="macro" name="IBUS_Hangul_YEO" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YEO"/>
+    <keyword type="macro" name="IBUS_Hangul_YE" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YE"/>
+    <keyword type="macro" name="IBUS_Hangul_O" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-O"/>
+    <keyword type="macro" name="IBUS_Hangul_WA" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WA"/>
+    <keyword type="macro" name="IBUS_Hangul_WAE" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WAE"/>
+    <keyword type="macro" name="IBUS_Hangul_OE" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-OE"/>
+    <keyword type="macro" name="IBUS_Hangul_YO" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YO"/>
+    <keyword type="macro" name="IBUS_Hangul_U" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-U"/>
+    <keyword type="macro" name="IBUS_Hangul_WEO" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WEO"/>
+    <keyword type="macro" name="IBUS_Hangul_WE" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WE"/>
+    <keyword type="macro" name="IBUS_Hangul_WI" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-WI"/>
+    <keyword type="macro" name="IBUS_Hangul_YU" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YU"/>
+    <keyword type="macro" name="IBUS_Hangul_EU" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-EU"/>
+    <keyword type="macro" name="IBUS_Hangul_YI" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YI"/>
+    <keyword type="macro" name="IBUS_Hangul_I" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-I"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Kiyeog" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Kiyeog"/>
+    <keyword type="macro" name="IBUS_Hangul_J_SsangKiyeog" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-SsangKiyeog"/>
+    <keyword type="macro" name="IBUS_Hangul_J_KiyeogSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-KiyeogSios"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Nieun" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Nieun"/>
+    <keyword type="macro" name="IBUS_Hangul_J_NieunJieuj" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-NieunJieuj"/>
+    <keyword type="macro" name="IBUS_Hangul_J_NieunHieuh" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-NieunHieuh"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Dikeud" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Dikeud"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Rieul" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Rieul"/>
+    <keyword type="macro" name="IBUS_Hangul_J_RieulKiyeog" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulKiyeog"/>
+    <keyword type="macro" name="IBUS_Hangul_J_RieulMieum" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulMieum"/>
+    <keyword type="macro" name="IBUS_Hangul_J_RieulPieub" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulPieub"/>
+    <keyword type="macro" name="IBUS_Hangul_J_RieulSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulSios"/>
+    <keyword type="macro" name="IBUS_Hangul_J_RieulTieut" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulTieut"/>
+    <keyword type="macro" name="IBUS_Hangul_J_RieulPhieuf" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulPhieuf"/>
+    <keyword type="macro" name="IBUS_Hangul_J_RieulHieuh" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulHieuh"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Mieum" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Mieum"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Pieub" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Pieub"/>
+    <keyword type="macro" name="IBUS_Hangul_J_PieubSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-PieubSios"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Sios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Sios"/>
+    <keyword type="macro" name="IBUS_Hangul_J_SsangSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-SsangSios"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Ieung" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Ieung"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Jieuj" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Jieuj"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Cieuc" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Cieuc"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Khieuq" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Khieuq"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Tieut" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Tieut"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Phieuf" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Phieuf"/>
+    <keyword type="macro" name="IBUS_Hangul_J_Hieuh" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Hieuh"/>
+    <keyword type="macro" name="IBUS_Hangul_RieulYeorinHieuh" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulYeorinHieuh"/>
+    <keyword type="macro" name="IBUS_Hangul_SunkyeongeumMieum" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumMieum"/>
+    <keyword type="macro" name="IBUS_Hangul_SunkyeongeumPieub" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumPieub"/>
+    <keyword type="macro" name="IBUS_Hangul_PanSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-PanSios"/>
+    <keyword type="macro" name="IBUS_Hangul_KkogjiDalrinIeung" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-KkogjiDalrinIeung"/>
+    <keyword type="macro" name="IBUS_Hangul_SunkyeongeumPhieuf" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumPhieuf"/>
+    <keyword type="macro" name="IBUS_Hangul_YeorinHieuh" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-YeorinHieuh"/>
+    <keyword type="macro" name="IBUS_Hangul_AraeA" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-AraeA"/>
+    <keyword type="macro" name="IBUS_Hangul_AraeAE" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-AraeAE"/>
+    <keyword type="macro" name="IBUS_Hangul_J_PanSios" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-PanSios"/>
+    <keyword type="macro" name="IBUS_Hangul_J_KkogjiDalrinIeung" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-KkogjiDalrinIeung"/>
+    <keyword type="macro" name="IBUS_Hangul_J_YeorinHieuh" link="ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-YeorinHieuh"/>
+    <keyword type="macro" name="IBUS_Korean_Won" link="ibus-ibuskeysyms-compat.html#IBUS-Korean-Won"/>
+    <keyword type="macro" name="IBUS_Armenian_ligature_ew" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ligature-ew"/>
+    <keyword type="macro" name="IBUS_Armenian_full_stop" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-full-stop"/>
+    <keyword type="macro" name="IBUS_Armenian_verjaket" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-verjaket"/>
+    <keyword type="macro" name="IBUS_Armenian_separation_mark" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-separation-mark"/>
+    <keyword type="macro" name="IBUS_Armenian_but" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-but"/>
+    <keyword type="macro" name="IBUS_Armenian_hyphen" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-hyphen"/>
+    <keyword type="macro" name="IBUS_Armenian_yentamna" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-yentamna"/>
+    <keyword type="macro" name="IBUS_Armenian_exclam" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-exclam"/>
+    <keyword type="macro" name="IBUS_Armenian_amanak" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-amanak"/>
+    <keyword type="macro" name="IBUS_Armenian_accent" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-accent"/>
+    <keyword type="macro" name="IBUS_Armenian_shesht" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-shesht"/>
+    <keyword type="macro" name="IBUS_Armenian_question" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-question"/>
+    <keyword type="macro" name="IBUS_Armenian_paruyk" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-paruyk"/>
+    <keyword type="macro" name="IBUS_Armenian_AYB" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-AYB"/>
+    <keyword type="macro" name="IBUS_Armenian_ayb" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ayb"/>
+    <keyword type="macro" name="IBUS_Armenian_BEN" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-BEN"/>
+    <keyword type="macro" name="IBUS_Armenian_ben" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ben"/>
+    <keyword type="macro" name="IBUS_Armenian_GIM" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-GIM"/>
+    <keyword type="macro" name="IBUS_Armenian_gim" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-gim"/>
+    <keyword type="macro" name="IBUS_Armenian_DA" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-DA"/>
+    <keyword type="macro" name="IBUS_Armenian_da" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-da"/>
+    <keyword type="macro" name="IBUS_Armenian_YECH" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-YECH"/>
+    <keyword type="macro" name="IBUS_Armenian_yech" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-yech"/>
+    <keyword type="macro" name="IBUS_Armenian_ZA" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ZA"/>
+    <keyword type="macro" name="IBUS_Armenian_za" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-za"/>
+    <keyword type="macro" name="IBUS_Armenian_E" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-E"/>
+    <keyword type="macro" name="IBUS_Armenian_e" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-e"/>
+    <keyword type="macro" name="IBUS_Armenian_AT" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-AT"/>
+    <keyword type="macro" name="IBUS_Armenian_at" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-at"/>
+    <keyword type="macro" name="IBUS_Armenian_TO" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TO"/>
+    <keyword type="macro" name="IBUS_Armenian_to" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-to"/>
+    <keyword type="macro" name="IBUS_Armenian_ZHE" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ZHE"/>
+    <keyword type="macro" name="IBUS_Armenian_zhe" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-zhe"/>
+    <keyword type="macro" name="IBUS_Armenian_INI" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-INI"/>
+    <keyword type="macro" name="IBUS_Armenian_ini" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ini"/>
+    <keyword type="macro" name="IBUS_Armenian_LYUN" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-LYUN"/>
+    <keyword type="macro" name="IBUS_Armenian_lyun" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-lyun"/>
+    <keyword type="macro" name="IBUS_Armenian_KHE" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-KHE"/>
+    <keyword type="macro" name="IBUS_Armenian_khe" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-khe"/>
+    <keyword type="macro" name="IBUS_Armenian_TSA" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TSA"/>
+    <keyword type="macro" name="IBUS_Armenian_tsa" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tsa"/>
+    <keyword type="macro" name="IBUS_Armenian_KEN" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-KEN"/>
+    <keyword type="macro" name="IBUS_Armenian_ken" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ken"/>
+    <keyword type="macro" name="IBUS_Armenian_HO" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-HO"/>
+    <keyword type="macro" name="IBUS_Armenian_ho" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ho"/>
+    <keyword type="macro" name="IBUS_Armenian_DZA" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-DZA"/>
+    <keyword type="macro" name="IBUS_Armenian_dza" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-dza"/>
+    <keyword type="macro" name="IBUS_Armenian_GHAT" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-GHAT"/>
+    <keyword type="macro" name="IBUS_Armenian_ghat" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ghat"/>
+    <keyword type="macro" name="IBUS_Armenian_TCHE" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TCHE"/>
+    <keyword type="macro" name="IBUS_Armenian_tche" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tche"/>
+    <keyword type="macro" name="IBUS_Armenian_MEN" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-MEN"/>
+    <keyword type="macro" name="IBUS_Armenian_men" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-men"/>
+    <keyword type="macro" name="IBUS_Armenian_HI" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-HI"/>
+    <keyword type="macro" name="IBUS_Armenian_hi" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-hi"/>
+    <keyword type="macro" name="IBUS_Armenian_NU" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-NU"/>
+    <keyword type="macro" name="IBUS_Armenian_nu" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-nu"/>
+    <keyword type="macro" name="IBUS_Armenian_SHA" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-SHA"/>
+    <keyword type="macro" name="IBUS_Armenian_sha" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-sha"/>
+    <keyword type="macro" name="IBUS_Armenian_VO" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-VO"/>
+    <keyword type="macro" name="IBUS_Armenian_vo" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-vo"/>
+    <keyword type="macro" name="IBUS_Armenian_CHA" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-CHA"/>
+    <keyword type="macro" name="IBUS_Armenian_cha" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-cha"/>
+    <keyword type="macro" name="IBUS_Armenian_PE" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-PE"/>
+    <keyword type="macro" name="IBUS_Armenian_pe" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-pe"/>
+    <keyword type="macro" name="IBUS_Armenian_JE" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-JE"/>
+    <keyword type="macro" name="IBUS_Armenian_je" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-je"/>
+    <keyword type="macro" name="IBUS_Armenian_RA" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-RA"/>
+    <keyword type="macro" name="IBUS_Armenian_ra" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ra"/>
+    <keyword type="macro" name="IBUS_Armenian_SE" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-SE"/>
+    <keyword type="macro" name="IBUS_Armenian_se" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-se"/>
+    <keyword type="macro" name="IBUS_Armenian_VEV" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-VEV"/>
+    <keyword type="macro" name="IBUS_Armenian_vev" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-vev"/>
+    <keyword type="macro" name="IBUS_Armenian_TYUN" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TYUN"/>
+    <keyword type="macro" name="IBUS_Armenian_tyun" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tyun"/>
+    <keyword type="macro" name="IBUS_Armenian_RE" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-RE"/>
+    <keyword type="macro" name="IBUS_Armenian_re" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-re"/>
+    <keyword type="macro" name="IBUS_Armenian_TSO" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-TSO"/>
+    <keyword type="macro" name="IBUS_Armenian_tso" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-tso"/>
+    <keyword type="macro" name="IBUS_Armenian_VYUN" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-VYUN"/>
+    <keyword type="macro" name="IBUS_Armenian_vyun" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-vyun"/>
+    <keyword type="macro" name="IBUS_Armenian_PYUR" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-PYUR"/>
+    <keyword type="macro" name="IBUS_Armenian_pyur" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-pyur"/>
+    <keyword type="macro" name="IBUS_Armenian_KE" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-KE"/>
+    <keyword type="macro" name="IBUS_Armenian_ke" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-ke"/>
+    <keyword type="macro" name="IBUS_Armenian_O" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-O"/>
+    <keyword type="macro" name="IBUS_Armenian_o" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-o"/>
+    <keyword type="macro" name="IBUS_Armenian_FE" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-FE"/>
+    <keyword type="macro" name="IBUS_Armenian_fe" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-fe"/>
+    <keyword type="macro" name="IBUS_Armenian_apostrophe" link="ibus-ibuskeysyms-compat.html#IBUS-Armenian-apostrophe"/>
+    <keyword type="macro" name="IBUS_Georgian_an" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-an"/>
+    <keyword type="macro" name="IBUS_Georgian_ban" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-ban"/>
+    <keyword type="macro" name="IBUS_Georgian_gan" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-gan"/>
+    <keyword type="macro" name="IBUS_Georgian_don" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-don"/>
+    <keyword type="macro" name="IBUS_Georgian_en" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-en"/>
+    <keyword type="macro" name="IBUS_Georgian_vin" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-vin"/>
+    <keyword type="macro" name="IBUS_Georgian_zen" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-zen"/>
+    <keyword type="macro" name="IBUS_Georgian_tan" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-tan"/>
+    <keyword type="macro" name="IBUS_Georgian_in" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-in"/>
+    <keyword type="macro" name="IBUS_Georgian_kan" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-kan"/>
+    <keyword type="macro" name="IBUS_Georgian_las" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-las"/>
+    <keyword type="macro" name="IBUS_Georgian_man" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-man"/>
+    <keyword type="macro" name="IBUS_Georgian_nar" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-nar"/>
+    <keyword type="macro" name="IBUS_Georgian_on" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-on"/>
+    <keyword type="macro" name="IBUS_Georgian_par" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-par"/>
+    <keyword type="macro" name="IBUS_Georgian_zhar" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-zhar"/>
+    <keyword type="macro" name="IBUS_Georgian_rae" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-rae"/>
+    <keyword type="macro" name="IBUS_Georgian_san" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-san"/>
+    <keyword type="macro" name="IBUS_Georgian_tar" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-tar"/>
+    <keyword type="macro" name="IBUS_Georgian_un" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-un"/>
+    <keyword type="macro" name="IBUS_Georgian_phar" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-phar"/>
+    <keyword type="macro" name="IBUS_Georgian_khar" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-khar"/>
+    <keyword type="macro" name="IBUS_Georgian_ghan" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-ghan"/>
+    <keyword type="macro" name="IBUS_Georgian_qar" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-qar"/>
+    <keyword type="macro" name="IBUS_Georgian_shin" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-shin"/>
+    <keyword type="macro" name="IBUS_Georgian_chin" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-chin"/>
+    <keyword type="macro" name="IBUS_Georgian_can" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-can"/>
+    <keyword type="macro" name="IBUS_Georgian_jil" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-jil"/>
+    <keyword type="macro" name="IBUS_Georgian_cil" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-cil"/>
+    <keyword type="macro" name="IBUS_Georgian_char" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-char"/>
+    <keyword type="macro" name="IBUS_Georgian_xan" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-xan"/>
+    <keyword type="macro" name="IBUS_Georgian_jhan" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-jhan"/>
+    <keyword type="macro" name="IBUS_Georgian_hae" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-hae"/>
+    <keyword type="macro" name="IBUS_Georgian_he" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-he"/>
+    <keyword type="macro" name="IBUS_Georgian_hie" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-hie"/>
+    <keyword type="macro" name="IBUS_Georgian_we" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-we"/>
+    <keyword type="macro" name="IBUS_Georgian_har" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-har"/>
+    <keyword type="macro" name="IBUS_Georgian_hoe" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-hoe"/>
+    <keyword type="macro" name="IBUS_Georgian_fi" link="ibus-ibuskeysyms-compat.html#IBUS-Georgian-fi"/>
+    <keyword type="macro" name="IBUS_Xabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-Xabovedot"/>
+    <keyword type="macro" name="IBUS_Ibreve" link="ibus-ibuskeysyms-compat.html#IBUS-Ibreve"/>
+    <keyword type="macro" name="IBUS_Zstroke" link="ibus-ibuskeysyms-compat.html#IBUS-Zstroke"/>
+    <keyword type="macro" name="IBUS_Gcaron" link="ibus-ibuskeysyms-compat.html#IBUS-Gcaron"/>
+    <keyword type="macro" name="IBUS_Ocaron" link="ibus-ibuskeysyms-compat.html#IBUS-Ocaron"/>
+    <keyword type="macro" name="IBUS_Obarred" link="ibus-ibuskeysyms-compat.html#IBUS-Obarred"/>
+    <keyword type="macro" name="IBUS_xabovedot" link="ibus-ibuskeysyms-compat.html#IBUS-xabovedot"/>
+    <keyword type="macro" name="IBUS_ibreve" link="ibus-ibuskeysyms-compat.html#IBUS-ibreve"/>
+    <keyword type="macro" name="IBUS_zstroke" link="ibus-ibuskeysyms-compat.html#IBUS-zstroke"/>
+    <keyword type="macro" name="IBUS_gcaron" link="ibus-ibuskeysyms-compat.html#IBUS-gcaron"/>
+    <keyword type="macro" name="IBUS_ocaron" link="ibus-ibuskeysyms-compat.html#IBUS-ocaron"/>
+    <keyword type="macro" name="IBUS_obarred" link="ibus-ibuskeysyms-compat.html#IBUS-obarred"/>
+    <keyword type="macro" name="IBUS_SCHWA" link="ibus-ibuskeysyms-compat.html#IBUS-SCHWA:CAPS"/>
+    <keyword type="macro" name="IBUS_schwa" link="ibus-ibuskeysyms-compat.html#IBUS-schwa"/>
+    <keyword type="macro" name="IBUS_Lbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Lbelowdot"/>
+    <keyword type="macro" name="IBUS_lbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-lbelowdot"/>
+    <keyword type="macro" name="IBUS_Abelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Abelowdot"/>
+    <keyword type="macro" name="IBUS_abelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-abelowdot"/>
+    <keyword type="macro" name="IBUS_Ahook" link="ibus-ibuskeysyms-compat.html#IBUS-Ahook"/>
+    <keyword type="macro" name="IBUS_ahook" link="ibus-ibuskeysyms-compat.html#IBUS-ahook"/>
+    <keyword type="macro" name="IBUS_Acircumflexacute" link="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexacute"/>
+    <keyword type="macro" name="IBUS_acircumflexacute" link="ibus-ibuskeysyms-compat.html#IBUS-acircumflexacute"/>
+    <keyword type="macro" name="IBUS_Acircumflexgrave" link="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexgrave"/>
+    <keyword type="macro" name="IBUS_acircumflexgrave" link="ibus-ibuskeysyms-compat.html#IBUS-acircumflexgrave"/>
+    <keyword type="macro" name="IBUS_Acircumflexhook" link="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexhook"/>
+    <keyword type="macro" name="IBUS_acircumflexhook" link="ibus-ibuskeysyms-compat.html#IBUS-acircumflexhook"/>
+    <keyword type="macro" name="IBUS_Acircumflextilde" link="ibus-ibuskeysyms-compat.html#IBUS-Acircumflextilde"/>
+    <keyword type="macro" name="IBUS_acircumflextilde" link="ibus-ibuskeysyms-compat.html#IBUS-acircumflextilde"/>
+    <keyword type="macro" name="IBUS_Acircumflexbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Acircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_acircumflexbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-acircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_Abreveacute" link="ibus-ibuskeysyms-compat.html#IBUS-Abreveacute"/>
+    <keyword type="macro" name="IBUS_abreveacute" link="ibus-ibuskeysyms-compat.html#IBUS-abreveacute"/>
+    <keyword type="macro" name="IBUS_Abrevegrave" link="ibus-ibuskeysyms-compat.html#IBUS-Abrevegrave"/>
+    <keyword type="macro" name="IBUS_abrevegrave" link="ibus-ibuskeysyms-compat.html#IBUS-abrevegrave"/>
+    <keyword type="macro" name="IBUS_Abrevehook" link="ibus-ibuskeysyms-compat.html#IBUS-Abrevehook"/>
+    <keyword type="macro" name="IBUS_abrevehook" link="ibus-ibuskeysyms-compat.html#IBUS-abrevehook"/>
+    <keyword type="macro" name="IBUS_Abrevetilde" link="ibus-ibuskeysyms-compat.html#IBUS-Abrevetilde"/>
+    <keyword type="macro" name="IBUS_abrevetilde" link="ibus-ibuskeysyms-compat.html#IBUS-abrevetilde"/>
+    <keyword type="macro" name="IBUS_Abrevebelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Abrevebelowdot"/>
+    <keyword type="macro" name="IBUS_abrevebelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-abrevebelowdot"/>
+    <keyword type="macro" name="IBUS_Ebelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Ebelowdot"/>
+    <keyword type="macro" name="IBUS_ebelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-ebelowdot"/>
+    <keyword type="macro" name="IBUS_Ehook" link="ibus-ibuskeysyms-compat.html#IBUS-Ehook"/>
+    <keyword type="macro" name="IBUS_ehook" link="ibus-ibuskeysyms-compat.html#IBUS-ehook"/>
+    <keyword type="macro" name="IBUS_Etilde" link="ibus-ibuskeysyms-compat.html#IBUS-Etilde"/>
+    <keyword type="macro" name="IBUS_etilde" link="ibus-ibuskeysyms-compat.html#IBUS-etilde"/>
+    <keyword type="macro" name="IBUS_Ecircumflexacute" link="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexacute"/>
+    <keyword type="macro" name="IBUS_ecircumflexacute" link="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexacute"/>
+    <keyword type="macro" name="IBUS_Ecircumflexgrave" link="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexgrave"/>
+    <keyword type="macro" name="IBUS_ecircumflexgrave" link="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexgrave"/>
+    <keyword type="macro" name="IBUS_Ecircumflexhook" link="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexhook"/>
+    <keyword type="macro" name="IBUS_ecircumflexhook" link="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexhook"/>
+    <keyword type="macro" name="IBUS_Ecircumflextilde" link="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflextilde"/>
+    <keyword type="macro" name="IBUS_ecircumflextilde" link="ibus-ibuskeysyms-compat.html#IBUS-ecircumflextilde"/>
+    <keyword type="macro" name="IBUS_Ecircumflexbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_ecircumflexbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-ecircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_Ihook" link="ibus-ibuskeysyms-compat.html#IBUS-Ihook"/>
+    <keyword type="macro" name="IBUS_ihook" link="ibus-ibuskeysyms-compat.html#IBUS-ihook"/>
+    <keyword type="macro" name="IBUS_Ibelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Ibelowdot"/>
+    <keyword type="macro" name="IBUS_ibelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-ibelowdot"/>
+    <keyword type="macro" name="IBUS_Obelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Obelowdot"/>
+    <keyword type="macro" name="IBUS_obelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-obelowdot"/>
+    <keyword type="macro" name="IBUS_Ohook" link="ibus-ibuskeysyms-compat.html#IBUS-Ohook"/>
+    <keyword type="macro" name="IBUS_ohook" link="ibus-ibuskeysyms-compat.html#IBUS-ohook"/>
+    <keyword type="macro" name="IBUS_Ocircumflexacute" link="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexacute"/>
+    <keyword type="macro" name="IBUS_ocircumflexacute" link="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexacute"/>
+    <keyword type="macro" name="IBUS_Ocircumflexgrave" link="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexgrave"/>
+    <keyword type="macro" name="IBUS_ocircumflexgrave" link="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexgrave"/>
+    <keyword type="macro" name="IBUS_Ocircumflexhook" link="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexhook"/>
+    <keyword type="macro" name="IBUS_ocircumflexhook" link="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexhook"/>
+    <keyword type="macro" name="IBUS_Ocircumflextilde" link="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflextilde"/>
+    <keyword type="macro" name="IBUS_ocircumflextilde" link="ibus-ibuskeysyms-compat.html#IBUS-ocircumflextilde"/>
+    <keyword type="macro" name="IBUS_Ocircumflexbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_ocircumflexbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-ocircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_Ohornacute" link="ibus-ibuskeysyms-compat.html#IBUS-Ohornacute"/>
+    <keyword type="macro" name="IBUS_ohornacute" link="ibus-ibuskeysyms-compat.html#IBUS-ohornacute"/>
+    <keyword type="macro" name="IBUS_Ohorngrave" link="ibus-ibuskeysyms-compat.html#IBUS-Ohorngrave"/>
+    <keyword type="macro" name="IBUS_ohorngrave" link="ibus-ibuskeysyms-compat.html#IBUS-ohorngrave"/>
+    <keyword type="macro" name="IBUS_Ohornhook" link="ibus-ibuskeysyms-compat.html#IBUS-Ohornhook"/>
+    <keyword type="macro" name="IBUS_ohornhook" link="ibus-ibuskeysyms-compat.html#IBUS-ohornhook"/>
+    <keyword type="macro" name="IBUS_Ohorntilde" link="ibus-ibuskeysyms-compat.html#IBUS-Ohorntilde"/>
+    <keyword type="macro" name="IBUS_ohorntilde" link="ibus-ibuskeysyms-compat.html#IBUS-ohorntilde"/>
+    <keyword type="macro" name="IBUS_Ohornbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Ohornbelowdot"/>
+    <keyword type="macro" name="IBUS_ohornbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-ohornbelowdot"/>
+    <keyword type="macro" name="IBUS_Ubelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Ubelowdot"/>
+    <keyword type="macro" name="IBUS_ubelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-ubelowdot"/>
+    <keyword type="macro" name="IBUS_Uhook" link="ibus-ibuskeysyms-compat.html#IBUS-Uhook"/>
+    <keyword type="macro" name="IBUS_uhook" link="ibus-ibuskeysyms-compat.html#IBUS-uhook"/>
+    <keyword type="macro" name="IBUS_Uhornacute" link="ibus-ibuskeysyms-compat.html#IBUS-Uhornacute"/>
+    <keyword type="macro" name="IBUS_uhornacute" link="ibus-ibuskeysyms-compat.html#IBUS-uhornacute"/>
+    <keyword type="macro" name="IBUS_Uhorngrave" link="ibus-ibuskeysyms-compat.html#IBUS-Uhorngrave"/>
+    <keyword type="macro" name="IBUS_uhorngrave" link="ibus-ibuskeysyms-compat.html#IBUS-uhorngrave"/>
+    <keyword type="macro" name="IBUS_Uhornhook" link="ibus-ibuskeysyms-compat.html#IBUS-Uhornhook"/>
+    <keyword type="macro" name="IBUS_uhornhook" link="ibus-ibuskeysyms-compat.html#IBUS-uhornhook"/>
+    <keyword type="macro" name="IBUS_Uhorntilde" link="ibus-ibuskeysyms-compat.html#IBUS-Uhorntilde"/>
+    <keyword type="macro" name="IBUS_uhorntilde" link="ibus-ibuskeysyms-compat.html#IBUS-uhorntilde"/>
+    <keyword type="macro" name="IBUS_Uhornbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Uhornbelowdot"/>
+    <keyword type="macro" name="IBUS_uhornbelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-uhornbelowdot"/>
+    <keyword type="macro" name="IBUS_Ybelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-Ybelowdot"/>
+    <keyword type="macro" name="IBUS_ybelowdot" link="ibus-ibuskeysyms-compat.html#IBUS-ybelowdot"/>
+    <keyword type="macro" name="IBUS_Yhook" link="ibus-ibuskeysyms-compat.html#IBUS-Yhook"/>
+    <keyword type="macro" name="IBUS_yhook" link="ibus-ibuskeysyms-compat.html#IBUS-yhook"/>
+    <keyword type="macro" name="IBUS_Ytilde" link="ibus-ibuskeysyms-compat.html#IBUS-Ytilde"/>
+    <keyword type="macro" name="IBUS_ytilde" link="ibus-ibuskeysyms-compat.html#IBUS-ytilde"/>
+    <keyword type="macro" name="IBUS_Ohorn" link="ibus-ibuskeysyms-compat.html#IBUS-Ohorn"/>
+    <keyword type="macro" name="IBUS_ohorn" link="ibus-ibuskeysyms-compat.html#IBUS-ohorn"/>
+    <keyword type="macro" name="IBUS_Uhorn" link="ibus-ibuskeysyms-compat.html#IBUS-Uhorn"/>
+    <keyword type="macro" name="IBUS_uhorn" link="ibus-ibuskeysyms-compat.html#IBUS-uhorn"/>
+    <keyword type="macro" name="IBUS_EcuSign" link="ibus-ibuskeysyms-compat.html#IBUS-EcuSign"/>
+    <keyword type="macro" name="IBUS_ColonSign" link="ibus-ibuskeysyms-compat.html#IBUS-ColonSign"/>
+    <keyword type="macro" name="IBUS_CruzeiroSign" link="ibus-ibuskeysyms-compat.html#IBUS-CruzeiroSign"/>
+    <keyword type="macro" name="IBUS_FFrancSign" link="ibus-ibuskeysyms-compat.html#IBUS-FFrancSign"/>
+    <keyword type="macro" name="IBUS_LiraSign" link="ibus-ibuskeysyms-compat.html#IBUS-LiraSign"/>
+    <keyword type="macro" name="IBUS_MillSign" link="ibus-ibuskeysyms-compat.html#IBUS-MillSign"/>
+    <keyword type="macro" name="IBUS_NairaSign" link="ibus-ibuskeysyms-compat.html#IBUS-NairaSign"/>
+    <keyword type="macro" name="IBUS_PesetaSign" link="ibus-ibuskeysyms-compat.html#IBUS-PesetaSign"/>
+    <keyword type="macro" name="IBUS_RupeeSign" link="ibus-ibuskeysyms-compat.html#IBUS-RupeeSign"/>
+    <keyword type="macro" name="IBUS_WonSign" link="ibus-ibuskeysyms-compat.html#IBUS-WonSign"/>
+    <keyword type="macro" name="IBUS_NewSheqelSign" link="ibus-ibuskeysyms-compat.html#IBUS-NewSheqelSign"/>
+    <keyword type="macro" name="IBUS_DongSign" link="ibus-ibuskeysyms-compat.html#IBUS-DongSign"/>
+    <keyword type="macro" name="IBUS_EuroSign" link="ibus-ibuskeysyms-compat.html#IBUS-EuroSign"/>
+    <keyword type="macro" name="IBUS_zerosuperior" link="ibus-ibuskeysyms-compat.html#IBUS-zerosuperior"/>
+    <keyword type="macro" name="IBUS_foursuperior" link="ibus-ibuskeysyms-compat.html#IBUS-foursuperior"/>
+    <keyword type="macro" name="IBUS_fivesuperior" link="ibus-ibuskeysyms-compat.html#IBUS-fivesuperior"/>
+    <keyword type="macro" name="IBUS_sixsuperior" link="ibus-ibuskeysyms-compat.html#IBUS-sixsuperior"/>
+    <keyword type="macro" name="IBUS_sevensuperior" link="ibus-ibuskeysyms-compat.html#IBUS-sevensuperior"/>
+    <keyword type="macro" name="IBUS_eightsuperior" link="ibus-ibuskeysyms-compat.html#IBUS-eightsuperior"/>
+    <keyword type="macro" name="IBUS_ninesuperior" link="ibus-ibuskeysyms-compat.html#IBUS-ninesuperior"/>
+    <keyword type="macro" name="IBUS_zerosubscript" link="ibus-ibuskeysyms-compat.html#IBUS-zerosubscript"/>
+    <keyword type="macro" name="IBUS_onesubscript" link="ibus-ibuskeysyms-compat.html#IBUS-onesubscript"/>
+    <keyword type="macro" name="IBUS_twosubscript" link="ibus-ibuskeysyms-compat.html#IBUS-twosubscript"/>
+    <keyword type="macro" name="IBUS_threesubscript" link="ibus-ibuskeysyms-compat.html#IBUS-threesubscript"/>
+    <keyword type="macro" name="IBUS_foursubscript" link="ibus-ibuskeysyms-compat.html#IBUS-foursubscript"/>
+    <keyword type="macro" name="IBUS_fivesubscript" link="ibus-ibuskeysyms-compat.html#IBUS-fivesubscript"/>
+    <keyword type="macro" name="IBUS_sixsubscript" link="ibus-ibuskeysyms-compat.html#IBUS-sixsubscript"/>
+    <keyword type="macro" name="IBUS_sevensubscript" link="ibus-ibuskeysyms-compat.html#IBUS-sevensubscript"/>
+    <keyword type="macro" name="IBUS_eightsubscript" link="ibus-ibuskeysyms-compat.html#IBUS-eightsubscript"/>
+    <keyword type="macro" name="IBUS_ninesubscript" link="ibus-ibuskeysyms-compat.html#IBUS-ninesubscript"/>
+    <keyword type="macro" name="IBUS_partdifferential" link="ibus-ibuskeysyms-compat.html#IBUS-partdifferential"/>
+    <keyword type="macro" name="IBUS_emptyset" link="ibus-ibuskeysyms-compat.html#IBUS-emptyset"/>
+    <keyword type="macro" name="IBUS_elementof" link="ibus-ibuskeysyms-compat.html#IBUS-elementof"/>
+    <keyword type="macro" name="IBUS_notelementof" link="ibus-ibuskeysyms-compat.html#IBUS-notelementof"/>
+    <keyword type="macro" name="IBUS_containsas" link="ibus-ibuskeysyms-compat.html#IBUS-containsas"/>
+    <keyword type="macro" name="IBUS_squareroot" link="ibus-ibuskeysyms-compat.html#IBUS-squareroot"/>
+    <keyword type="macro" name="IBUS_cuberoot" link="ibus-ibuskeysyms-compat.html#IBUS-cuberoot"/>
+    <keyword type="macro" name="IBUS_fourthroot" link="ibus-ibuskeysyms-compat.html#IBUS-fourthroot"/>
+    <keyword type="macro" name="IBUS_dintegral" link="ibus-ibuskeysyms-compat.html#IBUS-dintegral"/>
+    <keyword type="macro" name="IBUS_tintegral" link="ibus-ibuskeysyms-compat.html#IBUS-tintegral"/>
+    <keyword type="macro" name="IBUS_because" link="ibus-ibuskeysyms-compat.html#IBUS-because"/>
+    <keyword type="macro" name="IBUS_approxeq" link="ibus-ibuskeysyms-compat.html#IBUS-approxeq"/>
+    <keyword type="macro" name="IBUS_notapproxeq" link="ibus-ibuskeysyms-compat.html#IBUS-notapproxeq"/>
+    <keyword type="macro" name="IBUS_notidentical" link="ibus-ibuskeysyms-compat.html#IBUS-notidentical"/>
+    <keyword type="macro" name="IBUS_stricteq" link="ibus-ibuskeysyms-compat.html#IBUS-stricteq"/>
+    <keyword type="macro" name="IBUS_braille_dot_1" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-1"/>
+    <keyword type="macro" name="IBUS_braille_dot_2" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-2"/>
+    <keyword type="macro" name="IBUS_braille_dot_3" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-3"/>
+    <keyword type="macro" name="IBUS_braille_dot_4" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-4"/>
+    <keyword type="macro" name="IBUS_braille_dot_5" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-5"/>
+    <keyword type="macro" name="IBUS_braille_dot_6" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-6"/>
+    <keyword type="macro" name="IBUS_braille_dot_7" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-7"/>
+    <keyword type="macro" name="IBUS_braille_dot_8" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-8"/>
+    <keyword type="macro" name="IBUS_braille_dot_9" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-9"/>
+    <keyword type="macro" name="IBUS_braille_dot_10" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dot-10"/>
+    <keyword type="macro" name="IBUS_braille_blank" link="ibus-ibuskeysyms-compat.html#IBUS-braille-blank"/>
+    <keyword type="macro" name="IBUS_braille_dots_1" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1"/>
+    <keyword type="macro" name="IBUS_braille_dots_2" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2"/>
+    <keyword type="macro" name="IBUS_braille_dots_12" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12"/>
+    <keyword type="macro" name="IBUS_braille_dots_3" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3"/>
+    <keyword type="macro" name="IBUS_braille_dots_13" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13"/>
+    <keyword type="macro" name="IBUS_braille_dots_23" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23"/>
+    <keyword type="macro" name="IBUS_braille_dots_123" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123"/>
+    <keyword type="macro" name="IBUS_braille_dots_4" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4"/>
+    <keyword type="macro" name="IBUS_braille_dots_14" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14"/>
+    <keyword type="macro" name="IBUS_braille_dots_24" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24"/>
+    <keyword type="macro" name="IBUS_braille_dots_124" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124"/>
+    <keyword type="macro" name="IBUS_braille_dots_34" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34"/>
+    <keyword type="macro" name="IBUS_braille_dots_134" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134"/>
+    <keyword type="macro" name="IBUS_braille_dots_234" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234"/>
+    <keyword type="macro" name="IBUS_braille_dots_1234" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234"/>
+    <keyword type="macro" name="IBUS_braille_dots_5" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-5"/>
+    <keyword type="macro" name="IBUS_braille_dots_15" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-15"/>
+    <keyword type="macro" name="IBUS_braille_dots_25" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-25"/>
+    <keyword type="macro" name="IBUS_braille_dots_125" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-125"/>
+    <keyword type="macro" name="IBUS_braille_dots_35" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-35"/>
+    <keyword type="macro" name="IBUS_braille_dots_135" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-135"/>
+    <keyword type="macro" name="IBUS_braille_dots_235" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-235"/>
+    <keyword type="macro" name="IBUS_braille_dots_1235" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1235"/>
+    <keyword type="macro" name="IBUS_braille_dots_45" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-45"/>
+    <keyword type="macro" name="IBUS_braille_dots_145" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-145"/>
+    <keyword type="macro" name="IBUS_braille_dots_245" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-245"/>
+    <keyword type="macro" name="IBUS_braille_dots_1245" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1245"/>
+    <keyword type="macro" name="IBUS_braille_dots_345" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-345"/>
+    <keyword type="macro" name="IBUS_braille_dots_1345" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1345"/>
+    <keyword type="macro" name="IBUS_braille_dots_2345" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2345"/>
+    <keyword type="macro" name="IBUS_braille_dots_12345" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12345"/>
+    <keyword type="macro" name="IBUS_braille_dots_6" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-6"/>
+    <keyword type="macro" name="IBUS_braille_dots_16" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-16"/>
+    <keyword type="macro" name="IBUS_braille_dots_26" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-26"/>
+    <keyword type="macro" name="IBUS_braille_dots_126" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-126"/>
+    <keyword type="macro" name="IBUS_braille_dots_36" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-36"/>
+    <keyword type="macro" name="IBUS_braille_dots_136" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-136"/>
+    <keyword type="macro" name="IBUS_braille_dots_236" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-236"/>
+    <keyword type="macro" name="IBUS_braille_dots_1236" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1236"/>
+    <keyword type="macro" name="IBUS_braille_dots_46" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-46"/>
+    <keyword type="macro" name="IBUS_braille_dots_146" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-146"/>
+    <keyword type="macro" name="IBUS_braille_dots_246" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-246"/>
+    <keyword type="macro" name="IBUS_braille_dots_1246" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1246"/>
+    <keyword type="macro" name="IBUS_braille_dots_346" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-346"/>
+    <keyword type="macro" name="IBUS_braille_dots_1346" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1346"/>
+    <keyword type="macro" name="IBUS_braille_dots_2346" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2346"/>
+    <keyword type="macro" name="IBUS_braille_dots_12346" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12346"/>
+    <keyword type="macro" name="IBUS_braille_dots_56" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-56"/>
+    <keyword type="macro" name="IBUS_braille_dots_156" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-156"/>
+    <keyword type="macro" name="IBUS_braille_dots_256" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-256"/>
+    <keyword type="macro" name="IBUS_braille_dots_1256" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1256"/>
+    <keyword type="macro" name="IBUS_braille_dots_356" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-356"/>
+    <keyword type="macro" name="IBUS_braille_dots_1356" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1356"/>
+    <keyword type="macro" name="IBUS_braille_dots_2356" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2356"/>
+    <keyword type="macro" name="IBUS_braille_dots_12356" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12356"/>
+    <keyword type="macro" name="IBUS_braille_dots_456" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-456"/>
+    <keyword type="macro" name="IBUS_braille_dots_1456" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1456"/>
+    <keyword type="macro" name="IBUS_braille_dots_2456" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2456"/>
+    <keyword type="macro" name="IBUS_braille_dots_12456" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12456"/>
+    <keyword type="macro" name="IBUS_braille_dots_3456" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3456"/>
+    <keyword type="macro" name="IBUS_braille_dots_13456" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13456"/>
+    <keyword type="macro" name="IBUS_braille_dots_23456" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23456"/>
+    <keyword type="macro" name="IBUS_braille_dots_123456" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123456"/>
+    <keyword type="macro" name="IBUS_braille_dots_7" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-7"/>
+    <keyword type="macro" name="IBUS_braille_dots_17" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-17"/>
+    <keyword type="macro" name="IBUS_braille_dots_27" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-27"/>
+    <keyword type="macro" name="IBUS_braille_dots_127" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-127"/>
+    <keyword type="macro" name="IBUS_braille_dots_37" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-37"/>
+    <keyword type="macro" name="IBUS_braille_dots_137" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-137"/>
+    <keyword type="macro" name="IBUS_braille_dots_237" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-237"/>
+    <keyword type="macro" name="IBUS_braille_dots_1237" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1237"/>
+    <keyword type="macro" name="IBUS_braille_dots_47" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-47"/>
+    <keyword type="macro" name="IBUS_braille_dots_147" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-147"/>
+    <keyword type="macro" name="IBUS_braille_dots_247" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-247"/>
+    <keyword type="macro" name="IBUS_braille_dots_1247" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1247"/>
+    <keyword type="macro" name="IBUS_braille_dots_347" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-347"/>
+    <keyword type="macro" name="IBUS_braille_dots_1347" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1347"/>
+    <keyword type="macro" name="IBUS_braille_dots_2347" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2347"/>
+    <keyword type="macro" name="IBUS_braille_dots_12347" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12347"/>
+    <keyword type="macro" name="IBUS_braille_dots_57" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-57"/>
+    <keyword type="macro" name="IBUS_braille_dots_157" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-157"/>
+    <keyword type="macro" name="IBUS_braille_dots_257" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-257"/>
+    <keyword type="macro" name="IBUS_braille_dots_1257" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1257"/>
+    <keyword type="macro" name="IBUS_braille_dots_357" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-357"/>
+    <keyword type="macro" name="IBUS_braille_dots_1357" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1357"/>
+    <keyword type="macro" name="IBUS_braille_dots_2357" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2357"/>
+    <keyword type="macro" name="IBUS_braille_dots_12357" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12357"/>
+    <keyword type="macro" name="IBUS_braille_dots_457" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-457"/>
+    <keyword type="macro" name="IBUS_braille_dots_1457" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1457"/>
+    <keyword type="macro" name="IBUS_braille_dots_2457" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2457"/>
+    <keyword type="macro" name="IBUS_braille_dots_12457" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12457"/>
+    <keyword type="macro" name="IBUS_braille_dots_3457" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3457"/>
+    <keyword type="macro" name="IBUS_braille_dots_13457" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13457"/>
+    <keyword type="macro" name="IBUS_braille_dots_23457" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23457"/>
+    <keyword type="macro" name="IBUS_braille_dots_123457" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123457"/>
+    <keyword type="macro" name="IBUS_braille_dots_67" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-67"/>
+    <keyword type="macro" name="IBUS_braille_dots_167" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-167"/>
+    <keyword type="macro" name="IBUS_braille_dots_267" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-267"/>
+    <keyword type="macro" name="IBUS_braille_dots_1267" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1267"/>
+    <keyword type="macro" name="IBUS_braille_dots_367" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-367"/>
+    <keyword type="macro" name="IBUS_braille_dots_1367" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1367"/>
+    <keyword type="macro" name="IBUS_braille_dots_2367" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2367"/>
+    <keyword type="macro" name="IBUS_braille_dots_12367" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12367"/>
+    <keyword type="macro" name="IBUS_braille_dots_467" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-467"/>
+    <keyword type="macro" name="IBUS_braille_dots_1467" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1467"/>
+    <keyword type="macro" name="IBUS_braille_dots_2467" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2467"/>
+    <keyword type="macro" name="IBUS_braille_dots_12467" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12467"/>
+    <keyword type="macro" name="IBUS_braille_dots_3467" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3467"/>
+    <keyword type="macro" name="IBUS_braille_dots_13467" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13467"/>
+    <keyword type="macro" name="IBUS_braille_dots_23467" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23467"/>
+    <keyword type="macro" name="IBUS_braille_dots_123467" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123467"/>
+    <keyword type="macro" name="IBUS_braille_dots_567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-567"/>
+    <keyword type="macro" name="IBUS_braille_dots_1567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1567"/>
+    <keyword type="macro" name="IBUS_braille_dots_2567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2567"/>
+    <keyword type="macro" name="IBUS_braille_dots_12567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12567"/>
+    <keyword type="macro" name="IBUS_braille_dots_3567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3567"/>
+    <keyword type="macro" name="IBUS_braille_dots_13567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13567"/>
+    <keyword type="macro" name="IBUS_braille_dots_23567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23567"/>
+    <keyword type="macro" name="IBUS_braille_dots_123567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123567"/>
+    <keyword type="macro" name="IBUS_braille_dots_4567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4567"/>
+    <keyword type="macro" name="IBUS_braille_dots_14567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14567"/>
+    <keyword type="macro" name="IBUS_braille_dots_24567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24567"/>
+    <keyword type="macro" name="IBUS_braille_dots_124567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124567"/>
+    <keyword type="macro" name="IBUS_braille_dots_34567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34567"/>
+    <keyword type="macro" name="IBUS_braille_dots_134567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134567"/>
+    <keyword type="macro" name="IBUS_braille_dots_234567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234567"/>
+    <keyword type="macro" name="IBUS_braille_dots_1234567" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234567"/>
+    <keyword type="macro" name="IBUS_braille_dots_8" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-8"/>
+    <keyword type="macro" name="IBUS_braille_dots_18" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-18"/>
+    <keyword type="macro" name="IBUS_braille_dots_28" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-28"/>
+    <keyword type="macro" name="IBUS_braille_dots_128" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-128"/>
+    <keyword type="macro" name="IBUS_braille_dots_38" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-38"/>
+    <keyword type="macro" name="IBUS_braille_dots_138" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-138"/>
+    <keyword type="macro" name="IBUS_braille_dots_238" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-238"/>
+    <keyword type="macro" name="IBUS_braille_dots_1238" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1238"/>
+    <keyword type="macro" name="IBUS_braille_dots_48" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-48"/>
+    <keyword type="macro" name="IBUS_braille_dots_148" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-148"/>
+    <keyword type="macro" name="IBUS_braille_dots_248" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-248"/>
+    <keyword type="macro" name="IBUS_braille_dots_1248" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1248"/>
+    <keyword type="macro" name="IBUS_braille_dots_348" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-348"/>
+    <keyword type="macro" name="IBUS_braille_dots_1348" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1348"/>
+    <keyword type="macro" name="IBUS_braille_dots_2348" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2348"/>
+    <keyword type="macro" name="IBUS_braille_dots_12348" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12348"/>
+    <keyword type="macro" name="IBUS_braille_dots_58" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-58"/>
+    <keyword type="macro" name="IBUS_braille_dots_158" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-158"/>
+    <keyword type="macro" name="IBUS_braille_dots_258" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-258"/>
+    <keyword type="macro" name="IBUS_braille_dots_1258" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1258"/>
+    <keyword type="macro" name="IBUS_braille_dots_358" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-358"/>
+    <keyword type="macro" name="IBUS_braille_dots_1358" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1358"/>
+    <keyword type="macro" name="IBUS_braille_dots_2358" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2358"/>
+    <keyword type="macro" name="IBUS_braille_dots_12358" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12358"/>
+    <keyword type="macro" name="IBUS_braille_dots_458" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-458"/>
+    <keyword type="macro" name="IBUS_braille_dots_1458" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1458"/>
+    <keyword type="macro" name="IBUS_braille_dots_2458" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2458"/>
+    <keyword type="macro" name="IBUS_braille_dots_12458" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12458"/>
+    <keyword type="macro" name="IBUS_braille_dots_3458" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3458"/>
+    <keyword type="macro" name="IBUS_braille_dots_13458" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13458"/>
+    <keyword type="macro" name="IBUS_braille_dots_23458" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23458"/>
+    <keyword type="macro" name="IBUS_braille_dots_123458" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123458"/>
+    <keyword type="macro" name="IBUS_braille_dots_68" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-68"/>
+    <keyword type="macro" name="IBUS_braille_dots_168" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-168"/>
+    <keyword type="macro" name="IBUS_braille_dots_268" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-268"/>
+    <keyword type="macro" name="IBUS_braille_dots_1268" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1268"/>
+    <keyword type="macro" name="IBUS_braille_dots_368" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-368"/>
+    <keyword type="macro" name="IBUS_braille_dots_1368" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1368"/>
+    <keyword type="macro" name="IBUS_braille_dots_2368" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2368"/>
+    <keyword type="macro" name="IBUS_braille_dots_12368" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12368"/>
+    <keyword type="macro" name="IBUS_braille_dots_468" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-468"/>
+    <keyword type="macro" name="IBUS_braille_dots_1468" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1468"/>
+    <keyword type="macro" name="IBUS_braille_dots_2468" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2468"/>
+    <keyword type="macro" name="IBUS_braille_dots_12468" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12468"/>
+    <keyword type="macro" name="IBUS_braille_dots_3468" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3468"/>
+    <keyword type="macro" name="IBUS_braille_dots_13468" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13468"/>
+    <keyword type="macro" name="IBUS_braille_dots_23468" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23468"/>
+    <keyword type="macro" name="IBUS_braille_dots_123468" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123468"/>
+    <keyword type="macro" name="IBUS_braille_dots_568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-568"/>
+    <keyword type="macro" name="IBUS_braille_dots_1568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1568"/>
+    <keyword type="macro" name="IBUS_braille_dots_2568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2568"/>
+    <keyword type="macro" name="IBUS_braille_dots_12568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12568"/>
+    <keyword type="macro" name="IBUS_braille_dots_3568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3568"/>
+    <keyword type="macro" name="IBUS_braille_dots_13568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13568"/>
+    <keyword type="macro" name="IBUS_braille_dots_23568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23568"/>
+    <keyword type="macro" name="IBUS_braille_dots_123568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123568"/>
+    <keyword type="macro" name="IBUS_braille_dots_4568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4568"/>
+    <keyword type="macro" name="IBUS_braille_dots_14568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14568"/>
+    <keyword type="macro" name="IBUS_braille_dots_24568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24568"/>
+    <keyword type="macro" name="IBUS_braille_dots_124568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124568"/>
+    <keyword type="macro" name="IBUS_braille_dots_34568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34568"/>
+    <keyword type="macro" name="IBUS_braille_dots_134568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134568"/>
+    <keyword type="macro" name="IBUS_braille_dots_234568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234568"/>
+    <keyword type="macro" name="IBUS_braille_dots_1234568" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234568"/>
+    <keyword type="macro" name="IBUS_braille_dots_78" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-78"/>
+    <keyword type="macro" name="IBUS_braille_dots_178" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-178"/>
+    <keyword type="macro" name="IBUS_braille_dots_278" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-278"/>
+    <keyword type="macro" name="IBUS_braille_dots_1278" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1278"/>
+    <keyword type="macro" name="IBUS_braille_dots_378" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-378"/>
+    <keyword type="macro" name="IBUS_braille_dots_1378" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1378"/>
+    <keyword type="macro" name="IBUS_braille_dots_2378" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2378"/>
+    <keyword type="macro" name="IBUS_braille_dots_12378" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12378"/>
+    <keyword type="macro" name="IBUS_braille_dots_478" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-478"/>
+    <keyword type="macro" name="IBUS_braille_dots_1478" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1478"/>
+    <keyword type="macro" name="IBUS_braille_dots_2478" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2478"/>
+    <keyword type="macro" name="IBUS_braille_dots_12478" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12478"/>
+    <keyword type="macro" name="IBUS_braille_dots_3478" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3478"/>
+    <keyword type="macro" name="IBUS_braille_dots_13478" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13478"/>
+    <keyword type="macro" name="IBUS_braille_dots_23478" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23478"/>
+    <keyword type="macro" name="IBUS_braille_dots_123478" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123478"/>
+    <keyword type="macro" name="IBUS_braille_dots_578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-578"/>
+    <keyword type="macro" name="IBUS_braille_dots_1578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1578"/>
+    <keyword type="macro" name="IBUS_braille_dots_2578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2578"/>
+    <keyword type="macro" name="IBUS_braille_dots_12578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12578"/>
+    <keyword type="macro" name="IBUS_braille_dots_3578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3578"/>
+    <keyword type="macro" name="IBUS_braille_dots_13578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13578"/>
+    <keyword type="macro" name="IBUS_braille_dots_23578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23578"/>
+    <keyword type="macro" name="IBUS_braille_dots_123578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123578"/>
+    <keyword type="macro" name="IBUS_braille_dots_4578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4578"/>
+    <keyword type="macro" name="IBUS_braille_dots_14578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14578"/>
+    <keyword type="macro" name="IBUS_braille_dots_24578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24578"/>
+    <keyword type="macro" name="IBUS_braille_dots_124578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124578"/>
+    <keyword type="macro" name="IBUS_braille_dots_34578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34578"/>
+    <keyword type="macro" name="IBUS_braille_dots_134578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134578"/>
+    <keyword type="macro" name="IBUS_braille_dots_234578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234578"/>
+    <keyword type="macro" name="IBUS_braille_dots_1234578" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234578"/>
+    <keyword type="macro" name="IBUS_braille_dots_678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-678"/>
+    <keyword type="macro" name="IBUS_braille_dots_1678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1678"/>
+    <keyword type="macro" name="IBUS_braille_dots_2678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2678"/>
+    <keyword type="macro" name="IBUS_braille_dots_12678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12678"/>
+    <keyword type="macro" name="IBUS_braille_dots_3678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3678"/>
+    <keyword type="macro" name="IBUS_braille_dots_13678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13678"/>
+    <keyword type="macro" name="IBUS_braille_dots_23678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23678"/>
+    <keyword type="macro" name="IBUS_braille_dots_123678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123678"/>
+    <keyword type="macro" name="IBUS_braille_dots_4678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4678"/>
+    <keyword type="macro" name="IBUS_braille_dots_14678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14678"/>
+    <keyword type="macro" name="IBUS_braille_dots_24678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24678"/>
+    <keyword type="macro" name="IBUS_braille_dots_124678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124678"/>
+    <keyword type="macro" name="IBUS_braille_dots_34678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34678"/>
+    <keyword type="macro" name="IBUS_braille_dots_134678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134678"/>
+    <keyword type="macro" name="IBUS_braille_dots_234678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234678"/>
+    <keyword type="macro" name="IBUS_braille_dots_1234678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234678"/>
+    <keyword type="macro" name="IBUS_braille_dots_5678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-5678"/>
+    <keyword type="macro" name="IBUS_braille_dots_15678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-15678"/>
+    <keyword type="macro" name="IBUS_braille_dots_25678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-25678"/>
+    <keyword type="macro" name="IBUS_braille_dots_125678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-125678"/>
+    <keyword type="macro" name="IBUS_braille_dots_35678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-35678"/>
+    <keyword type="macro" name="IBUS_braille_dots_135678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-135678"/>
+    <keyword type="macro" name="IBUS_braille_dots_235678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-235678"/>
+    <keyword type="macro" name="IBUS_braille_dots_1235678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1235678"/>
+    <keyword type="macro" name="IBUS_braille_dots_45678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-45678"/>
+    <keyword type="macro" name="IBUS_braille_dots_145678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-145678"/>
+    <keyword type="macro" name="IBUS_braille_dots_245678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-245678"/>
+    <keyword type="macro" name="IBUS_braille_dots_1245678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1245678"/>
+    <keyword type="macro" name="IBUS_braille_dots_345678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-345678"/>
+    <keyword type="macro" name="IBUS_braille_dots_1345678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1345678"/>
+    <keyword type="macro" name="IBUS_braille_dots_2345678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2345678"/>
+    <keyword type="macro" name="IBUS_braille_dots_12345678" link="ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12345678"/>
+    <keyword type="macro" name="IBUS_KEY_VoidSymbol" link="ibus-IBusKeysyms.html#IBUS-KEY-VoidSymbol"/>
+    <keyword type="macro" name="IBUS_KEY_BackSpace" link="ibus-IBusKeysyms.html#IBUS-KEY-BackSpace"/>
+    <keyword type="macro" name="IBUS_KEY_Tab" link="ibus-IBusKeysyms.html#IBUS-KEY-Tab"/>
+    <keyword type="macro" name="IBUS_KEY_Linefeed" link="ibus-IBusKeysyms.html#IBUS-KEY-Linefeed"/>
+    <keyword type="macro" name="IBUS_KEY_Clear" link="ibus-IBusKeysyms.html#IBUS-KEY-Clear"/>
+    <keyword type="macro" name="IBUS_KEY_Return" link="ibus-IBusKeysyms.html#IBUS-KEY-Return"/>
+    <keyword type="macro" name="IBUS_KEY_Pause" link="ibus-IBusKeysyms.html#IBUS-KEY-Pause"/>
+    <keyword type="macro" name="IBUS_KEY_Scroll_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-Scroll-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_Sys_Req" link="ibus-IBusKeysyms.html#IBUS-KEY-Sys-Req"/>
+    <keyword type="macro" name="IBUS_KEY_Escape" link="ibus-IBusKeysyms.html#IBUS-KEY-Escape"/>
+    <keyword type="macro" name="IBUS_KEY_Delete" link="ibus-IBusKeysyms.html#IBUS-KEY-Delete"/>
+    <keyword type="macro" name="IBUS_KEY_Multi_key" link="ibus-IBusKeysyms.html#IBUS-KEY-Multi-key"/>
+    <keyword type="macro" name="IBUS_KEY_Codeinput" link="ibus-IBusKeysyms.html#IBUS-KEY-Codeinput"/>
+    <keyword type="macro" name="IBUS_KEY_SingleCandidate" link="ibus-IBusKeysyms.html#IBUS-KEY-SingleCandidate"/>
+    <keyword type="macro" name="IBUS_KEY_MultipleCandidate" link="ibus-IBusKeysyms.html#IBUS-KEY-MultipleCandidate"/>
+    <keyword type="macro" name="IBUS_KEY_PreviousCandidate" link="ibus-IBusKeysyms.html#IBUS-KEY-PreviousCandidate"/>
+    <keyword type="macro" name="IBUS_KEY_Kanji" link="ibus-IBusKeysyms.html#IBUS-KEY-Kanji"/>
+    <keyword type="macro" name="IBUS_KEY_Muhenkan" link="ibus-IBusKeysyms.html#IBUS-KEY-Muhenkan"/>
+    <keyword type="macro" name="IBUS_KEY_Henkan_Mode" link="ibus-IBusKeysyms.html#IBUS-KEY-Henkan-Mode"/>
+    <keyword type="macro" name="IBUS_KEY_Henkan" link="ibus-IBusKeysyms.html#IBUS-KEY-Henkan"/>
+    <keyword type="macro" name="IBUS_KEY_Romaji" link="ibus-IBusKeysyms.html#IBUS-KEY-Romaji"/>
+    <keyword type="macro" name="IBUS_KEY_Hiragana" link="ibus-IBusKeysyms.html#IBUS-KEY-Hiragana"/>
+    <keyword type="macro" name="IBUS_KEY_Katakana" link="ibus-IBusKeysyms.html#IBUS-KEY-Katakana"/>
+    <keyword type="macro" name="IBUS_KEY_Hiragana_Katakana" link="ibus-IBusKeysyms.html#IBUS-KEY-Hiragana-Katakana"/>
+    <keyword type="macro" name="IBUS_KEY_Zenkaku" link="ibus-IBusKeysyms.html#IBUS-KEY-Zenkaku"/>
+    <keyword type="macro" name="IBUS_KEY_Hankaku" link="ibus-IBusKeysyms.html#IBUS-KEY-Hankaku"/>
+    <keyword type="macro" name="IBUS_KEY_Zenkaku_Hankaku" link="ibus-IBusKeysyms.html#IBUS-KEY-Zenkaku-Hankaku"/>
+    <keyword type="macro" name="IBUS_KEY_Touroku" link="ibus-IBusKeysyms.html#IBUS-KEY-Touroku"/>
+    <keyword type="macro" name="IBUS_KEY_Massyo" link="ibus-IBusKeysyms.html#IBUS-KEY-Massyo"/>
+    <keyword type="macro" name="IBUS_KEY_Kana_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-Kana-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_Kana_Shift" link="ibus-IBusKeysyms.html#IBUS-KEY-Kana-Shift"/>
+    <keyword type="macro" name="IBUS_KEY_Eisu_Shift" link="ibus-IBusKeysyms.html#IBUS-KEY-Eisu-Shift"/>
+    <keyword type="macro" name="IBUS_KEY_Eisu_toggle" link="ibus-IBusKeysyms.html#IBUS-KEY-Eisu-toggle"/>
+    <keyword type="macro" name="IBUS_KEY_Kanji_Bangou" link="ibus-IBusKeysyms.html#IBUS-KEY-Kanji-Bangou"/>
+    <keyword type="macro" name="IBUS_KEY_Zen_Koho" link="ibus-IBusKeysyms.html#IBUS-KEY-Zen-Koho"/>
+    <keyword type="macro" name="IBUS_KEY_Mae_Koho" link="ibus-IBusKeysyms.html#IBUS-KEY-Mae-Koho"/>
+    <keyword type="macro" name="IBUS_KEY_Home" link="ibus-IBusKeysyms.html#IBUS-KEY-Home"/>
+    <keyword type="macro" name="IBUS_KEY_Left" link="ibus-IBusKeysyms.html#IBUS-KEY-Left"/>
+    <keyword type="macro" name="IBUS_KEY_Up" link="ibus-IBusKeysyms.html#IBUS-KEY-Up"/>
+    <keyword type="macro" name="IBUS_KEY_Right" link="ibus-IBusKeysyms.html#IBUS-KEY-Right"/>
+    <keyword type="macro" name="IBUS_KEY_Down" link="ibus-IBusKeysyms.html#IBUS-KEY-Down"/>
+    <keyword type="macro" name="IBUS_KEY_Prior" link="ibus-IBusKeysyms.html#IBUS-KEY-Prior"/>
+    <keyword type="macro" name="IBUS_KEY_Page_Up" link="ibus-IBusKeysyms.html#IBUS-KEY-Page-Up"/>
+    <keyword type="macro" name="IBUS_KEY_Next" link="ibus-IBusKeysyms.html#IBUS-KEY-Next"/>
+    <keyword type="macro" name="IBUS_KEY_Page_Down" link="ibus-IBusKeysyms.html#IBUS-KEY-Page-Down"/>
+    <keyword type="macro" name="IBUS_KEY_End" link="ibus-IBusKeysyms.html#IBUS-KEY-End"/>
+    <keyword type="macro" name="IBUS_KEY_Begin" link="ibus-IBusKeysyms.html#IBUS-KEY-Begin"/>
+    <keyword type="macro" name="IBUS_KEY_Select" link="ibus-IBusKeysyms.html#IBUS-KEY-Select"/>
+    <keyword type="macro" name="IBUS_KEY_Print" link="ibus-IBusKeysyms.html#IBUS-KEY-Print"/>
+    <keyword type="macro" name="IBUS_KEY_Execute" link="ibus-IBusKeysyms.html#IBUS-KEY-Execute"/>
+    <keyword type="macro" name="IBUS_KEY_Insert" link="ibus-IBusKeysyms.html#IBUS-KEY-Insert"/>
+    <keyword type="macro" name="IBUS_KEY_Undo" link="ibus-IBusKeysyms.html#IBUS-KEY-Undo"/>
+    <keyword type="macro" name="IBUS_KEY_Redo" link="ibus-IBusKeysyms.html#IBUS-KEY-Redo"/>
+    <keyword type="macro" name="IBUS_KEY_Menu" link="ibus-IBusKeysyms.html#IBUS-KEY-Menu"/>
+    <keyword type="macro" name="IBUS_KEY_Find" link="ibus-IBusKeysyms.html#IBUS-KEY-Find"/>
+    <keyword type="macro" name="IBUS_KEY_Cancel" link="ibus-IBusKeysyms.html#IBUS-KEY-Cancel"/>
+    <keyword type="macro" name="IBUS_KEY_Help" link="ibus-IBusKeysyms.html#IBUS-KEY-Help"/>
+    <keyword type="macro" name="IBUS_KEY_Break" link="ibus-IBusKeysyms.html#IBUS-KEY-Break"/>
+    <keyword type="macro" name="IBUS_KEY_Mode_switch" link="ibus-IBusKeysyms.html#IBUS-KEY-Mode-switch"/>
+    <keyword type="macro" name="IBUS_KEY_script_switch" link="ibus-IBusKeysyms.html#IBUS-KEY-script-switch"/>
+    <keyword type="macro" name="IBUS_KEY_Num_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-Num-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Space" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Space"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Tab" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Tab"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Enter" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Enter"/>
+    <keyword type="macro" name="IBUS_KEY_KP_F1" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-F1:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_F2" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-F2:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_F3" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-F3:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_F4" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-F4:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Home" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Home"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Left" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Left"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Up" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Up"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Right" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Right"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Down" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Down"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Prior" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Prior"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Page_Up" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Page-Up"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Next" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Next"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Page_Down" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Page-Down"/>
+    <keyword type="macro" name="IBUS_KEY_KP_End" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-End"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Begin" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Begin"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Insert" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Insert"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Delete" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Delete"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Equal" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Equal"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Multiply" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Multiply"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Add" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Add"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Separator" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Separator"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Subtract" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Subtract"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Decimal" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Decimal"/>
+    <keyword type="macro" name="IBUS_KEY_KP_Divide" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-Divide"/>
+    <keyword type="macro" name="IBUS_KEY_KP_0" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-0:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_1" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-1:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_2" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-2:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_3" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-3:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_4" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-4:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_5" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-5:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_6" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-6:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_7" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-7:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_8" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-8:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_KP_9" link="ibus-IBusKeysyms.html#IBUS-KEY-KP-9:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F1" link="ibus-IBusKeysyms.html#IBUS-KEY-F1:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F2" link="ibus-IBusKeysyms.html#IBUS-KEY-F2:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F3" link="ibus-IBusKeysyms.html#IBUS-KEY-F3:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F4" link="ibus-IBusKeysyms.html#IBUS-KEY-F4:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F5" link="ibus-IBusKeysyms.html#IBUS-KEY-F5:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F6" link="ibus-IBusKeysyms.html#IBUS-KEY-F6:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F7" link="ibus-IBusKeysyms.html#IBUS-KEY-F7:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F8" link="ibus-IBusKeysyms.html#IBUS-KEY-F8:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F9" link="ibus-IBusKeysyms.html#IBUS-KEY-F9:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F10" link="ibus-IBusKeysyms.html#IBUS-KEY-F10:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F11" link="ibus-IBusKeysyms.html#IBUS-KEY-F11:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L1" link="ibus-IBusKeysyms.html#IBUS-KEY-L1:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F12" link="ibus-IBusKeysyms.html#IBUS-KEY-F12:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L2" link="ibus-IBusKeysyms.html#IBUS-KEY-L2:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F13" link="ibus-IBusKeysyms.html#IBUS-KEY-F13:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L3" link="ibus-IBusKeysyms.html#IBUS-KEY-L3:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F14" link="ibus-IBusKeysyms.html#IBUS-KEY-F14:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L4" link="ibus-IBusKeysyms.html#IBUS-KEY-L4:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F15" link="ibus-IBusKeysyms.html#IBUS-KEY-F15:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L5" link="ibus-IBusKeysyms.html#IBUS-KEY-L5:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F16" link="ibus-IBusKeysyms.html#IBUS-KEY-F16:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L6" link="ibus-IBusKeysyms.html#IBUS-KEY-L6:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F17" link="ibus-IBusKeysyms.html#IBUS-KEY-F17:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L7" link="ibus-IBusKeysyms.html#IBUS-KEY-L7:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F18" link="ibus-IBusKeysyms.html#IBUS-KEY-F18:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L8" link="ibus-IBusKeysyms.html#IBUS-KEY-L8:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F19" link="ibus-IBusKeysyms.html#IBUS-KEY-F19:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L9" link="ibus-IBusKeysyms.html#IBUS-KEY-L9:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F20" link="ibus-IBusKeysyms.html#IBUS-KEY-F20:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L10" link="ibus-IBusKeysyms.html#IBUS-KEY-L10:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F21" link="ibus-IBusKeysyms.html#IBUS-KEY-F21:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R1" link="ibus-IBusKeysyms.html#IBUS-KEY-R1:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F22" link="ibus-IBusKeysyms.html#IBUS-KEY-F22:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R2" link="ibus-IBusKeysyms.html#IBUS-KEY-R2:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F23" link="ibus-IBusKeysyms.html#IBUS-KEY-F23:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R3" link="ibus-IBusKeysyms.html#IBUS-KEY-R3:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F24" link="ibus-IBusKeysyms.html#IBUS-KEY-F24:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R4" link="ibus-IBusKeysyms.html#IBUS-KEY-R4:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F25" link="ibus-IBusKeysyms.html#IBUS-KEY-F25:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R5" link="ibus-IBusKeysyms.html#IBUS-KEY-R5:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F26" link="ibus-IBusKeysyms.html#IBUS-KEY-F26:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R6" link="ibus-IBusKeysyms.html#IBUS-KEY-R6:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F27" link="ibus-IBusKeysyms.html#IBUS-KEY-F27:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R7" link="ibus-IBusKeysyms.html#IBUS-KEY-R7:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F28" link="ibus-IBusKeysyms.html#IBUS-KEY-F28:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R8" link="ibus-IBusKeysyms.html#IBUS-KEY-R8:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F29" link="ibus-IBusKeysyms.html#IBUS-KEY-F29:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R9" link="ibus-IBusKeysyms.html#IBUS-KEY-R9:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F30" link="ibus-IBusKeysyms.html#IBUS-KEY-F30:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R10" link="ibus-IBusKeysyms.html#IBUS-KEY-R10:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F31" link="ibus-IBusKeysyms.html#IBUS-KEY-F31:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R11" link="ibus-IBusKeysyms.html#IBUS-KEY-R11:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F32" link="ibus-IBusKeysyms.html#IBUS-KEY-F32:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R12" link="ibus-IBusKeysyms.html#IBUS-KEY-R12:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F33" link="ibus-IBusKeysyms.html#IBUS-KEY-F33:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R13" link="ibus-IBusKeysyms.html#IBUS-KEY-R13:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F34" link="ibus-IBusKeysyms.html#IBUS-KEY-F34:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R14" link="ibus-IBusKeysyms.html#IBUS-KEY-R14:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F35" link="ibus-IBusKeysyms.html#IBUS-KEY-F35:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R15" link="ibus-IBusKeysyms.html#IBUS-KEY-R15:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_Shift_L" link="ibus-IBusKeysyms.html#IBUS-KEY-Shift-L"/>
+    <keyword type="macro" name="IBUS_KEY_Shift_R" link="ibus-IBusKeysyms.html#IBUS-KEY-Shift-R"/>
+    <keyword type="macro" name="IBUS_KEY_Control_L" link="ibus-IBusKeysyms.html#IBUS-KEY-Control-L"/>
+    <keyword type="macro" name="IBUS_KEY_Control_R" link="ibus-IBusKeysyms.html#IBUS-KEY-Control-R"/>
+    <keyword type="macro" name="IBUS_KEY_Caps_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-Caps-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_Shift_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-Shift-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_Meta_L" link="ibus-IBusKeysyms.html#IBUS-KEY-Meta-L"/>
+    <keyword type="macro" name="IBUS_KEY_Meta_R" link="ibus-IBusKeysyms.html#IBUS-KEY-Meta-R"/>
+    <keyword type="macro" name="IBUS_KEY_Alt_L" link="ibus-IBusKeysyms.html#IBUS-KEY-Alt-L"/>
+    <keyword type="macro" name="IBUS_KEY_Alt_R" link="ibus-IBusKeysyms.html#IBUS-KEY-Alt-R"/>
+    <keyword type="macro" name="IBUS_KEY_Super_L" link="ibus-IBusKeysyms.html#IBUS-KEY-Super-L"/>
+    <keyword type="macro" name="IBUS_KEY_Super_R" link="ibus-IBusKeysyms.html#IBUS-KEY-Super-R"/>
+    <keyword type="macro" name="IBUS_KEY_Hyper_L" link="ibus-IBusKeysyms.html#IBUS-KEY-Hyper-L"/>
+    <keyword type="macro" name="IBUS_KEY_Hyper_R" link="ibus-IBusKeysyms.html#IBUS-KEY-Hyper-R"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Level2_Latch" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level2-Latch"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Level3_Shift" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Shift"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Level3_Latch" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Latch"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Level3_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Level5_Shift" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Shift"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Level5_Latch" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Latch"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Level5_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Group_Shift" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Shift"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Group_Latch" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Latch"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Group_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Next_Group" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Next-Group"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Next_Group_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Next-Group-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Prev_Group" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Prev-Group"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Prev_Group_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Prev-Group-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_First_Group" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-First-Group"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_First_Group_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-First-Group-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Last_Group" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Last-Group"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Last_Group_Lock" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Last-Group-Lock"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Left_Tab" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Left-Tab"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Move_Line_Up" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Move-Line-Up"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Move_Line_Down" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Move-Line-Down"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Partial_Line_Up" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Line-Up"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Partial_Line_Down" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Line-Down"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Partial_Space_Left" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Space-Left"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Partial_Space_Right" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Space-Right"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Set_Margin_Left" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Set-Margin-Left"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Set_Margin_Right" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Set-Margin-Right"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Release_Margin_Left" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Margin-Left"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Release_Margin_Right" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Margin-Right"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Release_Both_Margins" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Both-Margins"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Fast_Cursor_Left" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Left"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Fast_Cursor_Right" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Right"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Fast_Cursor_Up" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Up"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Fast_Cursor_Down" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Down"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Continuous_Underline" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Continuous-Underline"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Discontinuous_Underline" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Discontinuous-Underline"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Emphasize" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Emphasize"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Center_Object" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Center-Object"/>
+    <keyword type="macro" name="IBUS_KEY_ISO_Enter" link="ibus-IBusKeysyms.html#IBUS-KEY-ISO-Enter"/>
+    <keyword type="macro" name="IBUS_KEY_dead_grave" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-grave"/>
+    <keyword type="macro" name="IBUS_KEY_dead_acute" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-acute"/>
+    <keyword type="macro" name="IBUS_KEY_dead_circumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-circumflex"/>
+    <keyword type="macro" name="IBUS_KEY_dead_tilde" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-tilde"/>
+    <keyword type="macro" name="IBUS_KEY_dead_perispomeni" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-perispomeni"/>
+    <keyword type="macro" name="IBUS_KEY_dead_macron" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-macron"/>
+    <keyword type="macro" name="IBUS_KEY_dead_breve" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-breve"/>
+    <keyword type="macro" name="IBUS_KEY_dead_abovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovedot"/>
+    <keyword type="macro" name="IBUS_KEY_dead_diaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-diaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_dead_abovering" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovering"/>
+    <keyword type="macro" name="IBUS_KEY_dead_doubleacute" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-doubleacute"/>
+    <keyword type="macro" name="IBUS_KEY_dead_caron" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-caron"/>
+    <keyword type="macro" name="IBUS_KEY_dead_cedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-cedilla"/>
+    <keyword type="macro" name="IBUS_KEY_dead_ogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-ogonek"/>
+    <keyword type="macro" name="IBUS_KEY_dead_iota" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-iota"/>
+    <keyword type="macro" name="IBUS_KEY_dead_voiced_sound" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-voiced-sound"/>
+    <keyword type="macro" name="IBUS_KEY_dead_semivoiced_sound" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-semivoiced-sound"/>
+    <keyword type="macro" name="IBUS_KEY_dead_belowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowdot"/>
+    <keyword type="macro" name="IBUS_KEY_dead_hook" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-hook"/>
+    <keyword type="macro" name="IBUS_KEY_dead_horn" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-horn"/>
+    <keyword type="macro" name="IBUS_KEY_dead_stroke" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-stroke"/>
+    <keyword type="macro" name="IBUS_KEY_dead_abovecomma" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovecomma"/>
+    <keyword type="macro" name="IBUS_KEY_dead_psili" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-psili"/>
+    <keyword type="macro" name="IBUS_KEY_dead_abovereversedcomma" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-abovereversedcomma"/>
+    <keyword type="macro" name="IBUS_KEY_dead_dasia" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-dasia"/>
+    <keyword type="macro" name="IBUS_KEY_dead_doublegrave" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-doublegrave"/>
+    <keyword type="macro" name="IBUS_KEY_dead_belowring" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowring"/>
+    <keyword type="macro" name="IBUS_KEY_dead_belowmacron" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowmacron"/>
+    <keyword type="macro" name="IBUS_KEY_dead_belowcircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowcircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_dead_belowtilde" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowtilde"/>
+    <keyword type="macro" name="IBUS_KEY_dead_belowbreve" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowbreve"/>
+    <keyword type="macro" name="IBUS_KEY_dead_belowdiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowdiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_dead_invertedbreve" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-invertedbreve"/>
+    <keyword type="macro" name="IBUS_KEY_dead_belowcomma" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-belowcomma"/>
+    <keyword type="macro" name="IBUS_KEY_dead_currency" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-currency"/>
+    <keyword type="macro" name="IBUS_KEY_dead_a" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-a"/>
+    <keyword type="macro" name="IBUS_KEY_dead_A" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-A"/>
+    <keyword type="macro" name="IBUS_KEY_dead_e" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-e"/>
+    <keyword type="macro" name="IBUS_KEY_dead_E" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-E"/>
+    <keyword type="macro" name="IBUS_KEY_dead_i" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-i"/>
+    <keyword type="macro" name="IBUS_KEY_dead_I" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-I"/>
+    <keyword type="macro" name="IBUS_KEY_dead_o" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-o"/>
+    <keyword type="macro" name="IBUS_KEY_dead_O" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-O"/>
+    <keyword type="macro" name="IBUS_KEY_dead_u" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-u"/>
+    <keyword type="macro" name="IBUS_KEY_dead_U" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-U"/>
+    <keyword type="macro" name="IBUS_KEY_dead_small_schwa" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-small-schwa"/>
+    <keyword type="macro" name="IBUS_KEY_dead_capital_schwa" link="ibus-IBusKeysyms.html#IBUS-KEY-dead-capital-schwa"/>
+    <keyword type="macro" name="IBUS_KEY_First_Virtual_Screen" link="ibus-IBusKeysyms.html#IBUS-KEY-First-Virtual-Screen"/>
+    <keyword type="macro" name="IBUS_KEY_Prev_Virtual_Screen" link="ibus-IBusKeysyms.html#IBUS-KEY-Prev-Virtual-Screen"/>
+    <keyword type="macro" name="IBUS_KEY_Next_Virtual_Screen" link="ibus-IBusKeysyms.html#IBUS-KEY-Next-Virtual-Screen"/>
+    <keyword type="macro" name="IBUS_KEY_Last_Virtual_Screen" link="ibus-IBusKeysyms.html#IBUS-KEY-Last-Virtual-Screen"/>
+    <keyword type="macro" name="IBUS_KEY_Terminate_Server" link="ibus-IBusKeysyms.html#IBUS-KEY-Terminate-Server"/>
+    <keyword type="macro" name="IBUS_KEY_AccessX_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-AccessX-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_AccessX_Feedback_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-AccessX-Feedback-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_RepeatKeys_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-RepeatKeys-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_SlowKeys_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-SlowKeys-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_BounceKeys_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-BounceKeys-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_StickyKeys_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-StickyKeys-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_MouseKeys_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-MouseKeys-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_MouseKeys_Accel_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-MouseKeys-Accel-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_Overlay1_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-Overlay1-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_Overlay2_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-Overlay2-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_AudibleBell_Enable" link="ibus-IBusKeysyms.html#IBUS-KEY-AudibleBell-Enable"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Left" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Left"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Right" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Right"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Up" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Up"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Down" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Down"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_UpLeft" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-UpLeft"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_UpRight" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-UpRight"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DownLeft" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DownLeft"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DownRight" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DownRight"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Button_Dflt" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button-Dflt"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Button1" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button1"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Button2" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button2"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Button3" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button3"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Button4" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button4"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Button5" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button5"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DblClick_Dflt" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick-Dflt"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DblClick1" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick1"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DblClick2" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick2"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DblClick3" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick3"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DblClick4" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick4"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DblClick5" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick5"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Drag_Dflt" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag-Dflt"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Drag1" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag1"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Drag2" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag2"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Drag3" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag3"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Drag4" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag4"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Drag5" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag5"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_EnableKeys" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-EnableKeys"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_Accelerate" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Accelerate"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DfltBtnNext" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DfltBtnNext"/>
+    <keyword type="macro" name="IBUS_KEY_Pointer_DfltBtnPrev" link="ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DfltBtnPrev"/>
+    <keyword type="macro" name="IBUS_KEY_ch" link="ibus-IBusKeysyms.html#IBUS-KEY-ch"/>
+    <keyword type="macro" name="IBUS_KEY_Ch" link="ibus-IBusKeysyms.html#IBUS-KEY-Ch"/>
+    <keyword type="macro" name="IBUS_KEY_CH" link="ibus-IBusKeysyms.html#IBUS-KEY-CH:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_c_h" link="ibus-IBusKeysyms.html#IBUS-KEY-c-h"/>
+    <keyword type="macro" name="IBUS_KEY_C_h" link="ibus-IBusKeysyms.html#IBUS-KEY-C-h"/>
+    <keyword type="macro" name="IBUS_KEY_C_H" link="ibus-IBusKeysyms.html#IBUS-KEY-C-H:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Duplicate" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Duplicate"/>
+    <keyword type="macro" name="IBUS_KEY_3270_FieldMark" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-FieldMark"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Right2" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Right2"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Left2" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Left2"/>
+    <keyword type="macro" name="IBUS_KEY_3270_BackTab" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-BackTab"/>
+    <keyword type="macro" name="IBUS_KEY_3270_EraseEOF" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-EraseEOF"/>
+    <keyword type="macro" name="IBUS_KEY_3270_EraseInput" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-EraseInput"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Reset" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Reset"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Quit" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Quit"/>
+    <keyword type="macro" name="IBUS_KEY_3270_PA1" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-PA1:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_3270_PA2" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-PA2:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_3270_PA3" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-PA3:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Test" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Test"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Attn" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Attn"/>
+    <keyword type="macro" name="IBUS_KEY_3270_CursorBlink" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-CursorBlink"/>
+    <keyword type="macro" name="IBUS_KEY_3270_AltCursor" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-AltCursor"/>
+    <keyword type="macro" name="IBUS_KEY_3270_KeyClick" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-KeyClick"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Jump" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Jump"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Ident" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Ident"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Rule" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Rule"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Copy" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Copy"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Play" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Play"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Setup" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Setup"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Record" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Record"/>
+    <keyword type="macro" name="IBUS_KEY_3270_ChangeScreen" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-ChangeScreen"/>
+    <keyword type="macro" name="IBUS_KEY_3270_DeleteWord" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-DeleteWord"/>
+    <keyword type="macro" name="IBUS_KEY_3270_ExSelect" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-ExSelect"/>
+    <keyword type="macro" name="IBUS_KEY_3270_CursorSelect" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-CursorSelect"/>
+    <keyword type="macro" name="IBUS_KEY_3270_PrintScreen" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-PrintScreen"/>
+    <keyword type="macro" name="IBUS_KEY_3270_Enter" link="ibus-IBusKeysyms.html#IBUS-KEY-3270-Enter"/>
+    <keyword type="macro" name="IBUS_KEY_space" link="ibus-IBusKeysyms.html#IBUS-KEY-space"/>
+    <keyword type="macro" name="IBUS_KEY_exclam" link="ibus-IBusKeysyms.html#IBUS-KEY-exclam"/>
+    <keyword type="macro" name="IBUS_KEY_quotedbl" link="ibus-IBusKeysyms.html#IBUS-KEY-quotedbl"/>
+    <keyword type="macro" name="IBUS_KEY_numbersign" link="ibus-IBusKeysyms.html#IBUS-KEY-numbersign"/>
+    <keyword type="macro" name="IBUS_KEY_dollar" link="ibus-IBusKeysyms.html#IBUS-KEY-dollar"/>
+    <keyword type="macro" name="IBUS_KEY_percent" link="ibus-IBusKeysyms.html#IBUS-KEY-percent"/>
+    <keyword type="macro" name="IBUS_KEY_ampersand" link="ibus-IBusKeysyms.html#IBUS-KEY-ampersand"/>
+    <keyword type="macro" name="IBUS_KEY_apostrophe" link="ibus-IBusKeysyms.html#IBUS-KEY-apostrophe"/>
+    <keyword type="macro" name="IBUS_KEY_quoteright" link="ibus-IBusKeysyms.html#IBUS-KEY-quoteright"/>
+    <keyword type="macro" name="IBUS_KEY_parenleft" link="ibus-IBusKeysyms.html#IBUS-KEY-parenleft"/>
+    <keyword type="macro" name="IBUS_KEY_parenright" link="ibus-IBusKeysyms.html#IBUS-KEY-parenright"/>
+    <keyword type="macro" name="IBUS_KEY_asterisk" link="ibus-IBusKeysyms.html#IBUS-KEY-asterisk"/>
+    <keyword type="macro" name="IBUS_KEY_plus" link="ibus-IBusKeysyms.html#IBUS-KEY-plus"/>
+    <keyword type="macro" name="IBUS_KEY_comma" link="ibus-IBusKeysyms.html#IBUS-KEY-comma"/>
+    <keyword type="macro" name="IBUS_KEY_minus" link="ibus-IBusKeysyms.html#IBUS-KEY-minus"/>
+    <keyword type="macro" name="IBUS_KEY_period" link="ibus-IBusKeysyms.html#IBUS-KEY-period"/>
+    <keyword type="macro" name="IBUS_KEY_slash" link="ibus-IBusKeysyms.html#IBUS-KEY-slash"/>
+    <keyword type="macro" name="IBUS_KEY_0" link="ibus-IBusKeysyms.html#IBUS-KEY-0:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_1" link="ibus-IBusKeysyms.html#IBUS-KEY-1:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_2" link="ibus-IBusKeysyms.html#IBUS-KEY-2:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_3" link="ibus-IBusKeysyms.html#IBUS-KEY-3:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_4" link="ibus-IBusKeysyms.html#IBUS-KEY-4:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_5" link="ibus-IBusKeysyms.html#IBUS-KEY-5:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_6" link="ibus-IBusKeysyms.html#IBUS-KEY-6:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_7" link="ibus-IBusKeysyms.html#IBUS-KEY-7:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_8" link="ibus-IBusKeysyms.html#IBUS-KEY-8:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_9" link="ibus-IBusKeysyms.html#IBUS-KEY-9:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_colon" link="ibus-IBusKeysyms.html#IBUS-KEY-colon"/>
+    <keyword type="macro" name="IBUS_KEY_semicolon" link="ibus-IBusKeysyms.html#IBUS-KEY-semicolon"/>
+    <keyword type="macro" name="IBUS_KEY_less" link="ibus-IBusKeysyms.html#IBUS-KEY-less"/>
+    <keyword type="macro" name="IBUS_KEY_equal" link="ibus-IBusKeysyms.html#IBUS-KEY-equal"/>
+    <keyword type="macro" name="IBUS_KEY_greater" link="ibus-IBusKeysyms.html#IBUS-KEY-greater"/>
+    <keyword type="macro" name="IBUS_KEY_question" link="ibus-IBusKeysyms.html#IBUS-KEY-question"/>
+    <keyword type="macro" name="IBUS_KEY_at" link="ibus-IBusKeysyms.html#IBUS-KEY-at"/>
+    <keyword type="macro" name="IBUS_KEY_A" link="ibus-IBusKeysyms.html#IBUS-KEY-A:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_B" link="ibus-IBusKeysyms.html#IBUS-KEY-B:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_C" link="ibus-IBusKeysyms.html#IBUS-KEY-C:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_D" link="ibus-IBusKeysyms.html#IBUS-KEY-D:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_E" link="ibus-IBusKeysyms.html#IBUS-KEY-E:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_F" link="ibus-IBusKeysyms.html#IBUS-KEY-F:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_G" link="ibus-IBusKeysyms.html#IBUS-KEY-G:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_H" link="ibus-IBusKeysyms.html#IBUS-KEY-H:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_I" link="ibus-IBusKeysyms.html#IBUS-KEY-I:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_J" link="ibus-IBusKeysyms.html#IBUS-KEY-J:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_K" link="ibus-IBusKeysyms.html#IBUS-KEY-K:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_L" link="ibus-IBusKeysyms.html#IBUS-KEY-L:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_M" link="ibus-IBusKeysyms.html#IBUS-KEY-M:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_N" link="ibus-IBusKeysyms.html#IBUS-KEY-N:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_O" link="ibus-IBusKeysyms.html#IBUS-KEY-O:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_P" link="ibus-IBusKeysyms.html#IBUS-KEY-P:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_Q" link="ibus-IBusKeysyms.html#IBUS-KEY-Q:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_R" link="ibus-IBusKeysyms.html#IBUS-KEY-R:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_S" link="ibus-IBusKeysyms.html#IBUS-KEY-S:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_T" link="ibus-IBusKeysyms.html#IBUS-KEY-T:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_U" link="ibus-IBusKeysyms.html#IBUS-KEY-U:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_V" link="ibus-IBusKeysyms.html#IBUS-KEY-V:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_W" link="ibus-IBusKeysyms.html#IBUS-KEY-W:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_X" link="ibus-IBusKeysyms.html#IBUS-KEY-X:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_Y" link="ibus-IBusKeysyms.html#IBUS-KEY-Y:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_Z" link="ibus-IBusKeysyms.html#IBUS-KEY-Z:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_bracketleft" link="ibus-IBusKeysyms.html#IBUS-KEY-bracketleft"/>
+    <keyword type="macro" name="IBUS_KEY_backslash" link="ibus-IBusKeysyms.html#IBUS-KEY-backslash"/>
+    <keyword type="macro" name="IBUS_KEY_bracketright" link="ibus-IBusKeysyms.html#IBUS-KEY-bracketright"/>
+    <keyword type="macro" name="IBUS_KEY_asciicircum" link="ibus-IBusKeysyms.html#IBUS-KEY-asciicircum"/>
+    <keyword type="macro" name="IBUS_KEY_underscore" link="ibus-IBusKeysyms.html#IBUS-KEY-underscore"/>
+    <keyword type="macro" name="IBUS_KEY_grave" link="ibus-IBusKeysyms.html#IBUS-KEY-grave"/>
+    <keyword type="macro" name="IBUS_KEY_quoteleft" link="ibus-IBusKeysyms.html#IBUS-KEY-quoteleft"/>
+    <keyword type="macro" name="IBUS_KEY_a" link="ibus-IBusKeysyms.html#IBUS-KEY-a"/>
+    <keyword type="macro" name="IBUS_KEY_b" link="ibus-IBusKeysyms.html#IBUS-KEY-b"/>
+    <keyword type="macro" name="IBUS_KEY_c" link="ibus-IBusKeysyms.html#IBUS-KEY-c"/>
+    <keyword type="macro" name="IBUS_KEY_d" link="ibus-IBusKeysyms.html#IBUS-KEY-d"/>
+    <keyword type="macro" name="IBUS_KEY_e" link="ibus-IBusKeysyms.html#IBUS-KEY-e"/>
+    <keyword type="macro" name="IBUS_KEY_f" link="ibus-IBusKeysyms.html#IBUS-KEY-f"/>
+    <keyword type="macro" name="IBUS_KEY_g" link="ibus-IBusKeysyms.html#IBUS-KEY-g"/>
+    <keyword type="macro" name="IBUS_KEY_h" link="ibus-IBusKeysyms.html#IBUS-KEY-h"/>
+    <keyword type="macro" name="IBUS_KEY_i" link="ibus-IBusKeysyms.html#IBUS-KEY-i"/>
+    <keyword type="macro" name="IBUS_KEY_j" link="ibus-IBusKeysyms.html#IBUS-KEY-j"/>
+    <keyword type="macro" name="IBUS_KEY_k" link="ibus-IBusKeysyms.html#IBUS-KEY-k"/>
+    <keyword type="macro" name="IBUS_KEY_l" link="ibus-IBusKeysyms.html#IBUS-KEY-l"/>
+    <keyword type="macro" name="IBUS_KEY_m" link="ibus-IBusKeysyms.html#IBUS-KEY-m"/>
+    <keyword type="macro" name="IBUS_KEY_n" link="ibus-IBusKeysyms.html#IBUS-KEY-n"/>
+    <keyword type="macro" name="IBUS_KEY_o" link="ibus-IBusKeysyms.html#IBUS-KEY-o"/>
+    <keyword type="macro" name="IBUS_KEY_p" link="ibus-IBusKeysyms.html#IBUS-KEY-p"/>
+    <keyword type="macro" name="IBUS_KEY_q" link="ibus-IBusKeysyms.html#IBUS-KEY-q"/>
+    <keyword type="macro" name="IBUS_KEY_r" link="ibus-IBusKeysyms.html#IBUS-KEY-r"/>
+    <keyword type="macro" name="IBUS_KEY_s" link="ibus-IBusKeysyms.html#IBUS-KEY-s"/>
+    <keyword type="macro" name="IBUS_KEY_t" link="ibus-IBusKeysyms.html#IBUS-KEY-t"/>
+    <keyword type="macro" name="IBUS_KEY_u" link="ibus-IBusKeysyms.html#IBUS-KEY-u"/>
+    <keyword type="macro" name="IBUS_KEY_v" link="ibus-IBusKeysyms.html#IBUS-KEY-v"/>
+    <keyword type="macro" name="IBUS_KEY_w" link="ibus-IBusKeysyms.html#IBUS-KEY-w"/>
+    <keyword type="macro" name="IBUS_KEY_x" link="ibus-IBusKeysyms.html#IBUS-KEY-x"/>
+    <keyword type="macro" name="IBUS_KEY_y" link="ibus-IBusKeysyms.html#IBUS-KEY-y"/>
+    <keyword type="macro" name="IBUS_KEY_z" link="ibus-IBusKeysyms.html#IBUS-KEY-z"/>
+    <keyword type="macro" name="IBUS_KEY_braceleft" link="ibus-IBusKeysyms.html#IBUS-KEY-braceleft"/>
+    <keyword type="macro" name="IBUS_KEY_bar" link="ibus-IBusKeysyms.html#IBUS-KEY-bar"/>
+    <keyword type="macro" name="IBUS_KEY_braceright" link="ibus-IBusKeysyms.html#IBUS-KEY-braceright"/>
+    <keyword type="macro" name="IBUS_KEY_asciitilde" link="ibus-IBusKeysyms.html#IBUS-KEY-asciitilde"/>
+    <keyword type="macro" name="IBUS_KEY_nobreakspace" link="ibus-IBusKeysyms.html#IBUS-KEY-nobreakspace"/>
+    <keyword type="macro" name="IBUS_KEY_exclamdown" link="ibus-IBusKeysyms.html#IBUS-KEY-exclamdown"/>
+    <keyword type="macro" name="IBUS_KEY_cent" link="ibus-IBusKeysyms.html#IBUS-KEY-cent"/>
+    <keyword type="macro" name="IBUS_KEY_sterling" link="ibus-IBusKeysyms.html#IBUS-KEY-sterling"/>
+    <keyword type="macro" name="IBUS_KEY_currency" link="ibus-IBusKeysyms.html#IBUS-KEY-currency"/>
+    <keyword type="macro" name="IBUS_KEY_yen" link="ibus-IBusKeysyms.html#IBUS-KEY-yen"/>
+    <keyword type="macro" name="IBUS_KEY_brokenbar" link="ibus-IBusKeysyms.html#IBUS-KEY-brokenbar"/>
+    <keyword type="macro" name="IBUS_KEY_section" link="ibus-IBusKeysyms.html#IBUS-KEY-section"/>
+    <keyword type="macro" name="IBUS_KEY_diaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-diaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_copyright" link="ibus-IBusKeysyms.html#IBUS-KEY-copyright"/>
+    <keyword type="macro" name="IBUS_KEY_ordfeminine" link="ibus-IBusKeysyms.html#IBUS-KEY-ordfeminine"/>
+    <keyword type="macro" name="IBUS_KEY_guillemotleft" link="ibus-IBusKeysyms.html#IBUS-KEY-guillemotleft"/>
+    <keyword type="macro" name="IBUS_KEY_notsign" link="ibus-IBusKeysyms.html#IBUS-KEY-notsign"/>
+    <keyword type="macro" name="IBUS_KEY_hyphen" link="ibus-IBusKeysyms.html#IBUS-KEY-hyphen"/>
+    <keyword type="macro" name="IBUS_KEY_registered" link="ibus-IBusKeysyms.html#IBUS-KEY-registered"/>
+    <keyword type="macro" name="IBUS_KEY_macron" link="ibus-IBusKeysyms.html#IBUS-KEY-macron"/>
+    <keyword type="macro" name="IBUS_KEY_degree" link="ibus-IBusKeysyms.html#IBUS-KEY-degree"/>
+    <keyword type="macro" name="IBUS_KEY_plusminus" link="ibus-IBusKeysyms.html#IBUS-KEY-plusminus"/>
+    <keyword type="macro" name="IBUS_KEY_twosuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-twosuperior"/>
+    <keyword type="macro" name="IBUS_KEY_threesuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-threesuperior"/>
+    <keyword type="macro" name="IBUS_KEY_acute" link="ibus-IBusKeysyms.html#IBUS-KEY-acute"/>
+    <keyword type="macro" name="IBUS_KEY_mu" link="ibus-IBusKeysyms.html#IBUS-KEY-mu"/>
+    <keyword type="macro" name="IBUS_KEY_paragraph" link="ibus-IBusKeysyms.html#IBUS-KEY-paragraph"/>
+    <keyword type="macro" name="IBUS_KEY_periodcentered" link="ibus-IBusKeysyms.html#IBUS-KEY-periodcentered"/>
+    <keyword type="macro" name="IBUS_KEY_cedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-cedilla"/>
+    <keyword type="macro" name="IBUS_KEY_onesuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-onesuperior"/>
+    <keyword type="macro" name="IBUS_KEY_masculine" link="ibus-IBusKeysyms.html#IBUS-KEY-masculine"/>
+    <keyword type="macro" name="IBUS_KEY_guillemotright" link="ibus-IBusKeysyms.html#IBUS-KEY-guillemotright"/>
+    <keyword type="macro" name="IBUS_KEY_onequarter" link="ibus-IBusKeysyms.html#IBUS-KEY-onequarter"/>
+    <keyword type="macro" name="IBUS_KEY_onehalf" link="ibus-IBusKeysyms.html#IBUS-KEY-onehalf"/>
+    <keyword type="macro" name="IBUS_KEY_threequarters" link="ibus-IBusKeysyms.html#IBUS-KEY-threequarters"/>
+    <keyword type="macro" name="IBUS_KEY_questiondown" link="ibus-IBusKeysyms.html#IBUS-KEY-questiondown"/>
+    <keyword type="macro" name="IBUS_KEY_Agrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Agrave"/>
+    <keyword type="macro" name="IBUS_KEY_Aacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Aacute"/>
+    <keyword type="macro" name="IBUS_KEY_Acircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Atilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Atilde"/>
+    <keyword type="macro" name="IBUS_KEY_Adiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Adiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_Aring" link="ibus-IBusKeysyms.html#IBUS-KEY-Aring"/>
+    <keyword type="macro" name="IBUS_KEY_AE" link="ibus-IBusKeysyms.html#IBUS-KEY-AE:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_Ccedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-Ccedilla"/>
+    <keyword type="macro" name="IBUS_KEY_Egrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Egrave"/>
+    <keyword type="macro" name="IBUS_KEY_Eacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Eacute"/>
+    <keyword type="macro" name="IBUS_KEY_Ecircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Ediaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Ediaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_Igrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Igrave"/>
+    <keyword type="macro" name="IBUS_KEY_Iacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Iacute"/>
+    <keyword type="macro" name="IBUS_KEY_Icircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Icircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Idiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Idiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_ETH" link="ibus-IBusKeysyms.html#IBUS-KEY-ETH:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_Eth" link="ibus-IBusKeysyms.html#IBUS-KEY-Eth"/>
+    <keyword type="macro" name="IBUS_KEY_Ntilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Ntilde"/>
+    <keyword type="macro" name="IBUS_KEY_Ograve" link="ibus-IBusKeysyms.html#IBUS-KEY-Ograve"/>
+    <keyword type="macro" name="IBUS_KEY_Oacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Oacute"/>
+    <keyword type="macro" name="IBUS_KEY_Ocircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Otilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Otilde"/>
+    <keyword type="macro" name="IBUS_KEY_Odiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Odiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_multiply" link="ibus-IBusKeysyms.html#IBUS-KEY-multiply"/>
+    <keyword type="macro" name="IBUS_KEY_Oslash" link="ibus-IBusKeysyms.html#IBUS-KEY-Oslash"/>
+    <keyword type="macro" name="IBUS_KEY_Ooblique" link="ibus-IBusKeysyms.html#IBUS-KEY-Ooblique"/>
+    <keyword type="macro" name="IBUS_KEY_Ugrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Ugrave"/>
+    <keyword type="macro" name="IBUS_KEY_Uacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Uacute"/>
+    <keyword type="macro" name="IBUS_KEY_Ucircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Ucircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Udiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Udiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_Yacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Yacute"/>
+    <keyword type="macro" name="IBUS_KEY_THORN" link="ibus-IBusKeysyms.html#IBUS-KEY-THORN:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_Thorn" link="ibus-IBusKeysyms.html#IBUS-KEY-Thorn"/>
+    <keyword type="macro" name="IBUS_KEY_ssharp" link="ibus-IBusKeysyms.html#IBUS-KEY-ssharp"/>
+    <keyword type="macro" name="IBUS_KEY_agrave" link="ibus-IBusKeysyms.html#IBUS-KEY-agrave"/>
+    <keyword type="macro" name="IBUS_KEY_aacute" link="ibus-IBusKeysyms.html#IBUS-KEY-aacute"/>
+    <keyword type="macro" name="IBUS_KEY_acircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-acircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_atilde" link="ibus-IBusKeysyms.html#IBUS-KEY-atilde"/>
+    <keyword type="macro" name="IBUS_KEY_adiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-adiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_aring" link="ibus-IBusKeysyms.html#IBUS-KEY-aring"/>
+    <keyword type="macro" name="IBUS_KEY_ae" link="ibus-IBusKeysyms.html#IBUS-KEY-ae"/>
+    <keyword type="macro" name="IBUS_KEY_ccedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-ccedilla"/>
+    <keyword type="macro" name="IBUS_KEY_egrave" link="ibus-IBusKeysyms.html#IBUS-KEY-egrave"/>
+    <keyword type="macro" name="IBUS_KEY_eacute" link="ibus-IBusKeysyms.html#IBUS-KEY-eacute"/>
+    <keyword type="macro" name="IBUS_KEY_ecircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_ediaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-ediaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_igrave" link="ibus-IBusKeysyms.html#IBUS-KEY-igrave"/>
+    <keyword type="macro" name="IBUS_KEY_iacute" link="ibus-IBusKeysyms.html#IBUS-KEY-iacute"/>
+    <keyword type="macro" name="IBUS_KEY_icircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-icircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_idiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-idiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_eth" link="ibus-IBusKeysyms.html#IBUS-KEY-eth"/>
+    <keyword type="macro" name="IBUS_KEY_ntilde" link="ibus-IBusKeysyms.html#IBUS-KEY-ntilde"/>
+    <keyword type="macro" name="IBUS_KEY_ograve" link="ibus-IBusKeysyms.html#IBUS-KEY-ograve"/>
+    <keyword type="macro" name="IBUS_KEY_oacute" link="ibus-IBusKeysyms.html#IBUS-KEY-oacute"/>
+    <keyword type="macro" name="IBUS_KEY_ocircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_otilde" link="ibus-IBusKeysyms.html#IBUS-KEY-otilde"/>
+    <keyword type="macro" name="IBUS_KEY_odiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-odiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_division" link="ibus-IBusKeysyms.html#IBUS-KEY-division"/>
+    <keyword type="macro" name="IBUS_KEY_oslash" link="ibus-IBusKeysyms.html#IBUS-KEY-oslash"/>
+    <keyword type="macro" name="IBUS_KEY_ooblique" link="ibus-IBusKeysyms.html#IBUS-KEY-ooblique"/>
+    <keyword type="macro" name="IBUS_KEY_ugrave" link="ibus-IBusKeysyms.html#IBUS-KEY-ugrave"/>
+    <keyword type="macro" name="IBUS_KEY_uacute" link="ibus-IBusKeysyms.html#IBUS-KEY-uacute"/>
+    <keyword type="macro" name="IBUS_KEY_ucircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-ucircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_udiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-udiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_yacute" link="ibus-IBusKeysyms.html#IBUS-KEY-yacute"/>
+    <keyword type="macro" name="IBUS_KEY_thorn" link="ibus-IBusKeysyms.html#IBUS-KEY-thorn"/>
+    <keyword type="macro" name="IBUS_KEY_ydiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-ydiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_Aogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-Aogonek"/>
+    <keyword type="macro" name="IBUS_KEY_breve" link="ibus-IBusKeysyms.html#IBUS-KEY-breve"/>
+    <keyword type="macro" name="IBUS_KEY_Lstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-Lstroke"/>
+    <keyword type="macro" name="IBUS_KEY_Lcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Lcaron"/>
+    <keyword type="macro" name="IBUS_KEY_Sacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Sacute"/>
+    <keyword type="macro" name="IBUS_KEY_Scaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Scaron"/>
+    <keyword type="macro" name="IBUS_KEY_Scedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-Scedilla"/>
+    <keyword type="macro" name="IBUS_KEY_Tcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Tcaron"/>
+    <keyword type="macro" name="IBUS_KEY_Zacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Zacute"/>
+    <keyword type="macro" name="IBUS_KEY_Zcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Zcaron"/>
+    <keyword type="macro" name="IBUS_KEY_Zabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Zabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_aogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-aogonek"/>
+    <keyword type="macro" name="IBUS_KEY_ogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-ogonek"/>
+    <keyword type="macro" name="IBUS_KEY_lstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-lstroke"/>
+    <keyword type="macro" name="IBUS_KEY_lcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-lcaron"/>
+    <keyword type="macro" name="IBUS_KEY_sacute" link="ibus-IBusKeysyms.html#IBUS-KEY-sacute"/>
+    <keyword type="macro" name="IBUS_KEY_caron" link="ibus-IBusKeysyms.html#IBUS-KEY-caron"/>
+    <keyword type="macro" name="IBUS_KEY_scaron" link="ibus-IBusKeysyms.html#IBUS-KEY-scaron"/>
+    <keyword type="macro" name="IBUS_KEY_scedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-scedilla"/>
+    <keyword type="macro" name="IBUS_KEY_tcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-tcaron"/>
+    <keyword type="macro" name="IBUS_KEY_zacute" link="ibus-IBusKeysyms.html#IBUS-KEY-zacute"/>
+    <keyword type="macro" name="IBUS_KEY_doubleacute" link="ibus-IBusKeysyms.html#IBUS-KEY-doubleacute"/>
+    <keyword type="macro" name="IBUS_KEY_zcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-zcaron"/>
+    <keyword type="macro" name="IBUS_KEY_zabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-zabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Racute" link="ibus-IBusKeysyms.html#IBUS-KEY-Racute"/>
+    <keyword type="macro" name="IBUS_KEY_Abreve" link="ibus-IBusKeysyms.html#IBUS-KEY-Abreve"/>
+    <keyword type="macro" name="IBUS_KEY_Lacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Lacute"/>
+    <keyword type="macro" name="IBUS_KEY_Cacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Cacute"/>
+    <keyword type="macro" name="IBUS_KEY_Ccaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Ccaron"/>
+    <keyword type="macro" name="IBUS_KEY_Eogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-Eogonek"/>
+    <keyword type="macro" name="IBUS_KEY_Ecaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Ecaron"/>
+    <keyword type="macro" name="IBUS_KEY_Dcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Dcaron"/>
+    <keyword type="macro" name="IBUS_KEY_Dstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-Dstroke"/>
+    <keyword type="macro" name="IBUS_KEY_Nacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Nacute"/>
+    <keyword type="macro" name="IBUS_KEY_Ncaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Ncaron"/>
+    <keyword type="macro" name="IBUS_KEY_Odoubleacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Odoubleacute"/>
+    <keyword type="macro" name="IBUS_KEY_Rcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Rcaron"/>
+    <keyword type="macro" name="IBUS_KEY_Uring" link="ibus-IBusKeysyms.html#IBUS-KEY-Uring"/>
+    <keyword type="macro" name="IBUS_KEY_Udoubleacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Udoubleacute"/>
+    <keyword type="macro" name="IBUS_KEY_Tcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-Tcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_racute" link="ibus-IBusKeysyms.html#IBUS-KEY-racute"/>
+    <keyword type="macro" name="IBUS_KEY_abreve" link="ibus-IBusKeysyms.html#IBUS-KEY-abreve"/>
+    <keyword type="macro" name="IBUS_KEY_lacute" link="ibus-IBusKeysyms.html#IBUS-KEY-lacute"/>
+    <keyword type="macro" name="IBUS_KEY_cacute" link="ibus-IBusKeysyms.html#IBUS-KEY-cacute"/>
+    <keyword type="macro" name="IBUS_KEY_ccaron" link="ibus-IBusKeysyms.html#IBUS-KEY-ccaron"/>
+    <keyword type="macro" name="IBUS_KEY_eogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-eogonek"/>
+    <keyword type="macro" name="IBUS_KEY_ecaron" link="ibus-IBusKeysyms.html#IBUS-KEY-ecaron"/>
+    <keyword type="macro" name="IBUS_KEY_dcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-dcaron"/>
+    <keyword type="macro" name="IBUS_KEY_dstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-dstroke"/>
+    <keyword type="macro" name="IBUS_KEY_nacute" link="ibus-IBusKeysyms.html#IBUS-KEY-nacute"/>
+    <keyword type="macro" name="IBUS_KEY_ncaron" link="ibus-IBusKeysyms.html#IBUS-KEY-ncaron"/>
+    <keyword type="macro" name="IBUS_KEY_odoubleacute" link="ibus-IBusKeysyms.html#IBUS-KEY-odoubleacute"/>
+    <keyword type="macro" name="IBUS_KEY_rcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-rcaron"/>
+    <keyword type="macro" name="IBUS_KEY_uring" link="ibus-IBusKeysyms.html#IBUS-KEY-uring"/>
+    <keyword type="macro" name="IBUS_KEY_udoubleacute" link="ibus-IBusKeysyms.html#IBUS-KEY-udoubleacute"/>
+    <keyword type="macro" name="IBUS_KEY_tcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-tcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_abovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-abovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Hstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-Hstroke"/>
+    <keyword type="macro" name="IBUS_KEY_Hcircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Hcircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Iabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Iabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Gbreve" link="ibus-IBusKeysyms.html#IBUS-KEY-Gbreve"/>
+    <keyword type="macro" name="IBUS_KEY_Jcircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Jcircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_hstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-hstroke"/>
+    <keyword type="macro" name="IBUS_KEY_hcircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-hcircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_idotless" link="ibus-IBusKeysyms.html#IBUS-KEY-idotless"/>
+    <keyword type="macro" name="IBUS_KEY_gbreve" link="ibus-IBusKeysyms.html#IBUS-KEY-gbreve"/>
+    <keyword type="macro" name="IBUS_KEY_jcircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-jcircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Cabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Cabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Ccircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Ccircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Gabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Gabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Gcircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Gcircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Ubreve" link="ibus-IBusKeysyms.html#IBUS-KEY-Ubreve"/>
+    <keyword type="macro" name="IBUS_KEY_Scircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Scircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_cabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-cabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_ccircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-ccircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_gabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-gabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_gcircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-gcircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_ubreve" link="ibus-IBusKeysyms.html#IBUS-KEY-ubreve"/>
+    <keyword type="macro" name="IBUS_KEY_scircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-scircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_kra" link="ibus-IBusKeysyms.html#IBUS-KEY-kra"/>
+    <keyword type="macro" name="IBUS_KEY_kappa" link="ibus-IBusKeysyms.html#IBUS-KEY-kappa"/>
+    <keyword type="macro" name="IBUS_KEY_Rcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-Rcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_Itilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Itilde"/>
+    <keyword type="macro" name="IBUS_KEY_Lcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-Lcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_Emacron" link="ibus-IBusKeysyms.html#IBUS-KEY-Emacron"/>
+    <keyword type="macro" name="IBUS_KEY_Gcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-Gcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_Tslash" link="ibus-IBusKeysyms.html#IBUS-KEY-Tslash"/>
+    <keyword type="macro" name="IBUS_KEY_rcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-rcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_itilde" link="ibus-IBusKeysyms.html#IBUS-KEY-itilde"/>
+    <keyword type="macro" name="IBUS_KEY_lcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-lcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_emacron" link="ibus-IBusKeysyms.html#IBUS-KEY-emacron"/>
+    <keyword type="macro" name="IBUS_KEY_gcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-gcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_tslash" link="ibus-IBusKeysyms.html#IBUS-KEY-tslash"/>
+    <keyword type="macro" name="IBUS_KEY_ENG" link="ibus-IBusKeysyms.html#IBUS-KEY-ENG:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_eng" link="ibus-IBusKeysyms.html#IBUS-KEY-eng"/>
+    <keyword type="macro" name="IBUS_KEY_Amacron" link="ibus-IBusKeysyms.html#IBUS-KEY-Amacron"/>
+    <keyword type="macro" name="IBUS_KEY_Iogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-Iogonek"/>
+    <keyword type="macro" name="IBUS_KEY_Eabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Eabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Imacron" link="ibus-IBusKeysyms.html#IBUS-KEY-Imacron"/>
+    <keyword type="macro" name="IBUS_KEY_Ncedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-Ncedilla"/>
+    <keyword type="macro" name="IBUS_KEY_Omacron" link="ibus-IBusKeysyms.html#IBUS-KEY-Omacron"/>
+    <keyword type="macro" name="IBUS_KEY_Kcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-Kcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_Uogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-Uogonek"/>
+    <keyword type="macro" name="IBUS_KEY_Utilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Utilde"/>
+    <keyword type="macro" name="IBUS_KEY_Umacron" link="ibus-IBusKeysyms.html#IBUS-KEY-Umacron"/>
+    <keyword type="macro" name="IBUS_KEY_amacron" link="ibus-IBusKeysyms.html#IBUS-KEY-amacron"/>
+    <keyword type="macro" name="IBUS_KEY_iogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-iogonek"/>
+    <keyword type="macro" name="IBUS_KEY_eabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-eabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_imacron" link="ibus-IBusKeysyms.html#IBUS-KEY-imacron"/>
+    <keyword type="macro" name="IBUS_KEY_ncedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-ncedilla"/>
+    <keyword type="macro" name="IBUS_KEY_omacron" link="ibus-IBusKeysyms.html#IBUS-KEY-omacron"/>
+    <keyword type="macro" name="IBUS_KEY_kcedilla" link="ibus-IBusKeysyms.html#IBUS-KEY-kcedilla"/>
+    <keyword type="macro" name="IBUS_KEY_uogonek" link="ibus-IBusKeysyms.html#IBUS-KEY-uogonek"/>
+    <keyword type="macro" name="IBUS_KEY_utilde" link="ibus-IBusKeysyms.html#IBUS-KEY-utilde"/>
+    <keyword type="macro" name="IBUS_KEY_umacron" link="ibus-IBusKeysyms.html#IBUS-KEY-umacron"/>
+    <keyword type="macro" name="IBUS_KEY_Wcircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Wcircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_wcircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-wcircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Ycircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-Ycircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_ycircumflex" link="ibus-IBusKeysyms.html#IBUS-KEY-ycircumflex"/>
+    <keyword type="macro" name="IBUS_KEY_Babovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Babovedot"/>
+    <keyword type="macro" name="IBUS_KEY_babovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-babovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Dabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Dabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_dabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-dabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Fabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Fabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_fabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-fabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Mabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Mabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_mabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-mabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Pabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Pabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_pabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-pabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Sabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Sabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_sabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-sabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Tabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Tabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_tabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-tabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Wgrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Wgrave"/>
+    <keyword type="macro" name="IBUS_KEY_wgrave" link="ibus-IBusKeysyms.html#IBUS-KEY-wgrave"/>
+    <keyword type="macro" name="IBUS_KEY_Wacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Wacute"/>
+    <keyword type="macro" name="IBUS_KEY_wacute" link="ibus-IBusKeysyms.html#IBUS-KEY-wacute"/>
+    <keyword type="macro" name="IBUS_KEY_Wdiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Wdiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_wdiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-wdiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_Ygrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Ygrave"/>
+    <keyword type="macro" name="IBUS_KEY_ygrave" link="ibus-IBusKeysyms.html#IBUS-KEY-ygrave"/>
+    <keyword type="macro" name="IBUS_KEY_OE" link="ibus-IBusKeysyms.html#IBUS-KEY-OE:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_oe" link="ibus-IBusKeysyms.html#IBUS-KEY-oe"/>
+    <keyword type="macro" name="IBUS_KEY_Ydiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Ydiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_overline" link="ibus-IBusKeysyms.html#IBUS-KEY-overline"/>
+    <keyword type="macro" name="IBUS_KEY_kana_fullstop" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-fullstop"/>
+    <keyword type="macro" name="IBUS_KEY_kana_openingbracket" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-openingbracket"/>
+    <keyword type="macro" name="IBUS_KEY_kana_closingbracket" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-closingbracket"/>
+    <keyword type="macro" name="IBUS_KEY_kana_comma" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-comma"/>
+    <keyword type="macro" name="IBUS_KEY_kana_conjunctive" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-conjunctive"/>
+    <keyword type="macro" name="IBUS_KEY_kana_middledot" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-middledot"/>
+    <keyword type="macro" name="IBUS_KEY_kana_WO" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-WO"/>
+    <keyword type="macro" name="IBUS_KEY_kana_a" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-a"/>
+    <keyword type="macro" name="IBUS_KEY_kana_i" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-i"/>
+    <keyword type="macro" name="IBUS_KEY_kana_u" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-u"/>
+    <keyword type="macro" name="IBUS_KEY_kana_e" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-e"/>
+    <keyword type="macro" name="IBUS_KEY_kana_o" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-o"/>
+    <keyword type="macro" name="IBUS_KEY_kana_ya" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-ya"/>
+    <keyword type="macro" name="IBUS_KEY_kana_yu" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-yu"/>
+    <keyword type="macro" name="IBUS_KEY_kana_yo" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-yo"/>
+    <keyword type="macro" name="IBUS_KEY_kana_tsu" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-tsu"/>
+    <keyword type="macro" name="IBUS_KEY_kana_tu" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-tu"/>
+    <keyword type="macro" name="IBUS_KEY_prolongedsound" link="ibus-IBusKeysyms.html#IBUS-KEY-prolongedsound"/>
+    <keyword type="macro" name="IBUS_KEY_kana_A" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-A"/>
+    <keyword type="macro" name="IBUS_KEY_kana_I" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-I"/>
+    <keyword type="macro" name="IBUS_KEY_kana_U" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-U"/>
+    <keyword type="macro" name="IBUS_KEY_kana_E" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-E"/>
+    <keyword type="macro" name="IBUS_KEY_kana_O" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-O"/>
+    <keyword type="macro" name="IBUS_KEY_kana_KA" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-KA"/>
+    <keyword type="macro" name="IBUS_KEY_kana_KI" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-KI"/>
+    <keyword type="macro" name="IBUS_KEY_kana_KU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-KU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_KE" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-KE"/>
+    <keyword type="macro" name="IBUS_KEY_kana_KO" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-KO"/>
+    <keyword type="macro" name="IBUS_KEY_kana_SA" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-SA"/>
+    <keyword type="macro" name="IBUS_KEY_kana_SHI" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-SHI"/>
+    <keyword type="macro" name="IBUS_KEY_kana_SU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-SU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_SE" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-SE"/>
+    <keyword type="macro" name="IBUS_KEY_kana_SO" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-SO"/>
+    <keyword type="macro" name="IBUS_KEY_kana_TA" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-TA"/>
+    <keyword type="macro" name="IBUS_KEY_kana_CHI" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-CHI"/>
+    <keyword type="macro" name="IBUS_KEY_kana_TI" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-TI"/>
+    <keyword type="macro" name="IBUS_KEY_kana_TSU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-TSU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_TU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-TU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_TE" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-TE"/>
+    <keyword type="macro" name="IBUS_KEY_kana_TO" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-TO"/>
+    <keyword type="macro" name="IBUS_KEY_kana_NA" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-NA"/>
+    <keyword type="macro" name="IBUS_KEY_kana_NI" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-NI"/>
+    <keyword type="macro" name="IBUS_KEY_kana_NU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-NU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_NE" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-NE"/>
+    <keyword type="macro" name="IBUS_KEY_kana_NO" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-NO"/>
+    <keyword type="macro" name="IBUS_KEY_kana_HA" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-HA"/>
+    <keyword type="macro" name="IBUS_KEY_kana_HI" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-HI"/>
+    <keyword type="macro" name="IBUS_KEY_kana_FU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-FU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_HU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-HU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_HE" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-HE"/>
+    <keyword type="macro" name="IBUS_KEY_kana_HO" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-HO"/>
+    <keyword type="macro" name="IBUS_KEY_kana_MA" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-MA"/>
+    <keyword type="macro" name="IBUS_KEY_kana_MI" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-MI"/>
+    <keyword type="macro" name="IBUS_KEY_kana_MU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-MU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_ME" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-ME"/>
+    <keyword type="macro" name="IBUS_KEY_kana_MO" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-MO"/>
+    <keyword type="macro" name="IBUS_KEY_kana_YA" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-YA"/>
+    <keyword type="macro" name="IBUS_KEY_kana_YU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-YU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_YO" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-YO"/>
+    <keyword type="macro" name="IBUS_KEY_kana_RA" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-RA"/>
+    <keyword type="macro" name="IBUS_KEY_kana_RI" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-RI"/>
+    <keyword type="macro" name="IBUS_KEY_kana_RU" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-RU"/>
+    <keyword type="macro" name="IBUS_KEY_kana_RE" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-RE"/>
+    <keyword type="macro" name="IBUS_KEY_kana_RO" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-RO"/>
+    <keyword type="macro" name="IBUS_KEY_kana_WA" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-WA"/>
+    <keyword type="macro" name="IBUS_KEY_kana_N" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-N"/>
+    <keyword type="macro" name="IBUS_KEY_voicedsound" link="ibus-IBusKeysyms.html#IBUS-KEY-voicedsound"/>
+    <keyword type="macro" name="IBUS_KEY_semivoicedsound" link="ibus-IBusKeysyms.html#IBUS-KEY-semivoicedsound"/>
+    <keyword type="macro" name="IBUS_KEY_kana_switch" link="ibus-IBusKeysyms.html#IBUS-KEY-kana-switch"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_0" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-0"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_1" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-1"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_2" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-2"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_3" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-3"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_4" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-4"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_5" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-5"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_6" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-6"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_7" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-7"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_8" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-8"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_9" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-9"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_percent" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-percent"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_superscript_alef" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-superscript-alef"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_tteh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tteh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_peh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-peh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_tcheh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tcheh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_ddal" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ddal"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_rreh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-rreh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_comma" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-comma"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_fullstop" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fullstop"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_0" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-0"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_1" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-1"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_2" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-2"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_3" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-3"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_4" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-4"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_5" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-5"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_6" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-6"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_7" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-7"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_8" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-8"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_9" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-9"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_semicolon" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-semicolon"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_question_mark" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-question-mark"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_hamza" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_maddaonalef" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-maddaonalef"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_hamzaonalef" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonalef"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_hamzaonwaw" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonwaw"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_hamzaunderalef" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaunderalef"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_hamzaonyeh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonyeh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_alef" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-alef"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_beh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-beh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_tehmarbuta" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tehmarbuta"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_teh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-teh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_theh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-theh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_jeem" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-jeem"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_hah" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hah"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_khah" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-khah"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_dal" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dal"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_thal" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-thal"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_ra" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ra"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_zain" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-zain"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_seen" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-seen"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_sheen" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sheen"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_sad" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sad"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_dad" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dad"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_tah" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tah"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_zah" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-zah"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_ain" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ain"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_ghain" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ghain"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_tatweel" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tatweel"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_feh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-feh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_qaf" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-qaf"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_kaf" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kaf"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_lam" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-lam"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_meem" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-meem"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_noon" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-noon"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_ha" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ha"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_heh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_waw" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-waw"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_alefmaksura" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-alefmaksura"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_yeh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-yeh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_fathatan" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fathatan"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_dammatan" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dammatan"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_kasratan" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kasratan"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_fatha" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fatha"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_damma" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-damma"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_kasra" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kasra"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_shadda" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-shadda"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_sukun" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sukun"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_madda_above" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-madda-above"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_hamza_above" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza-above"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_hamza_below" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza-below"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_jeh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-jeh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_veh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-veh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_keheh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-keheh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_gaf" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-gaf"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_noon_ghunna" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-noon-ghunna"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_heh_doachashmee" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh-doachashmee"/>
+    <keyword type="macro" name="IBUS_KEY_Farsi_yeh" link="ibus-IBusKeysyms.html#IBUS-KEY-Farsi-yeh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_farsi_yeh" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-farsi-yeh"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_yeh_baree" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-yeh-baree"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_heh_goal" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh-goal"/>
+    <keyword type="macro" name="IBUS_KEY_Arabic_switch" link="ibus-IBusKeysyms.html#IBUS-KEY-Arabic-switch"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_GHE_bar" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-GHE-bar"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ghe_bar" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ghe-bar"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ZHE_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZHE-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_zhe_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-zhe-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_KA_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ka_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_KA_vertstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA-vertstroke"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ka_vertstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka-vertstroke"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_EN_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EN-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_en_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-en-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_U_straight" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-straight"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_u_straight" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-straight"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_U_straight_bar" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-straight-bar"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_u_straight_bar" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-straight-bar"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_HA_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HA-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ha_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ha-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_CHE_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_che_descender" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che-descender"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_CHE_vertstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE-vertstroke"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_che_vertstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che-vertstroke"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_SHHA" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHHA"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_shha" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shha"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_SCHWA" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SCHWA"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_schwa" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-schwa"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_I_macron" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-I-macron"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_i_macron" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-i-macron"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_O_bar" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-O-bar"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_o_bar" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-o-bar"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_U_macron" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-macron"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_u_macron" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-macron"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_dje" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-dje"/>
+    <keyword type="macro" name="IBUS_KEY_Macedonia_gje" link="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-gje"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_io" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-io"/>
+    <keyword type="macro" name="IBUS_KEY_Ukrainian_ie" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-ie"/>
+    <keyword type="macro" name="IBUS_KEY_Ukranian_je" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-je"/>
+    <keyword type="macro" name="IBUS_KEY_Macedonia_dse" link="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-dse"/>
+    <keyword type="macro" name="IBUS_KEY_Ukrainian_i" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-i"/>
+    <keyword type="macro" name="IBUS_KEY_Ukranian_i" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-i"/>
+    <keyword type="macro" name="IBUS_KEY_Ukrainian_yi" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-yi"/>
+    <keyword type="macro" name="IBUS_KEY_Ukranian_yi" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-yi"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_je" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-je"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_je" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-je"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_lje" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-lje"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_lje" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-lje"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_nje" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-nje"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_nje" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-nje"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_tshe" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-tshe"/>
+    <keyword type="macro" name="IBUS_KEY_Macedonia_kje" link="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-kje"/>
+    <keyword type="macro" name="IBUS_KEY_Ukrainian_ghe_with_upturn" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-ghe-with-upturn"/>
+    <keyword type="macro" name="IBUS_KEY_Byelorussian_shortu" link="ibus-IBusKeysyms.html#IBUS-KEY-Byelorussian-shortu"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_dzhe" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-dzhe"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_dze" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-dze"/>
+    <keyword type="macro" name="IBUS_KEY_numerosign" link="ibus-IBusKeysyms.html#IBUS-KEY-numerosign"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_DJE" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-DJE"/>
+    <keyword type="macro" name="IBUS_KEY_Macedonia_GJE" link="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-GJE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_IO" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-IO"/>
+    <keyword type="macro" name="IBUS_KEY_Ukrainian_IE" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-IE"/>
+    <keyword type="macro" name="IBUS_KEY_Ukranian_JE" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-JE"/>
+    <keyword type="macro" name="IBUS_KEY_Macedonia_DSE" link="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-DSE"/>
+    <keyword type="macro" name="IBUS_KEY_Ukrainian_I" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-I"/>
+    <keyword type="macro" name="IBUS_KEY_Ukranian_I" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-I"/>
+    <keyword type="macro" name="IBUS_KEY_Ukrainian_YI" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-YI"/>
+    <keyword type="macro" name="IBUS_KEY_Ukranian_YI" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-YI"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_JE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-JE"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_JE" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-JE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_LJE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-LJE"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_LJE" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-LJE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_NJE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-NJE"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_NJE" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-NJE"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_TSHE" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-TSHE"/>
+    <keyword type="macro" name="IBUS_KEY_Macedonia_KJE" link="ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-KJE"/>
+    <keyword type="macro" name="IBUS_KEY_Ukrainian_GHE_WITH_UPTURN" link="ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-GHE-WITH-UPTURN"/>
+    <keyword type="macro" name="IBUS_KEY_Byelorussian_SHORTU" link="ibus-IBusKeysyms.html#IBUS-KEY-Byelorussian-SHORTU"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_DZHE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-DZHE"/>
+    <keyword type="macro" name="IBUS_KEY_Serbian_DZE" link="ibus-IBusKeysyms.html#IBUS-KEY-Serbian-DZE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_yu" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-yu"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_a" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-a"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_be" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-be"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_tse" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-tse"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_de" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-de"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ie" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ie"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ef" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ef"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ghe" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ghe"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ha" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ha"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_i" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-i"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_shorti" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shorti"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ka" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_el" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-el"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_em" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-em"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_en" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-en"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_o" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-o"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_pe" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-pe"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ya" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ya"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_er" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-er"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_es" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-es"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_te" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-te"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_u" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_zhe" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-zhe"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ve" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ve"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_softsign" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-softsign"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_yeru" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-yeru"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ze" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ze"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_sha" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-sha"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_e" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-e"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_shcha" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shcha"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_che" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_hardsign" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-hardsign"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_YU" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YU"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_A" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-A"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_BE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-BE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_TSE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-TSE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_DE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-DE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_IE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-IE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_EF" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EF"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_GHE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-GHE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_HA" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HA"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_I" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-I"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_SHORTI" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHORTI"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_KA" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_EL" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EL"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_EM" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EM"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_EN" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EN"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_O" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-O"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_PE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-PE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_YA" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YA"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ER" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ER"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ES" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ES"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_TE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-TE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_U" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ZHE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZHE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_VE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-VE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_SOFTSIGN" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SOFTSIGN"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_YERU" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YERU"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_ZE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_SHA" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHA"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_E" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-E"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_SHCHA" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHCHA"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_CHE" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE"/>
+    <keyword type="macro" name="IBUS_KEY_Cyrillic_HARDSIGN" link="ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HARDSIGN"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_ALPHAaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ALPHAaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_EPSILONaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-EPSILONaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_ETAaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ETAaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_IOTAaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_IOTAdieresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAdieresis"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_IOTAdiaeresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAdiaeresis"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_OMICRONaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMICRONaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_UPSILONaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILONaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_UPSILONdieresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILONdieresis"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_OMEGAaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMEGAaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_accentdieresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-accentdieresis"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_horizbar" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-horizbar"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_alphaaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-alphaaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_epsilonaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-epsilonaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_etaaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-etaaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_iotaaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotaaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_iotadieresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotadieresis"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_iotaaccentdieresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotaaccentdieresis"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_omicronaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omicronaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_upsilonaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilonaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_upsilondieresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilondieresis"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_upsilonaccentdieresis" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilonaccentdieresis"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_omegaaccent" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omegaaccent"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_ALPHA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ALPHA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_BETA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-BETA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_GAMMA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-GAMMA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_DELTA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-DELTA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_EPSILON" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-EPSILON"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_ZETA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ZETA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_ETA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-ETA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_THETA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-THETA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_IOTA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_KAPPA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-KAPPA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_LAMDA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-LAMDA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_LAMBDA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-LAMBDA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_MU" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-MU"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_NU" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-NU"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_XI" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-XI"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_OMICRON" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMICRON"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_PI" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-PI"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_RHO" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-RHO"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_SIGMA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-SIGMA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_TAU" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-TAU"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_UPSILON" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILON"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_PHI" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-PHI"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_CHI" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-CHI"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_PSI" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-PSI"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_OMEGA" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMEGA"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_alpha" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-alpha"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_beta" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-beta"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_gamma" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-gamma"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_delta" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-delta"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_epsilon" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-epsilon"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_zeta" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-zeta"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_eta" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-eta"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_theta" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-theta"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_iota" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-iota"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_kappa" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-kappa"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_lamda" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-lamda"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_lambda" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-lambda"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_mu" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-mu"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_nu" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-nu"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_xi" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-xi"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_omicron" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omicron"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_pi" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-pi"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_rho" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-rho"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_sigma" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-sigma"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_finalsmallsigma" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-finalsmallsigma"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_tau" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-tau"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_upsilon" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilon"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_phi" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-phi"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_chi" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-chi"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_psi" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-psi"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_omega" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-omega"/>
+    <keyword type="macro" name="IBUS_KEY_Greek_switch" link="ibus-IBusKeysyms.html#IBUS-KEY-Greek-switch"/>
+    <keyword type="macro" name="IBUS_KEY_leftradical" link="ibus-IBusKeysyms.html#IBUS-KEY-leftradical"/>
+    <keyword type="macro" name="IBUS_KEY_topleftradical" link="ibus-IBusKeysyms.html#IBUS-KEY-topleftradical"/>
+    <keyword type="macro" name="IBUS_KEY_horizconnector" link="ibus-IBusKeysyms.html#IBUS-KEY-horizconnector"/>
+    <keyword type="macro" name="IBUS_KEY_topintegral" link="ibus-IBusKeysyms.html#IBUS-KEY-topintegral"/>
+    <keyword type="macro" name="IBUS_KEY_botintegral" link="ibus-IBusKeysyms.html#IBUS-KEY-botintegral"/>
+    <keyword type="macro" name="IBUS_KEY_vertconnector" link="ibus-IBusKeysyms.html#IBUS-KEY-vertconnector"/>
+    <keyword type="macro" name="IBUS_KEY_topleftsqbracket" link="ibus-IBusKeysyms.html#IBUS-KEY-topleftsqbracket"/>
+    <keyword type="macro" name="IBUS_KEY_botleftsqbracket" link="ibus-IBusKeysyms.html#IBUS-KEY-botleftsqbracket"/>
+    <keyword type="macro" name="IBUS_KEY_toprightsqbracket" link="ibus-IBusKeysyms.html#IBUS-KEY-toprightsqbracket"/>
+    <keyword type="macro" name="IBUS_KEY_botrightsqbracket" link="ibus-IBusKeysyms.html#IBUS-KEY-botrightsqbracket"/>
+    <keyword type="macro" name="IBUS_KEY_topleftparens" link="ibus-IBusKeysyms.html#IBUS-KEY-topleftparens"/>
+    <keyword type="macro" name="IBUS_KEY_botleftparens" link="ibus-IBusKeysyms.html#IBUS-KEY-botleftparens"/>
+    <keyword type="macro" name="IBUS_KEY_toprightparens" link="ibus-IBusKeysyms.html#IBUS-KEY-toprightparens"/>
+    <keyword type="macro" name="IBUS_KEY_botrightparens" link="ibus-IBusKeysyms.html#IBUS-KEY-botrightparens"/>
+    <keyword type="macro" name="IBUS_KEY_leftmiddlecurlybrace" link="ibus-IBusKeysyms.html#IBUS-KEY-leftmiddlecurlybrace"/>
+    <keyword type="macro" name="IBUS_KEY_rightmiddlecurlybrace" link="ibus-IBusKeysyms.html#IBUS-KEY-rightmiddlecurlybrace"/>
+    <keyword type="macro" name="IBUS_KEY_topleftsummation" link="ibus-IBusKeysyms.html#IBUS-KEY-topleftsummation"/>
+    <keyword type="macro" name="IBUS_KEY_botleftsummation" link="ibus-IBusKeysyms.html#IBUS-KEY-botleftsummation"/>
+    <keyword type="macro" name="IBUS_KEY_topvertsummationconnector" link="ibus-IBusKeysyms.html#IBUS-KEY-topvertsummationconnector"/>
+    <keyword type="macro" name="IBUS_KEY_botvertsummationconnector" link="ibus-IBusKeysyms.html#IBUS-KEY-botvertsummationconnector"/>
+    <keyword type="macro" name="IBUS_KEY_toprightsummation" link="ibus-IBusKeysyms.html#IBUS-KEY-toprightsummation"/>
+    <keyword type="macro" name="IBUS_KEY_botrightsummation" link="ibus-IBusKeysyms.html#IBUS-KEY-botrightsummation"/>
+    <keyword type="macro" name="IBUS_KEY_rightmiddlesummation" link="ibus-IBusKeysyms.html#IBUS-KEY-rightmiddlesummation"/>
+    <keyword type="macro" name="IBUS_KEY_lessthanequal" link="ibus-IBusKeysyms.html#IBUS-KEY-lessthanequal"/>
+    <keyword type="macro" name="IBUS_KEY_notequal" link="ibus-IBusKeysyms.html#IBUS-KEY-notequal"/>
+    <keyword type="macro" name="IBUS_KEY_greaterthanequal" link="ibus-IBusKeysyms.html#IBUS-KEY-greaterthanequal"/>
+    <keyword type="macro" name="IBUS_KEY_integral" link="ibus-IBusKeysyms.html#IBUS-KEY-integral"/>
+    <keyword type="macro" name="IBUS_KEY_therefore" link="ibus-IBusKeysyms.html#IBUS-KEY-therefore"/>
+    <keyword type="macro" name="IBUS_KEY_variation" link="ibus-IBusKeysyms.html#IBUS-KEY-variation"/>
+    <keyword type="macro" name="IBUS_KEY_infinity" link="ibus-IBusKeysyms.html#IBUS-KEY-infinity"/>
+    <keyword type="macro" name="IBUS_KEY_nabla" link="ibus-IBusKeysyms.html#IBUS-KEY-nabla"/>
+    <keyword type="macro" name="IBUS_KEY_approximate" link="ibus-IBusKeysyms.html#IBUS-KEY-approximate"/>
+    <keyword type="macro" name="IBUS_KEY_similarequal" link="ibus-IBusKeysyms.html#IBUS-KEY-similarequal"/>
+    <keyword type="macro" name="IBUS_KEY_ifonlyif" link="ibus-IBusKeysyms.html#IBUS-KEY-ifonlyif"/>
+    <keyword type="macro" name="IBUS_KEY_implies" link="ibus-IBusKeysyms.html#IBUS-KEY-implies"/>
+    <keyword type="macro" name="IBUS_KEY_identical" link="ibus-IBusKeysyms.html#IBUS-KEY-identical"/>
+    <keyword type="macro" name="IBUS_KEY_radical" link="ibus-IBusKeysyms.html#IBUS-KEY-radical"/>
+    <keyword type="macro" name="IBUS_KEY_includedin" link="ibus-IBusKeysyms.html#IBUS-KEY-includedin"/>
+    <keyword type="macro" name="IBUS_KEY_includes" link="ibus-IBusKeysyms.html#IBUS-KEY-includes"/>
+    <keyword type="macro" name="IBUS_KEY_intersection" link="ibus-IBusKeysyms.html#IBUS-KEY-intersection"/>
+    <keyword type="macro" name="IBUS_KEY_union" link="ibus-IBusKeysyms.html#IBUS-KEY-union"/>
+    <keyword type="macro" name="IBUS_KEY_logicaland" link="ibus-IBusKeysyms.html#IBUS-KEY-logicaland"/>
+    <keyword type="macro" name="IBUS_KEY_logicalor" link="ibus-IBusKeysyms.html#IBUS-KEY-logicalor"/>
+    <keyword type="macro" name="IBUS_KEY_partialderivative" link="ibus-IBusKeysyms.html#IBUS-KEY-partialderivative"/>
+    <keyword type="macro" name="IBUS_KEY_function" link="ibus-IBusKeysyms.html#IBUS-KEY-function"/>
+    <keyword type="macro" name="IBUS_KEY_leftarrow" link="ibus-IBusKeysyms.html#IBUS-KEY-leftarrow"/>
+    <keyword type="macro" name="IBUS_KEY_uparrow" link="ibus-IBusKeysyms.html#IBUS-KEY-uparrow"/>
+    <keyword type="macro" name="IBUS_KEY_rightarrow" link="ibus-IBusKeysyms.html#IBUS-KEY-rightarrow"/>
+    <keyword type="macro" name="IBUS_KEY_downarrow" link="ibus-IBusKeysyms.html#IBUS-KEY-downarrow"/>
+    <keyword type="macro" name="IBUS_KEY_blank" link="ibus-IBusKeysyms.html#IBUS-KEY-blank"/>
+    <keyword type="macro" name="IBUS_KEY_soliddiamond" link="ibus-IBusKeysyms.html#IBUS-KEY-soliddiamond"/>
+    <keyword type="macro" name="IBUS_KEY_checkerboard" link="ibus-IBusKeysyms.html#IBUS-KEY-checkerboard"/>
+    <keyword type="macro" name="IBUS_KEY_ht" link="ibus-IBusKeysyms.html#IBUS-KEY-ht"/>
+    <keyword type="macro" name="IBUS_KEY_ff" link="ibus-IBusKeysyms.html#IBUS-KEY-ff"/>
+    <keyword type="macro" name="IBUS_KEY_cr" link="ibus-IBusKeysyms.html#IBUS-KEY-cr"/>
+    <keyword type="macro" name="IBUS_KEY_lf" link="ibus-IBusKeysyms.html#IBUS-KEY-lf"/>
+    <keyword type="macro" name="IBUS_KEY_nl" link="ibus-IBusKeysyms.html#IBUS-KEY-nl"/>
+    <keyword type="macro" name="IBUS_KEY_vt" link="ibus-IBusKeysyms.html#IBUS-KEY-vt"/>
+    <keyword type="macro" name="IBUS_KEY_lowrightcorner" link="ibus-IBusKeysyms.html#IBUS-KEY-lowrightcorner"/>
+    <keyword type="macro" name="IBUS_KEY_uprightcorner" link="ibus-IBusKeysyms.html#IBUS-KEY-uprightcorner"/>
+    <keyword type="macro" name="IBUS_KEY_upleftcorner" link="ibus-IBusKeysyms.html#IBUS-KEY-upleftcorner"/>
+    <keyword type="macro" name="IBUS_KEY_lowleftcorner" link="ibus-IBusKeysyms.html#IBUS-KEY-lowleftcorner"/>
+    <keyword type="macro" name="IBUS_KEY_crossinglines" link="ibus-IBusKeysyms.html#IBUS-KEY-crossinglines"/>
+    <keyword type="macro" name="IBUS_KEY_horizlinescan1" link="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan1"/>
+    <keyword type="macro" name="IBUS_KEY_horizlinescan3" link="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan3"/>
+    <keyword type="macro" name="IBUS_KEY_horizlinescan5" link="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan5"/>
+    <keyword type="macro" name="IBUS_KEY_horizlinescan7" link="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan7"/>
+    <keyword type="macro" name="IBUS_KEY_horizlinescan9" link="ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan9"/>
+    <keyword type="macro" name="IBUS_KEY_leftt" link="ibus-IBusKeysyms.html#IBUS-KEY-leftt"/>
+    <keyword type="macro" name="IBUS_KEY_rightt" link="ibus-IBusKeysyms.html#IBUS-KEY-rightt"/>
+    <keyword type="macro" name="IBUS_KEY_bott" link="ibus-IBusKeysyms.html#IBUS-KEY-bott"/>
+    <keyword type="macro" name="IBUS_KEY_topt" link="ibus-IBusKeysyms.html#IBUS-KEY-topt"/>
+    <keyword type="macro" name="IBUS_KEY_vertbar" link="ibus-IBusKeysyms.html#IBUS-KEY-vertbar"/>
+    <keyword type="macro" name="IBUS_KEY_emspace" link="ibus-IBusKeysyms.html#IBUS-KEY-emspace"/>
+    <keyword type="macro" name="IBUS_KEY_enspace" link="ibus-IBusKeysyms.html#IBUS-KEY-enspace"/>
+    <keyword type="macro" name="IBUS_KEY_em3space" link="ibus-IBusKeysyms.html#IBUS-KEY-em3space"/>
+    <keyword type="macro" name="IBUS_KEY_em4space" link="ibus-IBusKeysyms.html#IBUS-KEY-em4space"/>
+    <keyword type="macro" name="IBUS_KEY_digitspace" link="ibus-IBusKeysyms.html#IBUS-KEY-digitspace"/>
+    <keyword type="macro" name="IBUS_KEY_punctspace" link="ibus-IBusKeysyms.html#IBUS-KEY-punctspace"/>
+    <keyword type="macro" name="IBUS_KEY_thinspace" link="ibus-IBusKeysyms.html#IBUS-KEY-thinspace"/>
+    <keyword type="macro" name="IBUS_KEY_hairspace" link="ibus-IBusKeysyms.html#IBUS-KEY-hairspace"/>
+    <keyword type="macro" name="IBUS_KEY_emdash" link="ibus-IBusKeysyms.html#IBUS-KEY-emdash"/>
+    <keyword type="macro" name="IBUS_KEY_endash" link="ibus-IBusKeysyms.html#IBUS-KEY-endash"/>
+    <keyword type="macro" name="IBUS_KEY_signifblank" link="ibus-IBusKeysyms.html#IBUS-KEY-signifblank"/>
+    <keyword type="macro" name="IBUS_KEY_ellipsis" link="ibus-IBusKeysyms.html#IBUS-KEY-ellipsis"/>
+    <keyword type="macro" name="IBUS_KEY_doubbaselinedot" link="ibus-IBusKeysyms.html#IBUS-KEY-doubbaselinedot"/>
+    <keyword type="macro" name="IBUS_KEY_onethird" link="ibus-IBusKeysyms.html#IBUS-KEY-onethird"/>
+    <keyword type="macro" name="IBUS_KEY_twothirds" link="ibus-IBusKeysyms.html#IBUS-KEY-twothirds"/>
+    <keyword type="macro" name="IBUS_KEY_onefifth" link="ibus-IBusKeysyms.html#IBUS-KEY-onefifth"/>
+    <keyword type="macro" name="IBUS_KEY_twofifths" link="ibus-IBusKeysyms.html#IBUS-KEY-twofifths"/>
+    <keyword type="macro" name="IBUS_KEY_threefifths" link="ibus-IBusKeysyms.html#IBUS-KEY-threefifths"/>
+    <keyword type="macro" name="IBUS_KEY_fourfifths" link="ibus-IBusKeysyms.html#IBUS-KEY-fourfifths"/>
+    <keyword type="macro" name="IBUS_KEY_onesixth" link="ibus-IBusKeysyms.html#IBUS-KEY-onesixth"/>
+    <keyword type="macro" name="IBUS_KEY_fivesixths" link="ibus-IBusKeysyms.html#IBUS-KEY-fivesixths"/>
+    <keyword type="macro" name="IBUS_KEY_careof" link="ibus-IBusKeysyms.html#IBUS-KEY-careof"/>
+    <keyword type="macro" name="IBUS_KEY_figdash" link="ibus-IBusKeysyms.html#IBUS-KEY-figdash"/>
+    <keyword type="macro" name="IBUS_KEY_leftanglebracket" link="ibus-IBusKeysyms.html#IBUS-KEY-leftanglebracket"/>
+    <keyword type="macro" name="IBUS_KEY_decimalpoint" link="ibus-IBusKeysyms.html#IBUS-KEY-decimalpoint"/>
+    <keyword type="macro" name="IBUS_KEY_rightanglebracket" link="ibus-IBusKeysyms.html#IBUS-KEY-rightanglebracket"/>
+    <keyword type="macro" name="IBUS_KEY_marker" link="ibus-IBusKeysyms.html#IBUS-KEY-marker"/>
+    <keyword type="macro" name="IBUS_KEY_oneeighth" link="ibus-IBusKeysyms.html#IBUS-KEY-oneeighth"/>
+    <keyword type="macro" name="IBUS_KEY_threeeighths" link="ibus-IBusKeysyms.html#IBUS-KEY-threeeighths"/>
+    <keyword type="macro" name="IBUS_KEY_fiveeighths" link="ibus-IBusKeysyms.html#IBUS-KEY-fiveeighths"/>
+    <keyword type="macro" name="IBUS_KEY_seveneighths" link="ibus-IBusKeysyms.html#IBUS-KEY-seveneighths"/>
+    <keyword type="macro" name="IBUS_KEY_trademark" link="ibus-IBusKeysyms.html#IBUS-KEY-trademark"/>
+    <keyword type="macro" name="IBUS_KEY_signaturemark" link="ibus-IBusKeysyms.html#IBUS-KEY-signaturemark"/>
+    <keyword type="macro" name="IBUS_KEY_trademarkincircle" link="ibus-IBusKeysyms.html#IBUS-KEY-trademarkincircle"/>
+    <keyword type="macro" name="IBUS_KEY_leftopentriangle" link="ibus-IBusKeysyms.html#IBUS-KEY-leftopentriangle"/>
+    <keyword type="macro" name="IBUS_KEY_rightopentriangle" link="ibus-IBusKeysyms.html#IBUS-KEY-rightopentriangle"/>
+    <keyword type="macro" name="IBUS_KEY_emopencircle" link="ibus-IBusKeysyms.html#IBUS-KEY-emopencircle"/>
+    <keyword type="macro" name="IBUS_KEY_emopenrectangle" link="ibus-IBusKeysyms.html#IBUS-KEY-emopenrectangle"/>
+    <keyword type="macro" name="IBUS_KEY_leftsinglequotemark" link="ibus-IBusKeysyms.html#IBUS-KEY-leftsinglequotemark"/>
+    <keyword type="macro" name="IBUS_KEY_rightsinglequotemark" link="ibus-IBusKeysyms.html#IBUS-KEY-rightsinglequotemark"/>
+    <keyword type="macro" name="IBUS_KEY_leftdoublequotemark" link="ibus-IBusKeysyms.html#IBUS-KEY-leftdoublequotemark"/>
+    <keyword type="macro" name="IBUS_KEY_rightdoublequotemark" link="ibus-IBusKeysyms.html#IBUS-KEY-rightdoublequotemark"/>
+    <keyword type="macro" name="IBUS_KEY_prescription" link="ibus-IBusKeysyms.html#IBUS-KEY-prescription"/>
+    <keyword type="macro" name="IBUS_KEY_minutes" link="ibus-IBusKeysyms.html#IBUS-KEY-minutes"/>
+    <keyword type="macro" name="IBUS_KEY_seconds" link="ibus-IBusKeysyms.html#IBUS-KEY-seconds"/>
+    <keyword type="macro" name="IBUS_KEY_latincross" link="ibus-IBusKeysyms.html#IBUS-KEY-latincross"/>
+    <keyword type="macro" name="IBUS_KEY_hexagram" link="ibus-IBusKeysyms.html#IBUS-KEY-hexagram"/>
+    <keyword type="macro" name="IBUS_KEY_filledrectbullet" link="ibus-IBusKeysyms.html#IBUS-KEY-filledrectbullet"/>
+    <keyword type="macro" name="IBUS_KEY_filledlefttribullet" link="ibus-IBusKeysyms.html#IBUS-KEY-filledlefttribullet"/>
+    <keyword type="macro" name="IBUS_KEY_filledrighttribullet" link="ibus-IBusKeysyms.html#IBUS-KEY-filledrighttribullet"/>
+    <keyword type="macro" name="IBUS_KEY_emfilledcircle" link="ibus-IBusKeysyms.html#IBUS-KEY-emfilledcircle"/>
+    <keyword type="macro" name="IBUS_KEY_emfilledrect" link="ibus-IBusKeysyms.html#IBUS-KEY-emfilledrect"/>
+    <keyword type="macro" name="IBUS_KEY_enopencircbullet" link="ibus-IBusKeysyms.html#IBUS-KEY-enopencircbullet"/>
+    <keyword type="macro" name="IBUS_KEY_enopensquarebullet" link="ibus-IBusKeysyms.html#IBUS-KEY-enopensquarebullet"/>
+    <keyword type="macro" name="IBUS_KEY_openrectbullet" link="ibus-IBusKeysyms.html#IBUS-KEY-openrectbullet"/>
+    <keyword type="macro" name="IBUS_KEY_opentribulletup" link="ibus-IBusKeysyms.html#IBUS-KEY-opentribulletup"/>
+    <keyword type="macro" name="IBUS_KEY_opentribulletdown" link="ibus-IBusKeysyms.html#IBUS-KEY-opentribulletdown"/>
+    <keyword type="macro" name="IBUS_KEY_openstar" link="ibus-IBusKeysyms.html#IBUS-KEY-openstar"/>
+    <keyword type="macro" name="IBUS_KEY_enfilledcircbullet" link="ibus-IBusKeysyms.html#IBUS-KEY-enfilledcircbullet"/>
+    <keyword type="macro" name="IBUS_KEY_enfilledsqbullet" link="ibus-IBusKeysyms.html#IBUS-KEY-enfilledsqbullet"/>
+    <keyword type="macro" name="IBUS_KEY_filledtribulletup" link="ibus-IBusKeysyms.html#IBUS-KEY-filledtribulletup"/>
+    <keyword type="macro" name="IBUS_KEY_filledtribulletdown" link="ibus-IBusKeysyms.html#IBUS-KEY-filledtribulletdown"/>
+    <keyword type="macro" name="IBUS_KEY_leftpointer" link="ibus-IBusKeysyms.html#IBUS-KEY-leftpointer"/>
+    <keyword type="macro" name="IBUS_KEY_rightpointer" link="ibus-IBusKeysyms.html#IBUS-KEY-rightpointer"/>
+    <keyword type="macro" name="IBUS_KEY_club" link="ibus-IBusKeysyms.html#IBUS-KEY-club"/>
+    <keyword type="macro" name="IBUS_KEY_diamond" link="ibus-IBusKeysyms.html#IBUS-KEY-diamond"/>
+    <keyword type="macro" name="IBUS_KEY_heart" link="ibus-IBusKeysyms.html#IBUS-KEY-heart"/>
+    <keyword type="macro" name="IBUS_KEY_maltesecross" link="ibus-IBusKeysyms.html#IBUS-KEY-maltesecross"/>
+    <keyword type="macro" name="IBUS_KEY_dagger" link="ibus-IBusKeysyms.html#IBUS-KEY-dagger"/>
+    <keyword type="macro" name="IBUS_KEY_doubledagger" link="ibus-IBusKeysyms.html#IBUS-KEY-doubledagger"/>
+    <keyword type="macro" name="IBUS_KEY_checkmark" link="ibus-IBusKeysyms.html#IBUS-KEY-checkmark"/>
+    <keyword type="macro" name="IBUS_KEY_ballotcross" link="ibus-IBusKeysyms.html#IBUS-KEY-ballotcross"/>
+    <keyword type="macro" name="IBUS_KEY_musicalsharp" link="ibus-IBusKeysyms.html#IBUS-KEY-musicalsharp"/>
+    <keyword type="macro" name="IBUS_KEY_musicalflat" link="ibus-IBusKeysyms.html#IBUS-KEY-musicalflat"/>
+    <keyword type="macro" name="IBUS_KEY_malesymbol" link="ibus-IBusKeysyms.html#IBUS-KEY-malesymbol"/>
+    <keyword type="macro" name="IBUS_KEY_femalesymbol" link="ibus-IBusKeysyms.html#IBUS-KEY-femalesymbol"/>
+    <keyword type="macro" name="IBUS_KEY_telephone" link="ibus-IBusKeysyms.html#IBUS-KEY-telephone"/>
+    <keyword type="macro" name="IBUS_KEY_telephonerecorder" link="ibus-IBusKeysyms.html#IBUS-KEY-telephonerecorder"/>
+    <keyword type="macro" name="IBUS_KEY_phonographcopyright" link="ibus-IBusKeysyms.html#IBUS-KEY-phonographcopyright"/>
+    <keyword type="macro" name="IBUS_KEY_caret" link="ibus-IBusKeysyms.html#IBUS-KEY-caret"/>
+    <keyword type="macro" name="IBUS_KEY_singlelowquotemark" link="ibus-IBusKeysyms.html#IBUS-KEY-singlelowquotemark"/>
+    <keyword type="macro" name="IBUS_KEY_doublelowquotemark" link="ibus-IBusKeysyms.html#IBUS-KEY-doublelowquotemark"/>
+    <keyword type="macro" name="IBUS_KEY_cursor" link="ibus-IBusKeysyms.html#IBUS-KEY-cursor"/>
+    <keyword type="macro" name="IBUS_KEY_leftcaret" link="ibus-IBusKeysyms.html#IBUS-KEY-leftcaret"/>
+    <keyword type="macro" name="IBUS_KEY_rightcaret" link="ibus-IBusKeysyms.html#IBUS-KEY-rightcaret"/>
+    <keyword type="macro" name="IBUS_KEY_downcaret" link="ibus-IBusKeysyms.html#IBUS-KEY-downcaret"/>
+    <keyword type="macro" name="IBUS_KEY_upcaret" link="ibus-IBusKeysyms.html#IBUS-KEY-upcaret"/>
+    <keyword type="macro" name="IBUS_KEY_overbar" link="ibus-IBusKeysyms.html#IBUS-KEY-overbar"/>
+    <keyword type="macro" name="IBUS_KEY_downtack" link="ibus-IBusKeysyms.html#IBUS-KEY-downtack"/>
+    <keyword type="macro" name="IBUS_KEY_upshoe" link="ibus-IBusKeysyms.html#IBUS-KEY-upshoe"/>
+    <keyword type="macro" name="IBUS_KEY_downstile" link="ibus-IBusKeysyms.html#IBUS-KEY-downstile"/>
+    <keyword type="macro" name="IBUS_KEY_underbar" link="ibus-IBusKeysyms.html#IBUS-KEY-underbar"/>
+    <keyword type="macro" name="IBUS_KEY_jot" link="ibus-IBusKeysyms.html#IBUS-KEY-jot"/>
+    <keyword type="macro" name="IBUS_KEY_quad" link="ibus-IBusKeysyms.html#IBUS-KEY-quad"/>
+    <keyword type="macro" name="IBUS_KEY_uptack" link="ibus-IBusKeysyms.html#IBUS-KEY-uptack"/>
+    <keyword type="macro" name="IBUS_KEY_circle" link="ibus-IBusKeysyms.html#IBUS-KEY-circle"/>
+    <keyword type="macro" name="IBUS_KEY_upstile" link="ibus-IBusKeysyms.html#IBUS-KEY-upstile"/>
+    <keyword type="macro" name="IBUS_KEY_downshoe" link="ibus-IBusKeysyms.html#IBUS-KEY-downshoe"/>
+    <keyword type="macro" name="IBUS_KEY_rightshoe" link="ibus-IBusKeysyms.html#IBUS-KEY-rightshoe"/>
+    <keyword type="macro" name="IBUS_KEY_leftshoe" link="ibus-IBusKeysyms.html#IBUS-KEY-leftshoe"/>
+    <keyword type="macro" name="IBUS_KEY_lefttack" link="ibus-IBusKeysyms.html#IBUS-KEY-lefttack"/>
+    <keyword type="macro" name="IBUS_KEY_righttack" link="ibus-IBusKeysyms.html#IBUS-KEY-righttack"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_doublelowline" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-doublelowline"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_aleph" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-aleph"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_bet" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-bet"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_beth" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-beth"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_gimel" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-gimel"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_gimmel" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-gimmel"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_dalet" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-dalet"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_daleth" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-daleth"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_he" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-he"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_waw" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-waw"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_zain" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zain"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_zayin" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zayin"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_chet" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-chet"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_het" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-het"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_tet" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-tet"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_teth" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-teth"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_yod" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-yod"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_finalkaph" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalkaph"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_kaph" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-kaph"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_lamed" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-lamed"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_finalmem" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalmem"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_mem" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-mem"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_finalnun" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalnun"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_nun" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-nun"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_samech" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-samech"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_samekh" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-samekh"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_ayin" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-ayin"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_finalpe" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalpe"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_pe" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-pe"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_finalzade" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalzade"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_finalzadi" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalzadi"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_zade" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zade"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_zadi" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zadi"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_qoph" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-qoph"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_kuf" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-kuf"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_resh" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-resh"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_shin" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-shin"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_taw" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-taw"/>
+    <keyword type="macro" name="IBUS_KEY_hebrew_taf" link="ibus-IBusKeysyms.html#IBUS-KEY-hebrew-taf"/>
+    <keyword type="macro" name="IBUS_KEY_Hebrew_switch" link="ibus-IBusKeysyms.html#IBUS-KEY-Hebrew-switch"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_kokai" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-kokai"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_khokhai" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhai"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_khokhuat" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhuat"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_khokhwai" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhwai"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_khokhon" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhon"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_khorakhang" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-khorakhang"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_ngongu" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-ngongu"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_chochan" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochan"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_choching" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-choching"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_chochang" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochang"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_soso" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-soso"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_chochoe" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochoe"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_yoying" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-yoying"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_dochada" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-dochada"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_topatak" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-topatak"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_thothan" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothan"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_thonangmontho" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thonangmontho"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_thophuthao" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thophuthao"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_nonen" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-nonen"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_dodek" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-dodek"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_totao" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-totao"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_thothung" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothung"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_thothahan" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothahan"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_thothong" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothong"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_nonu" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-nonu"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_bobaimai" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-bobaimai"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_popla" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-popla"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_phophung" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phophung"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_fofa" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-fofa"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_phophan" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phophan"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_fofan" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-fofan"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_phosamphao" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phosamphao"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_moma" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-moma"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_yoyak" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-yoyak"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_rorua" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-rorua"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_ru" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-ru"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_loling" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-loling"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_lu" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lu"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_wowaen" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-wowaen"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_sosala" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sosala"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_sorusi" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sorusi"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_sosua" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sosua"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_hohip" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-hohip"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_lochula" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lochula"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_oang" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-oang"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_honokhuk" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-honokhuk"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_paiyannoi" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-paiyannoi"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_saraa" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraa"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_maihanakat" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maihanakat"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_saraaa" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaa"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_saraam" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraam"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_sarai" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarai"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_saraii" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraii"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_saraue" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraue"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_sarauee" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarauee"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_sarau" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarau"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_sarauu" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarauu"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_phinthu" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-phinthu"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_maihanakat_maitho" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maihanakat-maitho"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_baht" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-baht"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_sarae" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarae"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_saraae" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraae"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_sarao" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarao"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_saraaimaimuan" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaimaimuan"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_saraaimaimalai" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaimaimalai"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_lakkhangyao" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lakkhangyao"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_maiyamok" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maiyamok"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_maitaikhu" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitaikhu"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_maiek" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maiek"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_maitho" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitho"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_maitri" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitri"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_maichattawa" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-maichattawa"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_thanthakhat" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-thanthakhat"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_nikhahit" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-nikhahit"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_leksun" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksun"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_leknung" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leknung"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_leksong" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksong"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_leksam" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksam"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_leksi" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksi"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_lekha" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekha"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_lekhok" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekhok"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_lekchet" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekchet"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_lekpaet" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekpaet"/>
+    <keyword type="macro" name="IBUS_KEY_Thai_lekkao" link="ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekkao"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Start" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Start"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_End" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-End"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Hanja" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Hanja"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Jamo" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jamo"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Romaja" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Romaja"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Codeinput" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Codeinput"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Jeonja" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jeonja"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Banja" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Banja"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_PreHanja" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PreHanja"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_PostHanja" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PostHanja"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_SingleCandidate" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SingleCandidate"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_MultipleCandidate" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-MultipleCandidate"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_PreviousCandidate" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PreviousCandidate"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Special" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Special"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_switch" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-switch"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Kiyeog" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Kiyeog"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_SsangKiyeog" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangKiyeog"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_KiyeogSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-KiyeogSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Nieun" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Nieun"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_NieunJieuj" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-NieunJieuj"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_NieunHieuh" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-NieunHieuh"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Dikeud" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Dikeud"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_SsangDikeud" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangDikeud"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Rieul" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Rieul"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_RieulKiyeog" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulKiyeog"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_RieulMieum" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulMieum"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_RieulPieub" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulPieub"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_RieulSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_RieulTieut" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulTieut"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_RieulPhieuf" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulPhieuf"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_RieulHieuh" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulHieuh"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Mieum" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Mieum"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Pieub" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Pieub"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_SsangPieub" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangPieub"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_PieubSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PieubSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Sios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Sios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_SsangSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Ieung" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Ieung"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Jieuj" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jieuj"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_SsangJieuj" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangJieuj"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Cieuc" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Cieuc"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Khieuq" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Khieuq"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Tieut" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Tieut"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Phieuf" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Phieuf"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_Hieuh" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Hieuh"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_A" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-A"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_AE" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AE"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_YA" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YA"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_YAE" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YAE"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_EO" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-EO"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_E" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-E"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_YEO" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YEO"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_YE" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YE"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_O" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-O"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_WA" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WA"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_WAE" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WAE"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_OE" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-OE"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_YO" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YO"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_U" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-U"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_WEO" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WEO"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_WE" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WE"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_WI" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WI"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_YU" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YU"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_EU" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-EU"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_YI" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YI"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_I" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-I"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Kiyeog" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Kiyeog"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_SsangKiyeog" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-SsangKiyeog"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_KiyeogSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-KiyeogSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Nieun" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Nieun"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_NieunJieuj" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-NieunJieuj"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_NieunHieuh" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-NieunHieuh"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Dikeud" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Dikeud"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Rieul" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Rieul"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_RieulKiyeog" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulKiyeog"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_RieulMieum" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulMieum"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_RieulPieub" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulPieub"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_RieulSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_RieulTieut" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulTieut"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_RieulPhieuf" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulPhieuf"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_RieulHieuh" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulHieuh"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Mieum" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Mieum"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Pieub" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Pieub"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_PieubSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-PieubSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Sios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Sios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_SsangSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-SsangSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Ieung" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Ieung"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Jieuj" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Jieuj"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Cieuc" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Cieuc"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Khieuq" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Khieuq"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Tieut" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Tieut"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Phieuf" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Phieuf"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_Hieuh" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Hieuh"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_RieulYeorinHieuh" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulYeorinHieuh"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_SunkyeongeumMieum" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumMieum"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_SunkyeongeumPieub" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumPieub"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_PanSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PanSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_KkogjiDalrinIeung" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-KkogjiDalrinIeung"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_SunkyeongeumPhieuf" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumPhieuf"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_YeorinHieuh" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YeorinHieuh"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_AraeA" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AraeA"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_AraeAE" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AraeAE"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_PanSios" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-PanSios"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_KkogjiDalrinIeung" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-KkogjiDalrinIeung"/>
+    <keyword type="macro" name="IBUS_KEY_Hangul_J_YeorinHieuh" link="ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-YeorinHieuh"/>
+    <keyword type="macro" name="IBUS_KEY_Korean_Won" link="ibus-IBusKeysyms.html#IBUS-KEY-Korean-Won"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ligature_ew" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ligature-ew"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_full_stop" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-full-stop"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_verjaket" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-verjaket"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_separation_mark" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-separation-mark"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_but" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-but"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_hyphen" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-hyphen"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_yentamna" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-yentamna"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_exclam" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-exclam"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_amanak" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-amanak"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_accent" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-accent"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_shesht" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-shesht"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_question" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-question"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_paruyk" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-paruyk"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_AYB" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-AYB"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ayb" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ayb"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_BEN" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-BEN"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ben" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ben"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_GIM" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-GIM"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_gim" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-gim"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_DA" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-DA"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_da" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-da"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_YECH" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-YECH"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_yech" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-yech"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ZA" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ZA"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_za" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-za"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_E" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-E"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_e" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-e"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_AT" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-AT"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_at" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-at"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_TO" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TO"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_to" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-to"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ZHE" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ZHE"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_zhe" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-zhe"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_INI" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-INI"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ini" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ini"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_LYUN" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-LYUN"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_lyun" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-lyun"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_KHE" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KHE"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_khe" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-khe"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_TSA" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TSA"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_tsa" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tsa"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_KEN" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KEN"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ken" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ken"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_HO" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-HO"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ho" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ho"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_DZA" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-DZA"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_dza" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-dza"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_GHAT" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-GHAT"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ghat" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ghat"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_TCHE" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TCHE"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_tche" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tche"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_MEN" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-MEN"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_men" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-men"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_HI" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-HI"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_hi" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-hi"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_NU" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-NU"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_nu" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-nu"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_SHA" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-SHA"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_sha" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-sha"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_VO" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VO"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_vo" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vo"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_CHA" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-CHA"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_cha" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-cha"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_PE" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-PE"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_pe" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-pe"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_JE" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-JE"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_je" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-je"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_RA" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-RA"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ra" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ra"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_SE" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-SE"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_se" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-se"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_VEV" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VEV"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_vev" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vev"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_TYUN" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TYUN"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_tyun" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tyun"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_RE" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-RE"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_re" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-re"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_TSO" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TSO"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_tso" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tso"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_VYUN" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VYUN"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_vyun" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vyun"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_PYUR" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-PYUR"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_pyur" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-pyur"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_KE" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KE"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_ke" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ke"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_O" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-O"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_o" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-o"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_FE" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-FE"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_fe" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-fe"/>
+    <keyword type="macro" name="IBUS_KEY_Armenian_apostrophe" link="ibus-IBusKeysyms.html#IBUS-KEY-Armenian-apostrophe"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_an" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-an"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_ban" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-ban"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_gan" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-gan"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_don" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-don"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_en" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-en"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_vin" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-vin"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_zen" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-zen"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_tan" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-tan"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_in" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-in"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_kan" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-kan"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_las" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-las"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_man" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-man"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_nar" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-nar"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_on" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-on"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_par" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-par"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_zhar" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-zhar"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_rae" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-rae"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_san" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-san"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_tar" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-tar"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_un" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-un"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_phar" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-phar"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_khar" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-khar"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_ghan" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-ghan"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_qar" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-qar"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_shin" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-shin"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_chin" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-chin"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_can" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-can"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_jil" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-jil"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_cil" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-cil"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_char" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-char"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_xan" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-xan"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_jhan" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-jhan"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_hae" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hae"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_he" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-he"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_hie" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hie"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_we" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-we"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_har" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-har"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_hoe" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hoe"/>
+    <keyword type="macro" name="IBUS_KEY_Georgian_fi" link="ibus-IBusKeysyms.html#IBUS-KEY-Georgian-fi"/>
+    <keyword type="macro" name="IBUS_KEY_Xabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-Xabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_Ibreve" link="ibus-IBusKeysyms.html#IBUS-KEY-Ibreve"/>
+    <keyword type="macro" name="IBUS_KEY_Zstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-Zstroke"/>
+    <keyword type="macro" name="IBUS_KEY_Gcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Gcaron"/>
+    <keyword type="macro" name="IBUS_KEY_Ocaron" link="ibus-IBusKeysyms.html#IBUS-KEY-Ocaron"/>
+    <keyword type="macro" name="IBUS_KEY_Obarred" link="ibus-IBusKeysyms.html#IBUS-KEY-Obarred"/>
+    <keyword type="macro" name="IBUS_KEY_xabovedot" link="ibus-IBusKeysyms.html#IBUS-KEY-xabovedot"/>
+    <keyword type="macro" name="IBUS_KEY_ibreve" link="ibus-IBusKeysyms.html#IBUS-KEY-ibreve"/>
+    <keyword type="macro" name="IBUS_KEY_zstroke" link="ibus-IBusKeysyms.html#IBUS-KEY-zstroke"/>
+    <keyword type="macro" name="IBUS_KEY_gcaron" link="ibus-IBusKeysyms.html#IBUS-KEY-gcaron"/>
+    <keyword type="macro" name="IBUS_KEY_ocaron" link="ibus-IBusKeysyms.html#IBUS-KEY-ocaron"/>
+    <keyword type="macro" name="IBUS_KEY_obarred" link="ibus-IBusKeysyms.html#IBUS-KEY-obarred"/>
+    <keyword type="macro" name="IBUS_KEY_SCHWA" link="ibus-IBusKeysyms.html#IBUS-KEY-SCHWA:CAPS"/>
+    <keyword type="macro" name="IBUS_KEY_schwa" link="ibus-IBusKeysyms.html#IBUS-KEY-schwa"/>
+    <keyword type="macro" name="IBUS_KEY_Lbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Lbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_lbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-lbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Abelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Abelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_abelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-abelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Ahook" link="ibus-IBusKeysyms.html#IBUS-KEY-Ahook"/>
+    <keyword type="macro" name="IBUS_KEY_ahook" link="ibus-IBusKeysyms.html#IBUS-KEY-ahook"/>
+    <keyword type="macro" name="IBUS_KEY_Acircumflexacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexacute"/>
+    <keyword type="macro" name="IBUS_KEY_acircumflexacute" link="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexacute"/>
+    <keyword type="macro" name="IBUS_KEY_Acircumflexgrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexgrave"/>
+    <keyword type="macro" name="IBUS_KEY_acircumflexgrave" link="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexgrave"/>
+    <keyword type="macro" name="IBUS_KEY_Acircumflexhook" link="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexhook"/>
+    <keyword type="macro" name="IBUS_KEY_acircumflexhook" link="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexhook"/>
+    <keyword type="macro" name="IBUS_KEY_Acircumflextilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflextilde"/>
+    <keyword type="macro" name="IBUS_KEY_acircumflextilde" link="ibus-IBusKeysyms.html#IBUS-KEY-acircumflextilde"/>
+    <keyword type="macro" name="IBUS_KEY_Acircumflexbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_acircumflexbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-acircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Abreveacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Abreveacute"/>
+    <keyword type="macro" name="IBUS_KEY_abreveacute" link="ibus-IBusKeysyms.html#IBUS-KEY-abreveacute"/>
+    <keyword type="macro" name="IBUS_KEY_Abrevegrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Abrevegrave"/>
+    <keyword type="macro" name="IBUS_KEY_abrevegrave" link="ibus-IBusKeysyms.html#IBUS-KEY-abrevegrave"/>
+    <keyword type="macro" name="IBUS_KEY_Abrevehook" link="ibus-IBusKeysyms.html#IBUS-KEY-Abrevehook"/>
+    <keyword type="macro" name="IBUS_KEY_abrevehook" link="ibus-IBusKeysyms.html#IBUS-KEY-abrevehook"/>
+    <keyword type="macro" name="IBUS_KEY_Abrevetilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Abrevetilde"/>
+    <keyword type="macro" name="IBUS_KEY_abrevetilde" link="ibus-IBusKeysyms.html#IBUS-KEY-abrevetilde"/>
+    <keyword type="macro" name="IBUS_KEY_Abrevebelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Abrevebelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_abrevebelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-abrevebelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Ebelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Ebelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_ebelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-ebelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Ehook" link="ibus-IBusKeysyms.html#IBUS-KEY-Ehook"/>
+    <keyword type="macro" name="IBUS_KEY_ehook" link="ibus-IBusKeysyms.html#IBUS-KEY-ehook"/>
+    <keyword type="macro" name="IBUS_KEY_Etilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Etilde"/>
+    <keyword type="macro" name="IBUS_KEY_etilde" link="ibus-IBusKeysyms.html#IBUS-KEY-etilde"/>
+    <keyword type="macro" name="IBUS_KEY_Ecircumflexacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexacute"/>
+    <keyword type="macro" name="IBUS_KEY_ecircumflexacute" link="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexacute"/>
+    <keyword type="macro" name="IBUS_KEY_Ecircumflexgrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexgrave"/>
+    <keyword type="macro" name="IBUS_KEY_ecircumflexgrave" link="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexgrave"/>
+    <keyword type="macro" name="IBUS_KEY_Ecircumflexhook" link="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexhook"/>
+    <keyword type="macro" name="IBUS_KEY_ecircumflexhook" link="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexhook"/>
+    <keyword type="macro" name="IBUS_KEY_Ecircumflextilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflextilde"/>
+    <keyword type="macro" name="IBUS_KEY_ecircumflextilde" link="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflextilde"/>
+    <keyword type="macro" name="IBUS_KEY_Ecircumflexbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_ecircumflexbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Ihook" link="ibus-IBusKeysyms.html#IBUS-KEY-Ihook"/>
+    <keyword type="macro" name="IBUS_KEY_ihook" link="ibus-IBusKeysyms.html#IBUS-KEY-ihook"/>
+    <keyword type="macro" name="IBUS_KEY_Ibelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Ibelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_ibelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-ibelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Obelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Obelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_obelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-obelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Ohook" link="ibus-IBusKeysyms.html#IBUS-KEY-Ohook"/>
+    <keyword type="macro" name="IBUS_KEY_ohook" link="ibus-IBusKeysyms.html#IBUS-KEY-ohook"/>
+    <keyword type="macro" name="IBUS_KEY_Ocircumflexacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexacute"/>
+    <keyword type="macro" name="IBUS_KEY_ocircumflexacute" link="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexacute"/>
+    <keyword type="macro" name="IBUS_KEY_Ocircumflexgrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexgrave"/>
+    <keyword type="macro" name="IBUS_KEY_ocircumflexgrave" link="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexgrave"/>
+    <keyword type="macro" name="IBUS_KEY_Ocircumflexhook" link="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexhook"/>
+    <keyword type="macro" name="IBUS_KEY_ocircumflexhook" link="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexhook"/>
+    <keyword type="macro" name="IBUS_KEY_Ocircumflextilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflextilde"/>
+    <keyword type="macro" name="IBUS_KEY_ocircumflextilde" link="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflextilde"/>
+    <keyword type="macro" name="IBUS_KEY_Ocircumflexbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_ocircumflexbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Ohornacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Ohornacute"/>
+    <keyword type="macro" name="IBUS_KEY_ohornacute" link="ibus-IBusKeysyms.html#IBUS-KEY-ohornacute"/>
+    <keyword type="macro" name="IBUS_KEY_Ohorngrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Ohorngrave"/>
+    <keyword type="macro" name="IBUS_KEY_ohorngrave" link="ibus-IBusKeysyms.html#IBUS-KEY-ohorngrave"/>
+    <keyword type="macro" name="IBUS_KEY_Ohornhook" link="ibus-IBusKeysyms.html#IBUS-KEY-Ohornhook"/>
+    <keyword type="macro" name="IBUS_KEY_ohornhook" link="ibus-IBusKeysyms.html#IBUS-KEY-ohornhook"/>
+    <keyword type="macro" name="IBUS_KEY_Ohorntilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Ohorntilde"/>
+    <keyword type="macro" name="IBUS_KEY_ohorntilde" link="ibus-IBusKeysyms.html#IBUS-KEY-ohorntilde"/>
+    <keyword type="macro" name="IBUS_KEY_Ohornbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Ohornbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_ohornbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-ohornbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Ubelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Ubelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_ubelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-ubelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Uhook" link="ibus-IBusKeysyms.html#IBUS-KEY-Uhook"/>
+    <keyword type="macro" name="IBUS_KEY_uhook" link="ibus-IBusKeysyms.html#IBUS-KEY-uhook"/>
+    <keyword type="macro" name="IBUS_KEY_Uhornacute" link="ibus-IBusKeysyms.html#IBUS-KEY-Uhornacute"/>
+    <keyword type="macro" name="IBUS_KEY_uhornacute" link="ibus-IBusKeysyms.html#IBUS-KEY-uhornacute"/>
+    <keyword type="macro" name="IBUS_KEY_Uhorngrave" link="ibus-IBusKeysyms.html#IBUS-KEY-Uhorngrave"/>
+    <keyword type="macro" name="IBUS_KEY_uhorngrave" link="ibus-IBusKeysyms.html#IBUS-KEY-uhorngrave"/>
+    <keyword type="macro" name="IBUS_KEY_Uhornhook" link="ibus-IBusKeysyms.html#IBUS-KEY-Uhornhook"/>
+    <keyword type="macro" name="IBUS_KEY_uhornhook" link="ibus-IBusKeysyms.html#IBUS-KEY-uhornhook"/>
+    <keyword type="macro" name="IBUS_KEY_Uhorntilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Uhorntilde"/>
+    <keyword type="macro" name="IBUS_KEY_uhorntilde" link="ibus-IBusKeysyms.html#IBUS-KEY-uhorntilde"/>
+    <keyword type="macro" name="IBUS_KEY_Uhornbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Uhornbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_uhornbelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-uhornbelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Ybelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-Ybelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_ybelowdot" link="ibus-IBusKeysyms.html#IBUS-KEY-ybelowdot"/>
+    <keyword type="macro" name="IBUS_KEY_Yhook" link="ibus-IBusKeysyms.html#IBUS-KEY-Yhook"/>
+    <keyword type="macro" name="IBUS_KEY_yhook" link="ibus-IBusKeysyms.html#IBUS-KEY-yhook"/>
+    <keyword type="macro" name="IBUS_KEY_Ytilde" link="ibus-IBusKeysyms.html#IBUS-KEY-Ytilde"/>
+    <keyword type="macro" name="IBUS_KEY_ytilde" link="ibus-IBusKeysyms.html#IBUS-KEY-ytilde"/>
+    <keyword type="macro" name="IBUS_KEY_Ohorn" link="ibus-IBusKeysyms.html#IBUS-KEY-Ohorn"/>
+    <keyword type="macro" name="IBUS_KEY_ohorn" link="ibus-IBusKeysyms.html#IBUS-KEY-ohorn"/>
+    <keyword type="macro" name="IBUS_KEY_Uhorn" link="ibus-IBusKeysyms.html#IBUS-KEY-Uhorn"/>
+    <keyword type="macro" name="IBUS_KEY_uhorn" link="ibus-IBusKeysyms.html#IBUS-KEY-uhorn"/>
+    <keyword type="macro" name="IBUS_KEY_EcuSign" link="ibus-IBusKeysyms.html#IBUS-KEY-EcuSign"/>
+    <keyword type="macro" name="IBUS_KEY_ColonSign" link="ibus-IBusKeysyms.html#IBUS-KEY-ColonSign"/>
+    <keyword type="macro" name="IBUS_KEY_CruzeiroSign" link="ibus-IBusKeysyms.html#IBUS-KEY-CruzeiroSign"/>
+    <keyword type="macro" name="IBUS_KEY_FFrancSign" link="ibus-IBusKeysyms.html#IBUS-KEY-FFrancSign"/>
+    <keyword type="macro" name="IBUS_KEY_LiraSign" link="ibus-IBusKeysyms.html#IBUS-KEY-LiraSign"/>
+    <keyword type="macro" name="IBUS_KEY_MillSign" link="ibus-IBusKeysyms.html#IBUS-KEY-MillSign"/>
+    <keyword type="macro" name="IBUS_KEY_NairaSign" link="ibus-IBusKeysyms.html#IBUS-KEY-NairaSign"/>
+    <keyword type="macro" name="IBUS_KEY_PesetaSign" link="ibus-IBusKeysyms.html#IBUS-KEY-PesetaSign"/>
+    <keyword type="macro" name="IBUS_KEY_RupeeSign" link="ibus-IBusKeysyms.html#IBUS-KEY-RupeeSign"/>
+    <keyword type="macro" name="IBUS_KEY_WonSign" link="ibus-IBusKeysyms.html#IBUS-KEY-WonSign"/>
+    <keyword type="macro" name="IBUS_KEY_NewSheqelSign" link="ibus-IBusKeysyms.html#IBUS-KEY-NewSheqelSign"/>
+    <keyword type="macro" name="IBUS_KEY_DongSign" link="ibus-IBusKeysyms.html#IBUS-KEY-DongSign"/>
+    <keyword type="macro" name="IBUS_KEY_EuroSign" link="ibus-IBusKeysyms.html#IBUS-KEY-EuroSign"/>
+    <keyword type="macro" name="IBUS_KEY_zerosuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-zerosuperior"/>
+    <keyword type="macro" name="IBUS_KEY_foursuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-foursuperior"/>
+    <keyword type="macro" name="IBUS_KEY_fivesuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-fivesuperior"/>
+    <keyword type="macro" name="IBUS_KEY_sixsuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-sixsuperior"/>
+    <keyword type="macro" name="IBUS_KEY_sevensuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-sevensuperior"/>
+    <keyword type="macro" name="IBUS_KEY_eightsuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-eightsuperior"/>
+    <keyword type="macro" name="IBUS_KEY_ninesuperior" link="ibus-IBusKeysyms.html#IBUS-KEY-ninesuperior"/>
+    <keyword type="macro" name="IBUS_KEY_zerosubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-zerosubscript"/>
+    <keyword type="macro" name="IBUS_KEY_onesubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-onesubscript"/>
+    <keyword type="macro" name="IBUS_KEY_twosubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-twosubscript"/>
+    <keyword type="macro" name="IBUS_KEY_threesubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-threesubscript"/>
+    <keyword type="macro" name="IBUS_KEY_foursubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-foursubscript"/>
+    <keyword type="macro" name="IBUS_KEY_fivesubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-fivesubscript"/>
+    <keyword type="macro" name="IBUS_KEY_sixsubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-sixsubscript"/>
+    <keyword type="macro" name="IBUS_KEY_sevensubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-sevensubscript"/>
+    <keyword type="macro" name="IBUS_KEY_eightsubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-eightsubscript"/>
+    <keyword type="macro" name="IBUS_KEY_ninesubscript" link="ibus-IBusKeysyms.html#IBUS-KEY-ninesubscript"/>
+    <keyword type="macro" name="IBUS_KEY_partdifferential" link="ibus-IBusKeysyms.html#IBUS-KEY-partdifferential"/>
+    <keyword type="macro" name="IBUS_KEY_emptyset" link="ibus-IBusKeysyms.html#IBUS-KEY-emptyset"/>
+    <keyword type="macro" name="IBUS_KEY_elementof" link="ibus-IBusKeysyms.html#IBUS-KEY-elementof"/>
+    <keyword type="macro" name="IBUS_KEY_notelementof" link="ibus-IBusKeysyms.html#IBUS-KEY-notelementof"/>
+    <keyword type="macro" name="IBUS_KEY_containsas" link="ibus-IBusKeysyms.html#IBUS-KEY-containsas"/>
+    <keyword type="macro" name="IBUS_KEY_squareroot" link="ibus-IBusKeysyms.html#IBUS-KEY-squareroot"/>
+    <keyword type="macro" name="IBUS_KEY_cuberoot" link="ibus-IBusKeysyms.html#IBUS-KEY-cuberoot"/>
+    <keyword type="macro" name="IBUS_KEY_fourthroot" link="ibus-IBusKeysyms.html#IBUS-KEY-fourthroot"/>
+    <keyword type="macro" name="IBUS_KEY_dintegral" link="ibus-IBusKeysyms.html#IBUS-KEY-dintegral"/>
+    <keyword type="macro" name="IBUS_KEY_tintegral" link="ibus-IBusKeysyms.html#IBUS-KEY-tintegral"/>
+    <keyword type="macro" name="IBUS_KEY_because" link="ibus-IBusKeysyms.html#IBUS-KEY-because"/>
+    <keyword type="macro" name="IBUS_KEY_approxeq" link="ibus-IBusKeysyms.html#IBUS-KEY-approxeq"/>
+    <keyword type="macro" name="IBUS_KEY_notapproxeq" link="ibus-IBusKeysyms.html#IBUS-KEY-notapproxeq"/>
+    <keyword type="macro" name="IBUS_KEY_notidentical" link="ibus-IBusKeysyms.html#IBUS-KEY-notidentical"/>
+    <keyword type="macro" name="IBUS_KEY_stricteq" link="ibus-IBusKeysyms.html#IBUS-KEY-stricteq"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_1" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-1"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_2" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-2"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_3" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-3"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_4" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-4"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_5" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-5"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_6" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-6"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_7" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-7"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_8" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-8"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_9" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-9"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dot_10" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-10"/>
+    <keyword type="macro" name="IBUS_KEY_braille_blank" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-blank"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_4" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_14" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_24" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_124" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_34" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_134" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_234" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1234" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_5" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-5"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_15" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-15"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_25" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-25"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_125" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-125"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_35" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-35"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_135" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-135"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_235" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-235"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1235" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1235"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_45" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-45"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_145" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-145"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_245" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-245"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1245" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1245"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_345" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-345"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1345" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1345"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2345" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2345"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12345" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12345"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_6" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-6"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_16" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-16"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_26" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-26"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_126" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-126"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_36" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-36"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_136" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-136"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_236" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-236"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1236" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1236"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_46" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-46"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_146" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-146"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_246" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-246"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1246" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1246"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_346" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-346"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1346" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1346"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2346" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2346"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12346" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12346"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_56" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-56"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_156" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-156"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_256" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-256"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1256" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1256"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_356" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-356"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1356" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1356"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2356" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2356"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12356" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12356"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_456" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-456"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1456" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1456"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2456" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2456"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12456" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12456"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3456" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3456"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13456" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13456"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23456" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23456"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123456" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123456"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_7" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-7"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_17" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-17"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_27" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-27"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_127" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-127"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_37" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-37"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_137" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-137"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_237" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-237"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1237" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1237"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_47" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-47"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_147" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-147"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_247" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-247"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1247" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1247"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_347" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-347"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1347" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1347"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2347" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2347"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12347" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12347"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_57" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-57"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_157" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-157"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_257" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-257"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1257" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1257"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_357" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-357"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1357" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1357"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2357" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2357"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12357" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12357"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_457" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-457"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1457" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1457"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2457" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2457"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12457" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12457"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3457" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3457"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13457" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13457"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23457" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23457"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123457" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123457"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_67" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-67"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_167" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-167"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_267" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-267"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1267" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1267"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_367" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-367"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1367" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1367"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2367" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2367"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12367" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12367"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_467" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-467"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1467" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1467"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2467" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2467"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12467" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12467"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3467" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3467"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13467" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13467"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23467" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23467"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123467" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123467"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_4567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_14567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_24567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_124567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_34567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_134567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_234567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1234567" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234567"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_8" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-8"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_18" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-18"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_28" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-28"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_128" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-128"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_38" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-38"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_138" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-138"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_238" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-238"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1238" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1238"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_48" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-48"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_148" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-148"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_248" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-248"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1248" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1248"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_348" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-348"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1348" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1348"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2348" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2348"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12348" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12348"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_58" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-58"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_158" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-158"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_258" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-258"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1258" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1258"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_358" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-358"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1358" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1358"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2358" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2358"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12358" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12358"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_458" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-458"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1458" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1458"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2458" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2458"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12458" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12458"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3458" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3458"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13458" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13458"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23458" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23458"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123458" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123458"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_68" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-68"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_168" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-168"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_268" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-268"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1268" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1268"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_368" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-368"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1368" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1368"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2368" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2368"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12368" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12368"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_468" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-468"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1468" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1468"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2468" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2468"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12468" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12468"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3468" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3468"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13468" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13468"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23468" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23468"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123468" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123468"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_4568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_14568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_24568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_124568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_34568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_134568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_234568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1234568" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234568"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_78" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-78"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_178" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-178"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_278" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-278"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1278" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1278"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_378" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-378"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1378" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1378"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2378" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2378"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12378" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12378"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_478" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-478"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1478" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1478"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2478" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2478"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12478" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12478"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3478" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3478"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13478" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13478"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23478" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23478"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123478" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123478"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_4578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_14578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_24578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_124578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_34578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_134578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_234578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1234578" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234578"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_3678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_13678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_23678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_123678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_4678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_14678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_24678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_124678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_34678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_134678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_234678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1234678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_5678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-5678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_15678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-15678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_25678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-25678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_125678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-125678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_35678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-35678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_135678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-135678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_235678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-235678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1235678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1235678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_45678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-45678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_145678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-145678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_245678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-245678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1245678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1245678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_345678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-345678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_1345678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1345678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_2345678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2345678"/>
+    <keyword type="macro" name="IBUS_KEY_braille_dots_12345678" link="ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12345678"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ng" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ng"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_h2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-h2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_a" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-a"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_aa" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aa"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ae" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ae"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_aee" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aee"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_i" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-i"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ii" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ii"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_u" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-u"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_uu" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-uu"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ri" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ri"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_rii" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-rii"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_lu" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lu"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_luu" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-luu"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_e" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-e"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ee" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ee"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ai" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ai"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_o" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-o"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_oo" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-oo"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_au" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-au"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ka" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ka"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_kha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-kha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ga" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ga"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_gha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-gha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ng2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ng2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_nga" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nga"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ca" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ca"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_cha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-cha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ja" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ja"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_jha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-jha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_nya" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nya"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_jnya" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-jnya"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_nja" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nja"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_tta" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-tta"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ttha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ttha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_dda" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dda"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ddha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ddha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_nna" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nna"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ndda" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ndda"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_tha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-tha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_thha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-thha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_dha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_dhha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dhha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_na" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-na"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ndha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ndha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_pa" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-pa"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_pha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-pha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ba" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ba"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_bha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-bha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ma" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ma"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_mba" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-mba"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ya" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ya"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ra" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ra"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_la" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-la"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_va" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-va"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_sha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-sha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ssha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ssha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_sa" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-sa"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ha" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ha"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_lla" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lla"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_fa" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-fa"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_al" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-al"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_aa2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aa2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ae2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ae2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_aee2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aee2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_i2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-i2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ii2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ii2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_u2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-u2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_uu2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-uu2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ru2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ru2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_e2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-e2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ee2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ee2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ai2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ai2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_o2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-o2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_oo2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-oo2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_au2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-au2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_lu2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lu2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_ruu2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ruu2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_luu2" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-luu2"/>
+    <keyword type="macro" name="IBUS_KEY_Sinh_kunddaliya" link="ibus-IBusKeysyms.html#IBUS-KEY-Sinh-kunddaliya"/>
+    <keyword type="function" name="ibus_get_language_name ()" link="ibus-ibusutil.html#ibus-get-language-name"/>
+    <keyword type="struct" name="struct IBusConfig" link="IBusConfig.html#IBusConfig-struct"/>
+    <keyword type="struct" name="struct IBusConfigClass" link="IBusConfig.html#IBusConfigClass"/>
+    <keyword type="function" name="ibus_config_new ()" link="IBusConfig.html#ibus-config-new"/>
+    <keyword type="function" name="ibus_config_new_async ()" link="IBusConfig.html#ibus-config-new-async"/>
+    <keyword type="function" name="ibus_config_new_async_finish ()" link="IBusConfig.html#ibus-config-new-async-finish"/>
+    <keyword type="function" name="ibus_config_get_value ()" link="IBusConfig.html#ibus-config-get-value"/>
+    <keyword type="function" name="ibus_config_get_value_async ()" link="IBusConfig.html#ibus-config-get-value-async"/>
+    <keyword type="function" name="ibus_config_get_value_async_finish ()" link="IBusConfig.html#ibus-config-get-value-async-finish"/>
+    <keyword type="function" name="ibus_config_get_values ()" link="IBusConfig.html#ibus-config-get-values"/>
+    <keyword type="function" name="ibus_config_get_values_async ()" link="IBusConfig.html#ibus-config-get-values-async"/>
+    <keyword type="function" name="ibus_config_get_values_async_finish ()" link="IBusConfig.html#ibus-config-get-values-async-finish"/>
+    <keyword type="function" name="ibus_config_set_value ()" link="IBusConfig.html#ibus-config-set-value"/>
+    <keyword type="function" name="ibus_config_set_value_async ()" link="IBusConfig.html#ibus-config-set-value-async"/>
+    <keyword type="function" name="ibus_config_set_value_async_finish ()" link="IBusConfig.html#ibus-config-set-value-async-finish"/>
+    <keyword type="function" name="ibus_config_unset ()" link="IBusConfig.html#ibus-config-unset"/>
+    <keyword type="function" name="ibus_config_watch ()" link="IBusConfig.html#ibus-config-watch"/>
+    <keyword type="function" name="ibus_config_unwatch ()" link="IBusConfig.html#ibus-config-unwatch"/>
+    <keyword type="signal" name="The &quot;value-changed&quot; signal" link="IBusConfig.html#IBusConfig-value-changed"/>
+    <keyword type="struct" name="struct IBusConfigService" link="IBusConfigService.html#IBusConfigService-struct"/>
+    <keyword type="struct" name="struct IBusConfigServiceClass" link="IBusConfigService.html#IBusConfigServiceClass"/>
+    <keyword type="function" name="ibus_config_service_new ()" link="IBusConfigService.html#ibus-config-service-new"/>
+    <keyword type="function" name="ibus_config_service_value_changed ()" link="IBusConfigService.html#ibus-config-service-value-changed"/>
+    <keyword type="struct" name="struct IBusObservedPath" link="IBusObservedPath.html#IBusObservedPath-struct"/>
+    <keyword type="struct" name="struct IBusObservedPathClass" link="IBusObservedPath.html#IBusObservedPathClass"/>
+    <keyword type="function" name="ibus_observed_path_new_from_xml_node ()" link="IBusObservedPath.html#ibus-observed-path-new-from-xml-node"/>
+    <keyword type="function" name="ibus_observed_path_new ()" link="IBusObservedPath.html#ibus-observed-path-new"/>
+    <keyword type="function" name="ibus_observed_path_traverse ()" link="IBusObservedPath.html#ibus-observed-path-traverse"/>
+    <keyword type="function" name="ibus_observed_path_check_modification ()" link="IBusObservedPath.html#ibus-observed-path-check-modification"/>
+    <keyword type="function" name="ibus_observed_path_output ()" link="IBusObservedPath.html#ibus-observed-path-output"/>
+    <keyword type="struct" name="struct IBusRegistry" link="IBusRegistry.html#IBusRegistry-struct"/>
+    <keyword type="struct" name="struct IBusRegistryClass" link="IBusRegistry.html#IBusRegistryClass"/>
+    <keyword type="function" name="ibus_registry_new ()" link="IBusRegistry.html#ibus-registry-new"/>
+    <keyword type="function" name="ibus_registry_load ()" link="IBusRegistry.html#ibus-registry-load"/>
+    <keyword type="function" name="ibus_registry_load_in_dir ()" link="IBusRegistry.html#ibus-registry-load-in-dir"/>
+    <keyword type="function" name="ibus_registry_load_cache ()" link="IBusRegistry.html#ibus-registry-load-cache"/>
+    <keyword type="function" name="ibus_registry_load_cache_file ()" link="IBusRegistry.html#ibus-registry-load-cache-file"/>
+    <keyword type="function" name="ibus_registry_save_cache ()" link="IBusRegistry.html#ibus-registry-save-cache"/>
+    <keyword type="function" name="ibus_registry_save_cache_file ()" link="IBusRegistry.html#ibus-registry-save-cache-file"/>
+    <keyword type="function" name="ibus_registry_output ()" link="IBusRegistry.html#ibus-registry-output"/>
+    <keyword type="function" name="ibus_registry_check_modification ()" link="IBusRegistry.html#ibus-registry-check-modification"/>
+    <keyword type="function" name="ibus_registry_get_components ()" link="IBusRegistry.html#ibus-registry-get-components"/>
+    <keyword type="function" name="ibus_registry_get_observed_paths ()" link="IBusRegistry.html#ibus-registry-get-observed-paths"/>
+    <keyword type="function" name="ibus_registry_start_monitor_changes ()" link="IBusRegistry.html#ibus-registry-start-monitor-changes"/>
+    <keyword type="signal" name="The &quot;changed&quot; signal" link="IBusRegistry.html#IBusRegistry-changed"/>
+    <keyword type="macro" name="IBUS_MAJOR_VERSION" link="ibus-ibusversion.html#IBUS-MAJOR-VERSION:CAPS"/>
+    <keyword type="macro" name="IBUS_MINOR_VERSION" link="ibus-ibusversion.html#IBUS-MINOR-VERSION:CAPS"/>
+    <keyword type="macro" name="IBUS_MICRO_VERSION" link="ibus-ibusversion.html#IBUS-MICRO-VERSION:CAPS"/>
+    <keyword type="macro" name="IBUS_CHECK_VERSION()" link="ibus-ibusversion.html#IBUS-CHECK-VERSION:CAPS"/>
+    <keyword type="struct" name="XMLNode" link="ibus-ibusxml.html#XMLNode"/>
+    <keyword type="function" name="ibus_xml_parse_file ()" link="ibus-ibusxml.html#ibus-xml-parse-file"/>
+    <keyword type="function" name="ibus_xml_parse_buffer ()" link="ibus-ibusxml.html#ibus-xml-parse-buffer"/>
+    <keyword type="function" name="ibus_xml_free ()" link="ibus-ibusxml.html#ibus-xml-free"/>
+    <keyword type="function" name="ibus_xml_output ()" link="ibus-ibusxml.html#ibus-xml-output"/>
+    <keyword type="struct" name="struct IBusBus" link="IBusBus.html#IBusBus-struct"/>
+    <keyword type="struct" name="struct IBusBusClass" link="IBusBus.html#IBusBusClass"/>
+    <keyword type="function" name="ibus_bus_new ()" link="IBusBus.html#ibus-bus-new"/>
+    <keyword type="function" name="ibus_bus_new_async ()" link="IBusBus.html#ibus-bus-new-async"/>
+    <keyword type="function" name="ibus_bus_is_connected ()" link="IBusBus.html#ibus-bus-is-connected"/>
+    <keyword type="function" name="ibus_bus_get_connection ()" link="IBusBus.html#ibus-bus-get-connection"/>
+    <keyword type="function" name="ibus_bus_hello ()" link="IBusBus.html#ibus-bus-hello"/>
+    <keyword type="function" name="ibus_bus_request_name ()" link="IBusBus.html#ibus-bus-request-name"/>
+    <keyword type="function" name="ibus_bus_request_name_async ()" link="IBusBus.html#ibus-bus-request-name-async"/>
+    <keyword type="function" name="ibus_bus_request_name_async_finish ()" link="IBusBus.html#ibus-bus-request-name-async-finish"/>
+    <keyword type="function" name="ibus_bus_release_name ()" link="IBusBus.html#ibus-bus-release-name"/>
+    <keyword type="function" name="ibus_bus_release_name_async ()" link="IBusBus.html#ibus-bus-release-name-async"/>
+    <keyword type="function" name="ibus_bus_release_name_async_finish ()" link="IBusBus.html#ibus-bus-release-name-async-finish"/>
+    <keyword type="function" name="ibus_bus_list_queued_owners ()" link="IBusBus.html#ibus-bus-list-queued-owners"/>
+    <keyword type="function" name="ibus_bus_name_has_owner ()" link="IBusBus.html#ibus-bus-name-has-owner"/>
+    <keyword type="function" name="ibus_bus_name_has_owner_async ()" link="IBusBus.html#ibus-bus-name-has-owner-async"/>
+    <keyword type="function" name="ibus_bus_name_has_owner_async_finish ()" link="IBusBus.html#ibus-bus-name-has-owner-async-finish"/>
+    <keyword type="function" name="ibus_bus_list_names ()" link="IBusBus.html#ibus-bus-list-names"/>
+    <keyword type="function" name="ibus_bus_add_match ()" link="IBusBus.html#ibus-bus-add-match"/>
+    <keyword type="function" name="ibus_bus_add_match_async ()" link="IBusBus.html#ibus-bus-add-match-async"/>
+    <keyword type="function" name="ibus_bus_add_match_async_finish ()" link="IBusBus.html#ibus-bus-add-match-async-finish"/>
+    <keyword type="function" name="ibus_bus_remove_match ()" link="IBusBus.html#ibus-bus-remove-match"/>
+    <keyword type="function" name="ibus_bus_remove_match_async ()" link="IBusBus.html#ibus-bus-remove-match-async"/>
+    <keyword type="function" name="ibus_bus_remove_match_async_finish ()" link="IBusBus.html#ibus-bus-remove-match-async-finish"/>
+    <keyword type="function" name="ibus_bus_get_name_owner ()" link="IBusBus.html#ibus-bus-get-name-owner"/>
+    <keyword type="function" name="ibus_bus_get_name_owner_async ()" link="IBusBus.html#ibus-bus-get-name-owner-async"/>
+    <keyword type="function" name="ibus_bus_get_name_owner_async_finish ()" link="IBusBus.html#ibus-bus-get-name-owner-async-finish"/>
+    <keyword type="function" name="ibus_bus_exit ()" link="IBusBus.html#ibus-bus-exit"/>
+    <keyword type="function" name="ibus_bus_exit_async ()" link="IBusBus.html#ibus-bus-exit-async"/>
+    <keyword type="function" name="ibus_bus_exit_async_finish ()" link="IBusBus.html#ibus-bus-exit-async-finish"/>
+    <keyword type="function" name="ibus_bus_create_input_context ()" link="IBusBus.html#ibus-bus-create-input-context"/>
+    <keyword type="function" name="ibus_bus_create_input_context_async ()" link="IBusBus.html#ibus-bus-create-input-context-async"/>
+    <keyword type="function" name="ibus_bus_create_input_context_async_finish ()" link="IBusBus.html#ibus-bus-create-input-context-async-finish"/>
+    <keyword type="function" name="ibus_bus_current_input_context ()" link="IBusBus.html#ibus-bus-current-input-context"/>
+    <keyword type="function" name="ibus_bus_current_input_context_async ()" link="IBusBus.html#ibus-bus-current-input-context-async"/>
+    <keyword type="function" name="ibus_bus_current_input_context_async_finish ()" link="IBusBus.html#ibus-bus-current-input-context-async-finish"/>
+    <keyword type="function" name="ibus_bus_register_component ()" link="IBusBus.html#ibus-bus-register-component"/>
+    <keyword type="function" name="ibus_bus_register_component_async ()" link="IBusBus.html#ibus-bus-register-component-async"/>
+    <keyword type="function" name="ibus_bus_register_component_async_finish ()" link="IBusBus.html#ibus-bus-register-component-async-finish"/>
+    <keyword type="function" name="ibus_bus_list_engines ()" link="IBusBus.html#ibus-bus-list-engines"/>
+    <keyword type="function" name="ibus_bus_list_engines_async ()" link="IBusBus.html#ibus-bus-list-engines-async"/>
+    <keyword type="function" name="ibus_bus_list_engines_async_finish ()" link="IBusBus.html#ibus-bus-list-engines-async-finish"/>
+    <keyword type="function" name="ibus_bus_list_active_engines ()" link="IBusBus.html#ibus-bus-list-active-engines" deprecated=""/>
+    <keyword type="function" name="ibus_bus_list_active_engines_async ()" link="IBusBus.html#ibus-bus-list-active-engines-async" deprecated=""/>
+    <keyword type="function" name="ibus_bus_list_active_engines_async_finish ()" link="IBusBus.html#ibus-bus-list-active-engines-async-finish" deprecated=""/>
+    <keyword type="function" name="ibus_bus_get_engines_by_names ()" link="IBusBus.html#ibus-bus-get-engines-by-names"/>
+    <keyword type="function" name="ibus_bus_get_use_sys_layout ()" link="IBusBus.html#ibus-bus-get-use-sys-layout" deprecated=""/>
+    <keyword type="function" name="ibus_bus_get_use_sys_layout_async ()" link="IBusBus.html#ibus-bus-get-use-sys-layout-async" deprecated=""/>
+    <keyword type="function" name="ibus_bus_get_use_sys_layout_async_finish ()" link="IBusBus.html#ibus-bus-get-use-sys-layout-async-finish" deprecated=""/>
+    <keyword type="function" name="ibus_bus_get_use_global_engine ()" link="IBusBus.html#ibus-bus-get-use-global-engine" deprecated="1.5.3: Currently global engine is always used."/>
+    <keyword type="function" name="ibus_bus_get_use_global_engine_async ()" link="IBusBus.html#ibus-bus-get-use-global-engine-async" deprecated="1.5.3: Currently global engine is always used."/>
+    <keyword type="function" name="ibus_bus_get_use_global_engine_async_finish ()" link="IBusBus.html#ibus-bus-get-use-global-engine-async-finish" deprecated="1.5.3: Currently global engine is always used."/>
+    <keyword type="function" name="ibus_bus_is_global_engine_enabled ()" link="IBusBus.html#ibus-bus-is-global-engine-enabled" deprecated=""/>
+    <keyword type="function" name="ibus_bus_is_global_engine_enabled_async ()" link="IBusBus.html#ibus-bus-is-global-engine-enabled-async" deprecated=""/>
+    <keyword type="function" name="ibus_bus_is_global_engine_enabled_async_finish ()" link="IBusBus.html#ibus-bus-is-global-engine-enabled-async-finish" deprecated=""/>
+    <keyword type="function" name="ibus_bus_get_global_engine ()" link="IBusBus.html#ibus-bus-get-global-engine"/>
+    <keyword type="function" name="ibus_bus_get_global_engine_async ()" link="IBusBus.html#ibus-bus-get-global-engine-async"/>
+    <keyword type="function" name="ibus_bus_get_global_engine_async_finish ()" link="IBusBus.html#ibus-bus-get-global-engine-async-finish"/>
+    <keyword type="function" name="ibus_bus_set_global_engine ()" link="IBusBus.html#ibus-bus-set-global-engine"/>
+    <keyword type="function" name="ibus_bus_set_global_engine_async ()" link="IBusBus.html#ibus-bus-set-global-engine-async"/>
+    <keyword type="function" name="ibus_bus_set_global_engine_async_finish ()" link="IBusBus.html#ibus-bus-set-global-engine-async-finish"/>
+    <keyword type="function" name="ibus_bus_set_watch_dbus_signal ()" link="IBusBus.html#ibus-bus-set-watch-dbus-signal"/>
+    <keyword type="function" name="ibus_bus_set_watch_ibus_signal ()" link="IBusBus.html#ibus-bus-set-watch-ibus-signal"/>
+    <keyword type="function" name="ibus_bus_get_config ()" link="IBusBus.html#ibus-bus-get-config"/>
+    <keyword type="function" name="ibus_bus_preload_engines ()" link="IBusBus.html#ibus-bus-preload-engines"/>
+    <keyword type="function" name="ibus_bus_preload_engines_async ()" link="IBusBus.html#ibus-bus-preload-engines-async"/>
+    <keyword type="function" name="ibus_bus_preload_engines_async_finish ()" link="IBusBus.html#ibus-bus-preload-engines-async-finish"/>
+    <keyword type="function" name="ibus_bus_get_ibus_property ()" link="IBusBus.html#ibus-bus-get-ibus-property"/>
+    <keyword type="function" name="ibus_bus_get_ibus_property_async ()" link="IBusBus.html#ibus-bus-get-ibus-property-async"/>
+    <keyword type="function" name="ibus_bus_get_ibus_property_async_finish ()" link="IBusBus.html#ibus-bus-get-ibus-property-async-finish"/>
+    <keyword type="function" name="ibus_bus_set_ibus_property ()" link="IBusBus.html#ibus-bus-set-ibus-property"/>
+    <keyword type="function" name="ibus_bus_set_ibus_property_async ()" link="IBusBus.html#ibus-bus-set-ibus-property-async"/>
+    <keyword type="function" name="ibus_bus_set_ibus_property_async_finish ()" link="IBusBus.html#ibus-bus-set-ibus-property-async-finish"/>
+    <keyword type="property" name="The &quot;connect-async&quot; property" link="IBusBus.html#IBusBus--connect-async"/>
+    <keyword type="signal" name="The &quot;connected&quot; signal" link="IBusBus.html#IBusBus-connected"/>
+    <keyword type="signal" name="The &quot;disconnected&quot; signal" link="IBusBus.html#IBusBus-disconnected"/>
+    <keyword type="signal" name="The &quot;global-engine-changed&quot; signal" link="IBusBus.html#IBusBus-global-engine-changed"/>
+    <keyword type="signal" name="The &quot;name-owner-changed&quot; signal" link="IBusBus.html#IBusBus-name-owner-changed"/>
+    <keyword type="macro" name="IBUS_PROXY_FLAGS()" link="IBusProxy.html#IBUS-PROXY-FLAGS:CAPS"/>
+    <keyword type="macro" name="IBUS_PROXY_SET_FLAGS()" link="IBusProxy.html#IBUS-PROXY-SET-FLAGS:CAPS"/>
+    <keyword type="macro" name="IBUS_PROXY_UNSET_FLAGS()" link="IBusProxy.html#IBUS-PROXY-UNSET-FLAGS:CAPS"/>
+    <keyword type="macro" name="IBUS_PROXY_DESTROYED()" link="IBusProxy.html#IBUS-PROXY-DESTROYED:CAPS"/>
+    <keyword type="struct" name="struct IBusProxy" link="IBusProxy.html#IBusProxy-struct"/>
+    <keyword type="struct" name="struct IBusProxyClass" link="IBusProxy.html#IBusProxyClass"/>
+    <keyword type="function" name="ibus_proxy_destroy ()" link="IBusProxy.html#ibus-proxy-destroy"/>
+    <keyword type="signal" name="The &quot;destroy&quot; signal" link="IBusProxy.html#IBusProxy-destroy"/>
+    <keyword type="macro" name="ibus_serializable_set_attachment()" link="IBusSerializable.html#ibus-serializable-set-attachment"/>
+    <keyword type="macro" name="ibus_serializable_get_attachment()" link="IBusSerializable.html#ibus-serializable-get-attachment"/>
+    <keyword type="macro" name="ibus_serializable_remove_attachment()" link="IBusSerializable.html#ibus-serializable-remove-attachment"/>
+    <keyword type="struct" name="struct IBusSerializable" link="IBusSerializable.html#IBusSerializable-struct"/>
+    <keyword type="function" name="IBusSerializableSerializeFunc ()" link="IBusSerializable.html#IBusSerializableSerializeFunc"/>
+    <keyword type="function" name="IBusSerializableDeserializeFunc ()" link="IBusSerializable.html#IBusSerializableDeserializeFunc"/>
+    <keyword type="function" name="IBusSerializableCopyFunc ()" link="IBusSerializable.html#IBusSerializableCopyFunc"/>
+    <keyword type="struct" name="struct IBusSerializableClass" link="IBusSerializable.html#IBusSerializableClass"/>
+    <keyword type="function" name="ibus_serializable_new ()" link="IBusSerializable.html#ibus-serializable-new"/>
+    <keyword type="function" name="ibus_serializable_set_qattachment ()" link="IBusSerializable.html#ibus-serializable-set-qattachment"/>
+    <keyword type="function" name="ibus_serializable_get_qattachment ()" link="IBusSerializable.html#ibus-serializable-get-qattachment"/>
+    <keyword type="function" name="ibus_serializable_remove_qattachment ()" link="IBusSerializable.html#ibus-serializable-remove-qattachment"/>
+    <keyword type="function" name="ibus_serializable_copy ()" link="IBusSerializable.html#ibus-serializable-copy"/>
+    <keyword type="function" name="ibus_serializable_serialize ()" link="IBusSerializable.html#ibus-serializable-serialize"/>
+    <keyword type="function" name="ibus_serializable_deserialize ()" link="IBusSerializable.html#ibus-serializable-deserialize"/>
+    <keyword type="struct" name="struct IBusService" link="IBusService.html#IBusService-struct"/>
+    <keyword type="struct" name="struct IBusServiceClass" link="IBusService.html#IBusServiceClass"/>
+    <keyword type="function" name="ibus_service_new ()" link="IBusService.html#ibus-service-new"/>
+    <keyword type="function" name="ibus_service_get_object_path ()" link="IBusService.html#ibus-service-get-object-path"/>
+    <keyword type="function" name="ibus_service_get_connection ()" link="IBusService.html#ibus-service-get-connection"/>
+    <keyword type="function" name="ibus_service_register ()" link="IBusService.html#ibus-service-register"/>
+    <keyword type="function" name="ibus_service_unregister ()" link="IBusService.html#ibus-service-unregister"/>
+    <keyword type="function" name="ibus_service_emit_signal ()" link="IBusService.html#ibus-service-emit-signal"/>
+    <keyword type="function" name="ibus_service_class_add_interfaces ()" link="IBusService.html#ibus-service-class-add-interfaces"/>
+    <keyword type="macro" name="ibus_warning()" link="ibus-ibusdebug.html#ibus-warning"/>
+    <keyword type="macro" name="IBUS_ERROR" link="ibus-ibuserror.html#IBUS-ERROR:CAPS"/>
+    <keyword type="function" name="ibus_error_quark ()" link="ibus-ibuserror.html#ibus-error-quark"/>
+    <keyword type="macro" name="IBUS_OBJECT_IN_DESTRUCTION()" link="IBusObject.html#IBUS-OBJECT-IN-DESTRUCTION:CAPS"/>
+    <keyword type="macro" name="IBUS_OBJECT_DESTROYED()" link="IBusObject.html#IBUS-OBJECT-DESTROYED:CAPS"/>
+    <keyword type="struct" name="struct IBusObject" link="IBusObject.html#IBusObject-struct"/>
+    <keyword type="struct" name="struct IBusObjectClass" link="IBusObject.html#IBusObjectClass"/>
+    <keyword type="function" name="ibus_object_new ()" link="IBusObject.html#ibus-object-new"/>
+    <keyword type="function" name="ibus_object_destroy ()" link="IBusObject.html#ibus-object-destroy"/>
+    <keyword type="signal" name="The &quot;destroy&quot; signal" link="IBusObject.html#IBusObject-destroy"/>
+    <keyword type="macro" name="IBUS_DEPRECATED" link="ibus-ibusshare.html#IBUS-DEPRECATED:CAPS"/>
+    <keyword type="macro" name="IBUS_SERVICE_IBUS" link="ibus-ibusshare.html#IBUS-SERVICE-IBUS:CAPS"/>
+    <keyword type="macro" name="IBUS_SERVICE_PANEL" link="ibus-ibusshare.html#IBUS-SERVICE-PANEL:CAPS"/>
+    <keyword type="macro" name="IBUS_SERVICE_CONFIG" link="ibus-ibusshare.html#IBUS-SERVICE-CONFIG:CAPS"/>
+    <keyword type="macro" name="IBUS_SERVICE_NOTIFICATIONS" link="ibus-ibusshare.html#IBUS-SERVICE-NOTIFICATIONS:CAPS"/>
+    <keyword type="macro" name="IBUS_PATH_IBUS" link="ibus-ibusshare.html#IBUS-PATH-IBUS:CAPS"/>
+    <keyword type="macro" name="IBUS_PATH_FACTORY" link="ibus-ibusshare.html#IBUS-PATH-FACTORY:CAPS"/>
+    <keyword type="macro" name="IBUS_PATH_PANEL" link="ibus-ibusshare.html#IBUS-PATH-PANEL:CAPS"/>
+    <keyword type="macro" name="IBUS_PATH_CONFIG" link="ibus-ibusshare.html#IBUS-PATH-CONFIG:CAPS"/>
+    <keyword type="macro" name="IBUS_PATH_NOTIFICATIONS" link="ibus-ibusshare.html#IBUS-PATH-NOTIFICATIONS:CAPS"/>
+    <keyword type="macro" name="IBUS_PATH_INPUT_CONTEXT" link="ibus-ibusshare.html#IBUS-PATH-INPUT-CONTEXT:CAPS"/>
+    <keyword type="macro" name="IBUS_INTERFACE_IBUS" link="ibus-ibusshare.html#IBUS-INTERFACE-IBUS:CAPS"/>
+    <keyword type="macro" name="IBUS_INTERFACE_INPUT_CONTEXT" link="ibus-ibusshare.html#IBUS-INTERFACE-INPUT-CONTEXT:CAPS"/>
+    <keyword type="macro" name="IBUS_INTERFACE_FACTORY" link="ibus-ibusshare.html#IBUS-INTERFACE-FACTORY:CAPS"/>
+    <keyword type="macro" name="IBUS_INTERFACE_ENGINE" link="ibus-ibusshare.html#IBUS-INTERFACE-ENGINE:CAPS"/>
+    <keyword type="macro" name="IBUS_INTERFACE_PANEL" link="ibus-ibusshare.html#IBUS-INTERFACE-PANEL:CAPS"/>
+    <keyword type="macro" name="IBUS_INTERFACE_CONFIG" link="ibus-ibusshare.html#IBUS-INTERFACE-CONFIG:CAPS"/>
+    <keyword type="macro" name="IBUS_INTERFACE_NOTIFICATIONS" link="ibus-ibusshare.html#IBUS-INTERFACE-NOTIFICATIONS:CAPS"/>
+    <keyword type="function" name="ibus_get_local_machine_id ()" link="ibus-ibusshare.html#ibus-get-local-machine-id"/>
+    <keyword type="function" name="ibus_set_display ()" link="ibus-ibusshare.html#ibus-set-display"/>
+    <keyword type="function" name="ibus_get_address ()" link="ibus-ibusshare.html#ibus-get-address"/>
+    <keyword type="function" name="ibus_write_address ()" link="ibus-ibusshare.html#ibus-write-address"/>
+    <keyword type="function" name="ibus_get_user_name ()" link="ibus-ibusshare.html#ibus-get-user-name"/>
+    <keyword type="function" name="ibus_get_daemon_uid ()" link="ibus-ibusshare.html#ibus-get-daemon-uid" deprecated=""/>
+    <keyword type="function" name="ibus_get_socket_path ()" link="ibus-ibusshare.html#ibus-get-socket-path"/>
+    <keyword type="function" name="ibus_get_timeout ()" link="ibus-ibusshare.html#ibus-get-timeout"/>
+    <keyword type="function" name="ibus_free_strv ()" link="ibus-ibusshare.html#ibus-free-strv" deprecated=""/>
+    <keyword type="function" name="ibus_key_event_to_string ()" link="ibus-ibusshare.html#ibus-key-event-to-string"/>
+    <keyword type="function" name="ibus_key_event_from_string ()" link="ibus-ibusshare.html#ibus-key-event-from-string"/>
+    <keyword type="function" name="ibus_init ()" link="ibus-ibusshare.html#ibus-init"/>
+    <keyword type="function" name="ibus_main ()" link="ibus-ibusshare.html#ibus-main"/>
+    <keyword type="function" name="ibus_quit ()" link="ibus-ibusshare.html#ibus-quit"/>
+    <keyword type="function" name="ibus_set_log_handler ()" link="ibus-ibusshare.html#ibus-set-log-handler"/>
+    <keyword type="function" name="ibus_unset_log_handler ()" link="ibus-ibusshare.html#ibus-unset-log-handler"/>
+    <keyword type="enum" name="enum IBusModifierType" link="ibus-ibustypes.html#IBusModifierType-enum"/>
+    <keyword type="enum" name="enum IBusCapabilite" link="ibus-ibustypes.html#IBusCapabilite-enum"/>
+    <keyword type="enum" name="enum IBusPreeditFocusMode" link="ibus-ibustypes.html#IBusPreeditFocusMode"/>
+    <keyword type="enum" name="enum IBusOrientation" link="ibus-ibustypes.html#IBusOrientation-enum"/>
+    <keyword type="enum" name="enum IBusBusNameFlag" link="ibus-ibustypes.html#IBusBusNameFlag"/>
+    <keyword type="enum" name="enum IBusBusRequestNameReply" link="ibus-ibustypes.html#IBusBusRequestNameReply"/>
+    <keyword type="enum" name="enum IBusBusStartServiceByNameReply" link="ibus-ibustypes.html#IBusBusStartServiceByNameReply"/>
+    <keyword type="enum" name="enum IBusError" link="ibus-ibustypes.html#IBusError"/>
+    <keyword type="struct" name="struct IBusRectangle" link="ibus-ibustypes.html#IBusRectangle"/>
+    <keyword type="function" name="IBusFreeFunc ()" link="ibus-ibustypes.html#IBusFreeFunc"/>
+    <keyword type="enum" name="enum IBusInputPurpose" link="ibus-ibustypes.html#IBusInputPurpose"/>
+    <keyword type="enum" name="enum IBusInputHints" link="ibus-ibustypes.html#IBusInputHints"/>
+    <keyword type="constant" name="IBUS_ATTR_TYPE_UNDERLINE" link="IBusAttribute.html#IBUS-ATTR-TYPE-UNDERLINE:CAPS"/>
+    <keyword type="constant" name="IBUS_ATTR_TYPE_FOREGROUND" link="IBusAttribute.html#IBUS-ATTR-TYPE-FOREGROUND:CAPS"/>
+    <keyword type="constant" name="IBUS_ATTR_TYPE_BACKGROUND" link="IBusAttribute.html#IBUS-ATTR-TYPE-BACKGROUND:CAPS"/>
+    <keyword type="constant" name="IBUS_ATTR_UNDERLINE_NONE" link="IBusAttribute.html#IBUS-ATTR-UNDERLINE-NONE:CAPS"/>
+    <keyword type="constant" name="IBUS_ATTR_UNDERLINE_SINGLE" link="IBusAttribute.html#IBUS-ATTR-UNDERLINE-SINGLE:CAPS"/>
+    <keyword type="constant" name="IBUS_ATTR_UNDERLINE_DOUBLE" link="IBusAttribute.html#IBUS-ATTR-UNDERLINE-DOUBLE:CAPS"/>
+    <keyword type="constant" name="IBUS_ATTR_UNDERLINE_LOW" link="IBusAttribute.html#IBUS-ATTR-UNDERLINE-LOW:CAPS"/>
+    <keyword type="constant" name="IBUS_ATTR_UNDERLINE_ERROR" link="IBusAttribute.html#IBUS-ATTR-UNDERLINE-ERROR:CAPS"/>
+    <keyword type="constant" name="PROP_TYPE_NORMAL" link="IBusProperty.html#PROP-TYPE-NORMAL:CAPS"/>
+    <keyword type="constant" name="PROP_TYPE_TOGGLE" link="IBusProperty.html#PROP-TYPE-TOGGLE:CAPS"/>
+    <keyword type="constant" name="PROP_TYPE_RADIO" link="IBusProperty.html#PROP-TYPE-RADIO:CAPS"/>
+    <keyword type="constant" name="PROP_TYPE_MENU" link="IBusProperty.html#PROP-TYPE-MENU:CAPS"/>
+    <keyword type="constant" name="PROP_TYPE_SEPARATOR" link="IBusProperty.html#PROP-TYPE-SEPARATOR:CAPS"/>
+    <keyword type="constant" name="PROP_STATE_UNCHECKED" link="IBusProperty.html#PROP-STATE-UNCHECKED:CAPS"/>
+    <keyword type="constant" name="PROP_STATE_CHECKED" link="IBusProperty.html#PROP-STATE-CHECKED:CAPS"/>
+    <keyword type="constant" name="PROP_STATE_INCONSISTENT" link="IBusProperty.html#PROP-STATE-INCONSISTENT:CAPS"/>
+    <keyword type="constant" name="IBUS_SHIFT_MASK" link="ibus-ibustypes.html#IBUS-SHIFT-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_LOCK_MASK" link="ibus-ibustypes.html#IBUS-LOCK-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_CONTROL_MASK" link="ibus-ibustypes.html#IBUS-CONTROL-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_MOD1_MASK" link="ibus-ibustypes.html#IBUS-MOD1-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_MOD2_MASK" link="ibus-ibustypes.html#IBUS-MOD2-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_MOD3_MASK" link="ibus-ibustypes.html#IBUS-MOD3-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_MOD4_MASK" link="ibus-ibustypes.html#IBUS-MOD4-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_MOD5_MASK" link="ibus-ibustypes.html#IBUS-MOD5-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_BUTTON1_MASK" link="ibus-ibustypes.html#IBUS-BUTTON1-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_BUTTON2_MASK" link="ibus-ibustypes.html#IBUS-BUTTON2-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_BUTTON3_MASK" link="ibus-ibustypes.html#IBUS-BUTTON3-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_BUTTON4_MASK" link="ibus-ibustypes.html#IBUS-BUTTON4-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_BUTTON5_MASK" link="ibus-ibustypes.html#IBUS-BUTTON5-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_HANDLED_MASK" link="ibus-ibustypes.html#IBUS-HANDLED-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_FORWARD_MASK" link="ibus-ibustypes.html#IBUS-FORWARD-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_IGNORED_MASK" link="ibus-ibustypes.html#IBUS-IGNORED-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_SUPER_MASK" link="ibus-ibustypes.html#IBUS-SUPER-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_HYPER_MASK" link="ibus-ibustypes.html#IBUS-HYPER-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_META_MASK" link="ibus-ibustypes.html#IBUS-META-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_RELEASE_MASK" link="ibus-ibustypes.html#IBUS-RELEASE-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_MODIFIER_MASK" link="ibus-ibustypes.html#IBUS-MODIFIER-MASK:CAPS"/>
+    <keyword type="constant" name="IBUS_CAP_PREEDIT_TEXT" link="ibus-ibustypes.html#IBUS-CAP-PREEDIT-TEXT:CAPS"/>
+    <keyword type="constant" name="IBUS_CAP_AUXILIARY_TEXT" link="ibus-ibustypes.html#IBUS-CAP-AUXILIARY-TEXT:CAPS"/>
+    <keyword type="constant" name="IBUS_CAP_LOOKUP_TABLE" link="ibus-ibustypes.html#IBUS-CAP-LOOKUP-TABLE:CAPS"/>
+    <keyword type="constant" name="IBUS_CAP_FOCUS" link="ibus-ibustypes.html#IBUS-CAP-FOCUS:CAPS"/>
+    <keyword type="constant" name="IBUS_CAP_PROPERTY" link="ibus-ibustypes.html#IBUS-CAP-PROPERTY:CAPS"/>
+    <keyword type="constant" name="IBUS_CAP_SURROUNDING_TEXT" link="ibus-ibustypes.html#IBUS-CAP-SURROUNDING-TEXT:CAPS"/>
+    <keyword type="constant" name="IBUS_ENGINE_PREEDIT_CLEAR" link="ibus-ibustypes.html#IBUS-ENGINE-PREEDIT-CLEAR:CAPS"/>
+    <keyword type="constant" name="IBUS_ENGINE_PREEDIT_COMMIT" link="ibus-ibustypes.html#IBUS-ENGINE-PREEDIT-COMMIT:CAPS"/>
+    <keyword type="constant" name="IBUS_ORIENTATION_HORIZONTAL" link="ibus-ibustypes.html#IBUS-ORIENTATION-HORIZONTAL:CAPS"/>
+    <keyword type="constant" name="IBUS_ORIENTATION_VERTICAL" link="ibus-ibustypes.html#IBUS-ORIENTATION-VERTICAL:CAPS"/>
+    <keyword type="constant" name="IBUS_ORIENTATION_SYSTEM" link="ibus-ibustypes.html#IBUS-ORIENTATION-SYSTEM:CAPS"/>
+    <keyword type="constant" name="IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT" link="ibus-ibustypes.html#IBUS-BUS-NAME-FLAG-ALLOW-REPLACEMENT:CAPS"/>
+    <keyword type="constant" name="IBUS_BUS_NAME_FLAG_REPLACE_EXISTING" link="ibus-ibustypes.html#IBUS-BUS-NAME-FLAG-REPLACE-EXISTING:CAPS"/>
+    <keyword type="constant" name="IBUS_BUS_NAME_FLAG_DO_NOT_QUEUE" link="ibus-ibustypes.html#IBUS-BUS-NAME-FLAG-DO-NOT-QUEUE:CAPS"/>
+    <keyword type="constant" name="IBUS_BUS_REQUEST_NAME_REPLY_PRIMARY_OWNER" link="ibus-ibustypes.html#IBUS-BUS-REQUEST-NAME-REPLY-PRIMARY-OWNER:CAPS"/>
+    <keyword type="constant" name="IBUS_BUS_REQUEST_NAME_REPLY_IN_QUEUE" link="ibus-ibustypes.html#IBUS-BUS-REQUEST-NAME-REPLY-IN-QUEUE:CAPS"/>
+    <keyword type="constant" name="IBUS_BUS_REQUEST_NAME_REPLY_EXISTS" link="ibus-ibustypes.html#IBUS-BUS-REQUEST-NAME-REPLY-EXISTS:CAPS"/>
+    <keyword type="constant" name="IBUS_BUS_REQUEST_NAME_REPLY_ALREADY_OWNER" link="ibus-ibustypes.html#IBUS-BUS-REQUEST-NAME-REPLY-ALREADY-OWNER:CAPS"/>
+    <keyword type="constant" name="IBUS_BUS_START_REPLY_SUCCESS" link="ibus-ibustypes.html#IBUS-BUS-START-REPLY-SUCCESS:CAPS"/>
+    <keyword type="constant" name="IBUS_BUS_START_REPLY_ALREADY_RUNNING" link="ibus-ibustypes.html#IBUS-BUS-START-REPLY-ALREADY-RUNNING:CAPS"/>
+    <keyword type="constant" name="IBUS_ERROR_NO_ENGINE" link="ibus-ibustypes.html#IBUS-ERROR-NO-ENGINE:CAPS"/>
+    <keyword type="constant" name="IBUS_ERROR_NO_CONFIG" link="ibus-ibustypes.html#IBUS-ERROR-NO-CONFIG:CAPS"/>
+    <keyword type="constant" name="IBUS_ERROR_FAILED" link="ibus-ibustypes.html#IBUS-ERROR-FAILED:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_FREE_FORM" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-FREE-FORM:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_ALPHA" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-ALPHA:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_DIGITS" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-DIGITS:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_NUMBER" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-NUMBER:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_PHONE" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-PHONE:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_URL" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-URL:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_EMAIL" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-EMAIL:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_NAME" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-NAME:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_PASSWORD" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-PASSWORD:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_PURPOSE_PIN" link="ibus-ibustypes.html#IBUS-INPUT-PURPOSE-PIN:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_HINT_NONE" link="ibus-ibustypes.html#IBUS-INPUT-HINT-NONE:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_HINT_SPELLCHECK" link="ibus-ibustypes.html#IBUS-INPUT-HINT-SPELLCHECK:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_HINT_NO_SPELLCHECK" link="ibus-ibustypes.html#IBUS-INPUT-HINT-NO-SPELLCHECK:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_HINT_WORD_COMPLETION" link="ibus-ibustypes.html#IBUS-INPUT-HINT-WORD-COMPLETION:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_HINT_LOWERCASE" link="ibus-ibustypes.html#IBUS-INPUT-HINT-LOWERCASE:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_HINT_UPPERCASE_CHARS" link="ibus-ibustypes.html#IBUS-INPUT-HINT-UPPERCASE-CHARS:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_HINT_UPPERCASE_WORDS" link="ibus-ibustypes.html#IBUS-INPUT-HINT-UPPERCASE-WORDS:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_HINT_UPPERCASE_SENTENCES" link="ibus-ibustypes.html#IBUS-INPUT-HINT-UPPERCASE-SENTENCES:CAPS"/>
+    <keyword type="constant" name="IBUS_INPUT_HINT_INHIBIT_OSK" link="ibus-ibustypes.html#IBUS-INPUT-HINT-INHIBIT-OSK:CAPS"/>
+  </functions>
+</book>
diff --git a/docs/reference/ibus/html/index.html b/docs/reference/ibus/html/index.html
new file mode 100644 (file)
index 0000000..39fba2c
--- /dev/null
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IBus Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="IBus Reference Manual">
+<link rel="next" href="ch01.html" title="Overview">
+<meta name="generator" content="GTK-Doc V1.19 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="book">
+<div class="titlepage">
+<div>
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">IBus Reference Manual</p></th></tr></table></div>
+<div><p class="releaseinfo">
+      Intelligent Input Bus (IBus) 1.5.4 reference manual.
+      The latest version of this documentation can be found on-line at
+      <a class="ulink" href="http://code.google.com/p/ibus" target="_top">http://code.google.com/p/ibus</a>.
+    </p></div>
+</div>
+<hr>
+</div>
+<div class="toc"><dl class="toc">
+<dt><span class="chapter"><a href="ch01.html">Overview</a></span></dt>
+<dt><span class="chapter"><a href="ch02.html">Panel (User Interfaces)</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="IBusAttribute.html">IBusAttribute</a></span><span class="refpurpose"> — Attributes of IBusText.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusAttrList.html">IBusAttrList</a></span><span class="refpurpose"> — AttrList of IBusText.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusHotkeyProfile.html">IBusHotkeyProfile</a></span><span class="refpurpose"> — Hotkeys and associated events.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusLookupTable.html">IBusLookupTable</a></span><span class="refpurpose"> — Candidate word/phrase lookup table.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusPanelService.html">IBusPanelService</a></span><span class="refpurpose"> — Panel service back-end.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusProperty.html">IBusProperty</a></span><span class="refpurpose"> — UI component for input method engine property.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusPropList.html">IBusPropList</a></span><span class="refpurpose">An <span class="type">IBusProperty</span> container.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusText.html">IBusText</a></span><span class="refpurpose"> — Text with decorating information.</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="ch03.html">Input method engine</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="IBusComponent.html">IBusComponent</a></span><span class="refpurpose"> — Component (executable) specification.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusEngine.html">IBusEngine</a></span><span class="refpurpose"> — Input method engine abstract.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusEngineDesc.html">IBusEngineDesc</a></span><span class="refpurpose"> — Input method engine description data.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-IBusEngineSimple.html">IBusEngineSimple</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusFactory.html">IBusFactory</a></span><span class="refpurpose"> — Factory for creating engine instances.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusInputContext.html">IBusInputContext</a></span><span class="refpurpose"> — IBus input context proxy object.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibuskeys.html">ibuskeys</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusKeymap.html">IBusKeymap</a></span><span class="refpurpose"> — Keyboard mapping handling.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibuskeysyms-compat.html">ibuskeysyms-compat</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-IBusKeysyms.html">IBusKeysyms</a></span><span class="refpurpose"> — Key symbol definition.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusutil.html">ibusutil</a></span><span class="refpurpose"> — Utilities with C-Language.</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="ch04.html">Configuration</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="IBusConfig.html">IBusConfig</a></span><span class="refpurpose"> — IBus engine configuration module.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusConfigService.html">IBusConfigService</a></span><span class="refpurpose"> — Configuration service back-end.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusObservedPath.html">IBusObservedPath</a></span><span class="refpurpose"> — Path object of IBus.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusRegistry.html">IBusRegistry</a></span><span class="refpurpose"> — Registry cache handling.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusversion.html">ibusversion</a></span><span class="refpurpose"> — Current version of IBus.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusxml.html">ibusxml</a></span><span class="refpurpose"> — XML handling functions for IBus.</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="ch05.html">Communication</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="IBusBus.html">IBusBus</a></span><span class="refpurpose"> — Connect with IBus daemon.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusProxy.html">IBusProxy</a></span><span class="refpurpose"> — Base proxy object.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusSerializable.html">IBusSerializable</a></span><span class="refpurpose"> — A serializable object.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusService.html">IBusService</a></span><span class="refpurpose"> — IBus service back-end.</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="ch06.html">Internal</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusdebug.html">ibusdebug</a></span><span class="refpurpose"> — Debug message output.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibuserror.html">ibuserror</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="IBusObject.html">IBusObject</a></span><span class="refpurpose"> — Base object of IBus.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibusshare.html">ibusshare</a></span><span class="refpurpose"> — Shared utility functions and definition.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="ibus-ibustypes.html">ibustypes</a></span><span class="refpurpose"> — Generic types for  IBus.</span>
+</dt>
+</dl></dd>
+<dt><span class="index"><a href="api-index-full.html">Index</a></span></dt>
+<dt><span class="index"><a href="api-index-deprecated.html">Index of deprecated symbols</a></span></dt>
+<dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.19</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/reference/ibus/html/index.sgml b/docs/reference/ibus/html/index.sgml
new file mode 100644 (file)
index 0000000..6cda17e
--- /dev/null
@@ -0,0 +1,4938 @@
+<ONLINE href="http://code.google.com/p/ibus">
+<ANCHOR id="IBusAttribute" href="ibus/IBusAttribute.html">
+<ANCHOR id="IBusAttribute.stability-level" href="ibus/IBusAttribute.html#IBusAttribute.stability-level">
+<ANCHOR id="IBusAttribute.synopsis" href="ibus/IBusAttribute.html#IBusAttribute.synopsis">
+<ANCHOR id="IBusAttrType" href="ibus/IBusAttribute.html#IBusAttrType">
+<ANCHOR id="IBusAttrUnderline" href="ibus/IBusAttribute.html#IBusAttrUnderline">
+<ANCHOR id="IBusAttribute.object-hierarchy" href="ibus/IBusAttribute.html#IBusAttribute.object-hierarchy">
+<ANCHOR id="IBusAttribute.description" href="ibus/IBusAttribute.html#IBusAttribute.description">
+<ANCHOR id="IBusAttribute.details" href="ibus/IBusAttribute.html#IBusAttribute.details">
+<ANCHOR id="IBusAttrType-enum" href="ibus/IBusAttribute.html#IBusAttrType-enum">
+<ANCHOR id="IBUS-ATTR-TYPE-UNDERLINE:CAPS" href="ibus/IBusAttribute.html#IBUS-ATTR-TYPE-UNDERLINE:CAPS">
+<ANCHOR id="IBUS-ATTR-TYPE-FOREGROUND:CAPS" href="ibus/IBusAttribute.html#IBUS-ATTR-TYPE-FOREGROUND:CAPS">
+<ANCHOR id="IBUS-ATTR-TYPE-BACKGROUND:CAPS" href="ibus/IBusAttribute.html#IBUS-ATTR-TYPE-BACKGROUND:CAPS">
+<ANCHOR id="IBusAttrUnderline-enum" href="ibus/IBusAttribute.html#IBusAttrUnderline-enum">
+<ANCHOR id="IBUS-ATTR-UNDERLINE-NONE:CAPS" href="ibus/IBusAttribute.html#IBUS-ATTR-UNDERLINE-NONE:CAPS">
+<ANCHOR id="IBUS-ATTR-UNDERLINE-SINGLE:CAPS" href="ibus/IBusAttribute.html#IBUS-ATTR-UNDERLINE-SINGLE:CAPS">
+<ANCHOR id="IBUS-ATTR-UNDERLINE-DOUBLE:CAPS" href="ibus/IBusAttribute.html#IBUS-ATTR-UNDERLINE-DOUBLE:CAPS">
+<ANCHOR id="IBUS-ATTR-UNDERLINE-LOW:CAPS" href="ibus/IBusAttribute.html#IBUS-ATTR-UNDERLINE-LOW:CAPS">
+<ANCHOR id="IBUS-ATTR-UNDERLINE-ERROR:CAPS" href="ibus/IBusAttribute.html#IBUS-ATTR-UNDERLINE-ERROR:CAPS">
+<ANCHOR id="IBusAttribute-struct" href="ibus/IBusAttribute.html#IBusAttribute-struct">
+<ANCHOR id="IBusAttributeClass" href="ibus/IBusAttribute.html#IBusAttributeClass">
+<ANCHOR id="ibus-attribute-new" href="ibus/IBusAttribute.html#ibus-attribute-new">
+<ANCHOR id="ibus-attribute-get-attr-type" href="ibus/IBusAttribute.html#ibus-attribute-get-attr-type">
+<ANCHOR id="ibus-attribute-get-value" href="ibus/IBusAttribute.html#ibus-attribute-get-value">
+<ANCHOR id="ibus-attribute-get-start-index" href="ibus/IBusAttribute.html#ibus-attribute-get-start-index">
+<ANCHOR id="ibus-attribute-get-end-index" href="ibus/IBusAttribute.html#ibus-attribute-get-end-index">
+<ANCHOR id="ibus-attr-underline-new" href="ibus/IBusAttribute.html#ibus-attr-underline-new">
+<ANCHOR id="ibus-attr-foreground-new" href="ibus/IBusAttribute.html#ibus-attr-foreground-new">
+<ANCHOR id="ibus-attr-background-new" href="ibus/IBusAttribute.html#ibus-attr-background-new">
+<ANCHOR id="IBusAttribute.see-also" href="ibus/IBusAttribute.html#IBusAttribute.see-also">
+<ANCHOR id="IBusAttrList" href="ibus/IBusAttrList.html">
+<ANCHOR id="IBusAttrList.stability-level" href="ibus/IBusAttrList.html#IBusAttrList.stability-level">
+<ANCHOR id="IBusAttrList.synopsis" href="ibus/IBusAttrList.html#IBusAttrList.synopsis">
+<ANCHOR id="IBusAttrList.object-hierarchy" href="ibus/IBusAttrList.html#IBusAttrList.object-hierarchy">
+<ANCHOR id="IBusAttrList.description" href="ibus/IBusAttrList.html#IBusAttrList.description">
+<ANCHOR id="IBusAttrList.details" href="ibus/IBusAttrList.html#IBusAttrList.details">
+<ANCHOR id="IBusAttrList-struct" href="ibus/IBusAttrList.html#IBusAttrList-struct">
+<ANCHOR id="IBusAttrListClass" href="ibus/IBusAttrList.html#IBusAttrListClass">
+<ANCHOR id="ibus-attr-list-new" href="ibus/IBusAttrList.html#ibus-attr-list-new">
+<ANCHOR id="ibus-attr-list-append" href="ibus/IBusAttrList.html#ibus-attr-list-append">
+<ANCHOR id="ibus-attr-list-get" href="ibus/IBusAttrList.html#ibus-attr-list-get">
+<ANCHOR id="IBusAttrList.see-also" href="ibus/IBusAttrList.html#IBusAttrList.see-also">
+<ANCHOR id="IBusHotkeyProfile" href="ibus/IBusHotkeyProfile.html">
+<ANCHOR id="IBusHotkeyProfile.stability-level" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfile.stability-level">
+<ANCHOR id="IBusHotkeyProfile.synopsis" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfile.synopsis">
+<ANCHOR id="IBusHotkeyProfile.object-hierarchy" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfile.object-hierarchy">
+<ANCHOR id="IBusHotkeyProfile.signals" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfile.signals">
+<ANCHOR id="IBusHotkeyProfile.description" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfile.description">
+<ANCHOR id="IBusHotkeyProfile.details" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfile.details">
+<ANCHOR id="IBusHotkeyProfile-struct" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfile-struct">
+<ANCHOR id="IBusHotkeyProfileClass" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfileClass">
+<ANCHOR id="ibus-hotkey-profile-add-hotkey" href="ibus/IBusHotkeyProfile.html#ibus-hotkey-profile-add-hotkey">
+<ANCHOR id="ibus-hotkey-profile-add-hotkey-from-string" href="ibus/IBusHotkeyProfile.html#ibus-hotkey-profile-add-hotkey-from-string">
+<ANCHOR id="ibus-hotkey-profile-remove-hotkey" href="ibus/IBusHotkeyProfile.html#ibus-hotkey-profile-remove-hotkey">
+<ANCHOR id="ibus-hotkey-profile-remove-hotkey-by-event" href="ibus/IBusHotkeyProfile.html#ibus-hotkey-profile-remove-hotkey-by-event">
+<ANCHOR id="ibus-hotkey-profile-filter-key-event" href="ibus/IBusHotkeyProfile.html#ibus-hotkey-profile-filter-key-event">
+<ANCHOR id="ibus-hotkey-profile-lookup-hotkey" href="ibus/IBusHotkeyProfile.html#ibus-hotkey-profile-lookup-hotkey">
+<ANCHOR id="IBusHotkeyProfile.signal-details" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfile.signal-details">
+<ANCHOR id="IBusHotkeyProfile-trigger" href="ibus/IBusHotkeyProfile.html#IBusHotkeyProfile-trigger">
+<ANCHOR id="IBusLookupTable" href="ibus/IBusLookupTable.html">
+<ANCHOR id="IBusLookupTable.stability-level" href="ibus/IBusLookupTable.html#IBusLookupTable.stability-level">
+<ANCHOR id="IBusLookupTable.synopsis" href="ibus/IBusLookupTable.html#IBusLookupTable.synopsis">
+<ANCHOR id="IBusLookupTable.object-hierarchy" href="ibus/IBusLookupTable.html#IBusLookupTable.object-hierarchy">
+<ANCHOR id="IBusLookupTable.description" href="ibus/IBusLookupTable.html#IBusLookupTable.description">
+<ANCHOR id="IBusLookupTable.details" href="ibus/IBusLookupTable.html#IBusLookupTable.details">
+<ANCHOR id="IBusLookupTable-struct" href="ibus/IBusLookupTable.html#IBusLookupTable-struct">
+<ANCHOR id="IBusLookupTableClass" href="ibus/IBusLookupTable.html#IBusLookupTableClass">
+<ANCHOR id="ibus-lookup-table-new" href="ibus/IBusLookupTable.html#ibus-lookup-table-new">
+<ANCHOR id="ibus-lookup-table-append-candidate" href="ibus/IBusLookupTable.html#ibus-lookup-table-append-candidate">
+<ANCHOR id="ibus-lookup-table-get-number-of-candidates" href="ibus/IBusLookupTable.html#ibus-lookup-table-get-number-of-candidates">
+<ANCHOR id="ibus-lookup-table-get-candidate" href="ibus/IBusLookupTable.html#ibus-lookup-table-get-candidate">
+<ANCHOR id="ibus-lookup-table-append-label" href="ibus/IBusLookupTable.html#ibus-lookup-table-append-label">
+<ANCHOR id="ibus-lookup-table-set-label" href="ibus/IBusLookupTable.html#ibus-lookup-table-set-label">
+<ANCHOR id="ibus-lookup-table-get-label" href="ibus/IBusLookupTable.html#ibus-lookup-table-get-label">
+<ANCHOR id="ibus-lookup-table-set-cursor-pos" href="ibus/IBusLookupTable.html#ibus-lookup-table-set-cursor-pos">
+<ANCHOR id="ibus-lookup-table-get-cursor-pos" href="ibus/IBusLookupTable.html#ibus-lookup-table-get-cursor-pos">
+<ANCHOR id="ibus-lookup-table-set-cursor-visible" href="ibus/IBusLookupTable.html#ibus-lookup-table-set-cursor-visible">
+<ANCHOR id="ibus-lookup-table-is-cursor-visible" href="ibus/IBusLookupTable.html#ibus-lookup-table-is-cursor-visible">
+<ANCHOR id="ibus-lookup-table-get-cursor-in-page" href="ibus/IBusLookupTable.html#ibus-lookup-table-get-cursor-in-page">
+<ANCHOR id="ibus-lookup-table-set-page-size" href="ibus/IBusLookupTable.html#ibus-lookup-table-set-page-size">
+<ANCHOR id="ibus-lookup-table-get-page-size" href="ibus/IBusLookupTable.html#ibus-lookup-table-get-page-size">
+<ANCHOR id="ibus-lookup-table-set-round" href="ibus/IBusLookupTable.html#ibus-lookup-table-set-round">
+<ANCHOR id="ibus-lookup-table-is-round" href="ibus/IBusLookupTable.html#ibus-lookup-table-is-round">
+<ANCHOR id="ibus-lookup-table-set-orientation" href="ibus/IBusLookupTable.html#ibus-lookup-table-set-orientation">
+<ANCHOR id="ibus-lookup-table-get-orientation" href="ibus/IBusLookupTable.html#ibus-lookup-table-get-orientation">
+<ANCHOR id="ibus-lookup-table-clear" href="ibus/IBusLookupTable.html#ibus-lookup-table-clear">
+<ANCHOR id="ibus-lookup-table-page-up" href="ibus/IBusLookupTable.html#ibus-lookup-table-page-up">
+<ANCHOR id="ibus-lookup-table-page-down" href="ibus/IBusLookupTable.html#ibus-lookup-table-page-down">
+<ANCHOR id="ibus-lookup-table-cursor-up" href="ibus/IBusLookupTable.html#ibus-lookup-table-cursor-up">
+<ANCHOR id="ibus-lookup-table-cursor-down" href="ibus/IBusLookupTable.html#ibus-lookup-table-cursor-down">
+<ANCHOR id="IBusLookupTable.see-also" href="ibus/IBusLookupTable.html#IBusLookupTable.see-also">
+<ANCHOR id="IBusPanelService" href="ibus/IBusPanelService.html">
+<ANCHOR id="IBusPanelService.stability-level" href="ibus/IBusPanelService.html#IBusPanelService.stability-level">
+<ANCHOR id="IBusPanelService.synopsis" href="ibus/IBusPanelService.html#IBusPanelService.synopsis">
+<ANCHOR id="IBusPanelService.object-hierarchy" href="ibus/IBusPanelService.html#IBusPanelService.object-hierarchy">
+<ANCHOR id="IBusPanelService.signals" href="ibus/IBusPanelService.html#IBusPanelService.signals">
+<ANCHOR id="IBusPanelService.description" href="ibus/IBusPanelService.html#IBusPanelService.description">
+<ANCHOR id="IBusPanelService.details" href="ibus/IBusPanelService.html#IBusPanelService.details">
+<ANCHOR id="IBusPanelService-struct" href="ibus/IBusPanelService.html#IBusPanelService-struct">
+<ANCHOR id="IBusPanelServiceClass" href="ibus/IBusPanelService.html#IBusPanelServiceClass">
+<ANCHOR id="ibus-panel-service-new" href="ibus/IBusPanelService.html#ibus-panel-service-new">
+<ANCHOR id="ibus-panel-service-candidate-clicked" href="ibus/IBusPanelService.html#ibus-panel-service-candidate-clicked">
+<ANCHOR id="ibus-panel-service-cursor-down" href="ibus/IBusPanelService.html#ibus-panel-service-cursor-down">
+<ANCHOR id="ibus-panel-service-cursor-up" href="ibus/IBusPanelService.html#ibus-panel-service-cursor-up">
+<ANCHOR id="ibus-panel-service-page-down" href="ibus/IBusPanelService.html#ibus-panel-service-page-down">
+<ANCHOR id="ibus-panel-service-page-up" href="ibus/IBusPanelService.html#ibus-panel-service-page-up">
+<ANCHOR id="ibus-panel-service-property-activate" href="ibus/IBusPanelService.html#ibus-panel-service-property-activate">
+<ANCHOR id="ibus-panel-service-property-show" href="ibus/IBusPanelService.html#ibus-panel-service-property-show">
+<ANCHOR id="ibus-panel-service-property-hide" href="ibus/IBusPanelService.html#ibus-panel-service-property-hide">
+<ANCHOR id="IBusPanelService.signal-details" href="ibus/IBusPanelService.html#IBusPanelService.signal-details">
+<ANCHOR id="IBusPanelService-cursor-down-lookup-table" href="ibus/IBusPanelService.html#IBusPanelService-cursor-down-lookup-table">
+<ANCHOR id="IBusPanelService-cursor-up-lookup-table" href="ibus/IBusPanelService.html#IBusPanelService-cursor-up-lookup-table">
+<ANCHOR id="IBusPanelService-destroy-context" href="ibus/IBusPanelService.html#IBusPanelService-destroy-context">
+<ANCHOR id="IBusPanelService-focus-in" href="ibus/IBusPanelService.html#IBusPanelService-focus-in">
+<ANCHOR id="IBusPanelService-focus-out" href="ibus/IBusPanelService.html#IBusPanelService-focus-out">
+<ANCHOR id="IBusPanelService-hide-auxiliary-text" href="ibus/IBusPanelService.html#IBusPanelService-hide-auxiliary-text">
+<ANCHOR id="IBusPanelService-hide-language-bar" href="ibus/IBusPanelService.html#IBusPanelService-hide-language-bar">
+<ANCHOR id="IBusPanelService-hide-lookup-table" href="ibus/IBusPanelService.html#IBusPanelService-hide-lookup-table">
+<ANCHOR id="IBusPanelService-hide-preedit-text" href="ibus/IBusPanelService.html#IBusPanelService-hide-preedit-text">
+<ANCHOR id="IBusPanelService-page-down-lookup-table" href="ibus/IBusPanelService.html#IBusPanelService-page-down-lookup-table">
+<ANCHOR id="IBusPanelService-page-up-lookup-table" href="ibus/IBusPanelService.html#IBusPanelService-page-up-lookup-table">
+<ANCHOR id="IBusPanelService-register-properties" href="ibus/IBusPanelService.html#IBusPanelService-register-properties">
+<ANCHOR id="IBusPanelService-reset" href="ibus/IBusPanelService.html#IBusPanelService-reset">
+<ANCHOR id="IBusPanelService-set-cursor-location" href="ibus/IBusPanelService.html#IBusPanelService-set-cursor-location">
+<ANCHOR id="IBusPanelService-show-auxiliary-text" href="ibus/IBusPanelService.html#IBusPanelService-show-auxiliary-text">
+<ANCHOR id="IBusPanelService-show-language-bar" href="ibus/IBusPanelService.html#IBusPanelService-show-language-bar">
+<ANCHOR id="IBusPanelService-show-lookup-table" href="ibus/IBusPanelService.html#IBusPanelService-show-lookup-table">
+<ANCHOR id="IBusPanelService-show-preedit-text" href="ibus/IBusPanelService.html#IBusPanelService-show-preedit-text">
+<ANCHOR id="IBusPanelService-start-setup" href="ibus/IBusPanelService.html#IBusPanelService-start-setup">
+<ANCHOR id="IBusPanelService-state-changed" href="ibus/IBusPanelService.html#IBusPanelService-state-changed">
+<ANCHOR id="IBusPanelService-update-auxiliary-text" href="ibus/IBusPanelService.html#IBusPanelService-update-auxiliary-text">
+<ANCHOR id="IBusPanelService-update-lookup-table" href="ibus/IBusPanelService.html#IBusPanelService-update-lookup-table">
+<ANCHOR id="IBusPanelService-update-preedit-text" href="ibus/IBusPanelService.html#IBusPanelService-update-preedit-text">
+<ANCHOR id="IBusPanelService-update-property" href="ibus/IBusPanelService.html#IBusPanelService-update-property">
+<ANCHOR id="IBusProperty" href="ibus/IBusProperty.html">
+<ANCHOR id="IBusProperty.stability-level" href="ibus/IBusProperty.html#IBusProperty.stability-level">
+<ANCHOR id="IBusProperty.synopsis" href="ibus/IBusProperty.html#IBusProperty.synopsis">
+<ANCHOR id="IBusPropType" href="ibus/IBusProperty.html#IBusPropType">
+<ANCHOR id="IBusPropState" href="ibus/IBusProperty.html#IBusPropState">
+<ANCHOR id="IBusPropList" href="ibus/IBusProperty.html#IBusPropList">
+<ANCHOR id="IBusProperty.object-hierarchy" href="ibus/IBusProperty.html#IBusProperty.object-hierarchy">
+<ANCHOR id="IBusProperty.properties" href="ibus/IBusProperty.html#IBusProperty.properties">
+<ANCHOR id="IBusProperty.description" href="ibus/IBusProperty.html#IBusProperty.description">
+<ANCHOR id="IBusProperty.details" href="ibus/IBusProperty.html#IBusProperty.details">
+<ANCHOR id="IBusPropType-enum" href="ibus/IBusProperty.html#IBusPropType-enum">
+<ANCHOR id="PROP-TYPE-NORMAL:CAPS" href="ibus/IBusProperty.html#PROP-TYPE-NORMAL:CAPS">
+<ANCHOR id="PROP-TYPE-TOGGLE:CAPS" href="ibus/IBusProperty.html#PROP-TYPE-TOGGLE:CAPS">
+<ANCHOR id="PROP-TYPE-RADIO:CAPS" href="ibus/IBusProperty.html#PROP-TYPE-RADIO:CAPS">
+<ANCHOR id="PROP-TYPE-MENU:CAPS" href="ibus/IBusProperty.html#PROP-TYPE-MENU:CAPS">
+<ANCHOR id="PROP-TYPE-SEPARATOR:CAPS" href="ibus/IBusProperty.html#PROP-TYPE-SEPARATOR:CAPS">
+<ANCHOR id="IBusPropState-enum" href="ibus/IBusProperty.html#IBusPropState-enum">
+<ANCHOR id="PROP-STATE-UNCHECKED:CAPS" href="ibus/IBusProperty.html#PROP-STATE-UNCHECKED:CAPS">
+<ANCHOR id="PROP-STATE-CHECKED:CAPS" href="ibus/IBusProperty.html#PROP-STATE-CHECKED:CAPS">
+<ANCHOR id="PROP-STATE-INCONSISTENT:CAPS" href="ibus/IBusProperty.html#PROP-STATE-INCONSISTENT:CAPS">
+<ANCHOR id="IBusProperty-struct" href="ibus/IBusProperty.html#IBusProperty-struct">
+<ANCHOR id="IBusPropertyClass" href="ibus/IBusProperty.html#IBusPropertyClass">
+<ANCHOR id="ibus-property-new" href="ibus/IBusProperty.html#ibus-property-new">
+<ANCHOR id="ibus-property-new-varargs" href="ibus/IBusProperty.html#ibus-property-new-varargs">
+<ANCHOR id="ibus-property-get-key" href="ibus/IBusProperty.html#ibus-property-get-key">
+<ANCHOR id="ibus-property-get-label" href="ibus/IBusProperty.html#ibus-property-get-label">
+<ANCHOR id="ibus-property-set-label" href="ibus/IBusProperty.html#ibus-property-set-label">
+<ANCHOR id="ibus-property-get-symbol" href="ibus/IBusProperty.html#ibus-property-get-symbol">
+<ANCHOR id="ibus-property-set-symbol" href="ibus/IBusProperty.html#ibus-property-set-symbol">
+<ANCHOR id="ibus-property-get-icon" href="ibus/IBusProperty.html#ibus-property-get-icon">
+<ANCHOR id="ibus-property-set-icon" href="ibus/IBusProperty.html#ibus-property-set-icon">
+<ANCHOR id="ibus-property-get-tooltip" href="ibus/IBusProperty.html#ibus-property-get-tooltip">
+<ANCHOR id="ibus-property-set-tooltip" href="ibus/IBusProperty.html#ibus-property-set-tooltip">
+<ANCHOR id="ibus-property-get-sensitive" href="ibus/IBusProperty.html#ibus-property-get-sensitive">
+<ANCHOR id="ibus-property-set-sensitive" href="ibus/IBusProperty.html#ibus-property-set-sensitive">
+<ANCHOR id="ibus-property-get-visible" href="ibus/IBusProperty.html#ibus-property-get-visible">
+<ANCHOR id="ibus-property-set-visible" href="ibus/IBusProperty.html#ibus-property-set-visible">
+<ANCHOR id="ibus-property-get-prop-type" href="ibus/IBusProperty.html#ibus-property-get-prop-type">
+<ANCHOR id="ibus-property-get-state" href="ibus/IBusProperty.html#ibus-property-get-state">
+<ANCHOR id="ibus-property-set-state" href="ibus/IBusProperty.html#ibus-property-set-state">
+<ANCHOR id="ibus-property-get-sub-props" href="ibus/IBusProperty.html#ibus-property-get-sub-props">
+<ANCHOR id="ibus-property-set-sub-props" href="ibus/IBusProperty.html#ibus-property-set-sub-props">
+<ANCHOR id="ibus-property-update" href="ibus/IBusProperty.html#ibus-property-update">
+<ANCHOR id="IBusPropListClass" href="ibus/IBusProperty.html#IBusPropListClass">
+<ANCHOR id="IBusPropList-struct" href="ibus/IBusProperty.html#IBusPropList-struct">
+<ANCHOR id="IBusProperty.property-details" href="ibus/IBusProperty.html#IBusProperty.property-details">
+<ANCHOR id="IBusProperty--icon" href="ibus/IBusProperty.html#IBusProperty--icon">
+<ANCHOR id="IBusProperty--key" href="ibus/IBusProperty.html#IBusProperty--key">
+<ANCHOR id="IBusProperty--label" href="ibus/IBusProperty.html#IBusProperty--label">
+<ANCHOR id="IBusProperty--prop-type" href="ibus/IBusProperty.html#IBusProperty--prop-type">
+<ANCHOR id="IBusProperty--sensitive" href="ibus/IBusProperty.html#IBusProperty--sensitive">
+<ANCHOR id="IBusProperty--state" href="ibus/IBusProperty.html#IBusProperty--state">
+<ANCHOR id="IBusProperty--sub-props" href="ibus/IBusProperty.html#IBusProperty--sub-props">
+<ANCHOR id="IBusProperty--symbol" href="ibus/IBusProperty.html#IBusProperty--symbol">
+<ANCHOR id="IBusProperty--tooltip" href="ibus/IBusProperty.html#IBusProperty--tooltip">
+<ANCHOR id="IBusProperty--visible" href="ibus/IBusProperty.html#IBusProperty--visible">
+<ANCHOR id="IBusPropList" href="ibus/IBusPropList.html">
+<ANCHOR id="IBusPropList.stability-level" href="ibus/IBusPropList.html#IBusPropList.stability-level">
+<ANCHOR id="IBusPropList.synopsis" href="ibus/IBusPropList.html#IBusPropList.synopsis">
+<ANCHOR id="IBusPropList.object-hierarchy" href="ibus/IBusPropList.html#IBusPropList.object-hierarchy">
+<ANCHOR id="IBusPropList.description" href="ibus/IBusPropList.html#IBusPropList.description">
+<ANCHOR id="IBusPropList.details" href="ibus/IBusPropList.html#IBusPropList.details">
+<ANCHOR id="IBusPropList-struct" href="ibus/IBusPropList.html#IBusPropList-struct">
+<ANCHOR id="IBusPropListClass" href="ibus/IBusPropList.html#IBusPropListClass">
+<ANCHOR id="ibus-prop-list-new" href="ibus/IBusPropList.html#ibus-prop-list-new">
+<ANCHOR id="ibus-prop-list-append" href="ibus/IBusPropList.html#ibus-prop-list-append">
+<ANCHOR id="ibus-prop-list-get" href="ibus/IBusPropList.html#ibus-prop-list-get">
+<ANCHOR id="ibus-prop-list-update-property" href="ibus/IBusPropList.html#ibus-prop-list-update-property">
+<ANCHOR id="IBusText" href="ibus/IBusText.html">
+<ANCHOR id="IBusText.synopsis" href="ibus/IBusText.html#IBusText.synopsis">
+<ANCHOR id="IBusText.object-hierarchy" href="ibus/IBusText.html#IBusText.object-hierarchy">
+<ANCHOR id="IBusText.description" href="ibus/IBusText.html#IBusText.description">
+<ANCHOR id="IBusText.details" href="ibus/IBusText.html#IBusText.details">
+<ANCHOR id="IBusText-struct" href="ibus/IBusText.html#IBusText-struct">
+<ANCHOR id="IBusTextClass" href="ibus/IBusText.html#IBusTextClass">
+<ANCHOR id="ibus-text-new-from-string" href="ibus/IBusText.html#ibus-text-new-from-string">
+<ANCHOR id="ibus-text-new-from-ucs4" href="ibus/IBusText.html#ibus-text-new-from-ucs4">
+<ANCHOR id="ibus-text-new-from-static-string" href="ibus/IBusText.html#ibus-text-new-from-static-string">
+<ANCHOR id="ibus-text-new-from-printf" href="ibus/IBusText.html#ibus-text-new-from-printf">
+<ANCHOR id="ibus-text-new-from-unichar" href="ibus/IBusText.html#ibus-text-new-from-unichar">
+<ANCHOR id="ibus-text-append-attribute" href="ibus/IBusText.html#ibus-text-append-attribute">
+<ANCHOR id="ibus-text-get-length" href="ibus/IBusText.html#ibus-text-get-length">
+<ANCHOR id="ibus-text-get-is-static" href="ibus/IBusText.html#ibus-text-get-is-static">
+<ANCHOR id="ibus-text-get-text" href="ibus/IBusText.html#ibus-text-get-text">
+<ANCHOR id="ibus-text-get-attributes" href="ibus/IBusText.html#ibus-text-get-attributes">
+<ANCHOR id="ibus-text-set-attributes" href="ibus/IBusText.html#ibus-text-set-attributes">
+<ANCHOR id="IBusText.see-also" href="ibus/IBusText.html#IBusText.see-also">
+<ANCHOR id="IBusComponent" href="ibus/IBusComponent.html">
+<ANCHOR id="IBusComponent.stability-level" href="ibus/IBusComponent.html#IBusComponent.stability-level">
+<ANCHOR id="IBusComponent.synopsis" href="ibus/IBusComponent.html#IBusComponent.synopsis">
+<ANCHOR id="IBusComponent.object-hierarchy" href="ibus/IBusComponent.html#IBusComponent.object-hierarchy">
+<ANCHOR id="IBusComponent.properties" href="ibus/IBusComponent.html#IBusComponent.properties">
+<ANCHOR id="IBusComponent.description" href="ibus/IBusComponent.html#IBusComponent.description">
+<ANCHOR id="IBusComponent.details" href="ibus/IBusComponent.html#IBusComponent.details">
+<ANCHOR id="IBusComponent-struct" href="ibus/IBusComponent.html#IBusComponent-struct">
+<ANCHOR id="IBusComponentClass" href="ibus/IBusComponent.html#IBusComponentClass">
+<ANCHOR id="ibus-component-new" href="ibus/IBusComponent.html#ibus-component-new">
+<ANCHOR id="ibus-component-new-varargs" href="ibus/IBusComponent.html#ibus-component-new-varargs">
+<ANCHOR id="ibus-component-new-from-xml-node" href="ibus/IBusComponent.html#ibus-component-new-from-xml-node">
+<ANCHOR id="ibus-component-new-from-file" href="ibus/IBusComponent.html#ibus-component-new-from-file">
+<ANCHOR id="ibus-component-get-name" href="ibus/IBusComponent.html#ibus-component-get-name">
+<ANCHOR id="ibus-component-get-description" href="ibus/IBusComponent.html#ibus-component-get-description">
+<ANCHOR id="ibus-component-get-version" href="ibus/IBusComponent.html#ibus-component-get-version">
+<ANCHOR id="ibus-component-get-license" href="ibus/IBusComponent.html#ibus-component-get-license">
+<ANCHOR id="ibus-component-get-author" href="ibus/IBusComponent.html#ibus-component-get-author">
+<ANCHOR id="ibus-component-get-homepage" href="ibus/IBusComponent.html#ibus-component-get-homepage">
+<ANCHOR id="ibus-component-get-exec" href="ibus/IBusComponent.html#ibus-component-get-exec">
+<ANCHOR id="ibus-component-get-textdomain" href="ibus/IBusComponent.html#ibus-component-get-textdomain">
+<ANCHOR id="ibus-component-add-observed-path" href="ibus/IBusComponent.html#ibus-component-add-observed-path">
+<ANCHOR id="ibus-component-add-engine" href="ibus/IBusComponent.html#ibus-component-add-engine">
+<ANCHOR id="ibus-component-get-engines" href="ibus/IBusComponent.html#ibus-component-get-engines">
+<ANCHOR id="ibus-component-output" href="ibus/IBusComponent.html#ibus-component-output">
+<ANCHOR id="ibus-component-output-engines" href="ibus/IBusComponent.html#ibus-component-output-engines">
+<ANCHOR id="ibus-component-check-modification" href="ibus/IBusComponent.html#ibus-component-check-modification">
+<ANCHOR id="ibus-component-get-observed-paths" href="ibus/IBusComponent.html#ibus-component-get-observed-paths">
+<ANCHOR id="IBusComponent.property-details" href="ibus/IBusComponent.html#IBusComponent.property-details">
+<ANCHOR id="IBusComponent--author" href="ibus/IBusComponent.html#IBusComponent--author">
+<ANCHOR id="IBusComponent--command-line" href="ibus/IBusComponent.html#IBusComponent--command-line">
+<ANCHOR id="IBusComponent--description" href="ibus/IBusComponent.html#IBusComponent--description">
+<ANCHOR id="IBusComponent--homepage" href="ibus/IBusComponent.html#IBusComponent--homepage">
+<ANCHOR id="IBusComponent--license" href="ibus/IBusComponent.html#IBusComponent--license">
+<ANCHOR id="IBusComponent--name" href="ibus/IBusComponent.html#IBusComponent--name">
+<ANCHOR id="IBusComponent--textdomain" href="ibus/IBusComponent.html#IBusComponent--textdomain">
+<ANCHOR id="IBusComponent--version" href="ibus/IBusComponent.html#IBusComponent--version">
+<ANCHOR id="IBusEngine" href="ibus/IBusEngine.html">
+<ANCHOR id="IBusEngine.stability-level" href="ibus/IBusEngine.html#IBusEngine.stability-level">
+<ANCHOR id="IBusEngine.synopsis" href="ibus/IBusEngine.html#IBusEngine.synopsis">
+<ANCHOR id="IBusEngine.object-hierarchy" href="ibus/IBusEngine.html#IBusEngine.object-hierarchy">
+<ANCHOR id="IBusEngine.properties" href="ibus/IBusEngine.html#IBusEngine.properties">
+<ANCHOR id="IBusEngine.signals" href="ibus/IBusEngine.html#IBusEngine.signals">
+<ANCHOR id="IBusEngine.description" href="ibus/IBusEngine.html#IBusEngine.description">
+<ANCHOR id="IBusEngine.details" href="ibus/IBusEngine.html#IBusEngine.details">
+<ANCHOR id="IBusEngine-struct" href="ibus/IBusEngine.html#IBusEngine-struct">
+<ANCHOR id="IBusEngineClass" href="ibus/IBusEngine.html#IBusEngineClass">
+<ANCHOR id="ibus-engine-new" href="ibus/IBusEngine.html#ibus-engine-new">
+<ANCHOR id="ibus-engine-new-with-type" href="ibus/IBusEngine.html#ibus-engine-new-with-type">
+<ANCHOR id="ibus-engine-commit-text" href="ibus/IBusEngine.html#ibus-engine-commit-text">
+<ANCHOR id="ibus-engine-update-preedit-text" href="ibus/IBusEngine.html#ibus-engine-update-preedit-text">
+<ANCHOR id="ibus-engine-update-preedit-text-with-mode" href="ibus/IBusEngine.html#ibus-engine-update-preedit-text-with-mode">
+<ANCHOR id="ibus-engine-show-preedit-text" href="ibus/IBusEngine.html#ibus-engine-show-preedit-text">
+<ANCHOR id="ibus-engine-hide-preedit-text" href="ibus/IBusEngine.html#ibus-engine-hide-preedit-text">
+<ANCHOR id="ibus-engine-update-auxiliary-text" href="ibus/IBusEngine.html#ibus-engine-update-auxiliary-text">
+<ANCHOR id="ibus-engine-show-auxiliary-text" href="ibus/IBusEngine.html#ibus-engine-show-auxiliary-text">
+<ANCHOR id="ibus-engine-hide-auxiliary-text" href="ibus/IBusEngine.html#ibus-engine-hide-auxiliary-text">
+<ANCHOR id="ibus-engine-update-lookup-table" href="ibus/IBusEngine.html#ibus-engine-update-lookup-table">
+<ANCHOR id="ibus-engine-update-lookup-table-fast" href="ibus/IBusEngine.html#ibus-engine-update-lookup-table-fast">
+<ANCHOR id="ibus-engine-show-lookup-table" href="ibus/IBusEngine.html#ibus-engine-show-lookup-table">
+<ANCHOR id="ibus-engine-hide-lookup-table" href="ibus/IBusEngine.html#ibus-engine-hide-lookup-table">
+<ANCHOR id="ibus-engine-forward-key-event" href="ibus/IBusEngine.html#ibus-engine-forward-key-event">
+<ANCHOR id="ibus-engine-register-properties" href="ibus/IBusEngine.html#ibus-engine-register-properties">
+<ANCHOR id="ibus-engine-update-property" href="ibus/IBusEngine.html#ibus-engine-update-property">
+<ANCHOR id="ibus-engine-delete-surrounding-text" href="ibus/IBusEngine.html#ibus-engine-delete-surrounding-text">
+<ANCHOR id="ibus-engine-get-surrounding-text" href="ibus/IBusEngine.html#ibus-engine-get-surrounding-text">
+<ANCHOR id="ibus-engine-get-content-type" href="ibus/IBusEngine.html#ibus-engine-get-content-type">
+<ANCHOR id="ibus-engine-get-name" href="ibus/IBusEngine.html#ibus-engine-get-name">
+<ANCHOR id="IBusEngine.property-details" href="ibus/IBusEngine.html#IBusEngine.property-details">
+<ANCHOR id="IBusEngine--engine-name" href="ibus/IBusEngine.html#IBusEngine--engine-name">
+<ANCHOR id="IBusEngine.signal-details" href="ibus/IBusEngine.html#IBusEngine.signal-details">
+<ANCHOR id="IBusEngine-cancel-hand-writing" href="ibus/IBusEngine.html#IBusEngine-cancel-hand-writing">
+<ANCHOR id="IBusEngine-candidate-clicked" href="ibus/IBusEngine.html#IBusEngine-candidate-clicked">
+<ANCHOR id="IBusEngine-cursor-down" href="ibus/IBusEngine.html#IBusEngine-cursor-down">
+<ANCHOR id="IBusEngine-cursor-up" href="ibus/IBusEngine.html#IBusEngine-cursor-up">
+<ANCHOR id="IBusEngine-disable" href="ibus/IBusEngine.html#IBusEngine-disable">
+<ANCHOR id="IBusEngine-enable" href="ibus/IBusEngine.html#IBusEngine-enable">
+<ANCHOR id="IBusEngine-focus-in" href="ibus/IBusEngine.html#IBusEngine-focus-in">
+<ANCHOR id="IBusEngine-focus-out" href="ibus/IBusEngine.html#IBusEngine-focus-out">
+<ANCHOR id="IBusEngine-page-down" href="ibus/IBusEngine.html#IBusEngine-page-down">
+<ANCHOR id="IBusEngine-page-up" href="ibus/IBusEngine.html#IBusEngine-page-up">
+<ANCHOR id="IBusEngine-process-hand-writing-event" href="ibus/IBusEngine.html#IBusEngine-process-hand-writing-event">
+<ANCHOR id="IBusEngine-process-key-event" href="ibus/IBusEngine.html#IBusEngine-process-key-event">
+<ANCHOR id="IBusEngine-property-activate" href="ibus/IBusEngine.html#IBusEngine-property-activate">
+<ANCHOR id="IBusEngine-property-hide" href="ibus/IBusEngine.html#IBusEngine-property-hide">
+<ANCHOR id="IBusEngine-property-show" href="ibus/IBusEngine.html#IBusEngine-property-show">
+<ANCHOR id="IBusEngine-reset" href="ibus/IBusEngine.html#IBusEngine-reset">
+<ANCHOR id="IBusEngine-set-capabilities" href="ibus/IBusEngine.html#IBusEngine-set-capabilities">
+<ANCHOR id="IBusEngine-set-content-type" href="ibus/IBusEngine.html#IBusEngine-set-content-type">
+<ANCHOR id="IBusEngine-set-cursor-location" href="ibus/IBusEngine.html#IBusEngine-set-cursor-location">
+<ANCHOR id="IBusEngine-set-surrounding-text" href="ibus/IBusEngine.html#IBusEngine-set-surrounding-text">
+<ANCHOR id="IBusEngineDesc" href="ibus/IBusEngineDesc.html">
+<ANCHOR id="IBusEngineDesc.stability-level" href="ibus/IBusEngineDesc.html#IBusEngineDesc.stability-level">
+<ANCHOR id="IBusEngineDesc.synopsis" href="ibus/IBusEngineDesc.html#IBusEngineDesc.synopsis">
+<ANCHOR id="IBusEngineDesc.object-hierarchy" href="ibus/IBusEngineDesc.html#IBusEngineDesc.object-hierarchy">
+<ANCHOR id="IBusEngineDesc.properties" href="ibus/IBusEngineDesc.html#IBusEngineDesc.properties">
+<ANCHOR id="IBusEngineDesc.description" href="ibus/IBusEngineDesc.html#IBusEngineDesc.description">
+<ANCHOR id="IBusEngineDesc.details" href="ibus/IBusEngineDesc.html#IBusEngineDesc.details">
+<ANCHOR id="IBusEngineDesc-struct" href="ibus/IBusEngineDesc.html#IBusEngineDesc-struct">
+<ANCHOR id="IBusEngineDescClass" href="ibus/IBusEngineDesc.html#IBusEngineDescClass">
+<ANCHOR id="ibus-engine-desc-new" href="ibus/IBusEngineDesc.html#ibus-engine-desc-new">
+<ANCHOR id="ibus-engine-desc-new-varargs" href="ibus/IBusEngineDesc.html#ibus-engine-desc-new-varargs">
+<ANCHOR id="ibus-engine-desc-new-from-xml-node" href="ibus/IBusEngineDesc.html#ibus-engine-desc-new-from-xml-node">
+<ANCHOR id="ibus-engine-desc-get-name" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-name">
+<ANCHOR id="ibus-engine-desc-get-longname" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-longname">
+<ANCHOR id="ibus-engine-desc-get-description" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-description">
+<ANCHOR id="ibus-engine-desc-get-language" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-language">
+<ANCHOR id="ibus-engine-desc-get-license" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-license">
+<ANCHOR id="ibus-engine-desc-get-author" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-author">
+<ANCHOR id="ibus-engine-desc-get-icon" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-icon">
+<ANCHOR id="ibus-engine-desc-get-layout" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-layout">
+<ANCHOR id="ibus-engine-desc-get-layout-variant" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-layout-variant">
+<ANCHOR id="ibus-engine-desc-get-layout-option" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-layout-option">
+<ANCHOR id="ibus-engine-desc-get-rank" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-rank">
+<ANCHOR id="ibus-engine-desc-get-hotkeys" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-hotkeys">
+<ANCHOR id="ibus-engine-desc-get-symbol" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-symbol">
+<ANCHOR id="ibus-engine-desc-get-setup" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-setup">
+<ANCHOR id="ibus-engine-desc-get-version" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-version">
+<ANCHOR id="ibus-engine-desc-get-textdomain" href="ibus/IBusEngineDesc.html#ibus-engine-desc-get-textdomain">
+<ANCHOR id="ibus-engine-desc-output" href="ibus/IBusEngineDesc.html#ibus-engine-desc-output">
+<ANCHOR id="IBusEngineDesc.property-details" href="ibus/IBusEngineDesc.html#IBusEngineDesc.property-details">
+<ANCHOR id="IBusEngineDesc--author" href="ibus/IBusEngineDesc.html#IBusEngineDesc--author">
+<ANCHOR id="IBusEngineDesc--description" href="ibus/IBusEngineDesc.html#IBusEngineDesc--description">
+<ANCHOR id="IBusEngineDesc--hotkeys" href="ibus/IBusEngineDesc.html#IBusEngineDesc--hotkeys">
+<ANCHOR id="IBusEngineDesc--icon" href="ibus/IBusEngineDesc.html#IBusEngineDesc--icon">
+<ANCHOR id="IBusEngineDesc--language" href="ibus/IBusEngineDesc.html#IBusEngineDesc--language">
+<ANCHOR id="IBusEngineDesc--layout" href="ibus/IBusEngineDesc.html#IBusEngineDesc--layout">
+<ANCHOR id="IBusEngineDesc--layout-option" href="ibus/IBusEngineDesc.html#IBusEngineDesc--layout-option">
+<ANCHOR id="IBusEngineDesc--layout-variant" href="ibus/IBusEngineDesc.html#IBusEngineDesc--layout-variant">
+<ANCHOR id="IBusEngineDesc--license" href="ibus/IBusEngineDesc.html#IBusEngineDesc--license">
+<ANCHOR id="IBusEngineDesc--longname" href="ibus/IBusEngineDesc.html#IBusEngineDesc--longname">
+<ANCHOR id="IBusEngineDesc--name" href="ibus/IBusEngineDesc.html#IBusEngineDesc--name">
+<ANCHOR id="IBusEngineDesc--rank" href="ibus/IBusEngineDesc.html#IBusEngineDesc--rank">
+<ANCHOR id="IBusEngineDesc--setup" href="ibus/IBusEngineDesc.html#IBusEngineDesc--setup">
+<ANCHOR id="IBusEngineDesc--symbol" href="ibus/IBusEngineDesc.html#IBusEngineDesc--symbol">
+<ANCHOR id="IBusEngineDesc--textdomain" href="ibus/IBusEngineDesc.html#IBusEngineDesc--textdomain">
+<ANCHOR id="IBusEngineDesc--version" href="ibus/IBusEngineDesc.html#IBusEngineDesc--version">
+<ANCHOR id="ibus-IBusEngineSimple" href="ibus/ibus-IBusEngineSimple.html">
+<ANCHOR id="ibus-IBusEngineSimple.synopsis" href="ibus/ibus-IBusEngineSimple.html#ibus-IBusEngineSimple.synopsis">
+<ANCHOR id="ibus-IBusEngineSimple.description" href="ibus/ibus-IBusEngineSimple.html#ibus-IBusEngineSimple.description">
+<ANCHOR id="ibus-IBusEngineSimple.details" href="ibus/ibus-IBusEngineSimple.html#ibus-IBusEngineSimple.details">
+<ANCHOR id="IBUS-MAX-COMPOSE-LEN:CAPS" href="ibus/ibus-IBusEngineSimple.html#IBUS-MAX-COMPOSE-LEN:CAPS">
+<ANCHOR id="IBusEngineSimple" href="ibus/ibus-IBusEngineSimple.html#IBusEngineSimple">
+<ANCHOR id="IBusEngineSimpleClass" href="ibus/ibus-IBusEngineSimple.html#IBusEngineSimpleClass">
+<ANCHOR id="ibus-engine-simple-add-table" href="ibus/ibus-IBusEngineSimple.html#ibus-engine-simple-add-table">
+<ANCHOR id="IBusFactory" href="ibus/IBusFactory.html">
+<ANCHOR id="IBusFactory.stability-level" href="ibus/IBusFactory.html#IBusFactory.stability-level">
+<ANCHOR id="IBusFactory.synopsis" href="ibus/IBusFactory.html#IBusFactory.synopsis">
+<ANCHOR id="IBusFactory.object-hierarchy" href="ibus/IBusFactory.html#IBusFactory.object-hierarchy">
+<ANCHOR id="IBusFactory.signals" href="ibus/IBusFactory.html#IBusFactory.signals">
+<ANCHOR id="IBusFactory.description" href="ibus/IBusFactory.html#IBusFactory.description">
+<ANCHOR id="IBusFactory.details" href="ibus/IBusFactory.html#IBusFactory.details">
+<ANCHOR id="IBusFactory-struct" href="ibus/IBusFactory.html#IBusFactory-struct">
+<ANCHOR id="IBusFactoryClass" href="ibus/IBusFactory.html#IBusFactoryClass">
+<ANCHOR id="ibus-factory-new" href="ibus/IBusFactory.html#ibus-factory-new">
+<ANCHOR id="ibus-factory-add-engine" href="ibus/IBusFactory.html#ibus-factory-add-engine">
+<ANCHOR id="ibus-factory-create-engine" href="ibus/IBusFactory.html#ibus-factory-create-engine">
+<ANCHOR id="IBusFactory.signal-details" href="ibus/IBusFactory.html#IBusFactory.signal-details">
+<ANCHOR id="IBusFactory-create-engine" href="ibus/IBusFactory.html#IBusFactory-create-engine">
+<ANCHOR id="IBusInputContext" href="ibus/IBusInputContext.html">
+<ANCHOR id="IBusInputContext.stability-level" href="ibus/IBusInputContext.html#IBusInputContext.stability-level">
+<ANCHOR id="IBusInputContext.synopsis" href="ibus/IBusInputContext.html#IBusInputContext.synopsis">
+<ANCHOR id="IBusInputContext.object-hierarchy" href="ibus/IBusInputContext.html#IBusInputContext.object-hierarchy">
+<ANCHOR id="IBusInputContext.implemented-interfaces" href="ibus/IBusInputContext.html#IBusInputContext.implemented-interfaces">
+<ANCHOR id="IBusInputContext.signals" href="ibus/IBusInputContext.html#IBusInputContext.signals">
+<ANCHOR id="IBusInputContext.description" href="ibus/IBusInputContext.html#IBusInputContext.description">
+<ANCHOR id="IBusInputContext.details" href="ibus/IBusInputContext.html#IBusInputContext.details">
+<ANCHOR id="IBusInputContext-struct" href="ibus/IBusInputContext.html#IBusInputContext-struct">
+<ANCHOR id="IBusInputContextClass" href="ibus/IBusInputContext.html#IBusInputContextClass">
+<ANCHOR id="ibus-input-context-new" href="ibus/IBusInputContext.html#ibus-input-context-new">
+<ANCHOR id="ibus-input-context-new-async" href="ibus/IBusInputContext.html#ibus-input-context-new-async">
+<ANCHOR id="ibus-input-context-new-async-finish" href="ibus/IBusInputContext.html#ibus-input-context-new-async-finish">
+<ANCHOR id="ibus-input-context-get-input-context" href="ibus/IBusInputContext.html#ibus-input-context-get-input-context">
+<ANCHOR id="ibus-input-context-get-input-context-async" href="ibus/IBusInputContext.html#ibus-input-context-get-input-context-async">
+<ANCHOR id="ibus-input-context-get-input-context-async-finish" href="ibus/IBusInputContext.html#ibus-input-context-get-input-context-async-finish">
+<ANCHOR id="ibus-input-context-process-hand-writing-event" href="ibus/IBusInputContext.html#ibus-input-context-process-hand-writing-event">
+<ANCHOR id="ibus-input-context-cancel-hand-writing" href="ibus/IBusInputContext.html#ibus-input-context-cancel-hand-writing">
+<ANCHOR id="ibus-input-context-process-key-event-async" href="ibus/IBusInputContext.html#ibus-input-context-process-key-event-async">
+<ANCHOR id="ibus-input-context-process-key-event-async-finish" href="ibus/IBusInputContext.html#ibus-input-context-process-key-event-async-finish">
+<ANCHOR id="ibus-input-context-process-key-event" href="ibus/IBusInputContext.html#ibus-input-context-process-key-event">
+<ANCHOR id="ibus-input-context-set-cursor-location" href="ibus/IBusInputContext.html#ibus-input-context-set-cursor-location">
+<ANCHOR id="ibus-input-context-set-capabilities" href="ibus/IBusInputContext.html#ibus-input-context-set-capabilities">
+<ANCHOR id="ibus-input-context-property-activate" href="ibus/IBusInputContext.html#ibus-input-context-property-activate">
+<ANCHOR id="ibus-input-context-focus-in" href="ibus/IBusInputContext.html#ibus-input-context-focus-in">
+<ANCHOR id="ibus-input-context-focus-out" href="ibus/IBusInputContext.html#ibus-input-context-focus-out">
+<ANCHOR id="ibus-input-context-reset" href="ibus/IBusInputContext.html#ibus-input-context-reset">
+<ANCHOR id="ibus-input-context-get-engine-async" href="ibus/IBusInputContext.html#ibus-input-context-get-engine-async">
+<ANCHOR id="ibus-input-context-get-engine-async-finish" href="ibus/IBusInputContext.html#ibus-input-context-get-engine-async-finish">
+<ANCHOR id="ibus-input-context-get-engine" href="ibus/IBusInputContext.html#ibus-input-context-get-engine">
+<ANCHOR id="ibus-input-context-set-engine" href="ibus/IBusInputContext.html#ibus-input-context-set-engine">
+<ANCHOR id="ibus-input-context-set-surrounding-text" href="ibus/IBusInputContext.html#ibus-input-context-set-surrounding-text">
+<ANCHOR id="ibus-input-context-needs-surrounding-text" href="ibus/IBusInputContext.html#ibus-input-context-needs-surrounding-text">
+<ANCHOR id="ibus-input-context-set-content-type" href="ibus/IBusInputContext.html#ibus-input-context-set-content-type">
+<ANCHOR id="IBusInputContext.signal-details" href="ibus/IBusInputContext.html#IBusInputContext.signal-details">
+<ANCHOR id="IBusInputContext-commit-text" href="ibus/IBusInputContext.html#IBusInputContext-commit-text">
+<ANCHOR id="IBusInputContext-cursor-down-lookup-table" href="ibus/IBusInputContext.html#IBusInputContext-cursor-down-lookup-table">
+<ANCHOR id="IBusInputContext-cursor-up-lookup-table" href="ibus/IBusInputContext.html#IBusInputContext-cursor-up-lookup-table">
+<ANCHOR id="IBusInputContext-delete-surrounding-text" href="ibus/IBusInputContext.html#IBusInputContext-delete-surrounding-text">
+<ANCHOR id="IBusInputContext-disabled" href="ibus/IBusInputContext.html#IBusInputContext-disabled">
+<ANCHOR id="IBusInputContext-enabled" href="ibus/IBusInputContext.html#IBusInputContext-enabled">
+<ANCHOR id="IBusInputContext-forward-key-event" href="ibus/IBusInputContext.html#IBusInputContext-forward-key-event">
+<ANCHOR id="IBusInputContext-hide-auxiliary-text" href="ibus/IBusInputContext.html#IBusInputContext-hide-auxiliary-text">
+<ANCHOR id="IBusInputContext-hide-lookup-table" href="ibus/IBusInputContext.html#IBusInputContext-hide-lookup-table">
+<ANCHOR id="IBusInputContext-hide-preedit-text" href="ibus/IBusInputContext.html#IBusInputContext-hide-preedit-text">
+<ANCHOR id="IBusInputContext-page-down-lookup-table" href="ibus/IBusInputContext.html#IBusInputContext-page-down-lookup-table">
+<ANCHOR id="IBusInputContext-page-up-lookup-table" href="ibus/IBusInputContext.html#IBusInputContext-page-up-lookup-table">
+<ANCHOR id="IBusInputContext-register-properties" href="ibus/IBusInputContext.html#IBusInputContext-register-properties">
+<ANCHOR id="IBusInputContext-show-auxiliary-text" href="ibus/IBusInputContext.html#IBusInputContext-show-auxiliary-text">
+<ANCHOR id="IBusInputContext-show-lookup-table" href="ibus/IBusInputContext.html#IBusInputContext-show-lookup-table">
+<ANCHOR id="IBusInputContext-show-preedit-text" href="ibus/IBusInputContext.html#IBusInputContext-show-preedit-text">
+<ANCHOR id="IBusInputContext-update-auxiliary-text" href="ibus/IBusInputContext.html#IBusInputContext-update-auxiliary-text">
+<ANCHOR id="IBusInputContext-update-lookup-table" href="ibus/IBusInputContext.html#IBusInputContext-update-lookup-table">
+<ANCHOR id="IBusInputContext-update-preedit-text" href="ibus/IBusInputContext.html#IBusInputContext-update-preedit-text">
+<ANCHOR id="IBusInputContext-update-property" href="ibus/IBusInputContext.html#IBusInputContext-update-property">
+<ANCHOR id="ibus-ibuskeys" href="ibus/ibus-ibuskeys.html">
+<ANCHOR id="ibus-ibuskeys.synopsis" href="ibus/ibus-ibuskeys.html#ibus-ibuskeys.synopsis">
+<ANCHOR id="ibus-ibuskeys.description" href="ibus/ibus-ibuskeys.html#ibus-ibuskeys.description">
+<ANCHOR id="ibus-ibuskeys.details" href="ibus/ibus-ibuskeys.html#ibus-ibuskeys.details">
+<ANCHOR id="ibus-keyval-name" href="ibus/ibus-ibuskeys.html#ibus-keyval-name">
+<ANCHOR id="ibus-keyval-from-name" href="ibus/ibus-ibuskeys.html#ibus-keyval-from-name">
+<ANCHOR id="ibus-unicode-to-keyval" href="ibus/ibus-ibuskeys.html#ibus-unicode-to-keyval">
+<ANCHOR id="ibus-keyval-to-unicode" href="ibus/ibus-ibuskeys.html#ibus-keyval-to-unicode">
+<ANCHOR id="IBusKeymap" href="ibus/IBusKeymap.html">
+<ANCHOR id="IBusKeymap.stability-level" href="ibus/IBusKeymap.html#IBusKeymap.stability-level">
+<ANCHOR id="IBusKeymap.synopsis" href="ibus/IBusKeymap.html#IBusKeymap.synopsis">
+<ANCHOR id="IBusKeymap.object-hierarchy" href="ibus/IBusKeymap.html#IBusKeymap.object-hierarchy">
+<ANCHOR id="IBusKeymap.description" href="ibus/IBusKeymap.html#IBusKeymap.description">
+<ANCHOR id="IBusKeymap.details" href="ibus/IBusKeymap.html#IBusKeymap.details">
+<ANCHOR id="IBusKeymap-struct" href="ibus/IBusKeymap.html#IBusKeymap-struct">
+<ANCHOR id="IBusKeymapClass" href="ibus/IBusKeymap.html#IBusKeymapClass">
+<ANCHOR id="ibus-keymap-new" href="ibus/IBusKeymap.html#ibus-keymap-new">
+<ANCHOR id="ibus-keymap-get" href="ibus/IBusKeymap.html#ibus-keymap-get">
+<ANCHOR id="ibus-keymap-lookup-keysym" href="ibus/IBusKeymap.html#ibus-keymap-lookup-keysym">
+<ANCHOR id="ibus-ibuskeysyms-compat" href="ibus/ibus-ibuskeysyms-compat.html">
+<ANCHOR id="ibus-ibuskeysyms-compat.synopsis" href="ibus/ibus-ibuskeysyms-compat.html#ibus-ibuskeysyms-compat.synopsis">
+<ANCHOR id="ibus-ibuskeysyms-compat.description" href="ibus/ibus-ibuskeysyms-compat.html#ibus-ibuskeysyms-compat.description">
+<ANCHOR id="ibus-ibuskeysyms-compat.details" href="ibus/ibus-ibuskeysyms-compat.html#ibus-ibuskeysyms-compat.details">
+<ANCHOR id="IBUS-VoidSymbol" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-VoidSymbol">
+<ANCHOR id="IBUS-BackSpace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-BackSpace">
+<ANCHOR id="IBUS-Tab" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Tab">
+<ANCHOR id="IBUS-Linefeed" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Linefeed">
+<ANCHOR id="IBUS-Clear" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Clear">
+<ANCHOR id="IBUS-Return" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Return">
+<ANCHOR id="IBUS-Pause" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pause">
+<ANCHOR id="IBUS-Scroll-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Scroll-Lock">
+<ANCHOR id="IBUS-Sys-Req" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Sys-Req">
+<ANCHOR id="IBUS-Escape" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Escape">
+<ANCHOR id="IBUS-Delete" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Delete">
+<ANCHOR id="IBUS-Multi-key" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Multi-key">
+<ANCHOR id="IBUS-Codeinput" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Codeinput">
+<ANCHOR id="IBUS-SingleCandidate" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-SingleCandidate">
+<ANCHOR id="IBUS-MultipleCandidate" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-MultipleCandidate">
+<ANCHOR id="IBUS-PreviousCandidate" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-PreviousCandidate">
+<ANCHOR id="IBUS-Kanji" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Kanji">
+<ANCHOR id="IBUS-Muhenkan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Muhenkan">
+<ANCHOR id="IBUS-Henkan-Mode" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Henkan-Mode">
+<ANCHOR id="IBUS-Henkan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Henkan">
+<ANCHOR id="IBUS-Romaji" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Romaji">
+<ANCHOR id="IBUS-Hiragana" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hiragana">
+<ANCHOR id="IBUS-Katakana" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Katakana">
+<ANCHOR id="IBUS-Hiragana-Katakana" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hiragana-Katakana">
+<ANCHOR id="IBUS-Zenkaku" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Zenkaku">
+<ANCHOR id="IBUS-Hankaku" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hankaku">
+<ANCHOR id="IBUS-Zenkaku-Hankaku" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Zenkaku-Hankaku">
+<ANCHOR id="IBUS-Touroku" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Touroku">
+<ANCHOR id="IBUS-Massyo" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Massyo">
+<ANCHOR id="IBUS-Kana-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Kana-Lock">
+<ANCHOR id="IBUS-Kana-Shift" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Kana-Shift">
+<ANCHOR id="IBUS-Eisu-Shift" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Eisu-Shift">
+<ANCHOR id="IBUS-Eisu-toggle" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Eisu-toggle">
+<ANCHOR id="IBUS-Kanji-Bangou" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Kanji-Bangou">
+<ANCHOR id="IBUS-Zen-Koho" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Zen-Koho">
+<ANCHOR id="IBUS-Mae-Koho" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Mae-Koho">
+<ANCHOR id="IBUS-Home" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Home">
+<ANCHOR id="IBUS-Left" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Left">
+<ANCHOR id="IBUS-Up" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Up">
+<ANCHOR id="IBUS-Right" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Right">
+<ANCHOR id="IBUS-Down" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Down">
+<ANCHOR id="IBUS-Prior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Prior">
+<ANCHOR id="IBUS-Page-Up" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Page-Up">
+<ANCHOR id="IBUS-Next" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Next">
+<ANCHOR id="IBUS-Page-Down" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Page-Down">
+<ANCHOR id="IBUS-End" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-End">
+<ANCHOR id="IBUS-Begin" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Begin">
+<ANCHOR id="IBUS-Select" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Select">
+<ANCHOR id="IBUS-Print" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Print">
+<ANCHOR id="IBUS-Execute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Execute">
+<ANCHOR id="IBUS-Insert" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Insert">
+<ANCHOR id="IBUS-Undo" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Undo">
+<ANCHOR id="IBUS-Redo" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Redo">
+<ANCHOR id="IBUS-Menu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Menu">
+<ANCHOR id="IBUS-Find" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Find">
+<ANCHOR id="IBUS-Cancel" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cancel">
+<ANCHOR id="IBUS-Help" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Help">
+<ANCHOR id="IBUS-Break" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Break">
+<ANCHOR id="IBUS-Mode-switch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Mode-switch">
+<ANCHOR id="IBUS-script-switch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-script-switch">
+<ANCHOR id="IBUS-Num-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Num-Lock">
+<ANCHOR id="IBUS-KP-Space" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Space">
+<ANCHOR id="IBUS-KP-Tab" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Tab">
+<ANCHOR id="IBUS-KP-Enter" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Enter">
+<ANCHOR id="IBUS-KP-F1:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-F1:CAPS">
+<ANCHOR id="IBUS-KP-F2:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-F2:CAPS">
+<ANCHOR id="IBUS-KP-F3:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-F3:CAPS">
+<ANCHOR id="IBUS-KP-F4:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-F4:CAPS">
+<ANCHOR id="IBUS-KP-Home" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Home">
+<ANCHOR id="IBUS-KP-Left" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Left">
+<ANCHOR id="IBUS-KP-Up" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Up">
+<ANCHOR id="IBUS-KP-Right" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Right">
+<ANCHOR id="IBUS-KP-Down" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Down">
+<ANCHOR id="IBUS-KP-Prior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Prior">
+<ANCHOR id="IBUS-KP-Page-Up" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Page-Up">
+<ANCHOR id="IBUS-KP-Next" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Next">
+<ANCHOR id="IBUS-KP-Page-Down" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Page-Down">
+<ANCHOR id="IBUS-KP-End" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-End">
+<ANCHOR id="IBUS-KP-Begin" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Begin">
+<ANCHOR id="IBUS-KP-Insert" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Insert">
+<ANCHOR id="IBUS-KP-Delete" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Delete">
+<ANCHOR id="IBUS-KP-Equal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Equal">
+<ANCHOR id="IBUS-KP-Multiply" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Multiply">
+<ANCHOR id="IBUS-KP-Add" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Add">
+<ANCHOR id="IBUS-KP-Separator" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Separator">
+<ANCHOR id="IBUS-KP-Subtract" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Subtract">
+<ANCHOR id="IBUS-KP-Decimal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Decimal">
+<ANCHOR id="IBUS-KP-Divide" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-Divide">
+<ANCHOR id="IBUS-KP-0:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-0:CAPS">
+<ANCHOR id="IBUS-KP-1:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-1:CAPS">
+<ANCHOR id="IBUS-KP-2:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-2:CAPS">
+<ANCHOR id="IBUS-KP-3:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-3:CAPS">
+<ANCHOR id="IBUS-KP-4:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-4:CAPS">
+<ANCHOR id="IBUS-KP-5:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-5:CAPS">
+<ANCHOR id="IBUS-KP-6:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-6:CAPS">
+<ANCHOR id="IBUS-KP-7:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-7:CAPS">
+<ANCHOR id="IBUS-KP-8:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-8:CAPS">
+<ANCHOR id="IBUS-KP-9:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-KP-9:CAPS">
+<ANCHOR id="IBUS-F1:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F1:CAPS">
+<ANCHOR id="IBUS-F2:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F2:CAPS">
+<ANCHOR id="IBUS-F3:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F3:CAPS">
+<ANCHOR id="IBUS-F4:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F4:CAPS">
+<ANCHOR id="IBUS-F5:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F5:CAPS">
+<ANCHOR id="IBUS-F6:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F6:CAPS">
+<ANCHOR id="IBUS-F7:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F7:CAPS">
+<ANCHOR id="IBUS-F8:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F8:CAPS">
+<ANCHOR id="IBUS-F9:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F9:CAPS">
+<ANCHOR id="IBUS-F10:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F10:CAPS">
+<ANCHOR id="IBUS-F11:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F11:CAPS">
+<ANCHOR id="IBUS-L1:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L1:CAPS">
+<ANCHOR id="IBUS-F12:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F12:CAPS">
+<ANCHOR id="IBUS-L2:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L2:CAPS">
+<ANCHOR id="IBUS-F13:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F13:CAPS">
+<ANCHOR id="IBUS-L3:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L3:CAPS">
+<ANCHOR id="IBUS-F14:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F14:CAPS">
+<ANCHOR id="IBUS-L4:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L4:CAPS">
+<ANCHOR id="IBUS-F15:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F15:CAPS">
+<ANCHOR id="IBUS-L5:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L5:CAPS">
+<ANCHOR id="IBUS-F16:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F16:CAPS">
+<ANCHOR id="IBUS-L6:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L6:CAPS">
+<ANCHOR id="IBUS-F17:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F17:CAPS">
+<ANCHOR id="IBUS-L7:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L7:CAPS">
+<ANCHOR id="IBUS-F18:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F18:CAPS">
+<ANCHOR id="IBUS-L8:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L8:CAPS">
+<ANCHOR id="IBUS-F19:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F19:CAPS">
+<ANCHOR id="IBUS-L9:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L9:CAPS">
+<ANCHOR id="IBUS-F20:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F20:CAPS">
+<ANCHOR id="IBUS-L10:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L10:CAPS">
+<ANCHOR id="IBUS-F21:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F21:CAPS">
+<ANCHOR id="IBUS-R1:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R1:CAPS">
+<ANCHOR id="IBUS-F22:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F22:CAPS">
+<ANCHOR id="IBUS-R2:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R2:CAPS">
+<ANCHOR id="IBUS-F23:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F23:CAPS">
+<ANCHOR id="IBUS-R3:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R3:CAPS">
+<ANCHOR id="IBUS-F24:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F24:CAPS">
+<ANCHOR id="IBUS-R4:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R4:CAPS">
+<ANCHOR id="IBUS-F25:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F25:CAPS">
+<ANCHOR id="IBUS-R5:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R5:CAPS">
+<ANCHOR id="IBUS-F26:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F26:CAPS">
+<ANCHOR id="IBUS-R6:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R6:CAPS">
+<ANCHOR id="IBUS-F27:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F27:CAPS">
+<ANCHOR id="IBUS-R7:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R7:CAPS">
+<ANCHOR id="IBUS-F28:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F28:CAPS">
+<ANCHOR id="IBUS-R8:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R8:CAPS">
+<ANCHOR id="IBUS-F29:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F29:CAPS">
+<ANCHOR id="IBUS-R9:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R9:CAPS">
+<ANCHOR id="IBUS-F30:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F30:CAPS">
+<ANCHOR id="IBUS-R10:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R10:CAPS">
+<ANCHOR id="IBUS-F31:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F31:CAPS">
+<ANCHOR id="IBUS-R11:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R11:CAPS">
+<ANCHOR id="IBUS-F32:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F32:CAPS">
+<ANCHOR id="IBUS-R12:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R12:CAPS">
+<ANCHOR id="IBUS-F33:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F33:CAPS">
+<ANCHOR id="IBUS-R13:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R13:CAPS">
+<ANCHOR id="IBUS-F34:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F34:CAPS">
+<ANCHOR id="IBUS-R14:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R14:CAPS">
+<ANCHOR id="IBUS-F35:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F35:CAPS">
+<ANCHOR id="IBUS-R15:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R15:CAPS">
+<ANCHOR id="IBUS-Shift-L" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Shift-L">
+<ANCHOR id="IBUS-Shift-R" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Shift-R">
+<ANCHOR id="IBUS-Control-L" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Control-L">
+<ANCHOR id="IBUS-Control-R" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Control-R">
+<ANCHOR id="IBUS-Caps-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Caps-Lock">
+<ANCHOR id="IBUS-Shift-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Shift-Lock">
+<ANCHOR id="IBUS-Meta-L" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Meta-L">
+<ANCHOR id="IBUS-Meta-R" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Meta-R">
+<ANCHOR id="IBUS-Alt-L" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Alt-L">
+<ANCHOR id="IBUS-Alt-R" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Alt-R">
+<ANCHOR id="IBUS-Super-L" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Super-L">
+<ANCHOR id="IBUS-Super-R" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Super-R">
+<ANCHOR id="IBUS-Hyper-L" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hyper-L">
+<ANCHOR id="IBUS-Hyper-R" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hyper-R">
+<ANCHOR id="IBUS-ISO-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Lock">
+<ANCHOR id="IBUS-ISO-Level2-Latch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Level2-Latch">
+<ANCHOR id="IBUS-ISO-Level3-Shift" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Shift">
+<ANCHOR id="IBUS-ISO-Level3-Latch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Latch">
+<ANCHOR id="IBUS-ISO-Level3-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Level3-Lock">
+<ANCHOR id="IBUS-ISO-Level5-Shift" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Shift">
+<ANCHOR id="IBUS-ISO-Level5-Latch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Latch">
+<ANCHOR id="IBUS-ISO-Level5-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Level5-Lock">
+<ANCHOR id="IBUS-ISO-Group-Shift" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Shift">
+<ANCHOR id="IBUS-ISO-Group-Latch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Latch">
+<ANCHOR id="IBUS-ISO-Group-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Group-Lock">
+<ANCHOR id="IBUS-ISO-Next-Group" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Next-Group">
+<ANCHOR id="IBUS-ISO-Next-Group-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Next-Group-Lock">
+<ANCHOR id="IBUS-ISO-Prev-Group" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Prev-Group">
+<ANCHOR id="IBUS-ISO-Prev-Group-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Prev-Group-Lock">
+<ANCHOR id="IBUS-ISO-First-Group" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-First-Group">
+<ANCHOR id="IBUS-ISO-First-Group-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-First-Group-Lock">
+<ANCHOR id="IBUS-ISO-Last-Group" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Last-Group">
+<ANCHOR id="IBUS-ISO-Last-Group-Lock" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Last-Group-Lock">
+<ANCHOR id="IBUS-ISO-Left-Tab" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Left-Tab">
+<ANCHOR id="IBUS-ISO-Move-Line-Up" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Move-Line-Up">
+<ANCHOR id="IBUS-ISO-Move-Line-Down" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Move-Line-Down">
+<ANCHOR id="IBUS-ISO-Partial-Line-Up" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Line-Up">
+<ANCHOR id="IBUS-ISO-Partial-Line-Down" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Line-Down">
+<ANCHOR id="IBUS-ISO-Partial-Space-Left" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Space-Left">
+<ANCHOR id="IBUS-ISO-Partial-Space-Right" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Partial-Space-Right">
+<ANCHOR id="IBUS-ISO-Set-Margin-Left" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Set-Margin-Left">
+<ANCHOR id="IBUS-ISO-Set-Margin-Right" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Set-Margin-Right">
+<ANCHOR id="IBUS-ISO-Release-Margin-Left" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Margin-Left">
+<ANCHOR id="IBUS-ISO-Release-Margin-Right" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Margin-Right">
+<ANCHOR id="IBUS-ISO-Release-Both-Margins" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Release-Both-Margins">
+<ANCHOR id="IBUS-ISO-Fast-Cursor-Left" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Left">
+<ANCHOR id="IBUS-ISO-Fast-Cursor-Right" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Right">
+<ANCHOR id="IBUS-ISO-Fast-Cursor-Up" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Up">
+<ANCHOR id="IBUS-ISO-Fast-Cursor-Down" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Fast-Cursor-Down">
+<ANCHOR id="IBUS-ISO-Continuous-Underline" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Continuous-Underline">
+<ANCHOR id="IBUS-ISO-Discontinuous-Underline" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Discontinuous-Underline">
+<ANCHOR id="IBUS-ISO-Emphasize" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Emphasize">
+<ANCHOR id="IBUS-ISO-Center-Object" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Center-Object">
+<ANCHOR id="IBUS-ISO-Enter" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ISO-Enter">
+<ANCHOR id="IBUS-dead-grave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-grave">
+<ANCHOR id="IBUS-dead-acute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-acute">
+<ANCHOR id="IBUS-dead-circumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-circumflex">
+<ANCHOR id="IBUS-dead-tilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-tilde">
+<ANCHOR id="IBUS-dead-perispomeni" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-perispomeni">
+<ANCHOR id="IBUS-dead-macron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-macron">
+<ANCHOR id="IBUS-dead-breve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-breve">
+<ANCHOR id="IBUS-dead-abovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-abovedot">
+<ANCHOR id="IBUS-dead-diaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-diaeresis">
+<ANCHOR id="IBUS-dead-abovering" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-abovering">
+<ANCHOR id="IBUS-dead-doubleacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-doubleacute">
+<ANCHOR id="IBUS-dead-caron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-caron">
+<ANCHOR id="IBUS-dead-cedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-cedilla">
+<ANCHOR id="IBUS-dead-ogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-ogonek">
+<ANCHOR id="IBUS-dead-iota" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-iota">
+<ANCHOR id="IBUS-dead-voiced-sound" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-voiced-sound">
+<ANCHOR id="IBUS-dead-semivoiced-sound" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-semivoiced-sound">
+<ANCHOR id="IBUS-dead-belowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-belowdot">
+<ANCHOR id="IBUS-dead-hook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-hook">
+<ANCHOR id="IBUS-dead-horn" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-horn">
+<ANCHOR id="IBUS-dead-stroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-stroke">
+<ANCHOR id="IBUS-dead-abovecomma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-abovecomma">
+<ANCHOR id="IBUS-dead-psili" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-psili">
+<ANCHOR id="IBUS-dead-abovereversedcomma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-abovereversedcomma">
+<ANCHOR id="IBUS-dead-dasia" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-dasia">
+<ANCHOR id="IBUS-dead-belowring" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-belowring">
+<ANCHOR id="IBUS-dead-belowmacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-belowmacron">
+<ANCHOR id="IBUS-dead-belowcircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-belowcircumflex">
+<ANCHOR id="IBUS-dead-belowtilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-belowtilde">
+<ANCHOR id="IBUS-dead-belowbreve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-belowbreve">
+<ANCHOR id="IBUS-dead-belowdiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dead-belowdiaeresis">
+<ANCHOR id="IBUS-First-Virtual-Screen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-First-Virtual-Screen">
+<ANCHOR id="IBUS-Prev-Virtual-Screen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Prev-Virtual-Screen">
+<ANCHOR id="IBUS-Next-Virtual-Screen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Next-Virtual-Screen">
+<ANCHOR id="IBUS-Last-Virtual-Screen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Last-Virtual-Screen">
+<ANCHOR id="IBUS-Terminate-Server" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Terminate-Server">
+<ANCHOR id="IBUS-AccessX-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-AccessX-Enable">
+<ANCHOR id="IBUS-AccessX-Feedback-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-AccessX-Feedback-Enable">
+<ANCHOR id="IBUS-RepeatKeys-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-RepeatKeys-Enable">
+<ANCHOR id="IBUS-SlowKeys-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-SlowKeys-Enable">
+<ANCHOR id="IBUS-BounceKeys-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-BounceKeys-Enable">
+<ANCHOR id="IBUS-StickyKeys-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-StickyKeys-Enable">
+<ANCHOR id="IBUS-MouseKeys-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-MouseKeys-Enable">
+<ANCHOR id="IBUS-MouseKeys-Accel-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-MouseKeys-Accel-Enable">
+<ANCHOR id="IBUS-Overlay1-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Overlay1-Enable">
+<ANCHOR id="IBUS-Overlay2-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Overlay2-Enable">
+<ANCHOR id="IBUS-AudibleBell-Enable" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-AudibleBell-Enable">
+<ANCHOR id="IBUS-Pointer-Left" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Left">
+<ANCHOR id="IBUS-Pointer-Right" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Right">
+<ANCHOR id="IBUS-Pointer-Up" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Up">
+<ANCHOR id="IBUS-Pointer-Down" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Down">
+<ANCHOR id="IBUS-Pointer-UpLeft" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-UpLeft">
+<ANCHOR id="IBUS-Pointer-UpRight" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-UpRight">
+<ANCHOR id="IBUS-Pointer-DownLeft" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DownLeft">
+<ANCHOR id="IBUS-Pointer-DownRight" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DownRight">
+<ANCHOR id="IBUS-Pointer-Button-Dflt" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button-Dflt">
+<ANCHOR id="IBUS-Pointer-Button1" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button1">
+<ANCHOR id="IBUS-Pointer-Button2" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button2">
+<ANCHOR id="IBUS-Pointer-Button3" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button3">
+<ANCHOR id="IBUS-Pointer-Button4" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button4">
+<ANCHOR id="IBUS-Pointer-Button5" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Button5">
+<ANCHOR id="IBUS-Pointer-DblClick-Dflt" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick-Dflt">
+<ANCHOR id="IBUS-Pointer-DblClick1" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick1">
+<ANCHOR id="IBUS-Pointer-DblClick2" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick2">
+<ANCHOR id="IBUS-Pointer-DblClick3" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick3">
+<ANCHOR id="IBUS-Pointer-DblClick4" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick4">
+<ANCHOR id="IBUS-Pointer-DblClick5" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DblClick5">
+<ANCHOR id="IBUS-Pointer-Drag-Dflt" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag-Dflt">
+<ANCHOR id="IBUS-Pointer-Drag1" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag1">
+<ANCHOR id="IBUS-Pointer-Drag2" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag2">
+<ANCHOR id="IBUS-Pointer-Drag3" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag3">
+<ANCHOR id="IBUS-Pointer-Drag4" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag4">
+<ANCHOR id="IBUS-Pointer-Drag5" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Drag5">
+<ANCHOR id="IBUS-Pointer-EnableKeys" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-EnableKeys">
+<ANCHOR id="IBUS-Pointer-Accelerate" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-Accelerate">
+<ANCHOR id="IBUS-Pointer-DfltBtnNext" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DfltBtnNext">
+<ANCHOR id="IBUS-Pointer-DfltBtnPrev" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pointer-DfltBtnPrev">
+<ANCHOR id="IBUS-3270-Duplicate" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Duplicate">
+<ANCHOR id="IBUS-3270-FieldMark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-FieldMark">
+<ANCHOR id="IBUS-3270-Right2" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Right2">
+<ANCHOR id="IBUS-3270-Left2" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Left2">
+<ANCHOR id="IBUS-3270-BackTab" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-BackTab">
+<ANCHOR id="IBUS-3270-EraseEOF" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-EraseEOF">
+<ANCHOR id="IBUS-3270-EraseInput" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-EraseInput">
+<ANCHOR id="IBUS-3270-Reset" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Reset">
+<ANCHOR id="IBUS-3270-Quit" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Quit">
+<ANCHOR id="IBUS-3270-PA1:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-PA1:CAPS">
+<ANCHOR id="IBUS-3270-PA2:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-PA2:CAPS">
+<ANCHOR id="IBUS-3270-PA3:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-PA3:CAPS">
+<ANCHOR id="IBUS-3270-Test" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Test">
+<ANCHOR id="IBUS-3270-Attn" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Attn">
+<ANCHOR id="IBUS-3270-CursorBlink" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-CursorBlink">
+<ANCHOR id="IBUS-3270-AltCursor" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-AltCursor">
+<ANCHOR id="IBUS-3270-KeyClick" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-KeyClick">
+<ANCHOR id="IBUS-3270-Jump" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Jump">
+<ANCHOR id="IBUS-3270-Ident" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Ident">
+<ANCHOR id="IBUS-3270-Rule" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Rule">
+<ANCHOR id="IBUS-3270-Copy" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Copy">
+<ANCHOR id="IBUS-3270-Play" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Play">
+<ANCHOR id="IBUS-3270-Setup" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Setup">
+<ANCHOR id="IBUS-3270-Record" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Record">
+<ANCHOR id="IBUS-3270-ChangeScreen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-ChangeScreen">
+<ANCHOR id="IBUS-3270-DeleteWord" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-DeleteWord">
+<ANCHOR id="IBUS-3270-ExSelect" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-ExSelect">
+<ANCHOR id="IBUS-3270-CursorSelect" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-CursorSelect">
+<ANCHOR id="IBUS-3270-PrintScreen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-PrintScreen">
+<ANCHOR id="IBUS-3270-Enter" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3270-Enter">
+<ANCHOR id="IBUS-space" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-space">
+<ANCHOR id="IBUS-exclam" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-exclam">
+<ANCHOR id="IBUS-quotedbl" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-quotedbl">
+<ANCHOR id="IBUS-numbersign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-numbersign">
+<ANCHOR id="IBUS-dollar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dollar">
+<ANCHOR id="IBUS-percent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-percent">
+<ANCHOR id="IBUS-ampersand" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ampersand">
+<ANCHOR id="IBUS-apostrophe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-apostrophe">
+<ANCHOR id="IBUS-quoteright" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-quoteright">
+<ANCHOR id="IBUS-parenleft" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-parenleft">
+<ANCHOR id="IBUS-parenright" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-parenright">
+<ANCHOR id="IBUS-asterisk" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-asterisk">
+<ANCHOR id="IBUS-plus" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-plus">
+<ANCHOR id="IBUS-comma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-comma">
+<ANCHOR id="IBUS-minus" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-minus">
+<ANCHOR id="IBUS-period" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-period">
+<ANCHOR id="IBUS-slash" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-slash">
+<ANCHOR id="IBUS-0:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-0:CAPS">
+<ANCHOR id="IBUS-1:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-1:CAPS">
+<ANCHOR id="IBUS-2:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-2:CAPS">
+<ANCHOR id="IBUS-3:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-3:CAPS">
+<ANCHOR id="IBUS-4:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-4:CAPS">
+<ANCHOR id="IBUS-5:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-5:CAPS">
+<ANCHOR id="IBUS-6:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-6:CAPS">
+<ANCHOR id="IBUS-7:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-7:CAPS">
+<ANCHOR id="IBUS-8:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-8:CAPS">
+<ANCHOR id="IBUS-9:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-9:CAPS">
+<ANCHOR id="IBUS-colon" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-colon">
+<ANCHOR id="IBUS-semicolon" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-semicolon">
+<ANCHOR id="IBUS-less" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-less">
+<ANCHOR id="IBUS-equal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-equal">
+<ANCHOR id="IBUS-greater" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-greater">
+<ANCHOR id="IBUS-question" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-question">
+<ANCHOR id="IBUS-at" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-at">
+<ANCHOR id="IBUS-A:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-A:CAPS">
+<ANCHOR id="IBUS-B:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-B:CAPS">
+<ANCHOR id="IBUS-C:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-C:CAPS">
+<ANCHOR id="IBUS-D:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-D:CAPS">
+<ANCHOR id="IBUS-E:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-E:CAPS">
+<ANCHOR id="IBUS-F:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-F:CAPS">
+<ANCHOR id="IBUS-G:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-G:CAPS">
+<ANCHOR id="IBUS-H:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-H:CAPS">
+<ANCHOR id="IBUS-I:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-I:CAPS">
+<ANCHOR id="IBUS-J:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-J:CAPS">
+<ANCHOR id="IBUS-K:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-K:CAPS">
+<ANCHOR id="IBUS-L:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-L:CAPS">
+<ANCHOR id="IBUS-M:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-M:CAPS">
+<ANCHOR id="IBUS-N:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-N:CAPS">
+<ANCHOR id="IBUS-O:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-O:CAPS">
+<ANCHOR id="IBUS-P:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-P:CAPS">
+<ANCHOR id="IBUS-Q:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Q:CAPS">
+<ANCHOR id="IBUS-R:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-R:CAPS">
+<ANCHOR id="IBUS-S:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-S:CAPS">
+<ANCHOR id="IBUS-T:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-T:CAPS">
+<ANCHOR id="IBUS-U:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-U:CAPS">
+<ANCHOR id="IBUS-V:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-V:CAPS">
+<ANCHOR id="IBUS-W:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-W:CAPS">
+<ANCHOR id="IBUS-X:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-X:CAPS">
+<ANCHOR id="IBUS-Y:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Y:CAPS">
+<ANCHOR id="IBUS-Z:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Z:CAPS">
+<ANCHOR id="IBUS-bracketleft" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-bracketleft">
+<ANCHOR id="IBUS-backslash" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-backslash">
+<ANCHOR id="IBUS-bracketright" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-bracketright">
+<ANCHOR id="IBUS-asciicircum" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-asciicircum">
+<ANCHOR id="IBUS-underscore" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-underscore">
+<ANCHOR id="IBUS-grave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-grave">
+<ANCHOR id="IBUS-quoteleft" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-quoteleft">
+<ANCHOR id="IBUS-a" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-a">
+<ANCHOR id="IBUS-b" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-b">
+<ANCHOR id="IBUS-c" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-c">
+<ANCHOR id="IBUS-d" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-d">
+<ANCHOR id="IBUS-e" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-e">
+<ANCHOR id="IBUS-f" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-f">
+<ANCHOR id="IBUS-g" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-g">
+<ANCHOR id="IBUS-h" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-h">
+<ANCHOR id="IBUS-i" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-i">
+<ANCHOR id="IBUS-j" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-j">
+<ANCHOR id="IBUS-k" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-k">
+<ANCHOR id="IBUS-l" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-l">
+<ANCHOR id="IBUS-m" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-m">
+<ANCHOR id="IBUS-n" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-n">
+<ANCHOR id="IBUS-o" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-o">
+<ANCHOR id="IBUS-p" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-p">
+<ANCHOR id="IBUS-q" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-q">
+<ANCHOR id="IBUS-r" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-r">
+<ANCHOR id="IBUS-s" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-s">
+<ANCHOR id="IBUS-t" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-t">
+<ANCHOR id="IBUS-u" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-u">
+<ANCHOR id="IBUS-v" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-v">
+<ANCHOR id="IBUS-w" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-w">
+<ANCHOR id="IBUS-x" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-x">
+<ANCHOR id="IBUS-y" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-y">
+<ANCHOR id="IBUS-z" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-z">
+<ANCHOR id="IBUS-braceleft" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braceleft">
+<ANCHOR id="IBUS-bar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-bar">
+<ANCHOR id="IBUS-braceright" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braceright">
+<ANCHOR id="IBUS-asciitilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-asciitilde">
+<ANCHOR id="IBUS-nobreakspace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-nobreakspace">
+<ANCHOR id="IBUS-exclamdown" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-exclamdown">
+<ANCHOR id="IBUS-cent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-cent">
+<ANCHOR id="IBUS-sterling" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-sterling">
+<ANCHOR id="IBUS-currency" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-currency">
+<ANCHOR id="IBUS-yen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-yen">
+<ANCHOR id="IBUS-brokenbar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-brokenbar">
+<ANCHOR id="IBUS-section" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-section">
+<ANCHOR id="IBUS-diaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-diaeresis">
+<ANCHOR id="IBUS-copyright" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-copyright">
+<ANCHOR id="IBUS-ordfeminine" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ordfeminine">
+<ANCHOR id="IBUS-guillemotleft" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-guillemotleft">
+<ANCHOR id="IBUS-notsign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-notsign">
+<ANCHOR id="IBUS-hyphen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hyphen">
+<ANCHOR id="IBUS-registered" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-registered">
+<ANCHOR id="IBUS-macron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-macron">
+<ANCHOR id="IBUS-degree" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-degree">
+<ANCHOR id="IBUS-plusminus" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-plusminus">
+<ANCHOR id="IBUS-twosuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-twosuperior">
+<ANCHOR id="IBUS-threesuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-threesuperior">
+<ANCHOR id="IBUS-acute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-acute">
+<ANCHOR id="IBUS-mu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-mu">
+<ANCHOR id="IBUS-paragraph" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-paragraph">
+<ANCHOR id="IBUS-periodcentered" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-periodcentered">
+<ANCHOR id="IBUS-cedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-cedilla">
+<ANCHOR id="IBUS-onesuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-onesuperior">
+<ANCHOR id="IBUS-masculine" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-masculine">
+<ANCHOR id="IBUS-guillemotright" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-guillemotright">
+<ANCHOR id="IBUS-onequarter" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-onequarter">
+<ANCHOR id="IBUS-onehalf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-onehalf">
+<ANCHOR id="IBUS-threequarters" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-threequarters">
+<ANCHOR id="IBUS-questiondown" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-questiondown">
+<ANCHOR id="IBUS-Agrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Agrave">
+<ANCHOR id="IBUS-Aacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Aacute">
+<ANCHOR id="IBUS-Acircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Acircumflex">
+<ANCHOR id="IBUS-Atilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Atilde">
+<ANCHOR id="IBUS-Adiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Adiaeresis">
+<ANCHOR id="IBUS-Aring" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Aring">
+<ANCHOR id="IBUS-AE:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-AE:CAPS">
+<ANCHOR id="IBUS-Ccedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ccedilla">
+<ANCHOR id="IBUS-Egrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Egrave">
+<ANCHOR id="IBUS-Eacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Eacute">
+<ANCHOR id="IBUS-Ecircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ecircumflex">
+<ANCHOR id="IBUS-Ediaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ediaeresis">
+<ANCHOR id="IBUS-Igrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Igrave">
+<ANCHOR id="IBUS-Iacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Iacute">
+<ANCHOR id="IBUS-Icircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Icircumflex">
+<ANCHOR id="IBUS-Idiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Idiaeresis">
+<ANCHOR id="IBUS-ETH:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ETH:CAPS">
+<ANCHOR id="IBUS-Eth" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Eth">
+<ANCHOR id="IBUS-Ntilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ntilde">
+<ANCHOR id="IBUS-Ograve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ograve">
+<ANCHOR id="IBUS-Oacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Oacute">
+<ANCHOR id="IBUS-Ocircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ocircumflex">
+<ANCHOR id="IBUS-Otilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Otilde">
+<ANCHOR id="IBUS-Odiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Odiaeresis">
+<ANCHOR id="IBUS-multiply" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-multiply">
+<ANCHOR id="IBUS-Oslash" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Oslash">
+<ANCHOR id="IBUS-Ooblique" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ooblique">
+<ANCHOR id="IBUS-Ugrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ugrave">
+<ANCHOR id="IBUS-Uacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uacute">
+<ANCHOR id="IBUS-Ucircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ucircumflex">
+<ANCHOR id="IBUS-Udiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Udiaeresis">
+<ANCHOR id="IBUS-Yacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Yacute">
+<ANCHOR id="IBUS-THORN:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-THORN:CAPS">
+<ANCHOR id="IBUS-Thorn" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thorn">
+<ANCHOR id="IBUS-ssharp" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ssharp">
+<ANCHOR id="IBUS-agrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-agrave">
+<ANCHOR id="IBUS-aacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-aacute">
+<ANCHOR id="IBUS-acircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-acircumflex">
+<ANCHOR id="IBUS-atilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-atilde">
+<ANCHOR id="IBUS-adiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-adiaeresis">
+<ANCHOR id="IBUS-aring" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-aring">
+<ANCHOR id="IBUS-ae" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ae">
+<ANCHOR id="IBUS-ccedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ccedilla">
+<ANCHOR id="IBUS-egrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-egrave">
+<ANCHOR id="IBUS-eacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-eacute">
+<ANCHOR id="IBUS-ecircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ecircumflex">
+<ANCHOR id="IBUS-ediaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ediaeresis">
+<ANCHOR id="IBUS-igrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-igrave">
+<ANCHOR id="IBUS-iacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-iacute">
+<ANCHOR id="IBUS-icircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-icircumflex">
+<ANCHOR id="IBUS-idiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-idiaeresis">
+<ANCHOR id="IBUS-eth" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-eth">
+<ANCHOR id="IBUS-ntilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ntilde">
+<ANCHOR id="IBUS-ograve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ograve">
+<ANCHOR id="IBUS-oacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-oacute">
+<ANCHOR id="IBUS-ocircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ocircumflex">
+<ANCHOR id="IBUS-otilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-otilde">
+<ANCHOR id="IBUS-odiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-odiaeresis">
+<ANCHOR id="IBUS-division" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-division">
+<ANCHOR id="IBUS-oslash" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-oslash">
+<ANCHOR id="IBUS-ooblique" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ooblique">
+<ANCHOR id="IBUS-ugrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ugrave">
+<ANCHOR id="IBUS-uacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uacute">
+<ANCHOR id="IBUS-ucircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ucircumflex">
+<ANCHOR id="IBUS-udiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-udiaeresis">
+<ANCHOR id="IBUS-yacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-yacute">
+<ANCHOR id="IBUS-thorn" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-thorn">
+<ANCHOR id="IBUS-ydiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ydiaeresis">
+<ANCHOR id="IBUS-Aogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Aogonek">
+<ANCHOR id="IBUS-breve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-breve">
+<ANCHOR id="IBUS-Lstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Lstroke">
+<ANCHOR id="IBUS-Lcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Lcaron">
+<ANCHOR id="IBUS-Sacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Sacute">
+<ANCHOR id="IBUS-Scaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Scaron">
+<ANCHOR id="IBUS-Scedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Scedilla">
+<ANCHOR id="IBUS-Tcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Tcaron">
+<ANCHOR id="IBUS-Zacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Zacute">
+<ANCHOR id="IBUS-Zcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Zcaron">
+<ANCHOR id="IBUS-Zabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Zabovedot">
+<ANCHOR id="IBUS-aogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-aogonek">
+<ANCHOR id="IBUS-ogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ogonek">
+<ANCHOR id="IBUS-lstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lstroke">
+<ANCHOR id="IBUS-lcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lcaron">
+<ANCHOR id="IBUS-sacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-sacute">
+<ANCHOR id="IBUS-caron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-caron">
+<ANCHOR id="IBUS-scaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-scaron">
+<ANCHOR id="IBUS-scedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-scedilla">
+<ANCHOR id="IBUS-tcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-tcaron">
+<ANCHOR id="IBUS-zacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-zacute">
+<ANCHOR id="IBUS-doubleacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-doubleacute">
+<ANCHOR id="IBUS-zcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-zcaron">
+<ANCHOR id="IBUS-zabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-zabovedot">
+<ANCHOR id="IBUS-Racute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Racute">
+<ANCHOR id="IBUS-Abreve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Abreve">
+<ANCHOR id="IBUS-Lacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Lacute">
+<ANCHOR id="IBUS-Cacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cacute">
+<ANCHOR id="IBUS-Ccaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ccaron">
+<ANCHOR id="IBUS-Eogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Eogonek">
+<ANCHOR id="IBUS-Ecaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ecaron">
+<ANCHOR id="IBUS-Dcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Dcaron">
+<ANCHOR id="IBUS-Dstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Dstroke">
+<ANCHOR id="IBUS-Nacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Nacute">
+<ANCHOR id="IBUS-Ncaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ncaron">
+<ANCHOR id="IBUS-Odoubleacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Odoubleacute">
+<ANCHOR id="IBUS-Rcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Rcaron">
+<ANCHOR id="IBUS-Uring" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uring">
+<ANCHOR id="IBUS-Udoubleacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Udoubleacute">
+<ANCHOR id="IBUS-Tcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Tcedilla">
+<ANCHOR id="IBUS-racute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-racute">
+<ANCHOR id="IBUS-abreve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-abreve">
+<ANCHOR id="IBUS-lacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lacute">
+<ANCHOR id="IBUS-cacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-cacute">
+<ANCHOR id="IBUS-ccaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ccaron">
+<ANCHOR id="IBUS-eogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-eogonek">
+<ANCHOR id="IBUS-ecaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ecaron">
+<ANCHOR id="IBUS-dcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dcaron">
+<ANCHOR id="IBUS-dstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dstroke">
+<ANCHOR id="IBUS-nacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-nacute">
+<ANCHOR id="IBUS-ncaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ncaron">
+<ANCHOR id="IBUS-odoubleacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-odoubleacute">
+<ANCHOR id="IBUS-udoubleacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-udoubleacute">
+<ANCHOR id="IBUS-rcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rcaron">
+<ANCHOR id="IBUS-uring" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uring">
+<ANCHOR id="IBUS-tcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-tcedilla">
+<ANCHOR id="IBUS-abovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-abovedot">
+<ANCHOR id="IBUS-Hstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hstroke">
+<ANCHOR id="IBUS-Hcircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hcircumflex">
+<ANCHOR id="IBUS-Iabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Iabovedot">
+<ANCHOR id="IBUS-Gbreve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Gbreve">
+<ANCHOR id="IBUS-Jcircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Jcircumflex">
+<ANCHOR id="IBUS-hstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hstroke">
+<ANCHOR id="IBUS-hcircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hcircumflex">
+<ANCHOR id="IBUS-idotless" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-idotless">
+<ANCHOR id="IBUS-gbreve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-gbreve">
+<ANCHOR id="IBUS-jcircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-jcircumflex">
+<ANCHOR id="IBUS-Cabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cabovedot">
+<ANCHOR id="IBUS-Ccircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ccircumflex">
+<ANCHOR id="IBUS-Gabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Gabovedot">
+<ANCHOR id="IBUS-Gcircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Gcircumflex">
+<ANCHOR id="IBUS-Ubreve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ubreve">
+<ANCHOR id="IBUS-Scircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Scircumflex">
+<ANCHOR id="IBUS-cabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-cabovedot">
+<ANCHOR id="IBUS-ccircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ccircumflex">
+<ANCHOR id="IBUS-gabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-gabovedot">
+<ANCHOR id="IBUS-gcircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-gcircumflex">
+<ANCHOR id="IBUS-ubreve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ubreve">
+<ANCHOR id="IBUS-scircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-scircumflex">
+<ANCHOR id="IBUS-kra" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kra">
+<ANCHOR id="IBUS-kappa" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kappa">
+<ANCHOR id="IBUS-Rcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Rcedilla">
+<ANCHOR id="IBUS-Itilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Itilde">
+<ANCHOR id="IBUS-Lcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Lcedilla">
+<ANCHOR id="IBUS-Emacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Emacron">
+<ANCHOR id="IBUS-Gcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Gcedilla">
+<ANCHOR id="IBUS-Tslash" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Tslash">
+<ANCHOR id="IBUS-rcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rcedilla">
+<ANCHOR id="IBUS-itilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-itilde">
+<ANCHOR id="IBUS-lcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lcedilla">
+<ANCHOR id="IBUS-emacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-emacron">
+<ANCHOR id="IBUS-gcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-gcedilla">
+<ANCHOR id="IBUS-tslash" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-tslash">
+<ANCHOR id="IBUS-ENG:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ENG:CAPS">
+<ANCHOR id="IBUS-eng" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-eng">
+<ANCHOR id="IBUS-Amacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Amacron">
+<ANCHOR id="IBUS-Iogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Iogonek">
+<ANCHOR id="IBUS-Eabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Eabovedot">
+<ANCHOR id="IBUS-Imacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Imacron">
+<ANCHOR id="IBUS-Ncedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ncedilla">
+<ANCHOR id="IBUS-Omacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Omacron">
+<ANCHOR id="IBUS-Kcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Kcedilla">
+<ANCHOR id="IBUS-Uogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uogonek">
+<ANCHOR id="IBUS-Utilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Utilde">
+<ANCHOR id="IBUS-Umacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Umacron">
+<ANCHOR id="IBUS-amacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-amacron">
+<ANCHOR id="IBUS-iogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-iogonek">
+<ANCHOR id="IBUS-eabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-eabovedot">
+<ANCHOR id="IBUS-imacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-imacron">
+<ANCHOR id="IBUS-ncedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ncedilla">
+<ANCHOR id="IBUS-omacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-omacron">
+<ANCHOR id="IBUS-kcedilla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kcedilla">
+<ANCHOR id="IBUS-uogonek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uogonek">
+<ANCHOR id="IBUS-utilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-utilde">
+<ANCHOR id="IBUS-umacron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-umacron">
+<ANCHOR id="IBUS-Babovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Babovedot">
+<ANCHOR id="IBUS-babovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-babovedot">
+<ANCHOR id="IBUS-Dabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Dabovedot">
+<ANCHOR id="IBUS-Wgrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Wgrave">
+<ANCHOR id="IBUS-Wacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Wacute">
+<ANCHOR id="IBUS-dabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dabovedot">
+<ANCHOR id="IBUS-Ygrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ygrave">
+<ANCHOR id="IBUS-Fabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Fabovedot">
+<ANCHOR id="IBUS-fabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-fabovedot">
+<ANCHOR id="IBUS-Mabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Mabovedot">
+<ANCHOR id="IBUS-mabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-mabovedot">
+<ANCHOR id="IBUS-Pabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Pabovedot">
+<ANCHOR id="IBUS-wgrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-wgrave">
+<ANCHOR id="IBUS-pabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-pabovedot">
+<ANCHOR id="IBUS-wacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-wacute">
+<ANCHOR id="IBUS-Sabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Sabovedot">
+<ANCHOR id="IBUS-ygrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ygrave">
+<ANCHOR id="IBUS-Wdiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Wdiaeresis">
+<ANCHOR id="IBUS-wdiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-wdiaeresis">
+<ANCHOR id="IBUS-sabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-sabovedot">
+<ANCHOR id="IBUS-Wcircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Wcircumflex">
+<ANCHOR id="IBUS-Tabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Tabovedot">
+<ANCHOR id="IBUS-Ycircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ycircumflex">
+<ANCHOR id="IBUS-wcircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-wcircumflex">
+<ANCHOR id="IBUS-tabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-tabovedot">
+<ANCHOR id="IBUS-ycircumflex" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ycircumflex">
+<ANCHOR id="IBUS-OE:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-OE:CAPS">
+<ANCHOR id="IBUS-oe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-oe">
+<ANCHOR id="IBUS-Ydiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ydiaeresis">
+<ANCHOR id="IBUS-overline" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-overline">
+<ANCHOR id="IBUS-kana-fullstop" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-fullstop">
+<ANCHOR id="IBUS-kana-openingbracket" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-openingbracket">
+<ANCHOR id="IBUS-kana-closingbracket" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-closingbracket">
+<ANCHOR id="IBUS-kana-comma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-comma">
+<ANCHOR id="IBUS-kana-conjunctive" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-conjunctive">
+<ANCHOR id="IBUS-kana-middledot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-middledot">
+<ANCHOR id="IBUS-kana-WO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-WO">
+<ANCHOR id="IBUS-kana-a" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-a">
+<ANCHOR id="IBUS-kana-i" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-i">
+<ANCHOR id="IBUS-kana-u" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-u">
+<ANCHOR id="IBUS-kana-e" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-e">
+<ANCHOR id="IBUS-kana-o" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-o">
+<ANCHOR id="IBUS-kana-ya" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-ya">
+<ANCHOR id="IBUS-kana-yu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-yu">
+<ANCHOR id="IBUS-kana-yo" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-yo">
+<ANCHOR id="IBUS-kana-tsu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-tsu">
+<ANCHOR id="IBUS-kana-tu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-tu">
+<ANCHOR id="IBUS-prolongedsound" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-prolongedsound">
+<ANCHOR id="IBUS-kana-A" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-A">
+<ANCHOR id="IBUS-kana-I" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-I">
+<ANCHOR id="IBUS-kana-U" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-U">
+<ANCHOR id="IBUS-kana-E" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-E">
+<ANCHOR id="IBUS-kana-O" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-O">
+<ANCHOR id="IBUS-kana-KA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-KA">
+<ANCHOR id="IBUS-kana-KI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-KI">
+<ANCHOR id="IBUS-kana-KU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-KU">
+<ANCHOR id="IBUS-kana-KE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-KE">
+<ANCHOR id="IBUS-kana-KO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-KO">
+<ANCHOR id="IBUS-kana-SA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-SA">
+<ANCHOR id="IBUS-kana-SHI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-SHI">
+<ANCHOR id="IBUS-kana-SU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-SU">
+<ANCHOR id="IBUS-kana-SE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-SE">
+<ANCHOR id="IBUS-kana-SO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-SO">
+<ANCHOR id="IBUS-kana-TA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-TA">
+<ANCHOR id="IBUS-kana-CHI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-CHI">
+<ANCHOR id="IBUS-kana-TI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-TI">
+<ANCHOR id="IBUS-kana-TSU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-TSU">
+<ANCHOR id="IBUS-kana-TU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-TU">
+<ANCHOR id="IBUS-kana-TE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-TE">
+<ANCHOR id="IBUS-kana-TO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-TO">
+<ANCHOR id="IBUS-kana-NA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-NA">
+<ANCHOR id="IBUS-kana-NI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-NI">
+<ANCHOR id="IBUS-kana-NU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-NU">
+<ANCHOR id="IBUS-kana-NE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-NE">
+<ANCHOR id="IBUS-kana-NO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-NO">
+<ANCHOR id="IBUS-kana-HA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-HA">
+<ANCHOR id="IBUS-kana-HI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-HI">
+<ANCHOR id="IBUS-kana-FU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-FU">
+<ANCHOR id="IBUS-kana-HU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-HU">
+<ANCHOR id="IBUS-kana-HE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-HE">
+<ANCHOR id="IBUS-kana-HO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-HO">
+<ANCHOR id="IBUS-kana-MA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-MA">
+<ANCHOR id="IBUS-kana-MI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-MI">
+<ANCHOR id="IBUS-kana-MU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-MU">
+<ANCHOR id="IBUS-kana-ME" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-ME">
+<ANCHOR id="IBUS-kana-MO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-MO">
+<ANCHOR id="IBUS-kana-YA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-YA">
+<ANCHOR id="IBUS-kana-YU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-YU">
+<ANCHOR id="IBUS-kana-YO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-YO">
+<ANCHOR id="IBUS-kana-RA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-RA">
+<ANCHOR id="IBUS-kana-RI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-RI">
+<ANCHOR id="IBUS-kana-RU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-RU">
+<ANCHOR id="IBUS-kana-RE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-RE">
+<ANCHOR id="IBUS-kana-RO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-RO">
+<ANCHOR id="IBUS-kana-WA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-WA">
+<ANCHOR id="IBUS-kana-N" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-N">
+<ANCHOR id="IBUS-voicedsound" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-voicedsound">
+<ANCHOR id="IBUS-semivoicedsound" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-semivoicedsound">
+<ANCHOR id="IBUS-kana-switch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-kana-switch">
+<ANCHOR id="IBUS-Farsi-0" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-0">
+<ANCHOR id="IBUS-Farsi-1" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-1">
+<ANCHOR id="IBUS-Farsi-2" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-2">
+<ANCHOR id="IBUS-Farsi-3" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-3">
+<ANCHOR id="IBUS-Farsi-4" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-4">
+<ANCHOR id="IBUS-Farsi-5" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-5">
+<ANCHOR id="IBUS-Farsi-6" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-6">
+<ANCHOR id="IBUS-Farsi-7" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-7">
+<ANCHOR id="IBUS-Farsi-8" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-8">
+<ANCHOR id="IBUS-Farsi-9" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-9">
+<ANCHOR id="IBUS-Arabic-percent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-percent">
+<ANCHOR id="IBUS-Arabic-superscript-alef" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-superscript-alef">
+<ANCHOR id="IBUS-Arabic-tteh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-tteh">
+<ANCHOR id="IBUS-Arabic-peh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-peh">
+<ANCHOR id="IBUS-Arabic-tcheh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-tcheh">
+<ANCHOR id="IBUS-Arabic-ddal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-ddal">
+<ANCHOR id="IBUS-Arabic-rreh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-rreh">
+<ANCHOR id="IBUS-Arabic-comma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-comma">
+<ANCHOR id="IBUS-Arabic-fullstop" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-fullstop">
+<ANCHOR id="IBUS-Arabic-0" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-0">
+<ANCHOR id="IBUS-Arabic-1" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-1">
+<ANCHOR id="IBUS-Arabic-2" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-2">
+<ANCHOR id="IBUS-Arabic-3" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-3">
+<ANCHOR id="IBUS-Arabic-4" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-4">
+<ANCHOR id="IBUS-Arabic-5" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-5">
+<ANCHOR id="IBUS-Arabic-6" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-6">
+<ANCHOR id="IBUS-Arabic-7" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-7">
+<ANCHOR id="IBUS-Arabic-8" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-8">
+<ANCHOR id="IBUS-Arabic-9" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-9">
+<ANCHOR id="IBUS-Arabic-semicolon" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-semicolon">
+<ANCHOR id="IBUS-Arabic-question-mark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-question-mark">
+<ANCHOR id="IBUS-Arabic-hamza" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza">
+<ANCHOR id="IBUS-Arabic-maddaonalef" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-maddaonalef">
+<ANCHOR id="IBUS-Arabic-hamzaonalef" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonalef">
+<ANCHOR id="IBUS-Arabic-hamzaonwaw" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonwaw">
+<ANCHOR id="IBUS-Arabic-hamzaunderalef" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaunderalef">
+<ANCHOR id="IBUS-Arabic-hamzaonyeh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamzaonyeh">
+<ANCHOR id="IBUS-Arabic-alef" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-alef">
+<ANCHOR id="IBUS-Arabic-beh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-beh">
+<ANCHOR id="IBUS-Arabic-tehmarbuta" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-tehmarbuta">
+<ANCHOR id="IBUS-Arabic-teh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-teh">
+<ANCHOR id="IBUS-Arabic-theh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-theh">
+<ANCHOR id="IBUS-Arabic-jeem" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-jeem">
+<ANCHOR id="IBUS-Arabic-hah" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-hah">
+<ANCHOR id="IBUS-Arabic-khah" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-khah">
+<ANCHOR id="IBUS-Arabic-dal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-dal">
+<ANCHOR id="IBUS-Arabic-thal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-thal">
+<ANCHOR id="IBUS-Arabic-ra" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-ra">
+<ANCHOR id="IBUS-Arabic-zain" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-zain">
+<ANCHOR id="IBUS-Arabic-seen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-seen">
+<ANCHOR id="IBUS-Arabic-sheen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-sheen">
+<ANCHOR id="IBUS-Arabic-sad" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-sad">
+<ANCHOR id="IBUS-Arabic-dad" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-dad">
+<ANCHOR id="IBUS-Arabic-tah" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-tah">
+<ANCHOR id="IBUS-Arabic-zah" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-zah">
+<ANCHOR id="IBUS-Arabic-ain" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-ain">
+<ANCHOR id="IBUS-Arabic-ghain" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-ghain">
+<ANCHOR id="IBUS-Arabic-tatweel" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-tatweel">
+<ANCHOR id="IBUS-Arabic-feh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-feh">
+<ANCHOR id="IBUS-Arabic-qaf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-qaf">
+<ANCHOR id="IBUS-Arabic-kaf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-kaf">
+<ANCHOR id="IBUS-Arabic-lam" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-lam">
+<ANCHOR id="IBUS-Arabic-meem" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-meem">
+<ANCHOR id="IBUS-Arabic-noon" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-noon">
+<ANCHOR id="IBUS-Arabic-ha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-ha">
+<ANCHOR id="IBUS-Arabic-heh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh">
+<ANCHOR id="IBUS-Arabic-waw" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-waw">
+<ANCHOR id="IBUS-Arabic-alefmaksura" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-alefmaksura">
+<ANCHOR id="IBUS-Arabic-yeh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-yeh">
+<ANCHOR id="IBUS-Arabic-fathatan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-fathatan">
+<ANCHOR id="IBUS-Arabic-dammatan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-dammatan">
+<ANCHOR id="IBUS-Arabic-kasratan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-kasratan">
+<ANCHOR id="IBUS-Arabic-fatha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-fatha">
+<ANCHOR id="IBUS-Arabic-damma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-damma">
+<ANCHOR id="IBUS-Arabic-kasra" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-kasra">
+<ANCHOR id="IBUS-Arabic-shadda" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-shadda">
+<ANCHOR id="IBUS-Arabic-sukun" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-sukun">
+<ANCHOR id="IBUS-Arabic-madda-above" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-madda-above">
+<ANCHOR id="IBUS-Arabic-hamza-above" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza-above">
+<ANCHOR id="IBUS-Arabic-hamza-below" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-hamza-below">
+<ANCHOR id="IBUS-Arabic-jeh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-jeh">
+<ANCHOR id="IBUS-Arabic-veh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-veh">
+<ANCHOR id="IBUS-Arabic-keheh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-keheh">
+<ANCHOR id="IBUS-Arabic-gaf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-gaf">
+<ANCHOR id="IBUS-Arabic-noon-ghunna" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-noon-ghunna">
+<ANCHOR id="IBUS-Arabic-heh-doachashmee" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh-doachashmee">
+<ANCHOR id="IBUS-Farsi-yeh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Farsi-yeh">
+<ANCHOR id="IBUS-Arabic-farsi-yeh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-farsi-yeh">
+<ANCHOR id="IBUS-Arabic-yeh-baree" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-yeh-baree">
+<ANCHOR id="IBUS-Arabic-heh-goal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-heh-goal">
+<ANCHOR id="IBUS-Arabic-switch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Arabic-switch">
+<ANCHOR id="IBUS-Cyrillic-GHE-bar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-GHE-bar">
+<ANCHOR id="IBUS-Cyrillic-ghe-bar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ghe-bar">
+<ANCHOR id="IBUS-Cyrillic-ZHE-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZHE-descender">
+<ANCHOR id="IBUS-Cyrillic-zhe-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-zhe-descender">
+<ANCHOR id="IBUS-Cyrillic-KA-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA-descender">
+<ANCHOR id="IBUS-Cyrillic-ka-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka-descender">
+<ANCHOR id="IBUS-Cyrillic-KA-vertstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA-vertstroke">
+<ANCHOR id="IBUS-Cyrillic-ka-vertstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka-vertstroke">
+<ANCHOR id="IBUS-Cyrillic-EN-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EN-descender">
+<ANCHOR id="IBUS-Cyrillic-en-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-en-descender">
+<ANCHOR id="IBUS-Cyrillic-U-straight" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-straight">
+<ANCHOR id="IBUS-Cyrillic-u-straight" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-straight">
+<ANCHOR id="IBUS-Cyrillic-U-straight-bar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-straight-bar">
+<ANCHOR id="IBUS-Cyrillic-u-straight-bar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-straight-bar">
+<ANCHOR id="IBUS-Cyrillic-HA-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HA-descender">
+<ANCHOR id="IBUS-Cyrillic-ha-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ha-descender">
+<ANCHOR id="IBUS-Cyrillic-CHE-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE-descender">
+<ANCHOR id="IBUS-Cyrillic-che-descender" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che-descender">
+<ANCHOR id="IBUS-Cyrillic-CHE-vertstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE-vertstroke">
+<ANCHOR id="IBUS-Cyrillic-che-vertstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che-vertstroke">
+<ANCHOR id="IBUS-Cyrillic-SHHA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHHA">
+<ANCHOR id="IBUS-Cyrillic-shha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shha">
+<ANCHOR id="IBUS-Cyrillic-SCHWA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SCHWA">
+<ANCHOR id="IBUS-Cyrillic-schwa" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-schwa">
+<ANCHOR id="IBUS-Cyrillic-I-macron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-I-macron">
+<ANCHOR id="IBUS-Cyrillic-i-macron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-i-macron">
+<ANCHOR id="IBUS-Cyrillic-O-bar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-O-bar">
+<ANCHOR id="IBUS-Cyrillic-o-bar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-o-bar">
+<ANCHOR id="IBUS-Cyrillic-U-macron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U-macron">
+<ANCHOR id="IBUS-Cyrillic-u-macron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u-macron">
+<ANCHOR id="IBUS-Serbian-dje" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-dje">
+<ANCHOR id="IBUS-Macedonia-gje" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Macedonia-gje">
+<ANCHOR id="IBUS-Cyrillic-io" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-io">
+<ANCHOR id="IBUS-Ukrainian-ie" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-ie">
+<ANCHOR id="IBUS-Ukranian-je" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukranian-je">
+<ANCHOR id="IBUS-Macedonia-dse" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Macedonia-dse">
+<ANCHOR id="IBUS-Ukrainian-i" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-i">
+<ANCHOR id="IBUS-Ukranian-i" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukranian-i">
+<ANCHOR id="IBUS-Ukrainian-yi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-yi">
+<ANCHOR id="IBUS-Ukranian-yi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukranian-yi">
+<ANCHOR id="IBUS-Cyrillic-je" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-je">
+<ANCHOR id="IBUS-Serbian-je" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-je">
+<ANCHOR id="IBUS-Cyrillic-lje" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-lje">
+<ANCHOR id="IBUS-Serbian-lje" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-lje">
+<ANCHOR id="IBUS-Cyrillic-nje" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-nje">
+<ANCHOR id="IBUS-Serbian-nje" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-nje">
+<ANCHOR id="IBUS-Serbian-tshe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-tshe">
+<ANCHOR id="IBUS-Macedonia-kje" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Macedonia-kje">
+<ANCHOR id="IBUS-Ukrainian-ghe-with-upturn" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-ghe-with-upturn">
+<ANCHOR id="IBUS-Byelorussian-shortu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Byelorussian-shortu">
+<ANCHOR id="IBUS-Cyrillic-dzhe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-dzhe">
+<ANCHOR id="IBUS-Serbian-dze" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-dze">
+<ANCHOR id="IBUS-numerosign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-numerosign">
+<ANCHOR id="IBUS-Serbian-DJE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-DJE">
+<ANCHOR id="IBUS-Macedonia-GJE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Macedonia-GJE">
+<ANCHOR id="IBUS-Cyrillic-IO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-IO">
+<ANCHOR id="IBUS-Ukrainian-IE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-IE">
+<ANCHOR id="IBUS-Ukranian-JE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukranian-JE">
+<ANCHOR id="IBUS-Macedonia-DSE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Macedonia-DSE">
+<ANCHOR id="IBUS-Ukrainian-I" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-I">
+<ANCHOR id="IBUS-Ukranian-I" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukranian-I">
+<ANCHOR id="IBUS-Ukrainian-YI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-YI">
+<ANCHOR id="IBUS-Ukranian-YI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukranian-YI">
+<ANCHOR id="IBUS-Cyrillic-JE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-JE">
+<ANCHOR id="IBUS-Serbian-JE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-JE">
+<ANCHOR id="IBUS-Cyrillic-LJE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-LJE">
+<ANCHOR id="IBUS-Serbian-LJE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-LJE">
+<ANCHOR id="IBUS-Cyrillic-NJE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-NJE">
+<ANCHOR id="IBUS-Serbian-NJE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-NJE">
+<ANCHOR id="IBUS-Serbian-TSHE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-TSHE">
+<ANCHOR id="IBUS-Macedonia-KJE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Macedonia-KJE">
+<ANCHOR id="IBUS-Ukrainian-GHE-WITH-UPTURN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ukrainian-GHE-WITH-UPTURN">
+<ANCHOR id="IBUS-Byelorussian-SHORTU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Byelorussian-SHORTU">
+<ANCHOR id="IBUS-Cyrillic-DZHE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-DZHE">
+<ANCHOR id="IBUS-Serbian-DZE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Serbian-DZE">
+<ANCHOR id="IBUS-Cyrillic-yu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-yu">
+<ANCHOR id="IBUS-Cyrillic-a" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-a">
+<ANCHOR id="IBUS-Cyrillic-be" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-be">
+<ANCHOR id="IBUS-Cyrillic-tse" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-tse">
+<ANCHOR id="IBUS-Cyrillic-de" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-de">
+<ANCHOR id="IBUS-Cyrillic-ie" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ie">
+<ANCHOR id="IBUS-Cyrillic-ef" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ef">
+<ANCHOR id="IBUS-Cyrillic-ghe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ghe">
+<ANCHOR id="IBUS-Cyrillic-ha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ha">
+<ANCHOR id="IBUS-Cyrillic-i" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-i">
+<ANCHOR id="IBUS-Cyrillic-shorti" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shorti">
+<ANCHOR id="IBUS-Cyrillic-ka" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ka">
+<ANCHOR id="IBUS-Cyrillic-el" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-el">
+<ANCHOR id="IBUS-Cyrillic-em" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-em">
+<ANCHOR id="IBUS-Cyrillic-en" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-en">
+<ANCHOR id="IBUS-Cyrillic-o" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-o">
+<ANCHOR id="IBUS-Cyrillic-pe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-pe">
+<ANCHOR id="IBUS-Cyrillic-ya" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ya">
+<ANCHOR id="IBUS-Cyrillic-er" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-er">
+<ANCHOR id="IBUS-Cyrillic-es" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-es">
+<ANCHOR id="IBUS-Cyrillic-te" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-te">
+<ANCHOR id="IBUS-Cyrillic-u" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-u">
+<ANCHOR id="IBUS-Cyrillic-zhe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-zhe">
+<ANCHOR id="IBUS-Cyrillic-ve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ve">
+<ANCHOR id="IBUS-Cyrillic-softsign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-softsign">
+<ANCHOR id="IBUS-Cyrillic-yeru" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-yeru">
+<ANCHOR id="IBUS-Cyrillic-ze" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ze">
+<ANCHOR id="IBUS-Cyrillic-sha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-sha">
+<ANCHOR id="IBUS-Cyrillic-e" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-e">
+<ANCHOR id="IBUS-Cyrillic-shcha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-shcha">
+<ANCHOR id="IBUS-Cyrillic-che" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-che">
+<ANCHOR id="IBUS-Cyrillic-hardsign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-hardsign">
+<ANCHOR id="IBUS-Cyrillic-YU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YU">
+<ANCHOR id="IBUS-Cyrillic-A" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-A">
+<ANCHOR id="IBUS-Cyrillic-BE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-BE">
+<ANCHOR id="IBUS-Cyrillic-TSE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-TSE">
+<ANCHOR id="IBUS-Cyrillic-DE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-DE">
+<ANCHOR id="IBUS-Cyrillic-IE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-IE">
+<ANCHOR id="IBUS-Cyrillic-EF" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EF">
+<ANCHOR id="IBUS-Cyrillic-GHE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-GHE">
+<ANCHOR id="IBUS-Cyrillic-HA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HA">
+<ANCHOR id="IBUS-Cyrillic-I" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-I">
+<ANCHOR id="IBUS-Cyrillic-SHORTI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHORTI">
+<ANCHOR id="IBUS-Cyrillic-KA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-KA">
+<ANCHOR id="IBUS-Cyrillic-EL" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EL">
+<ANCHOR id="IBUS-Cyrillic-EM" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EM">
+<ANCHOR id="IBUS-Cyrillic-EN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-EN">
+<ANCHOR id="IBUS-Cyrillic-O" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-O">
+<ANCHOR id="IBUS-Cyrillic-PE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-PE">
+<ANCHOR id="IBUS-Cyrillic-YA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YA">
+<ANCHOR id="IBUS-Cyrillic-ER" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ER">
+<ANCHOR id="IBUS-Cyrillic-ES" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ES">
+<ANCHOR id="IBUS-Cyrillic-TE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-TE">
+<ANCHOR id="IBUS-Cyrillic-U" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-U">
+<ANCHOR id="IBUS-Cyrillic-ZHE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZHE">
+<ANCHOR id="IBUS-Cyrillic-VE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-VE">
+<ANCHOR id="IBUS-Cyrillic-SOFTSIGN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SOFTSIGN">
+<ANCHOR id="IBUS-Cyrillic-YERU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-YERU">
+<ANCHOR id="IBUS-Cyrillic-ZE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-ZE">
+<ANCHOR id="IBUS-Cyrillic-SHA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHA">
+<ANCHOR id="IBUS-Cyrillic-E" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-E">
+<ANCHOR id="IBUS-Cyrillic-SHCHA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-SHCHA">
+<ANCHOR id="IBUS-Cyrillic-CHE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-CHE">
+<ANCHOR id="IBUS-Cyrillic-HARDSIGN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Cyrillic-HARDSIGN">
+<ANCHOR id="IBUS-Greek-ALPHAaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-ALPHAaccent">
+<ANCHOR id="IBUS-Greek-EPSILONaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-EPSILONaccent">
+<ANCHOR id="IBUS-Greek-ETAaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-ETAaccent">
+<ANCHOR id="IBUS-Greek-IOTAaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAaccent">
+<ANCHOR id="IBUS-Greek-IOTAdieresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAdieresis">
+<ANCHOR id="IBUS-Greek-IOTAdiaeresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTAdiaeresis">
+<ANCHOR id="IBUS-Greek-OMICRONaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-OMICRONaccent">
+<ANCHOR id="IBUS-Greek-UPSILONaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILONaccent">
+<ANCHOR id="IBUS-Greek-UPSILONdieresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILONdieresis">
+<ANCHOR id="IBUS-Greek-OMEGAaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-OMEGAaccent">
+<ANCHOR id="IBUS-Greek-accentdieresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-accentdieresis">
+<ANCHOR id="IBUS-Greek-horizbar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-horizbar">
+<ANCHOR id="IBUS-Greek-alphaaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-alphaaccent">
+<ANCHOR id="IBUS-Greek-epsilonaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-epsilonaccent">
+<ANCHOR id="IBUS-Greek-etaaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-etaaccent">
+<ANCHOR id="IBUS-Greek-iotaaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-iotaaccent">
+<ANCHOR id="IBUS-Greek-iotadieresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-iotadieresis">
+<ANCHOR id="IBUS-Greek-iotaaccentdieresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-iotaaccentdieresis">
+<ANCHOR id="IBUS-Greek-omicronaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-omicronaccent">
+<ANCHOR id="IBUS-Greek-upsilonaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilonaccent">
+<ANCHOR id="IBUS-Greek-upsilondieresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilondieresis">
+<ANCHOR id="IBUS-Greek-upsilonaccentdieresis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilonaccentdieresis">
+<ANCHOR id="IBUS-Greek-omegaaccent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-omegaaccent">
+<ANCHOR id="IBUS-Greek-ALPHA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-ALPHA">
+<ANCHOR id="IBUS-Greek-BETA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-BETA">
+<ANCHOR id="IBUS-Greek-GAMMA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-GAMMA">
+<ANCHOR id="IBUS-Greek-DELTA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-DELTA">
+<ANCHOR id="IBUS-Greek-EPSILON" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-EPSILON">
+<ANCHOR id="IBUS-Greek-ZETA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-ZETA">
+<ANCHOR id="IBUS-Greek-ETA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-ETA">
+<ANCHOR id="IBUS-Greek-THETA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-THETA">
+<ANCHOR id="IBUS-Greek-IOTA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-IOTA">
+<ANCHOR id="IBUS-Greek-KAPPA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-KAPPA">
+<ANCHOR id="IBUS-Greek-LAMDA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-LAMDA">
+<ANCHOR id="IBUS-Greek-LAMBDA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-LAMBDA">
+<ANCHOR id="IBUS-Greek-MU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-MU">
+<ANCHOR id="IBUS-Greek-NU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-NU">
+<ANCHOR id="IBUS-Greek-XI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-XI">
+<ANCHOR id="IBUS-Greek-OMICRON" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-OMICRON">
+<ANCHOR id="IBUS-Greek-PI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-PI">
+<ANCHOR id="IBUS-Greek-RHO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-RHO">
+<ANCHOR id="IBUS-Greek-SIGMA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-SIGMA">
+<ANCHOR id="IBUS-Greek-TAU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-TAU">
+<ANCHOR id="IBUS-Greek-UPSILON" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-UPSILON">
+<ANCHOR id="IBUS-Greek-PHI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-PHI">
+<ANCHOR id="IBUS-Greek-CHI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-CHI">
+<ANCHOR id="IBUS-Greek-PSI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-PSI">
+<ANCHOR id="IBUS-Greek-OMEGA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-OMEGA">
+<ANCHOR id="IBUS-Greek-alpha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-alpha">
+<ANCHOR id="IBUS-Greek-beta" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-beta">
+<ANCHOR id="IBUS-Greek-gamma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-gamma">
+<ANCHOR id="IBUS-Greek-delta" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-delta">
+<ANCHOR id="IBUS-Greek-epsilon" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-epsilon">
+<ANCHOR id="IBUS-Greek-zeta" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-zeta">
+<ANCHOR id="IBUS-Greek-eta" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-eta">
+<ANCHOR id="IBUS-Greek-theta" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-theta">
+<ANCHOR id="IBUS-Greek-iota" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-iota">
+<ANCHOR id="IBUS-Greek-kappa" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-kappa">
+<ANCHOR id="IBUS-Greek-lamda" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-lamda">
+<ANCHOR id="IBUS-Greek-lambda" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-lambda">
+<ANCHOR id="IBUS-Greek-mu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-mu">
+<ANCHOR id="IBUS-Greek-nu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-nu">
+<ANCHOR id="IBUS-Greek-xi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-xi">
+<ANCHOR id="IBUS-Greek-omicron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-omicron">
+<ANCHOR id="IBUS-Greek-pi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-pi">
+<ANCHOR id="IBUS-Greek-rho" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-rho">
+<ANCHOR id="IBUS-Greek-sigma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-sigma">
+<ANCHOR id="IBUS-Greek-finalsmallsigma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-finalsmallsigma">
+<ANCHOR id="IBUS-Greek-tau" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-tau">
+<ANCHOR id="IBUS-Greek-upsilon" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-upsilon">
+<ANCHOR id="IBUS-Greek-phi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-phi">
+<ANCHOR id="IBUS-Greek-chi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-chi">
+<ANCHOR id="IBUS-Greek-psi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-psi">
+<ANCHOR id="IBUS-Greek-omega" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-omega">
+<ANCHOR id="IBUS-Greek-switch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Greek-switch">
+<ANCHOR id="IBUS-leftradical" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftradical">
+<ANCHOR id="IBUS-topleftradical" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-topleftradical">
+<ANCHOR id="IBUS-horizconnector" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-horizconnector">
+<ANCHOR id="IBUS-topintegral" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-topintegral">
+<ANCHOR id="IBUS-botintegral" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-botintegral">
+<ANCHOR id="IBUS-vertconnector" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-vertconnector">
+<ANCHOR id="IBUS-topleftsqbracket" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-topleftsqbracket">
+<ANCHOR id="IBUS-botleftsqbracket" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-botleftsqbracket">
+<ANCHOR id="IBUS-toprightsqbracket" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-toprightsqbracket">
+<ANCHOR id="IBUS-botrightsqbracket" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-botrightsqbracket">
+<ANCHOR id="IBUS-topleftparens" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-topleftparens">
+<ANCHOR id="IBUS-botleftparens" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-botleftparens">
+<ANCHOR id="IBUS-toprightparens" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-toprightparens">
+<ANCHOR id="IBUS-botrightparens" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-botrightparens">
+<ANCHOR id="IBUS-leftmiddlecurlybrace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftmiddlecurlybrace">
+<ANCHOR id="IBUS-rightmiddlecurlybrace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightmiddlecurlybrace">
+<ANCHOR id="IBUS-topleftsummation" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-topleftsummation">
+<ANCHOR id="IBUS-botleftsummation" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-botleftsummation">
+<ANCHOR id="IBUS-topvertsummationconnector" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-topvertsummationconnector">
+<ANCHOR id="IBUS-botvertsummationconnector" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-botvertsummationconnector">
+<ANCHOR id="IBUS-toprightsummation" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-toprightsummation">
+<ANCHOR id="IBUS-botrightsummation" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-botrightsummation">
+<ANCHOR id="IBUS-rightmiddlesummation" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightmiddlesummation">
+<ANCHOR id="IBUS-lessthanequal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lessthanequal">
+<ANCHOR id="IBUS-notequal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-notequal">
+<ANCHOR id="IBUS-greaterthanequal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-greaterthanequal">
+<ANCHOR id="IBUS-integral" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-integral">
+<ANCHOR id="IBUS-therefore" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-therefore">
+<ANCHOR id="IBUS-variation" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-variation">
+<ANCHOR id="IBUS-infinity" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-infinity">
+<ANCHOR id="IBUS-nabla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-nabla">
+<ANCHOR id="IBUS-approximate" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-approximate">
+<ANCHOR id="IBUS-similarequal" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-similarequal">
+<ANCHOR id="IBUS-ifonlyif" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ifonlyif">
+<ANCHOR id="IBUS-implies" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-implies">
+<ANCHOR id="IBUS-identical" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-identical">
+<ANCHOR id="IBUS-radical" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-radical">
+<ANCHOR id="IBUS-includedin" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-includedin">
+<ANCHOR id="IBUS-includes" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-includes">
+<ANCHOR id="IBUS-intersection" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-intersection">
+<ANCHOR id="IBUS-union" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-union">
+<ANCHOR id="IBUS-logicaland" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-logicaland">
+<ANCHOR id="IBUS-logicalor" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-logicalor">
+<ANCHOR id="IBUS-partialderivative" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-partialderivative">
+<ANCHOR id="IBUS-function" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-function">
+<ANCHOR id="IBUS-leftarrow" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftarrow">
+<ANCHOR id="IBUS-uparrow" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uparrow">
+<ANCHOR id="IBUS-rightarrow" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightarrow">
+<ANCHOR id="IBUS-downarrow" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-downarrow">
+<ANCHOR id="IBUS-blank" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-blank">
+<ANCHOR id="IBUS-soliddiamond" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-soliddiamond">
+<ANCHOR id="IBUS-checkerboard" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-checkerboard">
+<ANCHOR id="IBUS-ht" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ht">
+<ANCHOR id="IBUS-ff" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ff">
+<ANCHOR id="IBUS-cr" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-cr">
+<ANCHOR id="IBUS-lf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lf">
+<ANCHOR id="IBUS-nl" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-nl">
+<ANCHOR id="IBUS-vt" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-vt">
+<ANCHOR id="IBUS-lowrightcorner" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lowrightcorner">
+<ANCHOR id="IBUS-uprightcorner" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uprightcorner">
+<ANCHOR id="IBUS-upleftcorner" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-upleftcorner">
+<ANCHOR id="IBUS-lowleftcorner" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lowleftcorner">
+<ANCHOR id="IBUS-crossinglines" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-crossinglines">
+<ANCHOR id="IBUS-horizlinescan1" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-horizlinescan1">
+<ANCHOR id="IBUS-horizlinescan3" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-horizlinescan3">
+<ANCHOR id="IBUS-horizlinescan5" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-horizlinescan5">
+<ANCHOR id="IBUS-horizlinescan7" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-horizlinescan7">
+<ANCHOR id="IBUS-horizlinescan9" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-horizlinescan9">
+<ANCHOR id="IBUS-leftt" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftt">
+<ANCHOR id="IBUS-rightt" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightt">
+<ANCHOR id="IBUS-bott" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-bott">
+<ANCHOR id="IBUS-topt" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-topt">
+<ANCHOR id="IBUS-vertbar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-vertbar">
+<ANCHOR id="IBUS-emspace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-emspace">
+<ANCHOR id="IBUS-enspace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-enspace">
+<ANCHOR id="IBUS-em3space" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-em3space">
+<ANCHOR id="IBUS-em4space" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-em4space">
+<ANCHOR id="IBUS-digitspace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-digitspace">
+<ANCHOR id="IBUS-punctspace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-punctspace">
+<ANCHOR id="IBUS-thinspace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-thinspace">
+<ANCHOR id="IBUS-hairspace" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hairspace">
+<ANCHOR id="IBUS-emdash" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-emdash">
+<ANCHOR id="IBUS-endash" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-endash">
+<ANCHOR id="IBUS-signifblank" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-signifblank">
+<ANCHOR id="IBUS-ellipsis" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ellipsis">
+<ANCHOR id="IBUS-doubbaselinedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-doubbaselinedot">
+<ANCHOR id="IBUS-onethird" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-onethird">
+<ANCHOR id="IBUS-twothirds" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-twothirds">
+<ANCHOR id="IBUS-onefifth" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-onefifth">
+<ANCHOR id="IBUS-twofifths" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-twofifths">
+<ANCHOR id="IBUS-threefifths" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-threefifths">
+<ANCHOR id="IBUS-fourfifths" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-fourfifths">
+<ANCHOR id="IBUS-onesixth" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-onesixth">
+<ANCHOR id="IBUS-fivesixths" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-fivesixths">
+<ANCHOR id="IBUS-careof" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-careof">
+<ANCHOR id="IBUS-figdash" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-figdash">
+<ANCHOR id="IBUS-leftanglebracket" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftanglebracket">
+<ANCHOR id="IBUS-decimalpoint" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-decimalpoint">
+<ANCHOR id="IBUS-rightanglebracket" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightanglebracket">
+<ANCHOR id="IBUS-marker" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-marker">
+<ANCHOR id="IBUS-oneeighth" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-oneeighth">
+<ANCHOR id="IBUS-threeeighths" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-threeeighths">
+<ANCHOR id="IBUS-fiveeighths" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-fiveeighths">
+<ANCHOR id="IBUS-seveneighths" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-seveneighths">
+<ANCHOR id="IBUS-trademark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-trademark">
+<ANCHOR id="IBUS-signaturemark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-signaturemark">
+<ANCHOR id="IBUS-trademarkincircle" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-trademarkincircle">
+<ANCHOR id="IBUS-leftopentriangle" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftopentriangle">
+<ANCHOR id="IBUS-rightopentriangle" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightopentriangle">
+<ANCHOR id="IBUS-emopencircle" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-emopencircle">
+<ANCHOR id="IBUS-emopenrectangle" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-emopenrectangle">
+<ANCHOR id="IBUS-leftsinglequotemark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftsinglequotemark">
+<ANCHOR id="IBUS-rightsinglequotemark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightsinglequotemark">
+<ANCHOR id="IBUS-leftdoublequotemark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftdoublequotemark">
+<ANCHOR id="IBUS-rightdoublequotemark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightdoublequotemark">
+<ANCHOR id="IBUS-prescription" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-prescription">
+<ANCHOR id="IBUS-minutes" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-minutes">
+<ANCHOR id="IBUS-seconds" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-seconds">
+<ANCHOR id="IBUS-latincross" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-latincross">
+<ANCHOR id="IBUS-hexagram" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hexagram">
+<ANCHOR id="IBUS-filledrectbullet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-filledrectbullet">
+<ANCHOR id="IBUS-filledlefttribullet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-filledlefttribullet">
+<ANCHOR id="IBUS-filledrighttribullet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-filledrighttribullet">
+<ANCHOR id="IBUS-emfilledcircle" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-emfilledcircle">
+<ANCHOR id="IBUS-emfilledrect" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-emfilledrect">
+<ANCHOR id="IBUS-enopencircbullet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-enopencircbullet">
+<ANCHOR id="IBUS-enopensquarebullet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-enopensquarebullet">
+<ANCHOR id="IBUS-openrectbullet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-openrectbullet">
+<ANCHOR id="IBUS-opentribulletup" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-opentribulletup">
+<ANCHOR id="IBUS-opentribulletdown" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-opentribulletdown">
+<ANCHOR id="IBUS-openstar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-openstar">
+<ANCHOR id="IBUS-enfilledcircbullet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-enfilledcircbullet">
+<ANCHOR id="IBUS-enfilledsqbullet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-enfilledsqbullet">
+<ANCHOR id="IBUS-filledtribulletup" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-filledtribulletup">
+<ANCHOR id="IBUS-filledtribulletdown" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-filledtribulletdown">
+<ANCHOR id="IBUS-leftpointer" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftpointer">
+<ANCHOR id="IBUS-rightpointer" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightpointer">
+<ANCHOR id="IBUS-club" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-club">
+<ANCHOR id="IBUS-diamond" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-diamond">
+<ANCHOR id="IBUS-heart" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-heart">
+<ANCHOR id="IBUS-maltesecross" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-maltesecross">
+<ANCHOR id="IBUS-dagger" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dagger">
+<ANCHOR id="IBUS-doubledagger" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-doubledagger">
+<ANCHOR id="IBUS-checkmark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-checkmark">
+<ANCHOR id="IBUS-ballotcross" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ballotcross">
+<ANCHOR id="IBUS-musicalsharp" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-musicalsharp">
+<ANCHOR id="IBUS-musicalflat" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-musicalflat">
+<ANCHOR id="IBUS-malesymbol" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-malesymbol">
+<ANCHOR id="IBUS-femalesymbol" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-femalesymbol">
+<ANCHOR id="IBUS-telephone" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-telephone">
+<ANCHOR id="IBUS-telephonerecorder" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-telephonerecorder">
+<ANCHOR id="IBUS-phonographcopyright" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-phonographcopyright">
+<ANCHOR id="IBUS-caret" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-caret">
+<ANCHOR id="IBUS-singlelowquotemark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-singlelowquotemark">
+<ANCHOR id="IBUS-doublelowquotemark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-doublelowquotemark">
+<ANCHOR id="IBUS-cursor" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-cursor">
+<ANCHOR id="IBUS-leftcaret" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftcaret">
+<ANCHOR id="IBUS-rightcaret" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightcaret">
+<ANCHOR id="IBUS-downcaret" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-downcaret">
+<ANCHOR id="IBUS-upcaret" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-upcaret">
+<ANCHOR id="IBUS-overbar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-overbar">
+<ANCHOR id="IBUS-downtack" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-downtack">
+<ANCHOR id="IBUS-upshoe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-upshoe">
+<ANCHOR id="IBUS-downstile" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-downstile">
+<ANCHOR id="IBUS-underbar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-underbar">
+<ANCHOR id="IBUS-jot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-jot">
+<ANCHOR id="IBUS-quad" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-quad">
+<ANCHOR id="IBUS-uptack" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uptack">
+<ANCHOR id="IBUS-circle" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-circle">
+<ANCHOR id="IBUS-upstile" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-upstile">
+<ANCHOR id="IBUS-downshoe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-downshoe">
+<ANCHOR id="IBUS-rightshoe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-rightshoe">
+<ANCHOR id="IBUS-leftshoe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-leftshoe">
+<ANCHOR id="IBUS-lefttack" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lefttack">
+<ANCHOR id="IBUS-righttack" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-righttack">
+<ANCHOR id="IBUS-hebrew-doublelowline" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-doublelowline">
+<ANCHOR id="IBUS-hebrew-aleph" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-aleph">
+<ANCHOR id="IBUS-hebrew-bet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-bet">
+<ANCHOR id="IBUS-hebrew-beth" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-beth">
+<ANCHOR id="IBUS-hebrew-gimel" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-gimel">
+<ANCHOR id="IBUS-hebrew-gimmel" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-gimmel">
+<ANCHOR id="IBUS-hebrew-dalet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-dalet">
+<ANCHOR id="IBUS-hebrew-daleth" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-daleth">
+<ANCHOR id="IBUS-hebrew-he" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-he">
+<ANCHOR id="IBUS-hebrew-waw" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-waw">
+<ANCHOR id="IBUS-hebrew-zain" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-zain">
+<ANCHOR id="IBUS-hebrew-zayin" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-zayin">
+<ANCHOR id="IBUS-hebrew-chet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-chet">
+<ANCHOR id="IBUS-hebrew-het" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-het">
+<ANCHOR id="IBUS-hebrew-tet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-tet">
+<ANCHOR id="IBUS-hebrew-teth" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-teth">
+<ANCHOR id="IBUS-hebrew-yod" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-yod">
+<ANCHOR id="IBUS-hebrew-finalkaph" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalkaph">
+<ANCHOR id="IBUS-hebrew-kaph" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-kaph">
+<ANCHOR id="IBUS-hebrew-lamed" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-lamed">
+<ANCHOR id="IBUS-hebrew-finalmem" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalmem">
+<ANCHOR id="IBUS-hebrew-mem" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-mem">
+<ANCHOR id="IBUS-hebrew-finalnun" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalnun">
+<ANCHOR id="IBUS-hebrew-nun" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-nun">
+<ANCHOR id="IBUS-hebrew-samech" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-samech">
+<ANCHOR id="IBUS-hebrew-samekh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-samekh">
+<ANCHOR id="IBUS-hebrew-ayin" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-ayin">
+<ANCHOR id="IBUS-hebrew-finalpe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalpe">
+<ANCHOR id="IBUS-hebrew-pe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-pe">
+<ANCHOR id="IBUS-hebrew-finalzade" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalzade">
+<ANCHOR id="IBUS-hebrew-finalzadi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-finalzadi">
+<ANCHOR id="IBUS-hebrew-zade" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-zade">
+<ANCHOR id="IBUS-hebrew-zadi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-zadi">
+<ANCHOR id="IBUS-hebrew-qoph" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-qoph">
+<ANCHOR id="IBUS-hebrew-kuf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-kuf">
+<ANCHOR id="IBUS-hebrew-resh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-resh">
+<ANCHOR id="IBUS-hebrew-shin" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-shin">
+<ANCHOR id="IBUS-hebrew-taw" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-taw">
+<ANCHOR id="IBUS-hebrew-taf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-hebrew-taf">
+<ANCHOR id="IBUS-Hebrew-switch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hebrew-switch">
+<ANCHOR id="IBUS-Thai-kokai" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-kokai">
+<ANCHOR id="IBUS-Thai-khokhai" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhai">
+<ANCHOR id="IBUS-Thai-khokhuat" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhuat">
+<ANCHOR id="IBUS-Thai-khokhwai" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhwai">
+<ANCHOR id="IBUS-Thai-khokhon" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-khokhon">
+<ANCHOR id="IBUS-Thai-khorakhang" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-khorakhang">
+<ANCHOR id="IBUS-Thai-ngongu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-ngongu">
+<ANCHOR id="IBUS-Thai-chochan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-chochan">
+<ANCHOR id="IBUS-Thai-choching" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-choching">
+<ANCHOR id="IBUS-Thai-chochang" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-chochang">
+<ANCHOR id="IBUS-Thai-soso" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-soso">
+<ANCHOR id="IBUS-Thai-chochoe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-chochoe">
+<ANCHOR id="IBUS-Thai-yoying" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-yoying">
+<ANCHOR id="IBUS-Thai-dochada" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-dochada">
+<ANCHOR id="IBUS-Thai-topatak" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-topatak">
+<ANCHOR id="IBUS-Thai-thothan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-thothan">
+<ANCHOR id="IBUS-Thai-thonangmontho" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-thonangmontho">
+<ANCHOR id="IBUS-Thai-thophuthao" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-thophuthao">
+<ANCHOR id="IBUS-Thai-nonen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-nonen">
+<ANCHOR id="IBUS-Thai-dodek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-dodek">
+<ANCHOR id="IBUS-Thai-totao" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-totao">
+<ANCHOR id="IBUS-Thai-thothung" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-thothung">
+<ANCHOR id="IBUS-Thai-thothahan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-thothahan">
+<ANCHOR id="IBUS-Thai-thothong" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-thothong">
+<ANCHOR id="IBUS-Thai-nonu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-nonu">
+<ANCHOR id="IBUS-Thai-bobaimai" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-bobaimai">
+<ANCHOR id="IBUS-Thai-popla" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-popla">
+<ANCHOR id="IBUS-Thai-phophung" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-phophung">
+<ANCHOR id="IBUS-Thai-fofa" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-fofa">
+<ANCHOR id="IBUS-Thai-phophan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-phophan">
+<ANCHOR id="IBUS-Thai-fofan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-fofan">
+<ANCHOR id="IBUS-Thai-phosamphao" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-phosamphao">
+<ANCHOR id="IBUS-Thai-moma" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-moma">
+<ANCHOR id="IBUS-Thai-yoyak" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-yoyak">
+<ANCHOR id="IBUS-Thai-rorua" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-rorua">
+<ANCHOR id="IBUS-Thai-ru" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-ru">
+<ANCHOR id="IBUS-Thai-loling" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-loling">
+<ANCHOR id="IBUS-Thai-lu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-lu">
+<ANCHOR id="IBUS-Thai-wowaen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-wowaen">
+<ANCHOR id="IBUS-Thai-sosala" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-sosala">
+<ANCHOR id="IBUS-Thai-sorusi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-sorusi">
+<ANCHOR id="IBUS-Thai-sosua" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-sosua">
+<ANCHOR id="IBUS-Thai-hohip" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-hohip">
+<ANCHOR id="IBUS-Thai-lochula" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-lochula">
+<ANCHOR id="IBUS-Thai-oang" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-oang">
+<ANCHOR id="IBUS-Thai-honokhuk" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-honokhuk">
+<ANCHOR id="IBUS-Thai-paiyannoi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-paiyannoi">
+<ANCHOR id="IBUS-Thai-saraa" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-saraa">
+<ANCHOR id="IBUS-Thai-maihanakat" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-maihanakat">
+<ANCHOR id="IBUS-Thai-saraaa" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaa">
+<ANCHOR id="IBUS-Thai-saraam" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-saraam">
+<ANCHOR id="IBUS-Thai-sarai" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-sarai">
+<ANCHOR id="IBUS-Thai-saraii" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-saraii">
+<ANCHOR id="IBUS-Thai-saraue" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-saraue">
+<ANCHOR id="IBUS-Thai-sarauee" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-sarauee">
+<ANCHOR id="IBUS-Thai-sarau" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-sarau">
+<ANCHOR id="IBUS-Thai-sarauu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-sarauu">
+<ANCHOR id="IBUS-Thai-phinthu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-phinthu">
+<ANCHOR id="IBUS-Thai-maihanakat-maitho" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-maihanakat-maitho">
+<ANCHOR id="IBUS-Thai-baht" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-baht">
+<ANCHOR id="IBUS-Thai-sarae" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-sarae">
+<ANCHOR id="IBUS-Thai-saraae" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-saraae">
+<ANCHOR id="IBUS-Thai-sarao" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-sarao">
+<ANCHOR id="IBUS-Thai-saraaimaimuan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaimaimuan">
+<ANCHOR id="IBUS-Thai-saraaimaimalai" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-saraaimaimalai">
+<ANCHOR id="IBUS-Thai-lakkhangyao" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-lakkhangyao">
+<ANCHOR id="IBUS-Thai-maiyamok" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-maiyamok">
+<ANCHOR id="IBUS-Thai-maitaikhu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-maitaikhu">
+<ANCHOR id="IBUS-Thai-maiek" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-maiek">
+<ANCHOR id="IBUS-Thai-maitho" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-maitho">
+<ANCHOR id="IBUS-Thai-maitri" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-maitri">
+<ANCHOR id="IBUS-Thai-maichattawa" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-maichattawa">
+<ANCHOR id="IBUS-Thai-thanthakhat" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-thanthakhat">
+<ANCHOR id="IBUS-Thai-nikhahit" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-nikhahit">
+<ANCHOR id="IBUS-Thai-leksun" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-leksun">
+<ANCHOR id="IBUS-Thai-leknung" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-leknung">
+<ANCHOR id="IBUS-Thai-leksong" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-leksong">
+<ANCHOR id="IBUS-Thai-leksam" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-leksam">
+<ANCHOR id="IBUS-Thai-leksi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-leksi">
+<ANCHOR id="IBUS-Thai-lekha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-lekha">
+<ANCHOR id="IBUS-Thai-lekhok" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-lekhok">
+<ANCHOR id="IBUS-Thai-lekchet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-lekchet">
+<ANCHOR id="IBUS-Thai-lekpaet" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-lekpaet">
+<ANCHOR id="IBUS-Thai-lekkao" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Thai-lekkao">
+<ANCHOR id="IBUS-Hangul" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul">
+<ANCHOR id="IBUS-Hangul-Start" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Start">
+<ANCHOR id="IBUS-Hangul-End" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-End">
+<ANCHOR id="IBUS-Hangul-Hanja" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Hanja">
+<ANCHOR id="IBUS-Hangul-Jamo" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jamo">
+<ANCHOR id="IBUS-Hangul-Romaja" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Romaja">
+<ANCHOR id="IBUS-Hangul-Codeinput" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Codeinput">
+<ANCHOR id="IBUS-Hangul-Jeonja" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jeonja">
+<ANCHOR id="IBUS-Hangul-Banja" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Banja">
+<ANCHOR id="IBUS-Hangul-PreHanja" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-PreHanja">
+<ANCHOR id="IBUS-Hangul-PostHanja" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-PostHanja">
+<ANCHOR id="IBUS-Hangul-SingleCandidate" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-SingleCandidate">
+<ANCHOR id="IBUS-Hangul-MultipleCandidate" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-MultipleCandidate">
+<ANCHOR id="IBUS-Hangul-PreviousCandidate" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-PreviousCandidate">
+<ANCHOR id="IBUS-Hangul-Special" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Special">
+<ANCHOR id="IBUS-Hangul-switch" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-switch">
+<ANCHOR id="IBUS-Hangul-Kiyeog" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Kiyeog">
+<ANCHOR id="IBUS-Hangul-SsangKiyeog" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangKiyeog">
+<ANCHOR id="IBUS-Hangul-KiyeogSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-KiyeogSios">
+<ANCHOR id="IBUS-Hangul-Nieun" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Nieun">
+<ANCHOR id="IBUS-Hangul-NieunJieuj" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-NieunJieuj">
+<ANCHOR id="IBUS-Hangul-NieunHieuh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-NieunHieuh">
+<ANCHOR id="IBUS-Hangul-Dikeud" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Dikeud">
+<ANCHOR id="IBUS-Hangul-SsangDikeud" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangDikeud">
+<ANCHOR id="IBUS-Hangul-Rieul" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Rieul">
+<ANCHOR id="IBUS-Hangul-RieulKiyeog" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulKiyeog">
+<ANCHOR id="IBUS-Hangul-RieulMieum" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulMieum">
+<ANCHOR id="IBUS-Hangul-RieulPieub" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulPieub">
+<ANCHOR id="IBUS-Hangul-RieulSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulSios">
+<ANCHOR id="IBUS-Hangul-RieulTieut" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulTieut">
+<ANCHOR id="IBUS-Hangul-RieulPhieuf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulPhieuf">
+<ANCHOR id="IBUS-Hangul-RieulHieuh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulHieuh">
+<ANCHOR id="IBUS-Hangul-Mieum" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Mieum">
+<ANCHOR id="IBUS-Hangul-Pieub" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Pieub">
+<ANCHOR id="IBUS-Hangul-SsangPieub" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangPieub">
+<ANCHOR id="IBUS-Hangul-PieubSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-PieubSios">
+<ANCHOR id="IBUS-Hangul-Sios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Sios">
+<ANCHOR id="IBUS-Hangul-SsangSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangSios">
+<ANCHOR id="IBUS-Hangul-Ieung" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Ieung">
+<ANCHOR id="IBUS-Hangul-Jieuj" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Jieuj">
+<ANCHOR id="IBUS-Hangul-SsangJieuj" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-SsangJieuj">
+<ANCHOR id="IBUS-Hangul-Cieuc" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Cieuc">
+<ANCHOR id="IBUS-Hangul-Khieuq" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Khieuq">
+<ANCHOR id="IBUS-Hangul-Tieut" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Tieut">
+<ANCHOR id="IBUS-Hangul-Phieuf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Phieuf">
+<ANCHOR id="IBUS-Hangul-Hieuh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-Hieuh">
+<ANCHOR id="IBUS-Hangul-A" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-A">
+<ANCHOR id="IBUS-Hangul-AE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-AE">
+<ANCHOR id="IBUS-Hangul-YA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-YA">
+<ANCHOR id="IBUS-Hangul-YAE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-YAE">
+<ANCHOR id="IBUS-Hangul-EO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-EO">
+<ANCHOR id="IBUS-Hangul-E" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-E">
+<ANCHOR id="IBUS-Hangul-YEO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-YEO">
+<ANCHOR id="IBUS-Hangul-YE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-YE">
+<ANCHOR id="IBUS-Hangul-O" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-O">
+<ANCHOR id="IBUS-Hangul-WA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-WA">
+<ANCHOR id="IBUS-Hangul-WAE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-WAE">
+<ANCHOR id="IBUS-Hangul-OE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-OE">
+<ANCHOR id="IBUS-Hangul-YO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-YO">
+<ANCHOR id="IBUS-Hangul-U" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-U">
+<ANCHOR id="IBUS-Hangul-WEO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-WEO">
+<ANCHOR id="IBUS-Hangul-WE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-WE">
+<ANCHOR id="IBUS-Hangul-WI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-WI">
+<ANCHOR id="IBUS-Hangul-YU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-YU">
+<ANCHOR id="IBUS-Hangul-EU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-EU">
+<ANCHOR id="IBUS-Hangul-YI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-YI">
+<ANCHOR id="IBUS-Hangul-I" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-I">
+<ANCHOR id="IBUS-Hangul-J-Kiyeog" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Kiyeog">
+<ANCHOR id="IBUS-Hangul-J-SsangKiyeog" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-SsangKiyeog">
+<ANCHOR id="IBUS-Hangul-J-KiyeogSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-KiyeogSios">
+<ANCHOR id="IBUS-Hangul-J-Nieun" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Nieun">
+<ANCHOR id="IBUS-Hangul-J-NieunJieuj" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-NieunJieuj">
+<ANCHOR id="IBUS-Hangul-J-NieunHieuh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-NieunHieuh">
+<ANCHOR id="IBUS-Hangul-J-Dikeud" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Dikeud">
+<ANCHOR id="IBUS-Hangul-J-Rieul" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Rieul">
+<ANCHOR id="IBUS-Hangul-J-RieulKiyeog" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulKiyeog">
+<ANCHOR id="IBUS-Hangul-J-RieulMieum" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulMieum">
+<ANCHOR id="IBUS-Hangul-J-RieulPieub" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulPieub">
+<ANCHOR id="IBUS-Hangul-J-RieulSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulSios">
+<ANCHOR id="IBUS-Hangul-J-RieulTieut" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulTieut">
+<ANCHOR id="IBUS-Hangul-J-RieulPhieuf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulPhieuf">
+<ANCHOR id="IBUS-Hangul-J-RieulHieuh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-RieulHieuh">
+<ANCHOR id="IBUS-Hangul-J-Mieum" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Mieum">
+<ANCHOR id="IBUS-Hangul-J-Pieub" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Pieub">
+<ANCHOR id="IBUS-Hangul-J-PieubSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-PieubSios">
+<ANCHOR id="IBUS-Hangul-J-Sios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Sios">
+<ANCHOR id="IBUS-Hangul-J-SsangSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-SsangSios">
+<ANCHOR id="IBUS-Hangul-J-Ieung" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Ieung">
+<ANCHOR id="IBUS-Hangul-J-Jieuj" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Jieuj">
+<ANCHOR id="IBUS-Hangul-J-Cieuc" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Cieuc">
+<ANCHOR id="IBUS-Hangul-J-Khieuq" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Khieuq">
+<ANCHOR id="IBUS-Hangul-J-Tieut" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Tieut">
+<ANCHOR id="IBUS-Hangul-J-Phieuf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Phieuf">
+<ANCHOR id="IBUS-Hangul-J-Hieuh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-Hieuh">
+<ANCHOR id="IBUS-Hangul-RieulYeorinHieuh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-RieulYeorinHieuh">
+<ANCHOR id="IBUS-Hangul-SunkyeongeumMieum" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumMieum">
+<ANCHOR id="IBUS-Hangul-SunkyeongeumPieub" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumPieub">
+<ANCHOR id="IBUS-Hangul-PanSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-PanSios">
+<ANCHOR id="IBUS-Hangul-KkogjiDalrinIeung" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-KkogjiDalrinIeung">
+<ANCHOR id="IBUS-Hangul-SunkyeongeumPhieuf" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-SunkyeongeumPhieuf">
+<ANCHOR id="IBUS-Hangul-YeorinHieuh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-YeorinHieuh">
+<ANCHOR id="IBUS-Hangul-AraeA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-AraeA">
+<ANCHOR id="IBUS-Hangul-AraeAE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-AraeAE">
+<ANCHOR id="IBUS-Hangul-J-PanSios" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-PanSios">
+<ANCHOR id="IBUS-Hangul-J-KkogjiDalrinIeung" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-KkogjiDalrinIeung">
+<ANCHOR id="IBUS-Hangul-J-YeorinHieuh" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Hangul-J-YeorinHieuh">
+<ANCHOR id="IBUS-Korean-Won" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Korean-Won">
+<ANCHOR id="IBUS-Armenian-ligature-ew" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ligature-ew">
+<ANCHOR id="IBUS-Armenian-full-stop" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-full-stop">
+<ANCHOR id="IBUS-Armenian-verjaket" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-verjaket">
+<ANCHOR id="IBUS-Armenian-separation-mark" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-separation-mark">
+<ANCHOR id="IBUS-Armenian-but" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-but">
+<ANCHOR id="IBUS-Armenian-hyphen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-hyphen">
+<ANCHOR id="IBUS-Armenian-yentamna" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-yentamna">
+<ANCHOR id="IBUS-Armenian-exclam" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-exclam">
+<ANCHOR id="IBUS-Armenian-amanak" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-amanak">
+<ANCHOR id="IBUS-Armenian-accent" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-accent">
+<ANCHOR id="IBUS-Armenian-shesht" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-shesht">
+<ANCHOR id="IBUS-Armenian-question" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-question">
+<ANCHOR id="IBUS-Armenian-paruyk" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-paruyk">
+<ANCHOR id="IBUS-Armenian-AYB" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-AYB">
+<ANCHOR id="IBUS-Armenian-ayb" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ayb">
+<ANCHOR id="IBUS-Armenian-BEN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-BEN">
+<ANCHOR id="IBUS-Armenian-ben" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ben">
+<ANCHOR id="IBUS-Armenian-GIM" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-GIM">
+<ANCHOR id="IBUS-Armenian-gim" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-gim">
+<ANCHOR id="IBUS-Armenian-DA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-DA">
+<ANCHOR id="IBUS-Armenian-da" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-da">
+<ANCHOR id="IBUS-Armenian-YECH" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-YECH">
+<ANCHOR id="IBUS-Armenian-yech" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-yech">
+<ANCHOR id="IBUS-Armenian-ZA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ZA">
+<ANCHOR id="IBUS-Armenian-za" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-za">
+<ANCHOR id="IBUS-Armenian-E" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-E">
+<ANCHOR id="IBUS-Armenian-e" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-e">
+<ANCHOR id="IBUS-Armenian-AT" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-AT">
+<ANCHOR id="IBUS-Armenian-at" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-at">
+<ANCHOR id="IBUS-Armenian-TO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-TO">
+<ANCHOR id="IBUS-Armenian-to" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-to">
+<ANCHOR id="IBUS-Armenian-ZHE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ZHE">
+<ANCHOR id="IBUS-Armenian-zhe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-zhe">
+<ANCHOR id="IBUS-Armenian-INI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-INI">
+<ANCHOR id="IBUS-Armenian-ini" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ini">
+<ANCHOR id="IBUS-Armenian-LYUN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-LYUN">
+<ANCHOR id="IBUS-Armenian-lyun" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-lyun">
+<ANCHOR id="IBUS-Armenian-KHE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-KHE">
+<ANCHOR id="IBUS-Armenian-khe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-khe">
+<ANCHOR id="IBUS-Armenian-TSA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-TSA">
+<ANCHOR id="IBUS-Armenian-tsa" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-tsa">
+<ANCHOR id="IBUS-Armenian-KEN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-KEN">
+<ANCHOR id="IBUS-Armenian-ken" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ken">
+<ANCHOR id="IBUS-Armenian-HO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-HO">
+<ANCHOR id="IBUS-Armenian-ho" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ho">
+<ANCHOR id="IBUS-Armenian-DZA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-DZA">
+<ANCHOR id="IBUS-Armenian-dza" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-dza">
+<ANCHOR id="IBUS-Armenian-GHAT" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-GHAT">
+<ANCHOR id="IBUS-Armenian-ghat" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ghat">
+<ANCHOR id="IBUS-Armenian-TCHE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-TCHE">
+<ANCHOR id="IBUS-Armenian-tche" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-tche">
+<ANCHOR id="IBUS-Armenian-MEN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-MEN">
+<ANCHOR id="IBUS-Armenian-men" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-men">
+<ANCHOR id="IBUS-Armenian-HI" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-HI">
+<ANCHOR id="IBUS-Armenian-hi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-hi">
+<ANCHOR id="IBUS-Armenian-NU" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-NU">
+<ANCHOR id="IBUS-Armenian-nu" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-nu">
+<ANCHOR id="IBUS-Armenian-SHA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-SHA">
+<ANCHOR id="IBUS-Armenian-sha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-sha">
+<ANCHOR id="IBUS-Armenian-VO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-VO">
+<ANCHOR id="IBUS-Armenian-vo" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-vo">
+<ANCHOR id="IBUS-Armenian-CHA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-CHA">
+<ANCHOR id="IBUS-Armenian-cha" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-cha">
+<ANCHOR id="IBUS-Armenian-PE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-PE">
+<ANCHOR id="IBUS-Armenian-pe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-pe">
+<ANCHOR id="IBUS-Armenian-JE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-JE">
+<ANCHOR id="IBUS-Armenian-je" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-je">
+<ANCHOR id="IBUS-Armenian-RA" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-RA">
+<ANCHOR id="IBUS-Armenian-ra" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ra">
+<ANCHOR id="IBUS-Armenian-SE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-SE">
+<ANCHOR id="IBUS-Armenian-se" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-se">
+<ANCHOR id="IBUS-Armenian-VEV" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-VEV">
+<ANCHOR id="IBUS-Armenian-vev" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-vev">
+<ANCHOR id="IBUS-Armenian-TYUN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-TYUN">
+<ANCHOR id="IBUS-Armenian-tyun" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-tyun">
+<ANCHOR id="IBUS-Armenian-RE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-RE">
+<ANCHOR id="IBUS-Armenian-re" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-re">
+<ANCHOR id="IBUS-Armenian-TSO" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-TSO">
+<ANCHOR id="IBUS-Armenian-tso" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-tso">
+<ANCHOR id="IBUS-Armenian-VYUN" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-VYUN">
+<ANCHOR id="IBUS-Armenian-vyun" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-vyun">
+<ANCHOR id="IBUS-Armenian-PYUR" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-PYUR">
+<ANCHOR id="IBUS-Armenian-pyur" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-pyur">
+<ANCHOR id="IBUS-Armenian-KE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-KE">
+<ANCHOR id="IBUS-Armenian-ke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-ke">
+<ANCHOR id="IBUS-Armenian-O" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-O">
+<ANCHOR id="IBUS-Armenian-o" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-o">
+<ANCHOR id="IBUS-Armenian-FE" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-FE">
+<ANCHOR id="IBUS-Armenian-fe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-fe">
+<ANCHOR id="IBUS-Armenian-apostrophe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Armenian-apostrophe">
+<ANCHOR id="IBUS-Georgian-an" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-an">
+<ANCHOR id="IBUS-Georgian-ban" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-ban">
+<ANCHOR id="IBUS-Georgian-gan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-gan">
+<ANCHOR id="IBUS-Georgian-don" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-don">
+<ANCHOR id="IBUS-Georgian-en" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-en">
+<ANCHOR id="IBUS-Georgian-vin" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-vin">
+<ANCHOR id="IBUS-Georgian-zen" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-zen">
+<ANCHOR id="IBUS-Georgian-tan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-tan">
+<ANCHOR id="IBUS-Georgian-in" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-in">
+<ANCHOR id="IBUS-Georgian-kan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-kan">
+<ANCHOR id="IBUS-Georgian-las" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-las">
+<ANCHOR id="IBUS-Georgian-man" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-man">
+<ANCHOR id="IBUS-Georgian-nar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-nar">
+<ANCHOR id="IBUS-Georgian-on" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-on">
+<ANCHOR id="IBUS-Georgian-par" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-par">
+<ANCHOR id="IBUS-Georgian-zhar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-zhar">
+<ANCHOR id="IBUS-Georgian-rae" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-rae">
+<ANCHOR id="IBUS-Georgian-san" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-san">
+<ANCHOR id="IBUS-Georgian-tar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-tar">
+<ANCHOR id="IBUS-Georgian-un" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-un">
+<ANCHOR id="IBUS-Georgian-phar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-phar">
+<ANCHOR id="IBUS-Georgian-khar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-khar">
+<ANCHOR id="IBUS-Georgian-ghan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-ghan">
+<ANCHOR id="IBUS-Georgian-qar" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-qar">
+<ANCHOR id="IBUS-Georgian-shin" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-shin">
+<ANCHOR id="IBUS-Georgian-chin" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-chin">
+<ANCHOR id="IBUS-Georgian-can" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-can">
+<ANCHOR id="IBUS-Georgian-jil" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-jil">
+<ANCHOR id="IBUS-Georgian-cil" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-cil">
+<ANCHOR id="IBUS-Georgian-char" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-char">
+<ANCHOR id="IBUS-Georgian-xan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-xan">
+<ANCHOR id="IBUS-Georgian-jhan" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-jhan">
+<ANCHOR id="IBUS-Georgian-hae" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-hae">
+<ANCHOR id="IBUS-Georgian-he" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-he">
+<ANCHOR id="IBUS-Georgian-hie" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-hie">
+<ANCHOR id="IBUS-Georgian-we" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-we">
+<ANCHOR id="IBUS-Georgian-har" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-har">
+<ANCHOR id="IBUS-Georgian-hoe" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-hoe">
+<ANCHOR id="IBUS-Georgian-fi" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Georgian-fi">
+<ANCHOR id="IBUS-Xabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Xabovedot">
+<ANCHOR id="IBUS-Ibreve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ibreve">
+<ANCHOR id="IBUS-Zstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Zstroke">
+<ANCHOR id="IBUS-Gcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Gcaron">
+<ANCHOR id="IBUS-Ocaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ocaron">
+<ANCHOR id="IBUS-Obarred" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Obarred">
+<ANCHOR id="IBUS-xabovedot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-xabovedot">
+<ANCHOR id="IBUS-ibreve" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ibreve">
+<ANCHOR id="IBUS-zstroke" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-zstroke">
+<ANCHOR id="IBUS-gcaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-gcaron">
+<ANCHOR id="IBUS-ocaron" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ocaron">
+<ANCHOR id="IBUS-obarred" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-obarred">
+<ANCHOR id="IBUS-SCHWA:CAPS" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-SCHWA:CAPS">
+<ANCHOR id="IBUS-schwa" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-schwa">
+<ANCHOR id="IBUS-Lbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Lbelowdot">
+<ANCHOR id="IBUS-lbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-lbelowdot">
+<ANCHOR id="IBUS-Abelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Abelowdot">
+<ANCHOR id="IBUS-abelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-abelowdot">
+<ANCHOR id="IBUS-Ahook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ahook">
+<ANCHOR id="IBUS-ahook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ahook">
+<ANCHOR id="IBUS-Acircumflexacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Acircumflexacute">
+<ANCHOR id="IBUS-acircumflexacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-acircumflexacute">
+<ANCHOR id="IBUS-Acircumflexgrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Acircumflexgrave">
+<ANCHOR id="IBUS-acircumflexgrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-acircumflexgrave">
+<ANCHOR id="IBUS-Acircumflexhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Acircumflexhook">
+<ANCHOR id="IBUS-acircumflexhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-acircumflexhook">
+<ANCHOR id="IBUS-Acircumflextilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Acircumflextilde">
+<ANCHOR id="IBUS-acircumflextilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-acircumflextilde">
+<ANCHOR id="IBUS-Acircumflexbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Acircumflexbelowdot">
+<ANCHOR id="IBUS-acircumflexbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-acircumflexbelowdot">
+<ANCHOR id="IBUS-Abreveacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Abreveacute">
+<ANCHOR id="IBUS-abreveacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-abreveacute">
+<ANCHOR id="IBUS-Abrevegrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Abrevegrave">
+<ANCHOR id="IBUS-abrevegrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-abrevegrave">
+<ANCHOR id="IBUS-Abrevehook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Abrevehook">
+<ANCHOR id="IBUS-abrevehook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-abrevehook">
+<ANCHOR id="IBUS-Abrevetilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Abrevetilde">
+<ANCHOR id="IBUS-abrevetilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-abrevetilde">
+<ANCHOR id="IBUS-Abrevebelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Abrevebelowdot">
+<ANCHOR id="IBUS-abrevebelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-abrevebelowdot">
+<ANCHOR id="IBUS-Ebelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ebelowdot">
+<ANCHOR id="IBUS-ebelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ebelowdot">
+<ANCHOR id="IBUS-Ehook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ehook">
+<ANCHOR id="IBUS-ehook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ehook">
+<ANCHOR id="IBUS-Etilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Etilde">
+<ANCHOR id="IBUS-etilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-etilde">
+<ANCHOR id="IBUS-Ecircumflexacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexacute">
+<ANCHOR id="IBUS-ecircumflexacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ecircumflexacute">
+<ANCHOR id="IBUS-Ecircumflexgrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexgrave">
+<ANCHOR id="IBUS-ecircumflexgrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ecircumflexgrave">
+<ANCHOR id="IBUS-Ecircumflexhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexhook">
+<ANCHOR id="IBUS-ecircumflexhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ecircumflexhook">
+<ANCHOR id="IBUS-Ecircumflextilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ecircumflextilde">
+<ANCHOR id="IBUS-ecircumflextilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ecircumflextilde">
+<ANCHOR id="IBUS-Ecircumflexbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ecircumflexbelowdot">
+<ANCHOR id="IBUS-ecircumflexbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ecircumflexbelowdot">
+<ANCHOR id="IBUS-Ihook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ihook">
+<ANCHOR id="IBUS-ihook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ihook">
+<ANCHOR id="IBUS-Ibelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ibelowdot">
+<ANCHOR id="IBUS-ibelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ibelowdot">
+<ANCHOR id="IBUS-Obelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Obelowdot">
+<ANCHOR id="IBUS-obelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-obelowdot">
+<ANCHOR id="IBUS-Ohook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ohook">
+<ANCHOR id="IBUS-ohook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ohook">
+<ANCHOR id="IBUS-Ocircumflexacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexacute">
+<ANCHOR id="IBUS-ocircumflexacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ocircumflexacute">
+<ANCHOR id="IBUS-Ocircumflexgrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexgrave">
+<ANCHOR id="IBUS-ocircumflexgrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ocircumflexgrave">
+<ANCHOR id="IBUS-Ocircumflexhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexhook">
+<ANCHOR id="IBUS-ocircumflexhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ocircumflexhook">
+<ANCHOR id="IBUS-Ocircumflextilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ocircumflextilde">
+<ANCHOR id="IBUS-ocircumflextilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ocircumflextilde">
+<ANCHOR id="IBUS-Ocircumflexbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ocircumflexbelowdot">
+<ANCHOR id="IBUS-ocircumflexbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ocircumflexbelowdot">
+<ANCHOR id="IBUS-Ohornacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ohornacute">
+<ANCHOR id="IBUS-ohornacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ohornacute">
+<ANCHOR id="IBUS-Ohorngrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ohorngrave">
+<ANCHOR id="IBUS-ohorngrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ohorngrave">
+<ANCHOR id="IBUS-Ohornhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ohornhook">
+<ANCHOR id="IBUS-ohornhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ohornhook">
+<ANCHOR id="IBUS-Ohorntilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ohorntilde">
+<ANCHOR id="IBUS-ohorntilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ohorntilde">
+<ANCHOR id="IBUS-Ohornbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ohornbelowdot">
+<ANCHOR id="IBUS-ohornbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ohornbelowdot">
+<ANCHOR id="IBUS-Ubelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ubelowdot">
+<ANCHOR id="IBUS-ubelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ubelowdot">
+<ANCHOR id="IBUS-Uhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uhook">
+<ANCHOR id="IBUS-uhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uhook">
+<ANCHOR id="IBUS-Uhornacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uhornacute">
+<ANCHOR id="IBUS-uhornacute" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uhornacute">
+<ANCHOR id="IBUS-Uhorngrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uhorngrave">
+<ANCHOR id="IBUS-uhorngrave" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uhorngrave">
+<ANCHOR id="IBUS-Uhornhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uhornhook">
+<ANCHOR id="IBUS-uhornhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uhornhook">
+<ANCHOR id="IBUS-Uhorntilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uhorntilde">
+<ANCHOR id="IBUS-uhorntilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uhorntilde">
+<ANCHOR id="IBUS-Uhornbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uhornbelowdot">
+<ANCHOR id="IBUS-uhornbelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uhornbelowdot">
+<ANCHOR id="IBUS-Ybelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ybelowdot">
+<ANCHOR id="IBUS-ybelowdot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ybelowdot">
+<ANCHOR id="IBUS-Yhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Yhook">
+<ANCHOR id="IBUS-yhook" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-yhook">
+<ANCHOR id="IBUS-Ytilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ytilde">
+<ANCHOR id="IBUS-ytilde" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ytilde">
+<ANCHOR id="IBUS-Ohorn" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Ohorn">
+<ANCHOR id="IBUS-ohorn" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ohorn">
+<ANCHOR id="IBUS-Uhorn" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-Uhorn">
+<ANCHOR id="IBUS-uhorn" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-uhorn">
+<ANCHOR id="IBUS-EcuSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-EcuSign">
+<ANCHOR id="IBUS-ColonSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ColonSign">
+<ANCHOR id="IBUS-CruzeiroSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-CruzeiroSign">
+<ANCHOR id="IBUS-FFrancSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-FFrancSign">
+<ANCHOR id="IBUS-LiraSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-LiraSign">
+<ANCHOR id="IBUS-MillSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-MillSign">
+<ANCHOR id="IBUS-NairaSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-NairaSign">
+<ANCHOR id="IBUS-PesetaSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-PesetaSign">
+<ANCHOR id="IBUS-RupeeSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-RupeeSign">
+<ANCHOR id="IBUS-WonSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-WonSign">
+<ANCHOR id="IBUS-NewSheqelSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-NewSheqelSign">
+<ANCHOR id="IBUS-DongSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-DongSign">
+<ANCHOR id="IBUS-EuroSign" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-EuroSign">
+<ANCHOR id="IBUS-zerosuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-zerosuperior">
+<ANCHOR id="IBUS-foursuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-foursuperior">
+<ANCHOR id="IBUS-fivesuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-fivesuperior">
+<ANCHOR id="IBUS-sixsuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-sixsuperior">
+<ANCHOR id="IBUS-sevensuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-sevensuperior">
+<ANCHOR id="IBUS-eightsuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-eightsuperior">
+<ANCHOR id="IBUS-ninesuperior" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ninesuperior">
+<ANCHOR id="IBUS-zerosubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-zerosubscript">
+<ANCHOR id="IBUS-onesubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-onesubscript">
+<ANCHOR id="IBUS-twosubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-twosubscript">
+<ANCHOR id="IBUS-threesubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-threesubscript">
+<ANCHOR id="IBUS-foursubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-foursubscript">
+<ANCHOR id="IBUS-fivesubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-fivesubscript">
+<ANCHOR id="IBUS-sixsubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-sixsubscript">
+<ANCHOR id="IBUS-sevensubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-sevensubscript">
+<ANCHOR id="IBUS-eightsubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-eightsubscript">
+<ANCHOR id="IBUS-ninesubscript" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-ninesubscript">
+<ANCHOR id="IBUS-partdifferential" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-partdifferential">
+<ANCHOR id="IBUS-emptyset" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-emptyset">
+<ANCHOR id="IBUS-elementof" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-elementof">
+<ANCHOR id="IBUS-notelementof" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-notelementof">
+<ANCHOR id="IBUS-containsas" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-containsas">
+<ANCHOR id="IBUS-squareroot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-squareroot">
+<ANCHOR id="IBUS-cuberoot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-cuberoot">
+<ANCHOR id="IBUS-fourthroot" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-fourthroot">
+<ANCHOR id="IBUS-dintegral" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-dintegral">
+<ANCHOR id="IBUS-tintegral" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-tintegral">
+<ANCHOR id="IBUS-because" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-because">
+<ANCHOR id="IBUS-approxeq" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-approxeq">
+<ANCHOR id="IBUS-notapproxeq" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-notapproxeq">
+<ANCHOR id="IBUS-notidentical" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-notidentical">
+<ANCHOR id="IBUS-stricteq" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-stricteq">
+<ANCHOR id="IBUS-braille-dot-1" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-1">
+<ANCHOR id="IBUS-braille-dot-2" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-2">
+<ANCHOR id="IBUS-braille-dot-3" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-3">
+<ANCHOR id="IBUS-braille-dot-4" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-4">
+<ANCHOR id="IBUS-braille-dot-5" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-5">
+<ANCHOR id="IBUS-braille-dot-6" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-6">
+<ANCHOR id="IBUS-braille-dot-7" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-7">
+<ANCHOR id="IBUS-braille-dot-8" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-8">
+<ANCHOR id="IBUS-braille-dot-9" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-9">
+<ANCHOR id="IBUS-braille-dot-10" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dot-10">
+<ANCHOR id="IBUS-braille-blank" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-blank">
+<ANCHOR id="IBUS-braille-dots-1" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1">
+<ANCHOR id="IBUS-braille-dots-2" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2">
+<ANCHOR id="IBUS-braille-dots-12" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12">
+<ANCHOR id="IBUS-braille-dots-3" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3">
+<ANCHOR id="IBUS-braille-dots-13" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13">
+<ANCHOR id="IBUS-braille-dots-23" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23">
+<ANCHOR id="IBUS-braille-dots-123" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123">
+<ANCHOR id="IBUS-braille-dots-4" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4">
+<ANCHOR id="IBUS-braille-dots-14" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14">
+<ANCHOR id="IBUS-braille-dots-24" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24">
+<ANCHOR id="IBUS-braille-dots-124" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124">
+<ANCHOR id="IBUS-braille-dots-34" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34">
+<ANCHOR id="IBUS-braille-dots-134" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134">
+<ANCHOR id="IBUS-braille-dots-234" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234">
+<ANCHOR id="IBUS-braille-dots-1234" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234">
+<ANCHOR id="IBUS-braille-dots-5" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-5">
+<ANCHOR id="IBUS-braille-dots-15" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-15">
+<ANCHOR id="IBUS-braille-dots-25" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-25">
+<ANCHOR id="IBUS-braille-dots-125" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-125">
+<ANCHOR id="IBUS-braille-dots-35" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-35">
+<ANCHOR id="IBUS-braille-dots-135" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-135">
+<ANCHOR id="IBUS-braille-dots-235" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-235">
+<ANCHOR id="IBUS-braille-dots-1235" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1235">
+<ANCHOR id="IBUS-braille-dots-45" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-45">
+<ANCHOR id="IBUS-braille-dots-145" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-145">
+<ANCHOR id="IBUS-braille-dots-245" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-245">
+<ANCHOR id="IBUS-braille-dots-1245" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1245">
+<ANCHOR id="IBUS-braille-dots-345" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-345">
+<ANCHOR id="IBUS-braille-dots-1345" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1345">
+<ANCHOR id="IBUS-braille-dots-2345" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2345">
+<ANCHOR id="IBUS-braille-dots-12345" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12345">
+<ANCHOR id="IBUS-braille-dots-6" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-6">
+<ANCHOR id="IBUS-braille-dots-16" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-16">
+<ANCHOR id="IBUS-braille-dots-26" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-26">
+<ANCHOR id="IBUS-braille-dots-126" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-126">
+<ANCHOR id="IBUS-braille-dots-36" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-36">
+<ANCHOR id="IBUS-braille-dots-136" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-136">
+<ANCHOR id="IBUS-braille-dots-236" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-236">
+<ANCHOR id="IBUS-braille-dots-1236" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1236">
+<ANCHOR id="IBUS-braille-dots-46" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-46">
+<ANCHOR id="IBUS-braille-dots-146" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-146">
+<ANCHOR id="IBUS-braille-dots-246" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-246">
+<ANCHOR id="IBUS-braille-dots-1246" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1246">
+<ANCHOR id="IBUS-braille-dots-346" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-346">
+<ANCHOR id="IBUS-braille-dots-1346" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1346">
+<ANCHOR id="IBUS-braille-dots-2346" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2346">
+<ANCHOR id="IBUS-braille-dots-12346" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12346">
+<ANCHOR id="IBUS-braille-dots-56" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-56">
+<ANCHOR id="IBUS-braille-dots-156" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-156">
+<ANCHOR id="IBUS-braille-dots-256" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-256">
+<ANCHOR id="IBUS-braille-dots-1256" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1256">
+<ANCHOR id="IBUS-braille-dots-356" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-356">
+<ANCHOR id="IBUS-braille-dots-1356" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1356">
+<ANCHOR id="IBUS-braille-dots-2356" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2356">
+<ANCHOR id="IBUS-braille-dots-12356" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12356">
+<ANCHOR id="IBUS-braille-dots-456" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-456">
+<ANCHOR id="IBUS-braille-dots-1456" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1456">
+<ANCHOR id="IBUS-braille-dots-2456" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2456">
+<ANCHOR id="IBUS-braille-dots-12456" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12456">
+<ANCHOR id="IBUS-braille-dots-3456" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3456">
+<ANCHOR id="IBUS-braille-dots-13456" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13456">
+<ANCHOR id="IBUS-braille-dots-23456" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23456">
+<ANCHOR id="IBUS-braille-dots-123456" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123456">
+<ANCHOR id="IBUS-braille-dots-7" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-7">
+<ANCHOR id="IBUS-braille-dots-17" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-17">
+<ANCHOR id="IBUS-braille-dots-27" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-27">
+<ANCHOR id="IBUS-braille-dots-127" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-127">
+<ANCHOR id="IBUS-braille-dots-37" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-37">
+<ANCHOR id="IBUS-braille-dots-137" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-137">
+<ANCHOR id="IBUS-braille-dots-237" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-237">
+<ANCHOR id="IBUS-braille-dots-1237" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1237">
+<ANCHOR id="IBUS-braille-dots-47" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-47">
+<ANCHOR id="IBUS-braille-dots-147" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-147">
+<ANCHOR id="IBUS-braille-dots-247" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-247">
+<ANCHOR id="IBUS-braille-dots-1247" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1247">
+<ANCHOR id="IBUS-braille-dots-347" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-347">
+<ANCHOR id="IBUS-braille-dots-1347" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1347">
+<ANCHOR id="IBUS-braille-dots-2347" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2347">
+<ANCHOR id="IBUS-braille-dots-12347" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12347">
+<ANCHOR id="IBUS-braille-dots-57" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-57">
+<ANCHOR id="IBUS-braille-dots-157" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-157">
+<ANCHOR id="IBUS-braille-dots-257" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-257">
+<ANCHOR id="IBUS-braille-dots-1257" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1257">
+<ANCHOR id="IBUS-braille-dots-357" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-357">
+<ANCHOR id="IBUS-braille-dots-1357" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1357">
+<ANCHOR id="IBUS-braille-dots-2357" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2357">
+<ANCHOR id="IBUS-braille-dots-12357" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12357">
+<ANCHOR id="IBUS-braille-dots-457" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-457">
+<ANCHOR id="IBUS-braille-dots-1457" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1457">
+<ANCHOR id="IBUS-braille-dots-2457" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2457">
+<ANCHOR id="IBUS-braille-dots-12457" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12457">
+<ANCHOR id="IBUS-braille-dots-3457" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3457">
+<ANCHOR id="IBUS-braille-dots-13457" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13457">
+<ANCHOR id="IBUS-braille-dots-23457" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23457">
+<ANCHOR id="IBUS-braille-dots-123457" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123457">
+<ANCHOR id="IBUS-braille-dots-67" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-67">
+<ANCHOR id="IBUS-braille-dots-167" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-167">
+<ANCHOR id="IBUS-braille-dots-267" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-267">
+<ANCHOR id="IBUS-braille-dots-1267" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1267">
+<ANCHOR id="IBUS-braille-dots-367" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-367">
+<ANCHOR id="IBUS-braille-dots-1367" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1367">
+<ANCHOR id="IBUS-braille-dots-2367" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2367">
+<ANCHOR id="IBUS-braille-dots-12367" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12367">
+<ANCHOR id="IBUS-braille-dots-467" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-467">
+<ANCHOR id="IBUS-braille-dots-1467" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1467">
+<ANCHOR id="IBUS-braille-dots-2467" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2467">
+<ANCHOR id="IBUS-braille-dots-12467" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12467">
+<ANCHOR id="IBUS-braille-dots-3467" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3467">
+<ANCHOR id="IBUS-braille-dots-13467" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13467">
+<ANCHOR id="IBUS-braille-dots-23467" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23467">
+<ANCHOR id="IBUS-braille-dots-123467" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123467">
+<ANCHOR id="IBUS-braille-dots-567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-567">
+<ANCHOR id="IBUS-braille-dots-1567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1567">
+<ANCHOR id="IBUS-braille-dots-2567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2567">
+<ANCHOR id="IBUS-braille-dots-12567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12567">
+<ANCHOR id="IBUS-braille-dots-3567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3567">
+<ANCHOR id="IBUS-braille-dots-13567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13567">
+<ANCHOR id="IBUS-braille-dots-23567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23567">
+<ANCHOR id="IBUS-braille-dots-123567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123567">
+<ANCHOR id="IBUS-braille-dots-4567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4567">
+<ANCHOR id="IBUS-braille-dots-14567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14567">
+<ANCHOR id="IBUS-braille-dots-24567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24567">
+<ANCHOR id="IBUS-braille-dots-124567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124567">
+<ANCHOR id="IBUS-braille-dots-34567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34567">
+<ANCHOR id="IBUS-braille-dots-134567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134567">
+<ANCHOR id="IBUS-braille-dots-234567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234567">
+<ANCHOR id="IBUS-braille-dots-1234567" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234567">
+<ANCHOR id="IBUS-braille-dots-8" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-8">
+<ANCHOR id="IBUS-braille-dots-18" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-18">
+<ANCHOR id="IBUS-braille-dots-28" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-28">
+<ANCHOR id="IBUS-braille-dots-128" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-128">
+<ANCHOR id="IBUS-braille-dots-38" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-38">
+<ANCHOR id="IBUS-braille-dots-138" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-138">
+<ANCHOR id="IBUS-braille-dots-238" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-238">
+<ANCHOR id="IBUS-braille-dots-1238" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1238">
+<ANCHOR id="IBUS-braille-dots-48" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-48">
+<ANCHOR id="IBUS-braille-dots-148" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-148">
+<ANCHOR id="IBUS-braille-dots-248" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-248">
+<ANCHOR id="IBUS-braille-dots-1248" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1248">
+<ANCHOR id="IBUS-braille-dots-348" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-348">
+<ANCHOR id="IBUS-braille-dots-1348" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1348">
+<ANCHOR id="IBUS-braille-dots-2348" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2348">
+<ANCHOR id="IBUS-braille-dots-12348" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12348">
+<ANCHOR id="IBUS-braille-dots-58" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-58">
+<ANCHOR id="IBUS-braille-dots-158" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-158">
+<ANCHOR id="IBUS-braille-dots-258" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-258">
+<ANCHOR id="IBUS-braille-dots-1258" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1258">
+<ANCHOR id="IBUS-braille-dots-358" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-358">
+<ANCHOR id="IBUS-braille-dots-1358" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1358">
+<ANCHOR id="IBUS-braille-dots-2358" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2358">
+<ANCHOR id="IBUS-braille-dots-12358" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12358">
+<ANCHOR id="IBUS-braille-dots-458" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-458">
+<ANCHOR id="IBUS-braille-dots-1458" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1458">
+<ANCHOR id="IBUS-braille-dots-2458" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2458">
+<ANCHOR id="IBUS-braille-dots-12458" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12458">
+<ANCHOR id="IBUS-braille-dots-3458" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3458">
+<ANCHOR id="IBUS-braille-dots-13458" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13458">
+<ANCHOR id="IBUS-braille-dots-23458" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23458">
+<ANCHOR id="IBUS-braille-dots-123458" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123458">
+<ANCHOR id="IBUS-braille-dots-68" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-68">
+<ANCHOR id="IBUS-braille-dots-168" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-168">
+<ANCHOR id="IBUS-braille-dots-268" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-268">
+<ANCHOR id="IBUS-braille-dots-1268" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1268">
+<ANCHOR id="IBUS-braille-dots-368" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-368">
+<ANCHOR id="IBUS-braille-dots-1368" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1368">
+<ANCHOR id="IBUS-braille-dots-2368" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2368">
+<ANCHOR id="IBUS-braille-dots-12368" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12368">
+<ANCHOR id="IBUS-braille-dots-468" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-468">
+<ANCHOR id="IBUS-braille-dots-1468" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1468">
+<ANCHOR id="IBUS-braille-dots-2468" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2468">
+<ANCHOR id="IBUS-braille-dots-12468" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12468">
+<ANCHOR id="IBUS-braille-dots-3468" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3468">
+<ANCHOR id="IBUS-braille-dots-13468" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13468">
+<ANCHOR id="IBUS-braille-dots-23468" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23468">
+<ANCHOR id="IBUS-braille-dots-123468" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123468">
+<ANCHOR id="IBUS-braille-dots-568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-568">
+<ANCHOR id="IBUS-braille-dots-1568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1568">
+<ANCHOR id="IBUS-braille-dots-2568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2568">
+<ANCHOR id="IBUS-braille-dots-12568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12568">
+<ANCHOR id="IBUS-braille-dots-3568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3568">
+<ANCHOR id="IBUS-braille-dots-13568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13568">
+<ANCHOR id="IBUS-braille-dots-23568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23568">
+<ANCHOR id="IBUS-braille-dots-123568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123568">
+<ANCHOR id="IBUS-braille-dots-4568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4568">
+<ANCHOR id="IBUS-braille-dots-14568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14568">
+<ANCHOR id="IBUS-braille-dots-24568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24568">
+<ANCHOR id="IBUS-braille-dots-124568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124568">
+<ANCHOR id="IBUS-braille-dots-34568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34568">
+<ANCHOR id="IBUS-braille-dots-134568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134568">
+<ANCHOR id="IBUS-braille-dots-234568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234568">
+<ANCHOR id="IBUS-braille-dots-1234568" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234568">
+<ANCHOR id="IBUS-braille-dots-78" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-78">
+<ANCHOR id="IBUS-braille-dots-178" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-178">
+<ANCHOR id="IBUS-braille-dots-278" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-278">
+<ANCHOR id="IBUS-braille-dots-1278" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1278">
+<ANCHOR id="IBUS-braille-dots-378" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-378">
+<ANCHOR id="IBUS-braille-dots-1378" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1378">
+<ANCHOR id="IBUS-braille-dots-2378" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2378">
+<ANCHOR id="IBUS-braille-dots-12378" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12378">
+<ANCHOR id="IBUS-braille-dots-478" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-478">
+<ANCHOR id="IBUS-braille-dots-1478" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1478">
+<ANCHOR id="IBUS-braille-dots-2478" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2478">
+<ANCHOR id="IBUS-braille-dots-12478" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12478">
+<ANCHOR id="IBUS-braille-dots-3478" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3478">
+<ANCHOR id="IBUS-braille-dots-13478" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13478">
+<ANCHOR id="IBUS-braille-dots-23478" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23478">
+<ANCHOR id="IBUS-braille-dots-123478" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123478">
+<ANCHOR id="IBUS-braille-dots-578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-578">
+<ANCHOR id="IBUS-braille-dots-1578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1578">
+<ANCHOR id="IBUS-braille-dots-2578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2578">
+<ANCHOR id="IBUS-braille-dots-12578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12578">
+<ANCHOR id="IBUS-braille-dots-3578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3578">
+<ANCHOR id="IBUS-braille-dots-13578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13578">
+<ANCHOR id="IBUS-braille-dots-23578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23578">
+<ANCHOR id="IBUS-braille-dots-123578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123578">
+<ANCHOR id="IBUS-braille-dots-4578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4578">
+<ANCHOR id="IBUS-braille-dots-14578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14578">
+<ANCHOR id="IBUS-braille-dots-24578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24578">
+<ANCHOR id="IBUS-braille-dots-124578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124578">
+<ANCHOR id="IBUS-braille-dots-34578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34578">
+<ANCHOR id="IBUS-braille-dots-134578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134578">
+<ANCHOR id="IBUS-braille-dots-234578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234578">
+<ANCHOR id="IBUS-braille-dots-1234578" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234578">
+<ANCHOR id="IBUS-braille-dots-678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-678">
+<ANCHOR id="IBUS-braille-dots-1678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1678">
+<ANCHOR id="IBUS-braille-dots-2678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2678">
+<ANCHOR id="IBUS-braille-dots-12678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12678">
+<ANCHOR id="IBUS-braille-dots-3678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-3678">
+<ANCHOR id="IBUS-braille-dots-13678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-13678">
+<ANCHOR id="IBUS-braille-dots-23678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-23678">
+<ANCHOR id="IBUS-braille-dots-123678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-123678">
+<ANCHOR id="IBUS-braille-dots-4678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-4678">
+<ANCHOR id="IBUS-braille-dots-14678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-14678">
+<ANCHOR id="IBUS-braille-dots-24678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-24678">
+<ANCHOR id="IBUS-braille-dots-124678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-124678">
+<ANCHOR id="IBUS-braille-dots-34678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-34678">
+<ANCHOR id="IBUS-braille-dots-134678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-134678">
+<ANCHOR id="IBUS-braille-dots-234678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-234678">
+<ANCHOR id="IBUS-braille-dots-1234678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1234678">
+<ANCHOR id="IBUS-braille-dots-5678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-5678">
+<ANCHOR id="IBUS-braille-dots-15678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-15678">
+<ANCHOR id="IBUS-braille-dots-25678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-25678">
+<ANCHOR id="IBUS-braille-dots-125678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-125678">
+<ANCHOR id="IBUS-braille-dots-35678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-35678">
+<ANCHOR id="IBUS-braille-dots-135678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-135678">
+<ANCHOR id="IBUS-braille-dots-235678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-235678">
+<ANCHOR id="IBUS-braille-dots-1235678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1235678">
+<ANCHOR id="IBUS-braille-dots-45678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-45678">
+<ANCHOR id="IBUS-braille-dots-145678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-145678">
+<ANCHOR id="IBUS-braille-dots-245678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-245678">
+<ANCHOR id="IBUS-braille-dots-1245678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1245678">
+<ANCHOR id="IBUS-braille-dots-345678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-345678">
+<ANCHOR id="IBUS-braille-dots-1345678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-1345678">
+<ANCHOR id="IBUS-braille-dots-2345678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-2345678">
+<ANCHOR id="IBUS-braille-dots-12345678" href="ibus/ibus-ibuskeysyms-compat.html#IBUS-braille-dots-12345678">
+<ANCHOR id="ibus-IBusKeysyms" href="ibus/ibus-IBusKeysyms.html">
+<ANCHOR id="ibus-IBusKeysyms.stability-level" href="ibus/ibus-IBusKeysyms.html#ibus-IBusKeysyms.stability-level">
+<ANCHOR id="ibus-IBusKeysyms.synopsis" href="ibus/ibus-IBusKeysyms.html#ibus-IBusKeysyms.synopsis">
+<ANCHOR id="ibus-IBusKeysyms.description" href="ibus/ibus-IBusKeysyms.html#ibus-IBusKeysyms.description">
+<ANCHOR id="ibus-IBusKeysyms.details" href="ibus/ibus-IBusKeysyms.html#ibus-IBusKeysyms.details">
+<ANCHOR id="IBUS-KEY-VoidSymbol" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-VoidSymbol">
+<ANCHOR id="IBUS-KEY-BackSpace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-BackSpace">
+<ANCHOR id="IBUS-KEY-Tab" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Tab">
+<ANCHOR id="IBUS-KEY-Linefeed" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Linefeed">
+<ANCHOR id="IBUS-KEY-Clear" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Clear">
+<ANCHOR id="IBUS-KEY-Return" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Return">
+<ANCHOR id="IBUS-KEY-Pause" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pause">
+<ANCHOR id="IBUS-KEY-Scroll-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Scroll-Lock">
+<ANCHOR id="IBUS-KEY-Sys-Req" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sys-Req">
+<ANCHOR id="IBUS-KEY-Escape" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Escape">
+<ANCHOR id="IBUS-KEY-Delete" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Delete">
+<ANCHOR id="IBUS-KEY-Multi-key" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Multi-key">
+<ANCHOR id="IBUS-KEY-Codeinput" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Codeinput">
+<ANCHOR id="IBUS-KEY-SingleCandidate" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-SingleCandidate">
+<ANCHOR id="IBUS-KEY-MultipleCandidate" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-MultipleCandidate">
+<ANCHOR id="IBUS-KEY-PreviousCandidate" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-PreviousCandidate">
+<ANCHOR id="IBUS-KEY-Kanji" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Kanji">
+<ANCHOR id="IBUS-KEY-Muhenkan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Muhenkan">
+<ANCHOR id="IBUS-KEY-Henkan-Mode" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Henkan-Mode">
+<ANCHOR id="IBUS-KEY-Henkan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Henkan">
+<ANCHOR id="IBUS-KEY-Romaji" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Romaji">
+<ANCHOR id="IBUS-KEY-Hiragana" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hiragana">
+<ANCHOR id="IBUS-KEY-Katakana" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Katakana">
+<ANCHOR id="IBUS-KEY-Hiragana-Katakana" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hiragana-Katakana">
+<ANCHOR id="IBUS-KEY-Zenkaku" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Zenkaku">
+<ANCHOR id="IBUS-KEY-Hankaku" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hankaku">
+<ANCHOR id="IBUS-KEY-Zenkaku-Hankaku" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Zenkaku-Hankaku">
+<ANCHOR id="IBUS-KEY-Touroku" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Touroku">
+<ANCHOR id="IBUS-KEY-Massyo" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Massyo">
+<ANCHOR id="IBUS-KEY-Kana-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Kana-Lock">
+<ANCHOR id="IBUS-KEY-Kana-Shift" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Kana-Shift">
+<ANCHOR id="IBUS-KEY-Eisu-Shift" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Eisu-Shift">
+<ANCHOR id="IBUS-KEY-Eisu-toggle" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Eisu-toggle">
+<ANCHOR id="IBUS-KEY-Kanji-Bangou" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Kanji-Bangou">
+<ANCHOR id="IBUS-KEY-Zen-Koho" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Zen-Koho">
+<ANCHOR id="IBUS-KEY-Mae-Koho" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Mae-Koho">
+<ANCHOR id="IBUS-KEY-Home" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Home">
+<ANCHOR id="IBUS-KEY-Left" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Left">
+<ANCHOR id="IBUS-KEY-Up" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Up">
+<ANCHOR id="IBUS-KEY-Right" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Right">
+<ANCHOR id="IBUS-KEY-Down" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Down">
+<ANCHOR id="IBUS-KEY-Prior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Prior">
+<ANCHOR id="IBUS-KEY-Page-Up" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Page-Up">
+<ANCHOR id="IBUS-KEY-Next" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Next">
+<ANCHOR id="IBUS-KEY-Page-Down" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Page-Down">
+<ANCHOR id="IBUS-KEY-End" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-End">
+<ANCHOR id="IBUS-KEY-Begin" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Begin">
+<ANCHOR id="IBUS-KEY-Select" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Select">
+<ANCHOR id="IBUS-KEY-Print" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Print">
+<ANCHOR id="IBUS-KEY-Execute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Execute">
+<ANCHOR id="IBUS-KEY-Insert" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Insert">
+<ANCHOR id="IBUS-KEY-Undo" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Undo">
+<ANCHOR id="IBUS-KEY-Redo" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Redo">
+<ANCHOR id="IBUS-KEY-Menu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Menu">
+<ANCHOR id="IBUS-KEY-Find" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Find">
+<ANCHOR id="IBUS-KEY-Cancel" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cancel">
+<ANCHOR id="IBUS-KEY-Help" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Help">
+<ANCHOR id="IBUS-KEY-Break" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Break">
+<ANCHOR id="IBUS-KEY-Mode-switch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Mode-switch">
+<ANCHOR id="IBUS-KEY-script-switch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-script-switch">
+<ANCHOR id="IBUS-KEY-Num-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Num-Lock">
+<ANCHOR id="IBUS-KEY-KP-Space" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Space">
+<ANCHOR id="IBUS-KEY-KP-Tab" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Tab">
+<ANCHOR id="IBUS-KEY-KP-Enter" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Enter">
+<ANCHOR id="IBUS-KEY-KP-F1:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-F1:CAPS">
+<ANCHOR id="IBUS-KEY-KP-F2:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-F2:CAPS">
+<ANCHOR id="IBUS-KEY-KP-F3:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-F3:CAPS">
+<ANCHOR id="IBUS-KEY-KP-F4:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-F4:CAPS">
+<ANCHOR id="IBUS-KEY-KP-Home" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Home">
+<ANCHOR id="IBUS-KEY-KP-Left" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Left">
+<ANCHOR id="IBUS-KEY-KP-Up" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Up">
+<ANCHOR id="IBUS-KEY-KP-Right" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Right">
+<ANCHOR id="IBUS-KEY-KP-Down" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Down">
+<ANCHOR id="IBUS-KEY-KP-Prior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Prior">
+<ANCHOR id="IBUS-KEY-KP-Page-Up" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Page-Up">
+<ANCHOR id="IBUS-KEY-KP-Next" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Next">
+<ANCHOR id="IBUS-KEY-KP-Page-Down" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Page-Down">
+<ANCHOR id="IBUS-KEY-KP-End" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-End">
+<ANCHOR id="IBUS-KEY-KP-Begin" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Begin">
+<ANCHOR id="IBUS-KEY-KP-Insert" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Insert">
+<ANCHOR id="IBUS-KEY-KP-Delete" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Delete">
+<ANCHOR id="IBUS-KEY-KP-Equal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Equal">
+<ANCHOR id="IBUS-KEY-KP-Multiply" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Multiply">
+<ANCHOR id="IBUS-KEY-KP-Add" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Add">
+<ANCHOR id="IBUS-KEY-KP-Separator" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Separator">
+<ANCHOR id="IBUS-KEY-KP-Subtract" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Subtract">
+<ANCHOR id="IBUS-KEY-KP-Decimal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Decimal">
+<ANCHOR id="IBUS-KEY-KP-Divide" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-Divide">
+<ANCHOR id="IBUS-KEY-KP-0:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-0:CAPS">
+<ANCHOR id="IBUS-KEY-KP-1:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-1:CAPS">
+<ANCHOR id="IBUS-KEY-KP-2:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-2:CAPS">
+<ANCHOR id="IBUS-KEY-KP-3:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-3:CAPS">
+<ANCHOR id="IBUS-KEY-KP-4:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-4:CAPS">
+<ANCHOR id="IBUS-KEY-KP-5:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-5:CAPS">
+<ANCHOR id="IBUS-KEY-KP-6:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-6:CAPS">
+<ANCHOR id="IBUS-KEY-KP-7:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-7:CAPS">
+<ANCHOR id="IBUS-KEY-KP-8:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-8:CAPS">
+<ANCHOR id="IBUS-KEY-KP-9:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-KP-9:CAPS">
+<ANCHOR id="IBUS-KEY-F1:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F1:CAPS">
+<ANCHOR id="IBUS-KEY-F2:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F2:CAPS">
+<ANCHOR id="IBUS-KEY-F3:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F3:CAPS">
+<ANCHOR id="IBUS-KEY-F4:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F4:CAPS">
+<ANCHOR id="IBUS-KEY-F5:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F5:CAPS">
+<ANCHOR id="IBUS-KEY-F6:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F6:CAPS">
+<ANCHOR id="IBUS-KEY-F7:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F7:CAPS">
+<ANCHOR id="IBUS-KEY-F8:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F8:CAPS">
+<ANCHOR id="IBUS-KEY-F9:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F9:CAPS">
+<ANCHOR id="IBUS-KEY-F10:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F10:CAPS">
+<ANCHOR id="IBUS-KEY-F11:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F11:CAPS">
+<ANCHOR id="IBUS-KEY-L1:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L1:CAPS">
+<ANCHOR id="IBUS-KEY-F12:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F12:CAPS">
+<ANCHOR id="IBUS-KEY-L2:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L2:CAPS">
+<ANCHOR id="IBUS-KEY-F13:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F13:CAPS">
+<ANCHOR id="IBUS-KEY-L3:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L3:CAPS">
+<ANCHOR id="IBUS-KEY-F14:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F14:CAPS">
+<ANCHOR id="IBUS-KEY-L4:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L4:CAPS">
+<ANCHOR id="IBUS-KEY-F15:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F15:CAPS">
+<ANCHOR id="IBUS-KEY-L5:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L5:CAPS">
+<ANCHOR id="IBUS-KEY-F16:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F16:CAPS">
+<ANCHOR id="IBUS-KEY-L6:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L6:CAPS">
+<ANCHOR id="IBUS-KEY-F17:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F17:CAPS">
+<ANCHOR id="IBUS-KEY-L7:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L7:CAPS">
+<ANCHOR id="IBUS-KEY-F18:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F18:CAPS">
+<ANCHOR id="IBUS-KEY-L8:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L8:CAPS">
+<ANCHOR id="IBUS-KEY-F19:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F19:CAPS">
+<ANCHOR id="IBUS-KEY-L9:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L9:CAPS">
+<ANCHOR id="IBUS-KEY-F20:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F20:CAPS">
+<ANCHOR id="IBUS-KEY-L10:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L10:CAPS">
+<ANCHOR id="IBUS-KEY-F21:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F21:CAPS">
+<ANCHOR id="IBUS-KEY-R1:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R1:CAPS">
+<ANCHOR id="IBUS-KEY-F22:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F22:CAPS">
+<ANCHOR id="IBUS-KEY-R2:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R2:CAPS">
+<ANCHOR id="IBUS-KEY-F23:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F23:CAPS">
+<ANCHOR id="IBUS-KEY-R3:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R3:CAPS">
+<ANCHOR id="IBUS-KEY-F24:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F24:CAPS">
+<ANCHOR id="IBUS-KEY-R4:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R4:CAPS">
+<ANCHOR id="IBUS-KEY-F25:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F25:CAPS">
+<ANCHOR id="IBUS-KEY-R5:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R5:CAPS">
+<ANCHOR id="IBUS-KEY-F26:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F26:CAPS">
+<ANCHOR id="IBUS-KEY-R6:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R6:CAPS">
+<ANCHOR id="IBUS-KEY-F27:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F27:CAPS">
+<ANCHOR id="IBUS-KEY-R7:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R7:CAPS">
+<ANCHOR id="IBUS-KEY-F28:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F28:CAPS">
+<ANCHOR id="IBUS-KEY-R8:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R8:CAPS">
+<ANCHOR id="IBUS-KEY-F29:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F29:CAPS">
+<ANCHOR id="IBUS-KEY-R9:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R9:CAPS">
+<ANCHOR id="IBUS-KEY-F30:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F30:CAPS">
+<ANCHOR id="IBUS-KEY-R10:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R10:CAPS">
+<ANCHOR id="IBUS-KEY-F31:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F31:CAPS">
+<ANCHOR id="IBUS-KEY-R11:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R11:CAPS">
+<ANCHOR id="IBUS-KEY-F32:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F32:CAPS">
+<ANCHOR id="IBUS-KEY-R12:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R12:CAPS">
+<ANCHOR id="IBUS-KEY-F33:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F33:CAPS">
+<ANCHOR id="IBUS-KEY-R13:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R13:CAPS">
+<ANCHOR id="IBUS-KEY-F34:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F34:CAPS">
+<ANCHOR id="IBUS-KEY-R14:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R14:CAPS">
+<ANCHOR id="IBUS-KEY-F35:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F35:CAPS">
+<ANCHOR id="IBUS-KEY-R15:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R15:CAPS">
+<ANCHOR id="IBUS-KEY-Shift-L" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Shift-L">
+<ANCHOR id="IBUS-KEY-Shift-R" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Shift-R">
+<ANCHOR id="IBUS-KEY-Control-L" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Control-L">
+<ANCHOR id="IBUS-KEY-Control-R" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Control-R">
+<ANCHOR id="IBUS-KEY-Caps-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Caps-Lock">
+<ANCHOR id="IBUS-KEY-Shift-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Shift-Lock">
+<ANCHOR id="IBUS-KEY-Meta-L" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Meta-L">
+<ANCHOR id="IBUS-KEY-Meta-R" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Meta-R">
+<ANCHOR id="IBUS-KEY-Alt-L" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Alt-L">
+<ANCHOR id="IBUS-KEY-Alt-R" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Alt-R">
+<ANCHOR id="IBUS-KEY-Super-L" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Super-L">
+<ANCHOR id="IBUS-KEY-Super-R" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Super-R">
+<ANCHOR id="IBUS-KEY-Hyper-L" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hyper-L">
+<ANCHOR id="IBUS-KEY-Hyper-R" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hyper-R">
+<ANCHOR id="IBUS-KEY-ISO-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Lock">
+<ANCHOR id="IBUS-KEY-ISO-Level2-Latch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level2-Latch">
+<ANCHOR id="IBUS-KEY-ISO-Level3-Shift" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Shift">
+<ANCHOR id="IBUS-KEY-ISO-Level3-Latch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Latch">
+<ANCHOR id="IBUS-KEY-ISO-Level3-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level3-Lock">
+<ANCHOR id="IBUS-KEY-ISO-Level5-Shift" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Shift">
+<ANCHOR id="IBUS-KEY-ISO-Level5-Latch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Latch">
+<ANCHOR id="IBUS-KEY-ISO-Level5-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Level5-Lock">
+<ANCHOR id="IBUS-KEY-ISO-Group-Shift" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Shift">
+<ANCHOR id="IBUS-KEY-ISO-Group-Latch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Latch">
+<ANCHOR id="IBUS-KEY-ISO-Group-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Group-Lock">
+<ANCHOR id="IBUS-KEY-ISO-Next-Group" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Next-Group">
+<ANCHOR id="IBUS-KEY-ISO-Next-Group-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Next-Group-Lock">
+<ANCHOR id="IBUS-KEY-ISO-Prev-Group" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Prev-Group">
+<ANCHOR id="IBUS-KEY-ISO-Prev-Group-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Prev-Group-Lock">
+<ANCHOR id="IBUS-KEY-ISO-First-Group" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-First-Group">
+<ANCHOR id="IBUS-KEY-ISO-First-Group-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-First-Group-Lock">
+<ANCHOR id="IBUS-KEY-ISO-Last-Group" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Last-Group">
+<ANCHOR id="IBUS-KEY-ISO-Last-Group-Lock" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Last-Group-Lock">
+<ANCHOR id="IBUS-KEY-ISO-Left-Tab" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Left-Tab">
+<ANCHOR id="IBUS-KEY-ISO-Move-Line-Up" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Move-Line-Up">
+<ANCHOR id="IBUS-KEY-ISO-Move-Line-Down" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Move-Line-Down">
+<ANCHOR id="IBUS-KEY-ISO-Partial-Line-Up" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Line-Up">
+<ANCHOR id="IBUS-KEY-ISO-Partial-Line-Down" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Line-Down">
+<ANCHOR id="IBUS-KEY-ISO-Partial-Space-Left" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Space-Left">
+<ANCHOR id="IBUS-KEY-ISO-Partial-Space-Right" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Partial-Space-Right">
+<ANCHOR id="IBUS-KEY-ISO-Set-Margin-Left" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Set-Margin-Left">
+<ANCHOR id="IBUS-KEY-ISO-Set-Margin-Right" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Set-Margin-Right">
+<ANCHOR id="IBUS-KEY-ISO-Release-Margin-Left" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Margin-Left">
+<ANCHOR id="IBUS-KEY-ISO-Release-Margin-Right" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Margin-Right">
+<ANCHOR id="IBUS-KEY-ISO-Release-Both-Margins" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Release-Both-Margins">
+<ANCHOR id="IBUS-KEY-ISO-Fast-Cursor-Left" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Left">
+<ANCHOR id="IBUS-KEY-ISO-Fast-Cursor-Right" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Right">
+<ANCHOR id="IBUS-KEY-ISO-Fast-Cursor-Up" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Up">
+<ANCHOR id="IBUS-KEY-ISO-Fast-Cursor-Down" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Fast-Cursor-Down">
+<ANCHOR id="IBUS-KEY-ISO-Continuous-Underline" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Continuous-Underline">
+<ANCHOR id="IBUS-KEY-ISO-Discontinuous-Underline" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Discontinuous-Underline">
+<ANCHOR id="IBUS-KEY-ISO-Emphasize" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Emphasize">
+<ANCHOR id="IBUS-KEY-ISO-Center-Object" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Center-Object">
+<ANCHOR id="IBUS-KEY-ISO-Enter" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ISO-Enter">
+<ANCHOR id="IBUS-KEY-dead-grave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-grave">
+<ANCHOR id="IBUS-KEY-dead-acute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-acute">
+<ANCHOR id="IBUS-KEY-dead-circumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-circumflex">
+<ANCHOR id="IBUS-KEY-dead-tilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-tilde">
+<ANCHOR id="IBUS-KEY-dead-perispomeni" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-perispomeni">
+<ANCHOR id="IBUS-KEY-dead-macron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-macron">
+<ANCHOR id="IBUS-KEY-dead-breve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-breve">
+<ANCHOR id="IBUS-KEY-dead-abovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-abovedot">
+<ANCHOR id="IBUS-KEY-dead-diaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-diaeresis">
+<ANCHOR id="IBUS-KEY-dead-abovering" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-abovering">
+<ANCHOR id="IBUS-KEY-dead-doubleacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-doubleacute">
+<ANCHOR id="IBUS-KEY-dead-caron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-caron">
+<ANCHOR id="IBUS-KEY-dead-cedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-cedilla">
+<ANCHOR id="IBUS-KEY-dead-ogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-ogonek">
+<ANCHOR id="IBUS-KEY-dead-iota" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-iota">
+<ANCHOR id="IBUS-KEY-dead-voiced-sound" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-voiced-sound">
+<ANCHOR id="IBUS-KEY-dead-semivoiced-sound" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-semivoiced-sound">
+<ANCHOR id="IBUS-KEY-dead-belowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-belowdot">
+<ANCHOR id="IBUS-KEY-dead-hook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-hook">
+<ANCHOR id="IBUS-KEY-dead-horn" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-horn">
+<ANCHOR id="IBUS-KEY-dead-stroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-stroke">
+<ANCHOR id="IBUS-KEY-dead-abovecomma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-abovecomma">
+<ANCHOR id="IBUS-KEY-dead-psili" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-psili">
+<ANCHOR id="IBUS-KEY-dead-abovereversedcomma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-abovereversedcomma">
+<ANCHOR id="IBUS-KEY-dead-dasia" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-dasia">
+<ANCHOR id="IBUS-KEY-dead-doublegrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-doublegrave">
+<ANCHOR id="IBUS-KEY-dead-belowring" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-belowring">
+<ANCHOR id="IBUS-KEY-dead-belowmacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-belowmacron">
+<ANCHOR id="IBUS-KEY-dead-belowcircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-belowcircumflex">
+<ANCHOR id="IBUS-KEY-dead-belowtilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-belowtilde">
+<ANCHOR id="IBUS-KEY-dead-belowbreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-belowbreve">
+<ANCHOR id="IBUS-KEY-dead-belowdiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-belowdiaeresis">
+<ANCHOR id="IBUS-KEY-dead-invertedbreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-invertedbreve">
+<ANCHOR id="IBUS-KEY-dead-belowcomma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-belowcomma">
+<ANCHOR id="IBUS-KEY-dead-currency" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-currency">
+<ANCHOR id="IBUS-KEY-dead-a" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-a">
+<ANCHOR id="IBUS-KEY-dead-A" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-A">
+<ANCHOR id="IBUS-KEY-dead-e" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-e">
+<ANCHOR id="IBUS-KEY-dead-E" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-E">
+<ANCHOR id="IBUS-KEY-dead-i" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-i">
+<ANCHOR id="IBUS-KEY-dead-I" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-I">
+<ANCHOR id="IBUS-KEY-dead-o" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-o">
+<ANCHOR id="IBUS-KEY-dead-O" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-O">
+<ANCHOR id="IBUS-KEY-dead-u" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-u">
+<ANCHOR id="IBUS-KEY-dead-U" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-U">
+<ANCHOR id="IBUS-KEY-dead-small-schwa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-small-schwa">
+<ANCHOR id="IBUS-KEY-dead-capital-schwa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dead-capital-schwa">
+<ANCHOR id="IBUS-KEY-First-Virtual-Screen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-First-Virtual-Screen">
+<ANCHOR id="IBUS-KEY-Prev-Virtual-Screen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Prev-Virtual-Screen">
+<ANCHOR id="IBUS-KEY-Next-Virtual-Screen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Next-Virtual-Screen">
+<ANCHOR id="IBUS-KEY-Last-Virtual-Screen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Last-Virtual-Screen">
+<ANCHOR id="IBUS-KEY-Terminate-Server" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Terminate-Server">
+<ANCHOR id="IBUS-KEY-AccessX-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-AccessX-Enable">
+<ANCHOR id="IBUS-KEY-AccessX-Feedback-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-AccessX-Feedback-Enable">
+<ANCHOR id="IBUS-KEY-RepeatKeys-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-RepeatKeys-Enable">
+<ANCHOR id="IBUS-KEY-SlowKeys-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-SlowKeys-Enable">
+<ANCHOR id="IBUS-KEY-BounceKeys-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-BounceKeys-Enable">
+<ANCHOR id="IBUS-KEY-StickyKeys-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-StickyKeys-Enable">
+<ANCHOR id="IBUS-KEY-MouseKeys-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-MouseKeys-Enable">
+<ANCHOR id="IBUS-KEY-MouseKeys-Accel-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-MouseKeys-Accel-Enable">
+<ANCHOR id="IBUS-KEY-Overlay1-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Overlay1-Enable">
+<ANCHOR id="IBUS-KEY-Overlay2-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Overlay2-Enable">
+<ANCHOR id="IBUS-KEY-AudibleBell-Enable" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-AudibleBell-Enable">
+<ANCHOR id="IBUS-KEY-Pointer-Left" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Left">
+<ANCHOR id="IBUS-KEY-Pointer-Right" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Right">
+<ANCHOR id="IBUS-KEY-Pointer-Up" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Up">
+<ANCHOR id="IBUS-KEY-Pointer-Down" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Down">
+<ANCHOR id="IBUS-KEY-Pointer-UpLeft" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-UpLeft">
+<ANCHOR id="IBUS-KEY-Pointer-UpRight" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-UpRight">
+<ANCHOR id="IBUS-KEY-Pointer-DownLeft" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DownLeft">
+<ANCHOR id="IBUS-KEY-Pointer-DownRight" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DownRight">
+<ANCHOR id="IBUS-KEY-Pointer-Button-Dflt" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button-Dflt">
+<ANCHOR id="IBUS-KEY-Pointer-Button1" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button1">
+<ANCHOR id="IBUS-KEY-Pointer-Button2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button2">
+<ANCHOR id="IBUS-KEY-Pointer-Button3" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button3">
+<ANCHOR id="IBUS-KEY-Pointer-Button4" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button4">
+<ANCHOR id="IBUS-KEY-Pointer-Button5" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Button5">
+<ANCHOR id="IBUS-KEY-Pointer-DblClick-Dflt" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick-Dflt">
+<ANCHOR id="IBUS-KEY-Pointer-DblClick1" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick1">
+<ANCHOR id="IBUS-KEY-Pointer-DblClick2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick2">
+<ANCHOR id="IBUS-KEY-Pointer-DblClick3" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick3">
+<ANCHOR id="IBUS-KEY-Pointer-DblClick4" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick4">
+<ANCHOR id="IBUS-KEY-Pointer-DblClick5" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DblClick5">
+<ANCHOR id="IBUS-KEY-Pointer-Drag-Dflt" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag-Dflt">
+<ANCHOR id="IBUS-KEY-Pointer-Drag1" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag1">
+<ANCHOR id="IBUS-KEY-Pointer-Drag2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag2">
+<ANCHOR id="IBUS-KEY-Pointer-Drag3" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag3">
+<ANCHOR id="IBUS-KEY-Pointer-Drag4" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag4">
+<ANCHOR id="IBUS-KEY-Pointer-Drag5" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Drag5">
+<ANCHOR id="IBUS-KEY-Pointer-EnableKeys" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-EnableKeys">
+<ANCHOR id="IBUS-KEY-Pointer-Accelerate" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-Accelerate">
+<ANCHOR id="IBUS-KEY-Pointer-DfltBtnNext" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DfltBtnNext">
+<ANCHOR id="IBUS-KEY-Pointer-DfltBtnPrev" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pointer-DfltBtnPrev">
+<ANCHOR id="IBUS-KEY-ch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ch">
+<ANCHOR id="IBUS-KEY-Ch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ch">
+<ANCHOR id="IBUS-KEY-CH:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-CH:CAPS">
+<ANCHOR id="IBUS-KEY-c-h" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-c-h">
+<ANCHOR id="IBUS-KEY-C-h" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-C-h">
+<ANCHOR id="IBUS-KEY-C-H:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-C-H:CAPS">
+<ANCHOR id="IBUS-KEY-3270-Duplicate" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Duplicate">
+<ANCHOR id="IBUS-KEY-3270-FieldMark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-FieldMark">
+<ANCHOR id="IBUS-KEY-3270-Right2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Right2">
+<ANCHOR id="IBUS-KEY-3270-Left2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Left2">
+<ANCHOR id="IBUS-KEY-3270-BackTab" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-BackTab">
+<ANCHOR id="IBUS-KEY-3270-EraseEOF" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-EraseEOF">
+<ANCHOR id="IBUS-KEY-3270-EraseInput" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-EraseInput">
+<ANCHOR id="IBUS-KEY-3270-Reset" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Reset">
+<ANCHOR id="IBUS-KEY-3270-Quit" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Quit">
+<ANCHOR id="IBUS-KEY-3270-PA1:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-PA1:CAPS">
+<ANCHOR id="IBUS-KEY-3270-PA2:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-PA2:CAPS">
+<ANCHOR id="IBUS-KEY-3270-PA3:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-PA3:CAPS">
+<ANCHOR id="IBUS-KEY-3270-Test" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Test">
+<ANCHOR id="IBUS-KEY-3270-Attn" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Attn">
+<ANCHOR id="IBUS-KEY-3270-CursorBlink" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-CursorBlink">
+<ANCHOR id="IBUS-KEY-3270-AltCursor" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-AltCursor">
+<ANCHOR id="IBUS-KEY-3270-KeyClick" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-KeyClick">
+<ANCHOR id="IBUS-KEY-3270-Jump" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Jump">
+<ANCHOR id="IBUS-KEY-3270-Ident" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Ident">
+<ANCHOR id="IBUS-KEY-3270-Rule" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Rule">
+<ANCHOR id="IBUS-KEY-3270-Copy" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Copy">
+<ANCHOR id="IBUS-KEY-3270-Play" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Play">
+<ANCHOR id="IBUS-KEY-3270-Setup" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Setup">
+<ANCHOR id="IBUS-KEY-3270-Record" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Record">
+<ANCHOR id="IBUS-KEY-3270-ChangeScreen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-ChangeScreen">
+<ANCHOR id="IBUS-KEY-3270-DeleteWord" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-DeleteWord">
+<ANCHOR id="IBUS-KEY-3270-ExSelect" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-ExSelect">
+<ANCHOR id="IBUS-KEY-3270-CursorSelect" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-CursorSelect">
+<ANCHOR id="IBUS-KEY-3270-PrintScreen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-PrintScreen">
+<ANCHOR id="IBUS-KEY-3270-Enter" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3270-Enter">
+<ANCHOR id="IBUS-KEY-space" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-space">
+<ANCHOR id="IBUS-KEY-exclam" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-exclam">
+<ANCHOR id="IBUS-KEY-quotedbl" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-quotedbl">
+<ANCHOR id="IBUS-KEY-numbersign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-numbersign">
+<ANCHOR id="IBUS-KEY-dollar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dollar">
+<ANCHOR id="IBUS-KEY-percent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-percent">
+<ANCHOR id="IBUS-KEY-ampersand" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ampersand">
+<ANCHOR id="IBUS-KEY-apostrophe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-apostrophe">
+<ANCHOR id="IBUS-KEY-quoteright" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-quoteright">
+<ANCHOR id="IBUS-KEY-parenleft" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-parenleft">
+<ANCHOR id="IBUS-KEY-parenright" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-parenright">
+<ANCHOR id="IBUS-KEY-asterisk" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-asterisk">
+<ANCHOR id="IBUS-KEY-plus" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-plus">
+<ANCHOR id="IBUS-KEY-comma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-comma">
+<ANCHOR id="IBUS-KEY-minus" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-minus">
+<ANCHOR id="IBUS-KEY-period" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-period">
+<ANCHOR id="IBUS-KEY-slash" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-slash">
+<ANCHOR id="IBUS-KEY-0:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-0:CAPS">
+<ANCHOR id="IBUS-KEY-1:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-1:CAPS">
+<ANCHOR id="IBUS-KEY-2:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-2:CAPS">
+<ANCHOR id="IBUS-KEY-3:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-3:CAPS">
+<ANCHOR id="IBUS-KEY-4:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-4:CAPS">
+<ANCHOR id="IBUS-KEY-5:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-5:CAPS">
+<ANCHOR id="IBUS-KEY-6:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-6:CAPS">
+<ANCHOR id="IBUS-KEY-7:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-7:CAPS">
+<ANCHOR id="IBUS-KEY-8:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-8:CAPS">
+<ANCHOR id="IBUS-KEY-9:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-9:CAPS">
+<ANCHOR id="IBUS-KEY-colon" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-colon">
+<ANCHOR id="IBUS-KEY-semicolon" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-semicolon">
+<ANCHOR id="IBUS-KEY-less" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-less">
+<ANCHOR id="IBUS-KEY-equal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-equal">
+<ANCHOR id="IBUS-KEY-greater" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-greater">
+<ANCHOR id="IBUS-KEY-question" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-question">
+<ANCHOR id="IBUS-KEY-at" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-at">
+<ANCHOR id="IBUS-KEY-A:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-A:CAPS">
+<ANCHOR id="IBUS-KEY-B:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-B:CAPS">
+<ANCHOR id="IBUS-KEY-C:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-C:CAPS">
+<ANCHOR id="IBUS-KEY-D:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-D:CAPS">
+<ANCHOR id="IBUS-KEY-E:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-E:CAPS">
+<ANCHOR id="IBUS-KEY-F:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-F:CAPS">
+<ANCHOR id="IBUS-KEY-G:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-G:CAPS">
+<ANCHOR id="IBUS-KEY-H:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-H:CAPS">
+<ANCHOR id="IBUS-KEY-I:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-I:CAPS">
+<ANCHOR id="IBUS-KEY-J:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-J:CAPS">
+<ANCHOR id="IBUS-KEY-K:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-K:CAPS">
+<ANCHOR id="IBUS-KEY-L:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-L:CAPS">
+<ANCHOR id="IBUS-KEY-M:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-M:CAPS">
+<ANCHOR id="IBUS-KEY-N:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-N:CAPS">
+<ANCHOR id="IBUS-KEY-O:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-O:CAPS">
+<ANCHOR id="IBUS-KEY-P:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-P:CAPS">
+<ANCHOR id="IBUS-KEY-Q:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Q:CAPS">
+<ANCHOR id="IBUS-KEY-R:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-R:CAPS">
+<ANCHOR id="IBUS-KEY-S:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-S:CAPS">
+<ANCHOR id="IBUS-KEY-T:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-T:CAPS">
+<ANCHOR id="IBUS-KEY-U:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-U:CAPS">
+<ANCHOR id="IBUS-KEY-V:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-V:CAPS">
+<ANCHOR id="IBUS-KEY-W:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-W:CAPS">
+<ANCHOR id="IBUS-KEY-X:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-X:CAPS">
+<ANCHOR id="IBUS-KEY-Y:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Y:CAPS">
+<ANCHOR id="IBUS-KEY-Z:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Z:CAPS">
+<ANCHOR id="IBUS-KEY-bracketleft" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-bracketleft">
+<ANCHOR id="IBUS-KEY-backslash" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-backslash">
+<ANCHOR id="IBUS-KEY-bracketright" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-bracketright">
+<ANCHOR id="IBUS-KEY-asciicircum" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-asciicircum">
+<ANCHOR id="IBUS-KEY-underscore" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-underscore">
+<ANCHOR id="IBUS-KEY-grave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-grave">
+<ANCHOR id="IBUS-KEY-quoteleft" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-quoteleft">
+<ANCHOR id="IBUS-KEY-a" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-a">
+<ANCHOR id="IBUS-KEY-b" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-b">
+<ANCHOR id="IBUS-KEY-c" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-c">
+<ANCHOR id="IBUS-KEY-d" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-d">
+<ANCHOR id="IBUS-KEY-e" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-e">
+<ANCHOR id="IBUS-KEY-f" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-f">
+<ANCHOR id="IBUS-KEY-g" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-g">
+<ANCHOR id="IBUS-KEY-h" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-h">
+<ANCHOR id="IBUS-KEY-i" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-i">
+<ANCHOR id="IBUS-KEY-j" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-j">
+<ANCHOR id="IBUS-KEY-k" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-k">
+<ANCHOR id="IBUS-KEY-l" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-l">
+<ANCHOR id="IBUS-KEY-m" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-m">
+<ANCHOR id="IBUS-KEY-n" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-n">
+<ANCHOR id="IBUS-KEY-o" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-o">
+<ANCHOR id="IBUS-KEY-p" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-p">
+<ANCHOR id="IBUS-KEY-q" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-q">
+<ANCHOR id="IBUS-KEY-r" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-r">
+<ANCHOR id="IBUS-KEY-s" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-s">
+<ANCHOR id="IBUS-KEY-t" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-t">
+<ANCHOR id="IBUS-KEY-u" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-u">
+<ANCHOR id="IBUS-KEY-v" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-v">
+<ANCHOR id="IBUS-KEY-w" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-w">
+<ANCHOR id="IBUS-KEY-x" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-x">
+<ANCHOR id="IBUS-KEY-y" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-y">
+<ANCHOR id="IBUS-KEY-z" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-z">
+<ANCHOR id="IBUS-KEY-braceleft" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braceleft">
+<ANCHOR id="IBUS-KEY-bar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-bar">
+<ANCHOR id="IBUS-KEY-braceright" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braceright">
+<ANCHOR id="IBUS-KEY-asciitilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-asciitilde">
+<ANCHOR id="IBUS-KEY-nobreakspace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-nobreakspace">
+<ANCHOR id="IBUS-KEY-exclamdown" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-exclamdown">
+<ANCHOR id="IBUS-KEY-cent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-cent">
+<ANCHOR id="IBUS-KEY-sterling" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-sterling">
+<ANCHOR id="IBUS-KEY-currency" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-currency">
+<ANCHOR id="IBUS-KEY-yen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-yen">
+<ANCHOR id="IBUS-KEY-brokenbar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-brokenbar">
+<ANCHOR id="IBUS-KEY-section" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-section">
+<ANCHOR id="IBUS-KEY-diaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-diaeresis">
+<ANCHOR id="IBUS-KEY-copyright" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-copyright">
+<ANCHOR id="IBUS-KEY-ordfeminine" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ordfeminine">
+<ANCHOR id="IBUS-KEY-guillemotleft" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-guillemotleft">
+<ANCHOR id="IBUS-KEY-notsign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-notsign">
+<ANCHOR id="IBUS-KEY-hyphen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hyphen">
+<ANCHOR id="IBUS-KEY-registered" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-registered">
+<ANCHOR id="IBUS-KEY-macron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-macron">
+<ANCHOR id="IBUS-KEY-degree" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-degree">
+<ANCHOR id="IBUS-KEY-plusminus" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-plusminus">
+<ANCHOR id="IBUS-KEY-twosuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-twosuperior">
+<ANCHOR id="IBUS-KEY-threesuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-threesuperior">
+<ANCHOR id="IBUS-KEY-acute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-acute">
+<ANCHOR id="IBUS-KEY-mu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-mu">
+<ANCHOR id="IBUS-KEY-paragraph" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-paragraph">
+<ANCHOR id="IBUS-KEY-periodcentered" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-periodcentered">
+<ANCHOR id="IBUS-KEY-cedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-cedilla">
+<ANCHOR id="IBUS-KEY-onesuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-onesuperior">
+<ANCHOR id="IBUS-KEY-masculine" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-masculine">
+<ANCHOR id="IBUS-KEY-guillemotright" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-guillemotright">
+<ANCHOR id="IBUS-KEY-onequarter" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-onequarter">
+<ANCHOR id="IBUS-KEY-onehalf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-onehalf">
+<ANCHOR id="IBUS-KEY-threequarters" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-threequarters">
+<ANCHOR id="IBUS-KEY-questiondown" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-questiondown">
+<ANCHOR id="IBUS-KEY-Agrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Agrave">
+<ANCHOR id="IBUS-KEY-Aacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Aacute">
+<ANCHOR id="IBUS-KEY-Acircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Acircumflex">
+<ANCHOR id="IBUS-KEY-Atilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Atilde">
+<ANCHOR id="IBUS-KEY-Adiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Adiaeresis">
+<ANCHOR id="IBUS-KEY-Aring" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Aring">
+<ANCHOR id="IBUS-KEY-AE:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-AE:CAPS">
+<ANCHOR id="IBUS-KEY-Ccedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ccedilla">
+<ANCHOR id="IBUS-KEY-Egrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Egrave">
+<ANCHOR id="IBUS-KEY-Eacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Eacute">
+<ANCHOR id="IBUS-KEY-Ecircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflex">
+<ANCHOR id="IBUS-KEY-Ediaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ediaeresis">
+<ANCHOR id="IBUS-KEY-Igrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Igrave">
+<ANCHOR id="IBUS-KEY-Iacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Iacute">
+<ANCHOR id="IBUS-KEY-Icircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Icircumflex">
+<ANCHOR id="IBUS-KEY-Idiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Idiaeresis">
+<ANCHOR id="IBUS-KEY-ETH:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ETH:CAPS">
+<ANCHOR id="IBUS-KEY-Eth" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Eth">
+<ANCHOR id="IBUS-KEY-Ntilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ntilde">
+<ANCHOR id="IBUS-KEY-Ograve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ograve">
+<ANCHOR id="IBUS-KEY-Oacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Oacute">
+<ANCHOR id="IBUS-KEY-Ocircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflex">
+<ANCHOR id="IBUS-KEY-Otilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Otilde">
+<ANCHOR id="IBUS-KEY-Odiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Odiaeresis">
+<ANCHOR id="IBUS-KEY-multiply" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-multiply">
+<ANCHOR id="IBUS-KEY-Oslash" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Oslash">
+<ANCHOR id="IBUS-KEY-Ooblique" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ooblique">
+<ANCHOR id="IBUS-KEY-Ugrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ugrave">
+<ANCHOR id="IBUS-KEY-Uacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uacute">
+<ANCHOR id="IBUS-KEY-Ucircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ucircumflex">
+<ANCHOR id="IBUS-KEY-Udiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Udiaeresis">
+<ANCHOR id="IBUS-KEY-Yacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Yacute">
+<ANCHOR id="IBUS-KEY-THORN:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-THORN:CAPS">
+<ANCHOR id="IBUS-KEY-Thorn" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thorn">
+<ANCHOR id="IBUS-KEY-ssharp" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ssharp">
+<ANCHOR id="IBUS-KEY-agrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-agrave">
+<ANCHOR id="IBUS-KEY-aacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-aacute">
+<ANCHOR id="IBUS-KEY-acircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-acircumflex">
+<ANCHOR id="IBUS-KEY-atilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-atilde">
+<ANCHOR id="IBUS-KEY-adiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-adiaeresis">
+<ANCHOR id="IBUS-KEY-aring" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-aring">
+<ANCHOR id="IBUS-KEY-ae" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ae">
+<ANCHOR id="IBUS-KEY-ccedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ccedilla">
+<ANCHOR id="IBUS-KEY-egrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-egrave">
+<ANCHOR id="IBUS-KEY-eacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-eacute">
+<ANCHOR id="IBUS-KEY-ecircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ecircumflex">
+<ANCHOR id="IBUS-KEY-ediaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ediaeresis">
+<ANCHOR id="IBUS-KEY-igrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-igrave">
+<ANCHOR id="IBUS-KEY-iacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-iacute">
+<ANCHOR id="IBUS-KEY-icircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-icircumflex">
+<ANCHOR id="IBUS-KEY-idiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-idiaeresis">
+<ANCHOR id="IBUS-KEY-eth" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-eth">
+<ANCHOR id="IBUS-KEY-ntilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ntilde">
+<ANCHOR id="IBUS-KEY-ograve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ograve">
+<ANCHOR id="IBUS-KEY-oacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-oacute">
+<ANCHOR id="IBUS-KEY-ocircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ocircumflex">
+<ANCHOR id="IBUS-KEY-otilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-otilde">
+<ANCHOR id="IBUS-KEY-odiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-odiaeresis">
+<ANCHOR id="IBUS-KEY-division" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-division">
+<ANCHOR id="IBUS-KEY-oslash" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-oslash">
+<ANCHOR id="IBUS-KEY-ooblique" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ooblique">
+<ANCHOR id="IBUS-KEY-ugrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ugrave">
+<ANCHOR id="IBUS-KEY-uacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uacute">
+<ANCHOR id="IBUS-KEY-ucircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ucircumflex">
+<ANCHOR id="IBUS-KEY-udiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-udiaeresis">
+<ANCHOR id="IBUS-KEY-yacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-yacute">
+<ANCHOR id="IBUS-KEY-thorn" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-thorn">
+<ANCHOR id="IBUS-KEY-ydiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ydiaeresis">
+<ANCHOR id="IBUS-KEY-Aogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Aogonek">
+<ANCHOR id="IBUS-KEY-breve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-breve">
+<ANCHOR id="IBUS-KEY-Lstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Lstroke">
+<ANCHOR id="IBUS-KEY-Lcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Lcaron">
+<ANCHOR id="IBUS-KEY-Sacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sacute">
+<ANCHOR id="IBUS-KEY-Scaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Scaron">
+<ANCHOR id="IBUS-KEY-Scedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Scedilla">
+<ANCHOR id="IBUS-KEY-Tcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Tcaron">
+<ANCHOR id="IBUS-KEY-Zacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Zacute">
+<ANCHOR id="IBUS-KEY-Zcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Zcaron">
+<ANCHOR id="IBUS-KEY-Zabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Zabovedot">
+<ANCHOR id="IBUS-KEY-aogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-aogonek">
+<ANCHOR id="IBUS-KEY-ogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ogonek">
+<ANCHOR id="IBUS-KEY-lstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lstroke">
+<ANCHOR id="IBUS-KEY-lcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lcaron">
+<ANCHOR id="IBUS-KEY-sacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-sacute">
+<ANCHOR id="IBUS-KEY-caron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-caron">
+<ANCHOR id="IBUS-KEY-scaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-scaron">
+<ANCHOR id="IBUS-KEY-scedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-scedilla">
+<ANCHOR id="IBUS-KEY-tcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-tcaron">
+<ANCHOR id="IBUS-KEY-zacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-zacute">
+<ANCHOR id="IBUS-KEY-doubleacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-doubleacute">
+<ANCHOR id="IBUS-KEY-zcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-zcaron">
+<ANCHOR id="IBUS-KEY-zabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-zabovedot">
+<ANCHOR id="IBUS-KEY-Racute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Racute">
+<ANCHOR id="IBUS-KEY-Abreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Abreve">
+<ANCHOR id="IBUS-KEY-Lacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Lacute">
+<ANCHOR id="IBUS-KEY-Cacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cacute">
+<ANCHOR id="IBUS-KEY-Ccaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ccaron">
+<ANCHOR id="IBUS-KEY-Eogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Eogonek">
+<ANCHOR id="IBUS-KEY-Ecaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ecaron">
+<ANCHOR id="IBUS-KEY-Dcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Dcaron">
+<ANCHOR id="IBUS-KEY-Dstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Dstroke">
+<ANCHOR id="IBUS-KEY-Nacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Nacute">
+<ANCHOR id="IBUS-KEY-Ncaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ncaron">
+<ANCHOR id="IBUS-KEY-Odoubleacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Odoubleacute">
+<ANCHOR id="IBUS-KEY-Rcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Rcaron">
+<ANCHOR id="IBUS-KEY-Uring" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uring">
+<ANCHOR id="IBUS-KEY-Udoubleacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Udoubleacute">
+<ANCHOR id="IBUS-KEY-Tcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Tcedilla">
+<ANCHOR id="IBUS-KEY-racute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-racute">
+<ANCHOR id="IBUS-KEY-abreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-abreve">
+<ANCHOR id="IBUS-KEY-lacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lacute">
+<ANCHOR id="IBUS-KEY-cacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-cacute">
+<ANCHOR id="IBUS-KEY-ccaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ccaron">
+<ANCHOR id="IBUS-KEY-eogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-eogonek">
+<ANCHOR id="IBUS-KEY-ecaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ecaron">
+<ANCHOR id="IBUS-KEY-dcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dcaron">
+<ANCHOR id="IBUS-KEY-dstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dstroke">
+<ANCHOR id="IBUS-KEY-nacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-nacute">
+<ANCHOR id="IBUS-KEY-ncaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ncaron">
+<ANCHOR id="IBUS-KEY-odoubleacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-odoubleacute">
+<ANCHOR id="IBUS-KEY-rcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rcaron">
+<ANCHOR id="IBUS-KEY-uring" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uring">
+<ANCHOR id="IBUS-KEY-udoubleacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-udoubleacute">
+<ANCHOR id="IBUS-KEY-tcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-tcedilla">
+<ANCHOR id="IBUS-KEY-abovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-abovedot">
+<ANCHOR id="IBUS-KEY-Hstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hstroke">
+<ANCHOR id="IBUS-KEY-Hcircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hcircumflex">
+<ANCHOR id="IBUS-KEY-Iabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Iabovedot">
+<ANCHOR id="IBUS-KEY-Gbreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Gbreve">
+<ANCHOR id="IBUS-KEY-Jcircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Jcircumflex">
+<ANCHOR id="IBUS-KEY-hstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hstroke">
+<ANCHOR id="IBUS-KEY-hcircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hcircumflex">
+<ANCHOR id="IBUS-KEY-idotless" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-idotless">
+<ANCHOR id="IBUS-KEY-gbreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-gbreve">
+<ANCHOR id="IBUS-KEY-jcircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-jcircumflex">
+<ANCHOR id="IBUS-KEY-Cabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cabovedot">
+<ANCHOR id="IBUS-KEY-Ccircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ccircumflex">
+<ANCHOR id="IBUS-KEY-Gabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Gabovedot">
+<ANCHOR id="IBUS-KEY-Gcircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Gcircumflex">
+<ANCHOR id="IBUS-KEY-Ubreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ubreve">
+<ANCHOR id="IBUS-KEY-Scircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Scircumflex">
+<ANCHOR id="IBUS-KEY-cabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-cabovedot">
+<ANCHOR id="IBUS-KEY-ccircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ccircumflex">
+<ANCHOR id="IBUS-KEY-gabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-gabovedot">
+<ANCHOR id="IBUS-KEY-gcircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-gcircumflex">
+<ANCHOR id="IBUS-KEY-ubreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ubreve">
+<ANCHOR id="IBUS-KEY-scircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-scircumflex">
+<ANCHOR id="IBUS-KEY-kra" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kra">
+<ANCHOR id="IBUS-KEY-kappa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kappa">
+<ANCHOR id="IBUS-KEY-Rcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Rcedilla">
+<ANCHOR id="IBUS-KEY-Itilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Itilde">
+<ANCHOR id="IBUS-KEY-Lcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Lcedilla">
+<ANCHOR id="IBUS-KEY-Emacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Emacron">
+<ANCHOR id="IBUS-KEY-Gcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Gcedilla">
+<ANCHOR id="IBUS-KEY-Tslash" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Tslash">
+<ANCHOR id="IBUS-KEY-rcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rcedilla">
+<ANCHOR id="IBUS-KEY-itilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-itilde">
+<ANCHOR id="IBUS-KEY-lcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lcedilla">
+<ANCHOR id="IBUS-KEY-emacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-emacron">
+<ANCHOR id="IBUS-KEY-gcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-gcedilla">
+<ANCHOR id="IBUS-KEY-tslash" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-tslash">
+<ANCHOR id="IBUS-KEY-ENG:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ENG:CAPS">
+<ANCHOR id="IBUS-KEY-eng" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-eng">
+<ANCHOR id="IBUS-KEY-Amacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Amacron">
+<ANCHOR id="IBUS-KEY-Iogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Iogonek">
+<ANCHOR id="IBUS-KEY-Eabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Eabovedot">
+<ANCHOR id="IBUS-KEY-Imacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Imacron">
+<ANCHOR id="IBUS-KEY-Ncedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ncedilla">
+<ANCHOR id="IBUS-KEY-Omacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Omacron">
+<ANCHOR id="IBUS-KEY-Kcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Kcedilla">
+<ANCHOR id="IBUS-KEY-Uogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uogonek">
+<ANCHOR id="IBUS-KEY-Utilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Utilde">
+<ANCHOR id="IBUS-KEY-Umacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Umacron">
+<ANCHOR id="IBUS-KEY-amacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-amacron">
+<ANCHOR id="IBUS-KEY-iogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-iogonek">
+<ANCHOR id="IBUS-KEY-eabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-eabovedot">
+<ANCHOR id="IBUS-KEY-imacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-imacron">
+<ANCHOR id="IBUS-KEY-ncedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ncedilla">
+<ANCHOR id="IBUS-KEY-omacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-omacron">
+<ANCHOR id="IBUS-KEY-kcedilla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kcedilla">
+<ANCHOR id="IBUS-KEY-uogonek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uogonek">
+<ANCHOR id="IBUS-KEY-utilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-utilde">
+<ANCHOR id="IBUS-KEY-umacron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-umacron">
+<ANCHOR id="IBUS-KEY-Wcircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Wcircumflex">
+<ANCHOR id="IBUS-KEY-wcircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-wcircumflex">
+<ANCHOR id="IBUS-KEY-Ycircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ycircumflex">
+<ANCHOR id="IBUS-KEY-ycircumflex" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ycircumflex">
+<ANCHOR id="IBUS-KEY-Babovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Babovedot">
+<ANCHOR id="IBUS-KEY-babovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-babovedot">
+<ANCHOR id="IBUS-KEY-Dabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Dabovedot">
+<ANCHOR id="IBUS-KEY-dabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dabovedot">
+<ANCHOR id="IBUS-KEY-Fabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Fabovedot">
+<ANCHOR id="IBUS-KEY-fabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-fabovedot">
+<ANCHOR id="IBUS-KEY-Mabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Mabovedot">
+<ANCHOR id="IBUS-KEY-mabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-mabovedot">
+<ANCHOR id="IBUS-KEY-Pabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Pabovedot">
+<ANCHOR id="IBUS-KEY-pabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-pabovedot">
+<ANCHOR id="IBUS-KEY-Sabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sabovedot">
+<ANCHOR id="IBUS-KEY-sabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-sabovedot">
+<ANCHOR id="IBUS-KEY-Tabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Tabovedot">
+<ANCHOR id="IBUS-KEY-tabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-tabovedot">
+<ANCHOR id="IBUS-KEY-Wgrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Wgrave">
+<ANCHOR id="IBUS-KEY-wgrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-wgrave">
+<ANCHOR id="IBUS-KEY-Wacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Wacute">
+<ANCHOR id="IBUS-KEY-wacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-wacute">
+<ANCHOR id="IBUS-KEY-Wdiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Wdiaeresis">
+<ANCHOR id="IBUS-KEY-wdiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-wdiaeresis">
+<ANCHOR id="IBUS-KEY-Ygrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ygrave">
+<ANCHOR id="IBUS-KEY-ygrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ygrave">
+<ANCHOR id="IBUS-KEY-OE:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-OE:CAPS">
+<ANCHOR id="IBUS-KEY-oe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-oe">
+<ANCHOR id="IBUS-KEY-Ydiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ydiaeresis">
+<ANCHOR id="IBUS-KEY-overline" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-overline">
+<ANCHOR id="IBUS-KEY-kana-fullstop" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-fullstop">
+<ANCHOR id="IBUS-KEY-kana-openingbracket" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-openingbracket">
+<ANCHOR id="IBUS-KEY-kana-closingbracket" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-closingbracket">
+<ANCHOR id="IBUS-KEY-kana-comma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-comma">
+<ANCHOR id="IBUS-KEY-kana-conjunctive" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-conjunctive">
+<ANCHOR id="IBUS-KEY-kana-middledot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-middledot">
+<ANCHOR id="IBUS-KEY-kana-WO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-WO">
+<ANCHOR id="IBUS-KEY-kana-a" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-a">
+<ANCHOR id="IBUS-KEY-kana-i" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-i">
+<ANCHOR id="IBUS-KEY-kana-u" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-u">
+<ANCHOR id="IBUS-KEY-kana-e" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-e">
+<ANCHOR id="IBUS-KEY-kana-o" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-o">
+<ANCHOR id="IBUS-KEY-kana-ya" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-ya">
+<ANCHOR id="IBUS-KEY-kana-yu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-yu">
+<ANCHOR id="IBUS-KEY-kana-yo" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-yo">
+<ANCHOR id="IBUS-KEY-kana-tsu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-tsu">
+<ANCHOR id="IBUS-KEY-kana-tu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-tu">
+<ANCHOR id="IBUS-KEY-prolongedsound" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-prolongedsound">
+<ANCHOR id="IBUS-KEY-kana-A" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-A">
+<ANCHOR id="IBUS-KEY-kana-I" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-I">
+<ANCHOR id="IBUS-KEY-kana-U" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-U">
+<ANCHOR id="IBUS-KEY-kana-E" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-E">
+<ANCHOR id="IBUS-KEY-kana-O" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-O">
+<ANCHOR id="IBUS-KEY-kana-KA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-KA">
+<ANCHOR id="IBUS-KEY-kana-KI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-KI">
+<ANCHOR id="IBUS-KEY-kana-KU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-KU">
+<ANCHOR id="IBUS-KEY-kana-KE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-KE">
+<ANCHOR id="IBUS-KEY-kana-KO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-KO">
+<ANCHOR id="IBUS-KEY-kana-SA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-SA">
+<ANCHOR id="IBUS-KEY-kana-SHI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-SHI">
+<ANCHOR id="IBUS-KEY-kana-SU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-SU">
+<ANCHOR id="IBUS-KEY-kana-SE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-SE">
+<ANCHOR id="IBUS-KEY-kana-SO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-SO">
+<ANCHOR id="IBUS-KEY-kana-TA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-TA">
+<ANCHOR id="IBUS-KEY-kana-CHI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-CHI">
+<ANCHOR id="IBUS-KEY-kana-TI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-TI">
+<ANCHOR id="IBUS-KEY-kana-TSU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-TSU">
+<ANCHOR id="IBUS-KEY-kana-TU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-TU">
+<ANCHOR id="IBUS-KEY-kana-TE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-TE">
+<ANCHOR id="IBUS-KEY-kana-TO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-TO">
+<ANCHOR id="IBUS-KEY-kana-NA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-NA">
+<ANCHOR id="IBUS-KEY-kana-NI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-NI">
+<ANCHOR id="IBUS-KEY-kana-NU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-NU">
+<ANCHOR id="IBUS-KEY-kana-NE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-NE">
+<ANCHOR id="IBUS-KEY-kana-NO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-NO">
+<ANCHOR id="IBUS-KEY-kana-HA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-HA">
+<ANCHOR id="IBUS-KEY-kana-HI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-HI">
+<ANCHOR id="IBUS-KEY-kana-FU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-FU">
+<ANCHOR id="IBUS-KEY-kana-HU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-HU">
+<ANCHOR id="IBUS-KEY-kana-HE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-HE">
+<ANCHOR id="IBUS-KEY-kana-HO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-HO">
+<ANCHOR id="IBUS-KEY-kana-MA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-MA">
+<ANCHOR id="IBUS-KEY-kana-MI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-MI">
+<ANCHOR id="IBUS-KEY-kana-MU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-MU">
+<ANCHOR id="IBUS-KEY-kana-ME" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-ME">
+<ANCHOR id="IBUS-KEY-kana-MO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-MO">
+<ANCHOR id="IBUS-KEY-kana-YA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-YA">
+<ANCHOR id="IBUS-KEY-kana-YU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-YU">
+<ANCHOR id="IBUS-KEY-kana-YO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-YO">
+<ANCHOR id="IBUS-KEY-kana-RA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-RA">
+<ANCHOR id="IBUS-KEY-kana-RI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-RI">
+<ANCHOR id="IBUS-KEY-kana-RU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-RU">
+<ANCHOR id="IBUS-KEY-kana-RE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-RE">
+<ANCHOR id="IBUS-KEY-kana-RO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-RO">
+<ANCHOR id="IBUS-KEY-kana-WA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-WA">
+<ANCHOR id="IBUS-KEY-kana-N" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-N">
+<ANCHOR id="IBUS-KEY-voicedsound" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-voicedsound">
+<ANCHOR id="IBUS-KEY-semivoicedsound" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-semivoicedsound">
+<ANCHOR id="IBUS-KEY-kana-switch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-kana-switch">
+<ANCHOR id="IBUS-KEY-Farsi-0" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-0">
+<ANCHOR id="IBUS-KEY-Farsi-1" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-1">
+<ANCHOR id="IBUS-KEY-Farsi-2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-2">
+<ANCHOR id="IBUS-KEY-Farsi-3" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-3">
+<ANCHOR id="IBUS-KEY-Farsi-4" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-4">
+<ANCHOR id="IBUS-KEY-Farsi-5" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-5">
+<ANCHOR id="IBUS-KEY-Farsi-6" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-6">
+<ANCHOR id="IBUS-KEY-Farsi-7" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-7">
+<ANCHOR id="IBUS-KEY-Farsi-8" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-8">
+<ANCHOR id="IBUS-KEY-Farsi-9" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-9">
+<ANCHOR id="IBUS-KEY-Arabic-percent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-percent">
+<ANCHOR id="IBUS-KEY-Arabic-superscript-alef" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-superscript-alef">
+<ANCHOR id="IBUS-KEY-Arabic-tteh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tteh">
+<ANCHOR id="IBUS-KEY-Arabic-peh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-peh">
+<ANCHOR id="IBUS-KEY-Arabic-tcheh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tcheh">
+<ANCHOR id="IBUS-KEY-Arabic-ddal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ddal">
+<ANCHOR id="IBUS-KEY-Arabic-rreh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-rreh">
+<ANCHOR id="IBUS-KEY-Arabic-comma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-comma">
+<ANCHOR id="IBUS-KEY-Arabic-fullstop" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fullstop">
+<ANCHOR id="IBUS-KEY-Arabic-0" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-0">
+<ANCHOR id="IBUS-KEY-Arabic-1" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-1">
+<ANCHOR id="IBUS-KEY-Arabic-2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-2">
+<ANCHOR id="IBUS-KEY-Arabic-3" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-3">
+<ANCHOR id="IBUS-KEY-Arabic-4" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-4">
+<ANCHOR id="IBUS-KEY-Arabic-5" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-5">
+<ANCHOR id="IBUS-KEY-Arabic-6" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-6">
+<ANCHOR id="IBUS-KEY-Arabic-7" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-7">
+<ANCHOR id="IBUS-KEY-Arabic-8" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-8">
+<ANCHOR id="IBUS-KEY-Arabic-9" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-9">
+<ANCHOR id="IBUS-KEY-Arabic-semicolon" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-semicolon">
+<ANCHOR id="IBUS-KEY-Arabic-question-mark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-question-mark">
+<ANCHOR id="IBUS-KEY-Arabic-hamza" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza">
+<ANCHOR id="IBUS-KEY-Arabic-maddaonalef" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-maddaonalef">
+<ANCHOR id="IBUS-KEY-Arabic-hamzaonalef" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonalef">
+<ANCHOR id="IBUS-KEY-Arabic-hamzaonwaw" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonwaw">
+<ANCHOR id="IBUS-KEY-Arabic-hamzaunderalef" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaunderalef">
+<ANCHOR id="IBUS-KEY-Arabic-hamzaonyeh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamzaonyeh">
+<ANCHOR id="IBUS-KEY-Arabic-alef" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-alef">
+<ANCHOR id="IBUS-KEY-Arabic-beh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-beh">
+<ANCHOR id="IBUS-KEY-Arabic-tehmarbuta" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tehmarbuta">
+<ANCHOR id="IBUS-KEY-Arabic-teh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-teh">
+<ANCHOR id="IBUS-KEY-Arabic-theh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-theh">
+<ANCHOR id="IBUS-KEY-Arabic-jeem" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-jeem">
+<ANCHOR id="IBUS-KEY-Arabic-hah" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hah">
+<ANCHOR id="IBUS-KEY-Arabic-khah" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-khah">
+<ANCHOR id="IBUS-KEY-Arabic-dal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dal">
+<ANCHOR id="IBUS-KEY-Arabic-thal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-thal">
+<ANCHOR id="IBUS-KEY-Arabic-ra" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ra">
+<ANCHOR id="IBUS-KEY-Arabic-zain" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-zain">
+<ANCHOR id="IBUS-KEY-Arabic-seen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-seen">
+<ANCHOR id="IBUS-KEY-Arabic-sheen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sheen">
+<ANCHOR id="IBUS-KEY-Arabic-sad" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sad">
+<ANCHOR id="IBUS-KEY-Arabic-dad" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dad">
+<ANCHOR id="IBUS-KEY-Arabic-tah" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tah">
+<ANCHOR id="IBUS-KEY-Arabic-zah" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-zah">
+<ANCHOR id="IBUS-KEY-Arabic-ain" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ain">
+<ANCHOR id="IBUS-KEY-Arabic-ghain" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ghain">
+<ANCHOR id="IBUS-KEY-Arabic-tatweel" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-tatweel">
+<ANCHOR id="IBUS-KEY-Arabic-feh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-feh">
+<ANCHOR id="IBUS-KEY-Arabic-qaf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-qaf">
+<ANCHOR id="IBUS-KEY-Arabic-kaf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kaf">
+<ANCHOR id="IBUS-KEY-Arabic-lam" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-lam">
+<ANCHOR id="IBUS-KEY-Arabic-meem" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-meem">
+<ANCHOR id="IBUS-KEY-Arabic-noon" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-noon">
+<ANCHOR id="IBUS-KEY-Arabic-ha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-ha">
+<ANCHOR id="IBUS-KEY-Arabic-heh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh">
+<ANCHOR id="IBUS-KEY-Arabic-waw" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-waw">
+<ANCHOR id="IBUS-KEY-Arabic-alefmaksura" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-alefmaksura">
+<ANCHOR id="IBUS-KEY-Arabic-yeh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-yeh">
+<ANCHOR id="IBUS-KEY-Arabic-fathatan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fathatan">
+<ANCHOR id="IBUS-KEY-Arabic-dammatan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-dammatan">
+<ANCHOR id="IBUS-KEY-Arabic-kasratan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kasratan">
+<ANCHOR id="IBUS-KEY-Arabic-fatha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-fatha">
+<ANCHOR id="IBUS-KEY-Arabic-damma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-damma">
+<ANCHOR id="IBUS-KEY-Arabic-kasra" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-kasra">
+<ANCHOR id="IBUS-KEY-Arabic-shadda" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-shadda">
+<ANCHOR id="IBUS-KEY-Arabic-sukun" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-sukun">
+<ANCHOR id="IBUS-KEY-Arabic-madda-above" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-madda-above">
+<ANCHOR id="IBUS-KEY-Arabic-hamza-above" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza-above">
+<ANCHOR id="IBUS-KEY-Arabic-hamza-below" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-hamza-below">
+<ANCHOR id="IBUS-KEY-Arabic-jeh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-jeh">
+<ANCHOR id="IBUS-KEY-Arabic-veh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-veh">
+<ANCHOR id="IBUS-KEY-Arabic-keheh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-keheh">
+<ANCHOR id="IBUS-KEY-Arabic-gaf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-gaf">
+<ANCHOR id="IBUS-KEY-Arabic-noon-ghunna" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-noon-ghunna">
+<ANCHOR id="IBUS-KEY-Arabic-heh-doachashmee" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh-doachashmee">
+<ANCHOR id="IBUS-KEY-Farsi-yeh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Farsi-yeh">
+<ANCHOR id="IBUS-KEY-Arabic-farsi-yeh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-farsi-yeh">
+<ANCHOR id="IBUS-KEY-Arabic-yeh-baree" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-yeh-baree">
+<ANCHOR id="IBUS-KEY-Arabic-heh-goal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-heh-goal">
+<ANCHOR id="IBUS-KEY-Arabic-switch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Arabic-switch">
+<ANCHOR id="IBUS-KEY-Cyrillic-GHE-bar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-GHE-bar">
+<ANCHOR id="IBUS-KEY-Cyrillic-ghe-bar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ghe-bar">
+<ANCHOR id="IBUS-KEY-Cyrillic-ZHE-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZHE-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-zhe-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-zhe-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-KA-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-ka-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-KA-vertstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA-vertstroke">
+<ANCHOR id="IBUS-KEY-Cyrillic-ka-vertstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka-vertstroke">
+<ANCHOR id="IBUS-KEY-Cyrillic-EN-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EN-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-en-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-en-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-U-straight" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-straight">
+<ANCHOR id="IBUS-KEY-Cyrillic-u-straight" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-straight">
+<ANCHOR id="IBUS-KEY-Cyrillic-U-straight-bar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-straight-bar">
+<ANCHOR id="IBUS-KEY-Cyrillic-u-straight-bar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-straight-bar">
+<ANCHOR id="IBUS-KEY-Cyrillic-HA-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HA-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-ha-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ha-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-CHE-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-che-descender" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che-descender">
+<ANCHOR id="IBUS-KEY-Cyrillic-CHE-vertstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE-vertstroke">
+<ANCHOR id="IBUS-KEY-Cyrillic-che-vertstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che-vertstroke">
+<ANCHOR id="IBUS-KEY-Cyrillic-SHHA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHHA">
+<ANCHOR id="IBUS-KEY-Cyrillic-shha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shha">
+<ANCHOR id="IBUS-KEY-Cyrillic-SCHWA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SCHWA">
+<ANCHOR id="IBUS-KEY-Cyrillic-schwa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-schwa">
+<ANCHOR id="IBUS-KEY-Cyrillic-I-macron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-I-macron">
+<ANCHOR id="IBUS-KEY-Cyrillic-i-macron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-i-macron">
+<ANCHOR id="IBUS-KEY-Cyrillic-O-bar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-O-bar">
+<ANCHOR id="IBUS-KEY-Cyrillic-o-bar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-o-bar">
+<ANCHOR id="IBUS-KEY-Cyrillic-U-macron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U-macron">
+<ANCHOR id="IBUS-KEY-Cyrillic-u-macron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u-macron">
+<ANCHOR id="IBUS-KEY-Serbian-dje" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-dje">
+<ANCHOR id="IBUS-KEY-Macedonia-gje" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-gje">
+<ANCHOR id="IBUS-KEY-Cyrillic-io" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-io">
+<ANCHOR id="IBUS-KEY-Ukrainian-ie" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-ie">
+<ANCHOR id="IBUS-KEY-Ukranian-je" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-je">
+<ANCHOR id="IBUS-KEY-Macedonia-dse" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-dse">
+<ANCHOR id="IBUS-KEY-Ukrainian-i" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-i">
+<ANCHOR id="IBUS-KEY-Ukranian-i" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-i">
+<ANCHOR id="IBUS-KEY-Ukrainian-yi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-yi">
+<ANCHOR id="IBUS-KEY-Ukranian-yi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-yi">
+<ANCHOR id="IBUS-KEY-Cyrillic-je" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-je">
+<ANCHOR id="IBUS-KEY-Serbian-je" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-je">
+<ANCHOR id="IBUS-KEY-Cyrillic-lje" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-lje">
+<ANCHOR id="IBUS-KEY-Serbian-lje" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-lje">
+<ANCHOR id="IBUS-KEY-Cyrillic-nje" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-nje">
+<ANCHOR id="IBUS-KEY-Serbian-nje" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-nje">
+<ANCHOR id="IBUS-KEY-Serbian-tshe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-tshe">
+<ANCHOR id="IBUS-KEY-Macedonia-kje" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-kje">
+<ANCHOR id="IBUS-KEY-Ukrainian-ghe-with-upturn" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-ghe-with-upturn">
+<ANCHOR id="IBUS-KEY-Byelorussian-shortu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Byelorussian-shortu">
+<ANCHOR id="IBUS-KEY-Cyrillic-dzhe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-dzhe">
+<ANCHOR id="IBUS-KEY-Serbian-dze" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-dze">
+<ANCHOR id="IBUS-KEY-numerosign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-numerosign">
+<ANCHOR id="IBUS-KEY-Serbian-DJE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-DJE">
+<ANCHOR id="IBUS-KEY-Macedonia-GJE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-GJE">
+<ANCHOR id="IBUS-KEY-Cyrillic-IO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-IO">
+<ANCHOR id="IBUS-KEY-Ukrainian-IE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-IE">
+<ANCHOR id="IBUS-KEY-Ukranian-JE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-JE">
+<ANCHOR id="IBUS-KEY-Macedonia-DSE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-DSE">
+<ANCHOR id="IBUS-KEY-Ukrainian-I" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-I">
+<ANCHOR id="IBUS-KEY-Ukranian-I" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-I">
+<ANCHOR id="IBUS-KEY-Ukrainian-YI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-YI">
+<ANCHOR id="IBUS-KEY-Ukranian-YI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukranian-YI">
+<ANCHOR id="IBUS-KEY-Cyrillic-JE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-JE">
+<ANCHOR id="IBUS-KEY-Serbian-JE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-JE">
+<ANCHOR id="IBUS-KEY-Cyrillic-LJE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-LJE">
+<ANCHOR id="IBUS-KEY-Serbian-LJE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-LJE">
+<ANCHOR id="IBUS-KEY-Cyrillic-NJE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-NJE">
+<ANCHOR id="IBUS-KEY-Serbian-NJE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-NJE">
+<ANCHOR id="IBUS-KEY-Serbian-TSHE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-TSHE">
+<ANCHOR id="IBUS-KEY-Macedonia-KJE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Macedonia-KJE">
+<ANCHOR id="IBUS-KEY-Ukrainian-GHE-WITH-UPTURN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ukrainian-GHE-WITH-UPTURN">
+<ANCHOR id="IBUS-KEY-Byelorussian-SHORTU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Byelorussian-SHORTU">
+<ANCHOR id="IBUS-KEY-Cyrillic-DZHE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-DZHE">
+<ANCHOR id="IBUS-KEY-Serbian-DZE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Serbian-DZE">
+<ANCHOR id="IBUS-KEY-Cyrillic-yu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-yu">
+<ANCHOR id="IBUS-KEY-Cyrillic-a" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-a">
+<ANCHOR id="IBUS-KEY-Cyrillic-be" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-be">
+<ANCHOR id="IBUS-KEY-Cyrillic-tse" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-tse">
+<ANCHOR id="IBUS-KEY-Cyrillic-de" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-de">
+<ANCHOR id="IBUS-KEY-Cyrillic-ie" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ie">
+<ANCHOR id="IBUS-KEY-Cyrillic-ef" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ef">
+<ANCHOR id="IBUS-KEY-Cyrillic-ghe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ghe">
+<ANCHOR id="IBUS-KEY-Cyrillic-ha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ha">
+<ANCHOR id="IBUS-KEY-Cyrillic-i" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-i">
+<ANCHOR id="IBUS-KEY-Cyrillic-shorti" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shorti">
+<ANCHOR id="IBUS-KEY-Cyrillic-ka" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ka">
+<ANCHOR id="IBUS-KEY-Cyrillic-el" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-el">
+<ANCHOR id="IBUS-KEY-Cyrillic-em" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-em">
+<ANCHOR id="IBUS-KEY-Cyrillic-en" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-en">
+<ANCHOR id="IBUS-KEY-Cyrillic-o" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-o">
+<ANCHOR id="IBUS-KEY-Cyrillic-pe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-pe">
+<ANCHOR id="IBUS-KEY-Cyrillic-ya" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ya">
+<ANCHOR id="IBUS-KEY-Cyrillic-er" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-er">
+<ANCHOR id="IBUS-KEY-Cyrillic-es" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-es">
+<ANCHOR id="IBUS-KEY-Cyrillic-te" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-te">
+<ANCHOR id="IBUS-KEY-Cyrillic-u" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-u">
+<ANCHOR id="IBUS-KEY-Cyrillic-zhe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-zhe">
+<ANCHOR id="IBUS-KEY-Cyrillic-ve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ve">
+<ANCHOR id="IBUS-KEY-Cyrillic-softsign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-softsign">
+<ANCHOR id="IBUS-KEY-Cyrillic-yeru" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-yeru">
+<ANCHOR id="IBUS-KEY-Cyrillic-ze" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ze">
+<ANCHOR id="IBUS-KEY-Cyrillic-sha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-sha">
+<ANCHOR id="IBUS-KEY-Cyrillic-e" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-e">
+<ANCHOR id="IBUS-KEY-Cyrillic-shcha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-shcha">
+<ANCHOR id="IBUS-KEY-Cyrillic-che" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-che">
+<ANCHOR id="IBUS-KEY-Cyrillic-hardsign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-hardsign">
+<ANCHOR id="IBUS-KEY-Cyrillic-YU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YU">
+<ANCHOR id="IBUS-KEY-Cyrillic-A" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-A">
+<ANCHOR id="IBUS-KEY-Cyrillic-BE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-BE">
+<ANCHOR id="IBUS-KEY-Cyrillic-TSE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-TSE">
+<ANCHOR id="IBUS-KEY-Cyrillic-DE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-DE">
+<ANCHOR id="IBUS-KEY-Cyrillic-IE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-IE">
+<ANCHOR id="IBUS-KEY-Cyrillic-EF" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EF">
+<ANCHOR id="IBUS-KEY-Cyrillic-GHE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-GHE">
+<ANCHOR id="IBUS-KEY-Cyrillic-HA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HA">
+<ANCHOR id="IBUS-KEY-Cyrillic-I" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-I">
+<ANCHOR id="IBUS-KEY-Cyrillic-SHORTI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHORTI">
+<ANCHOR id="IBUS-KEY-Cyrillic-KA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-KA">
+<ANCHOR id="IBUS-KEY-Cyrillic-EL" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EL">
+<ANCHOR id="IBUS-KEY-Cyrillic-EM" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EM">
+<ANCHOR id="IBUS-KEY-Cyrillic-EN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-EN">
+<ANCHOR id="IBUS-KEY-Cyrillic-O" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-O">
+<ANCHOR id="IBUS-KEY-Cyrillic-PE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-PE">
+<ANCHOR id="IBUS-KEY-Cyrillic-YA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YA">
+<ANCHOR id="IBUS-KEY-Cyrillic-ER" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ER">
+<ANCHOR id="IBUS-KEY-Cyrillic-ES" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ES">
+<ANCHOR id="IBUS-KEY-Cyrillic-TE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-TE">
+<ANCHOR id="IBUS-KEY-Cyrillic-U" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-U">
+<ANCHOR id="IBUS-KEY-Cyrillic-ZHE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZHE">
+<ANCHOR id="IBUS-KEY-Cyrillic-VE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-VE">
+<ANCHOR id="IBUS-KEY-Cyrillic-SOFTSIGN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SOFTSIGN">
+<ANCHOR id="IBUS-KEY-Cyrillic-YERU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-YERU">
+<ANCHOR id="IBUS-KEY-Cyrillic-ZE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-ZE">
+<ANCHOR id="IBUS-KEY-Cyrillic-SHA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHA">
+<ANCHOR id="IBUS-KEY-Cyrillic-E" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-E">
+<ANCHOR id="IBUS-KEY-Cyrillic-SHCHA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-SHCHA">
+<ANCHOR id="IBUS-KEY-Cyrillic-CHE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-CHE">
+<ANCHOR id="IBUS-KEY-Cyrillic-HARDSIGN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Cyrillic-HARDSIGN">
+<ANCHOR id="IBUS-KEY-Greek-ALPHAaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-ALPHAaccent">
+<ANCHOR id="IBUS-KEY-Greek-EPSILONaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-EPSILONaccent">
+<ANCHOR id="IBUS-KEY-Greek-ETAaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-ETAaccent">
+<ANCHOR id="IBUS-KEY-Greek-IOTAaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAaccent">
+<ANCHOR id="IBUS-KEY-Greek-IOTAdieresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAdieresis">
+<ANCHOR id="IBUS-KEY-Greek-IOTAdiaeresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTAdiaeresis">
+<ANCHOR id="IBUS-KEY-Greek-OMICRONaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMICRONaccent">
+<ANCHOR id="IBUS-KEY-Greek-UPSILONaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILONaccent">
+<ANCHOR id="IBUS-KEY-Greek-UPSILONdieresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILONdieresis">
+<ANCHOR id="IBUS-KEY-Greek-OMEGAaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMEGAaccent">
+<ANCHOR id="IBUS-KEY-Greek-accentdieresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-accentdieresis">
+<ANCHOR id="IBUS-KEY-Greek-horizbar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-horizbar">
+<ANCHOR id="IBUS-KEY-Greek-alphaaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-alphaaccent">
+<ANCHOR id="IBUS-KEY-Greek-epsilonaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-epsilonaccent">
+<ANCHOR id="IBUS-KEY-Greek-etaaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-etaaccent">
+<ANCHOR id="IBUS-KEY-Greek-iotaaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotaaccent">
+<ANCHOR id="IBUS-KEY-Greek-iotadieresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotadieresis">
+<ANCHOR id="IBUS-KEY-Greek-iotaaccentdieresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-iotaaccentdieresis">
+<ANCHOR id="IBUS-KEY-Greek-omicronaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-omicronaccent">
+<ANCHOR id="IBUS-KEY-Greek-upsilonaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilonaccent">
+<ANCHOR id="IBUS-KEY-Greek-upsilondieresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilondieresis">
+<ANCHOR id="IBUS-KEY-Greek-upsilonaccentdieresis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilonaccentdieresis">
+<ANCHOR id="IBUS-KEY-Greek-omegaaccent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-omegaaccent">
+<ANCHOR id="IBUS-KEY-Greek-ALPHA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-ALPHA">
+<ANCHOR id="IBUS-KEY-Greek-BETA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-BETA">
+<ANCHOR id="IBUS-KEY-Greek-GAMMA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-GAMMA">
+<ANCHOR id="IBUS-KEY-Greek-DELTA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-DELTA">
+<ANCHOR id="IBUS-KEY-Greek-EPSILON" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-EPSILON">
+<ANCHOR id="IBUS-KEY-Greek-ZETA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-ZETA">
+<ANCHOR id="IBUS-KEY-Greek-ETA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-ETA">
+<ANCHOR id="IBUS-KEY-Greek-THETA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-THETA">
+<ANCHOR id="IBUS-KEY-Greek-IOTA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-IOTA">
+<ANCHOR id="IBUS-KEY-Greek-KAPPA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-KAPPA">
+<ANCHOR id="IBUS-KEY-Greek-LAMDA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-LAMDA">
+<ANCHOR id="IBUS-KEY-Greek-LAMBDA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-LAMBDA">
+<ANCHOR id="IBUS-KEY-Greek-MU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-MU">
+<ANCHOR id="IBUS-KEY-Greek-NU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-NU">
+<ANCHOR id="IBUS-KEY-Greek-XI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-XI">
+<ANCHOR id="IBUS-KEY-Greek-OMICRON" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMICRON">
+<ANCHOR id="IBUS-KEY-Greek-PI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-PI">
+<ANCHOR id="IBUS-KEY-Greek-RHO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-RHO">
+<ANCHOR id="IBUS-KEY-Greek-SIGMA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-SIGMA">
+<ANCHOR id="IBUS-KEY-Greek-TAU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-TAU">
+<ANCHOR id="IBUS-KEY-Greek-UPSILON" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-UPSILON">
+<ANCHOR id="IBUS-KEY-Greek-PHI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-PHI">
+<ANCHOR id="IBUS-KEY-Greek-CHI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-CHI">
+<ANCHOR id="IBUS-KEY-Greek-PSI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-PSI">
+<ANCHOR id="IBUS-KEY-Greek-OMEGA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-OMEGA">
+<ANCHOR id="IBUS-KEY-Greek-alpha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-alpha">
+<ANCHOR id="IBUS-KEY-Greek-beta" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-beta">
+<ANCHOR id="IBUS-KEY-Greek-gamma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-gamma">
+<ANCHOR id="IBUS-KEY-Greek-delta" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-delta">
+<ANCHOR id="IBUS-KEY-Greek-epsilon" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-epsilon">
+<ANCHOR id="IBUS-KEY-Greek-zeta" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-zeta">
+<ANCHOR id="IBUS-KEY-Greek-eta" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-eta">
+<ANCHOR id="IBUS-KEY-Greek-theta" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-theta">
+<ANCHOR id="IBUS-KEY-Greek-iota" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-iota">
+<ANCHOR id="IBUS-KEY-Greek-kappa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-kappa">
+<ANCHOR id="IBUS-KEY-Greek-lamda" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-lamda">
+<ANCHOR id="IBUS-KEY-Greek-lambda" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-lambda">
+<ANCHOR id="IBUS-KEY-Greek-mu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-mu">
+<ANCHOR id="IBUS-KEY-Greek-nu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-nu">
+<ANCHOR id="IBUS-KEY-Greek-xi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-xi">
+<ANCHOR id="IBUS-KEY-Greek-omicron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-omicron">
+<ANCHOR id="IBUS-KEY-Greek-pi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-pi">
+<ANCHOR id="IBUS-KEY-Greek-rho" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-rho">
+<ANCHOR id="IBUS-KEY-Greek-sigma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-sigma">
+<ANCHOR id="IBUS-KEY-Greek-finalsmallsigma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-finalsmallsigma">
+<ANCHOR id="IBUS-KEY-Greek-tau" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-tau">
+<ANCHOR id="IBUS-KEY-Greek-upsilon" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-upsilon">
+<ANCHOR id="IBUS-KEY-Greek-phi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-phi">
+<ANCHOR id="IBUS-KEY-Greek-chi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-chi">
+<ANCHOR id="IBUS-KEY-Greek-psi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-psi">
+<ANCHOR id="IBUS-KEY-Greek-omega" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-omega">
+<ANCHOR id="IBUS-KEY-Greek-switch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Greek-switch">
+<ANCHOR id="IBUS-KEY-leftradical" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftradical">
+<ANCHOR id="IBUS-KEY-topleftradical" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-topleftradical">
+<ANCHOR id="IBUS-KEY-horizconnector" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-horizconnector">
+<ANCHOR id="IBUS-KEY-topintegral" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-topintegral">
+<ANCHOR id="IBUS-KEY-botintegral" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-botintegral">
+<ANCHOR id="IBUS-KEY-vertconnector" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-vertconnector">
+<ANCHOR id="IBUS-KEY-topleftsqbracket" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-topleftsqbracket">
+<ANCHOR id="IBUS-KEY-botleftsqbracket" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-botleftsqbracket">
+<ANCHOR id="IBUS-KEY-toprightsqbracket" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-toprightsqbracket">
+<ANCHOR id="IBUS-KEY-botrightsqbracket" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-botrightsqbracket">
+<ANCHOR id="IBUS-KEY-topleftparens" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-topleftparens">
+<ANCHOR id="IBUS-KEY-botleftparens" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-botleftparens">
+<ANCHOR id="IBUS-KEY-toprightparens" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-toprightparens">
+<ANCHOR id="IBUS-KEY-botrightparens" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-botrightparens">
+<ANCHOR id="IBUS-KEY-leftmiddlecurlybrace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftmiddlecurlybrace">
+<ANCHOR id="IBUS-KEY-rightmiddlecurlybrace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightmiddlecurlybrace">
+<ANCHOR id="IBUS-KEY-topleftsummation" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-topleftsummation">
+<ANCHOR id="IBUS-KEY-botleftsummation" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-botleftsummation">
+<ANCHOR id="IBUS-KEY-topvertsummationconnector" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-topvertsummationconnector">
+<ANCHOR id="IBUS-KEY-botvertsummationconnector" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-botvertsummationconnector">
+<ANCHOR id="IBUS-KEY-toprightsummation" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-toprightsummation">
+<ANCHOR id="IBUS-KEY-botrightsummation" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-botrightsummation">
+<ANCHOR id="IBUS-KEY-rightmiddlesummation" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightmiddlesummation">
+<ANCHOR id="IBUS-KEY-lessthanequal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lessthanequal">
+<ANCHOR id="IBUS-KEY-notequal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-notequal">
+<ANCHOR id="IBUS-KEY-greaterthanequal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-greaterthanequal">
+<ANCHOR id="IBUS-KEY-integral" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-integral">
+<ANCHOR id="IBUS-KEY-therefore" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-therefore">
+<ANCHOR id="IBUS-KEY-variation" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-variation">
+<ANCHOR id="IBUS-KEY-infinity" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-infinity">
+<ANCHOR id="IBUS-KEY-nabla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-nabla">
+<ANCHOR id="IBUS-KEY-approximate" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-approximate">
+<ANCHOR id="IBUS-KEY-similarequal" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-similarequal">
+<ANCHOR id="IBUS-KEY-ifonlyif" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ifonlyif">
+<ANCHOR id="IBUS-KEY-implies" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-implies">
+<ANCHOR id="IBUS-KEY-identical" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-identical">
+<ANCHOR id="IBUS-KEY-radical" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-radical">
+<ANCHOR id="IBUS-KEY-includedin" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-includedin">
+<ANCHOR id="IBUS-KEY-includes" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-includes">
+<ANCHOR id="IBUS-KEY-intersection" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-intersection">
+<ANCHOR id="IBUS-KEY-union" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-union">
+<ANCHOR id="IBUS-KEY-logicaland" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-logicaland">
+<ANCHOR id="IBUS-KEY-logicalor" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-logicalor">
+<ANCHOR id="IBUS-KEY-partialderivative" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-partialderivative">
+<ANCHOR id="IBUS-KEY-function" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-function">
+<ANCHOR id="IBUS-KEY-leftarrow" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftarrow">
+<ANCHOR id="IBUS-KEY-uparrow" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uparrow">
+<ANCHOR id="IBUS-KEY-rightarrow" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightarrow">
+<ANCHOR id="IBUS-KEY-downarrow" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-downarrow">
+<ANCHOR id="IBUS-KEY-blank" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-blank">
+<ANCHOR id="IBUS-KEY-soliddiamond" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-soliddiamond">
+<ANCHOR id="IBUS-KEY-checkerboard" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-checkerboard">
+<ANCHOR id="IBUS-KEY-ht" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ht">
+<ANCHOR id="IBUS-KEY-ff" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ff">
+<ANCHOR id="IBUS-KEY-cr" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-cr">
+<ANCHOR id="IBUS-KEY-lf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lf">
+<ANCHOR id="IBUS-KEY-nl" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-nl">
+<ANCHOR id="IBUS-KEY-vt" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-vt">
+<ANCHOR id="IBUS-KEY-lowrightcorner" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lowrightcorner">
+<ANCHOR id="IBUS-KEY-uprightcorner" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uprightcorner">
+<ANCHOR id="IBUS-KEY-upleftcorner" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-upleftcorner">
+<ANCHOR id="IBUS-KEY-lowleftcorner" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lowleftcorner">
+<ANCHOR id="IBUS-KEY-crossinglines" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-crossinglines">
+<ANCHOR id="IBUS-KEY-horizlinescan1" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan1">
+<ANCHOR id="IBUS-KEY-horizlinescan3" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan3">
+<ANCHOR id="IBUS-KEY-horizlinescan5" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan5">
+<ANCHOR id="IBUS-KEY-horizlinescan7" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan7">
+<ANCHOR id="IBUS-KEY-horizlinescan9" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-horizlinescan9">
+<ANCHOR id="IBUS-KEY-leftt" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftt">
+<ANCHOR id="IBUS-KEY-rightt" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightt">
+<ANCHOR id="IBUS-KEY-bott" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-bott">
+<ANCHOR id="IBUS-KEY-topt" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-topt">
+<ANCHOR id="IBUS-KEY-vertbar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-vertbar">
+<ANCHOR id="IBUS-KEY-emspace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-emspace">
+<ANCHOR id="IBUS-KEY-enspace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-enspace">
+<ANCHOR id="IBUS-KEY-em3space" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-em3space">
+<ANCHOR id="IBUS-KEY-em4space" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-em4space">
+<ANCHOR id="IBUS-KEY-digitspace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-digitspace">
+<ANCHOR id="IBUS-KEY-punctspace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-punctspace">
+<ANCHOR id="IBUS-KEY-thinspace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-thinspace">
+<ANCHOR id="IBUS-KEY-hairspace" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hairspace">
+<ANCHOR id="IBUS-KEY-emdash" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-emdash">
+<ANCHOR id="IBUS-KEY-endash" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-endash">
+<ANCHOR id="IBUS-KEY-signifblank" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-signifblank">
+<ANCHOR id="IBUS-KEY-ellipsis" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ellipsis">
+<ANCHOR id="IBUS-KEY-doubbaselinedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-doubbaselinedot">
+<ANCHOR id="IBUS-KEY-onethird" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-onethird">
+<ANCHOR id="IBUS-KEY-twothirds" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-twothirds">
+<ANCHOR id="IBUS-KEY-onefifth" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-onefifth">
+<ANCHOR id="IBUS-KEY-twofifths" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-twofifths">
+<ANCHOR id="IBUS-KEY-threefifths" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-threefifths">
+<ANCHOR id="IBUS-KEY-fourfifths" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-fourfifths">
+<ANCHOR id="IBUS-KEY-onesixth" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-onesixth">
+<ANCHOR id="IBUS-KEY-fivesixths" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-fivesixths">
+<ANCHOR id="IBUS-KEY-careof" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-careof">
+<ANCHOR id="IBUS-KEY-figdash" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-figdash">
+<ANCHOR id="IBUS-KEY-leftanglebracket" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftanglebracket">
+<ANCHOR id="IBUS-KEY-decimalpoint" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-decimalpoint">
+<ANCHOR id="IBUS-KEY-rightanglebracket" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightanglebracket">
+<ANCHOR id="IBUS-KEY-marker" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-marker">
+<ANCHOR id="IBUS-KEY-oneeighth" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-oneeighth">
+<ANCHOR id="IBUS-KEY-threeeighths" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-threeeighths">
+<ANCHOR id="IBUS-KEY-fiveeighths" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-fiveeighths">
+<ANCHOR id="IBUS-KEY-seveneighths" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-seveneighths">
+<ANCHOR id="IBUS-KEY-trademark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-trademark">
+<ANCHOR id="IBUS-KEY-signaturemark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-signaturemark">
+<ANCHOR id="IBUS-KEY-trademarkincircle" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-trademarkincircle">
+<ANCHOR id="IBUS-KEY-leftopentriangle" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftopentriangle">
+<ANCHOR id="IBUS-KEY-rightopentriangle" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightopentriangle">
+<ANCHOR id="IBUS-KEY-emopencircle" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-emopencircle">
+<ANCHOR id="IBUS-KEY-emopenrectangle" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-emopenrectangle">
+<ANCHOR id="IBUS-KEY-leftsinglequotemark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftsinglequotemark">
+<ANCHOR id="IBUS-KEY-rightsinglequotemark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightsinglequotemark">
+<ANCHOR id="IBUS-KEY-leftdoublequotemark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftdoublequotemark">
+<ANCHOR id="IBUS-KEY-rightdoublequotemark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightdoublequotemark">
+<ANCHOR id="IBUS-KEY-prescription" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-prescription">
+<ANCHOR id="IBUS-KEY-minutes" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-minutes">
+<ANCHOR id="IBUS-KEY-seconds" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-seconds">
+<ANCHOR id="IBUS-KEY-latincross" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-latincross">
+<ANCHOR id="IBUS-KEY-hexagram" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hexagram">
+<ANCHOR id="IBUS-KEY-filledrectbullet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-filledrectbullet">
+<ANCHOR id="IBUS-KEY-filledlefttribullet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-filledlefttribullet">
+<ANCHOR id="IBUS-KEY-filledrighttribullet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-filledrighttribullet">
+<ANCHOR id="IBUS-KEY-emfilledcircle" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-emfilledcircle">
+<ANCHOR id="IBUS-KEY-emfilledrect" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-emfilledrect">
+<ANCHOR id="IBUS-KEY-enopencircbullet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-enopencircbullet">
+<ANCHOR id="IBUS-KEY-enopensquarebullet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-enopensquarebullet">
+<ANCHOR id="IBUS-KEY-openrectbullet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-openrectbullet">
+<ANCHOR id="IBUS-KEY-opentribulletup" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-opentribulletup">
+<ANCHOR id="IBUS-KEY-opentribulletdown" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-opentribulletdown">
+<ANCHOR id="IBUS-KEY-openstar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-openstar">
+<ANCHOR id="IBUS-KEY-enfilledcircbullet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-enfilledcircbullet">
+<ANCHOR id="IBUS-KEY-enfilledsqbullet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-enfilledsqbullet">
+<ANCHOR id="IBUS-KEY-filledtribulletup" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-filledtribulletup">
+<ANCHOR id="IBUS-KEY-filledtribulletdown" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-filledtribulletdown">
+<ANCHOR id="IBUS-KEY-leftpointer" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftpointer">
+<ANCHOR id="IBUS-KEY-rightpointer" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightpointer">
+<ANCHOR id="IBUS-KEY-club" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-club">
+<ANCHOR id="IBUS-KEY-diamond" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-diamond">
+<ANCHOR id="IBUS-KEY-heart" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-heart">
+<ANCHOR id="IBUS-KEY-maltesecross" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-maltesecross">
+<ANCHOR id="IBUS-KEY-dagger" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dagger">
+<ANCHOR id="IBUS-KEY-doubledagger" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-doubledagger">
+<ANCHOR id="IBUS-KEY-checkmark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-checkmark">
+<ANCHOR id="IBUS-KEY-ballotcross" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ballotcross">
+<ANCHOR id="IBUS-KEY-musicalsharp" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-musicalsharp">
+<ANCHOR id="IBUS-KEY-musicalflat" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-musicalflat">
+<ANCHOR id="IBUS-KEY-malesymbol" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-malesymbol">
+<ANCHOR id="IBUS-KEY-femalesymbol" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-femalesymbol">
+<ANCHOR id="IBUS-KEY-telephone" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-telephone">
+<ANCHOR id="IBUS-KEY-telephonerecorder" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-telephonerecorder">
+<ANCHOR id="IBUS-KEY-phonographcopyright" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-phonographcopyright">
+<ANCHOR id="IBUS-KEY-caret" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-caret">
+<ANCHOR id="IBUS-KEY-singlelowquotemark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-singlelowquotemark">
+<ANCHOR id="IBUS-KEY-doublelowquotemark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-doublelowquotemark">
+<ANCHOR id="IBUS-KEY-cursor" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-cursor">
+<ANCHOR id="IBUS-KEY-leftcaret" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftcaret">
+<ANCHOR id="IBUS-KEY-rightcaret" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightcaret">
+<ANCHOR id="IBUS-KEY-downcaret" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-downcaret">
+<ANCHOR id="IBUS-KEY-upcaret" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-upcaret">
+<ANCHOR id="IBUS-KEY-overbar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-overbar">
+<ANCHOR id="IBUS-KEY-downtack" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-downtack">
+<ANCHOR id="IBUS-KEY-upshoe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-upshoe">
+<ANCHOR id="IBUS-KEY-downstile" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-downstile">
+<ANCHOR id="IBUS-KEY-underbar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-underbar">
+<ANCHOR id="IBUS-KEY-jot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-jot">
+<ANCHOR id="IBUS-KEY-quad" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-quad">
+<ANCHOR id="IBUS-KEY-uptack" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uptack">
+<ANCHOR id="IBUS-KEY-circle" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-circle">
+<ANCHOR id="IBUS-KEY-upstile" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-upstile">
+<ANCHOR id="IBUS-KEY-downshoe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-downshoe">
+<ANCHOR id="IBUS-KEY-rightshoe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-rightshoe">
+<ANCHOR id="IBUS-KEY-leftshoe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-leftshoe">
+<ANCHOR id="IBUS-KEY-lefttack" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lefttack">
+<ANCHOR id="IBUS-KEY-righttack" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-righttack">
+<ANCHOR id="IBUS-KEY-hebrew-doublelowline" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-doublelowline">
+<ANCHOR id="IBUS-KEY-hebrew-aleph" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-aleph">
+<ANCHOR id="IBUS-KEY-hebrew-bet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-bet">
+<ANCHOR id="IBUS-KEY-hebrew-beth" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-beth">
+<ANCHOR id="IBUS-KEY-hebrew-gimel" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-gimel">
+<ANCHOR id="IBUS-KEY-hebrew-gimmel" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-gimmel">
+<ANCHOR id="IBUS-KEY-hebrew-dalet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-dalet">
+<ANCHOR id="IBUS-KEY-hebrew-daleth" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-daleth">
+<ANCHOR id="IBUS-KEY-hebrew-he" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-he">
+<ANCHOR id="IBUS-KEY-hebrew-waw" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-waw">
+<ANCHOR id="IBUS-KEY-hebrew-zain" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zain">
+<ANCHOR id="IBUS-KEY-hebrew-zayin" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zayin">
+<ANCHOR id="IBUS-KEY-hebrew-chet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-chet">
+<ANCHOR id="IBUS-KEY-hebrew-het" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-het">
+<ANCHOR id="IBUS-KEY-hebrew-tet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-tet">
+<ANCHOR id="IBUS-KEY-hebrew-teth" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-teth">
+<ANCHOR id="IBUS-KEY-hebrew-yod" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-yod">
+<ANCHOR id="IBUS-KEY-hebrew-finalkaph" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalkaph">
+<ANCHOR id="IBUS-KEY-hebrew-kaph" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-kaph">
+<ANCHOR id="IBUS-KEY-hebrew-lamed" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-lamed">
+<ANCHOR id="IBUS-KEY-hebrew-finalmem" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalmem">
+<ANCHOR id="IBUS-KEY-hebrew-mem" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-mem">
+<ANCHOR id="IBUS-KEY-hebrew-finalnun" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalnun">
+<ANCHOR id="IBUS-KEY-hebrew-nun" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-nun">
+<ANCHOR id="IBUS-KEY-hebrew-samech" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-samech">
+<ANCHOR id="IBUS-KEY-hebrew-samekh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-samekh">
+<ANCHOR id="IBUS-KEY-hebrew-ayin" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-ayin">
+<ANCHOR id="IBUS-KEY-hebrew-finalpe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalpe">
+<ANCHOR id="IBUS-KEY-hebrew-pe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-pe">
+<ANCHOR id="IBUS-KEY-hebrew-finalzade" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalzade">
+<ANCHOR id="IBUS-KEY-hebrew-finalzadi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-finalzadi">
+<ANCHOR id="IBUS-KEY-hebrew-zade" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zade">
+<ANCHOR id="IBUS-KEY-hebrew-zadi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-zadi">
+<ANCHOR id="IBUS-KEY-hebrew-qoph" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-qoph">
+<ANCHOR id="IBUS-KEY-hebrew-kuf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-kuf">
+<ANCHOR id="IBUS-KEY-hebrew-resh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-resh">
+<ANCHOR id="IBUS-KEY-hebrew-shin" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-shin">
+<ANCHOR id="IBUS-KEY-hebrew-taw" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-taw">
+<ANCHOR id="IBUS-KEY-hebrew-taf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-hebrew-taf">
+<ANCHOR id="IBUS-KEY-Hebrew-switch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hebrew-switch">
+<ANCHOR id="IBUS-KEY-Thai-kokai" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-kokai">
+<ANCHOR id="IBUS-KEY-Thai-khokhai" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhai">
+<ANCHOR id="IBUS-KEY-Thai-khokhuat" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhuat">
+<ANCHOR id="IBUS-KEY-Thai-khokhwai" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhwai">
+<ANCHOR id="IBUS-KEY-Thai-khokhon" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-khokhon">
+<ANCHOR id="IBUS-KEY-Thai-khorakhang" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-khorakhang">
+<ANCHOR id="IBUS-KEY-Thai-ngongu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-ngongu">
+<ANCHOR id="IBUS-KEY-Thai-chochan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochan">
+<ANCHOR id="IBUS-KEY-Thai-choching" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-choching">
+<ANCHOR id="IBUS-KEY-Thai-chochang" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochang">
+<ANCHOR id="IBUS-KEY-Thai-soso" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-soso">
+<ANCHOR id="IBUS-KEY-Thai-chochoe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-chochoe">
+<ANCHOR id="IBUS-KEY-Thai-yoying" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-yoying">
+<ANCHOR id="IBUS-KEY-Thai-dochada" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-dochada">
+<ANCHOR id="IBUS-KEY-Thai-topatak" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-topatak">
+<ANCHOR id="IBUS-KEY-Thai-thothan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothan">
+<ANCHOR id="IBUS-KEY-Thai-thonangmontho" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-thonangmontho">
+<ANCHOR id="IBUS-KEY-Thai-thophuthao" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-thophuthao">
+<ANCHOR id="IBUS-KEY-Thai-nonen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-nonen">
+<ANCHOR id="IBUS-KEY-Thai-dodek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-dodek">
+<ANCHOR id="IBUS-KEY-Thai-totao" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-totao">
+<ANCHOR id="IBUS-KEY-Thai-thothung" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothung">
+<ANCHOR id="IBUS-KEY-Thai-thothahan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothahan">
+<ANCHOR id="IBUS-KEY-Thai-thothong" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-thothong">
+<ANCHOR id="IBUS-KEY-Thai-nonu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-nonu">
+<ANCHOR id="IBUS-KEY-Thai-bobaimai" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-bobaimai">
+<ANCHOR id="IBUS-KEY-Thai-popla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-popla">
+<ANCHOR id="IBUS-KEY-Thai-phophung" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-phophung">
+<ANCHOR id="IBUS-KEY-Thai-fofa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-fofa">
+<ANCHOR id="IBUS-KEY-Thai-phophan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-phophan">
+<ANCHOR id="IBUS-KEY-Thai-fofan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-fofan">
+<ANCHOR id="IBUS-KEY-Thai-phosamphao" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-phosamphao">
+<ANCHOR id="IBUS-KEY-Thai-moma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-moma">
+<ANCHOR id="IBUS-KEY-Thai-yoyak" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-yoyak">
+<ANCHOR id="IBUS-KEY-Thai-rorua" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-rorua">
+<ANCHOR id="IBUS-KEY-Thai-ru" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-ru">
+<ANCHOR id="IBUS-KEY-Thai-loling" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-loling">
+<ANCHOR id="IBUS-KEY-Thai-lu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-lu">
+<ANCHOR id="IBUS-KEY-Thai-wowaen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-wowaen">
+<ANCHOR id="IBUS-KEY-Thai-sosala" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-sosala">
+<ANCHOR id="IBUS-KEY-Thai-sorusi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-sorusi">
+<ANCHOR id="IBUS-KEY-Thai-sosua" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-sosua">
+<ANCHOR id="IBUS-KEY-Thai-hohip" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-hohip">
+<ANCHOR id="IBUS-KEY-Thai-lochula" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-lochula">
+<ANCHOR id="IBUS-KEY-Thai-oang" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-oang">
+<ANCHOR id="IBUS-KEY-Thai-honokhuk" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-honokhuk">
+<ANCHOR id="IBUS-KEY-Thai-paiyannoi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-paiyannoi">
+<ANCHOR id="IBUS-KEY-Thai-saraa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraa">
+<ANCHOR id="IBUS-KEY-Thai-maihanakat" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-maihanakat">
+<ANCHOR id="IBUS-KEY-Thai-saraaa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaa">
+<ANCHOR id="IBUS-KEY-Thai-saraam" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraam">
+<ANCHOR id="IBUS-KEY-Thai-sarai" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarai">
+<ANCHOR id="IBUS-KEY-Thai-saraii" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraii">
+<ANCHOR id="IBUS-KEY-Thai-saraue" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraue">
+<ANCHOR id="IBUS-KEY-Thai-sarauee" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarauee">
+<ANCHOR id="IBUS-KEY-Thai-sarau" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarau">
+<ANCHOR id="IBUS-KEY-Thai-sarauu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarauu">
+<ANCHOR id="IBUS-KEY-Thai-phinthu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-phinthu">
+<ANCHOR id="IBUS-KEY-Thai-maihanakat-maitho" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-maihanakat-maitho">
+<ANCHOR id="IBUS-KEY-Thai-baht" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-baht">
+<ANCHOR id="IBUS-KEY-Thai-sarae" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarae">
+<ANCHOR id="IBUS-KEY-Thai-saraae" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraae">
+<ANCHOR id="IBUS-KEY-Thai-sarao" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-sarao">
+<ANCHOR id="IBUS-KEY-Thai-saraaimaimuan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaimaimuan">
+<ANCHOR id="IBUS-KEY-Thai-saraaimaimalai" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-saraaimaimalai">
+<ANCHOR id="IBUS-KEY-Thai-lakkhangyao" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-lakkhangyao">
+<ANCHOR id="IBUS-KEY-Thai-maiyamok" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-maiyamok">
+<ANCHOR id="IBUS-KEY-Thai-maitaikhu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitaikhu">
+<ANCHOR id="IBUS-KEY-Thai-maiek" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-maiek">
+<ANCHOR id="IBUS-KEY-Thai-maitho" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitho">
+<ANCHOR id="IBUS-KEY-Thai-maitri" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-maitri">
+<ANCHOR id="IBUS-KEY-Thai-maichattawa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-maichattawa">
+<ANCHOR id="IBUS-KEY-Thai-thanthakhat" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-thanthakhat">
+<ANCHOR id="IBUS-KEY-Thai-nikhahit" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-nikhahit">
+<ANCHOR id="IBUS-KEY-Thai-leksun" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksun">
+<ANCHOR id="IBUS-KEY-Thai-leknung" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-leknung">
+<ANCHOR id="IBUS-KEY-Thai-leksong" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksong">
+<ANCHOR id="IBUS-KEY-Thai-leksam" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksam">
+<ANCHOR id="IBUS-KEY-Thai-leksi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-leksi">
+<ANCHOR id="IBUS-KEY-Thai-lekha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekha">
+<ANCHOR id="IBUS-KEY-Thai-lekhok" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekhok">
+<ANCHOR id="IBUS-KEY-Thai-lekchet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekchet">
+<ANCHOR id="IBUS-KEY-Thai-lekpaet" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekpaet">
+<ANCHOR id="IBUS-KEY-Thai-lekkao" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Thai-lekkao">
+<ANCHOR id="IBUS-KEY-Hangul" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul">
+<ANCHOR id="IBUS-KEY-Hangul-Start" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Start">
+<ANCHOR id="IBUS-KEY-Hangul-End" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-End">
+<ANCHOR id="IBUS-KEY-Hangul-Hanja" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Hanja">
+<ANCHOR id="IBUS-KEY-Hangul-Jamo" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jamo">
+<ANCHOR id="IBUS-KEY-Hangul-Romaja" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Romaja">
+<ANCHOR id="IBUS-KEY-Hangul-Codeinput" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Codeinput">
+<ANCHOR id="IBUS-KEY-Hangul-Jeonja" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jeonja">
+<ANCHOR id="IBUS-KEY-Hangul-Banja" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Banja">
+<ANCHOR id="IBUS-KEY-Hangul-PreHanja" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PreHanja">
+<ANCHOR id="IBUS-KEY-Hangul-PostHanja" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PostHanja">
+<ANCHOR id="IBUS-KEY-Hangul-SingleCandidate" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SingleCandidate">
+<ANCHOR id="IBUS-KEY-Hangul-MultipleCandidate" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-MultipleCandidate">
+<ANCHOR id="IBUS-KEY-Hangul-PreviousCandidate" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PreviousCandidate">
+<ANCHOR id="IBUS-KEY-Hangul-Special" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Special">
+<ANCHOR id="IBUS-KEY-Hangul-switch" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-switch">
+<ANCHOR id="IBUS-KEY-Hangul-Kiyeog" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Kiyeog">
+<ANCHOR id="IBUS-KEY-Hangul-SsangKiyeog" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangKiyeog">
+<ANCHOR id="IBUS-KEY-Hangul-KiyeogSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-KiyeogSios">
+<ANCHOR id="IBUS-KEY-Hangul-Nieun" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Nieun">
+<ANCHOR id="IBUS-KEY-Hangul-NieunJieuj" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-NieunJieuj">
+<ANCHOR id="IBUS-KEY-Hangul-NieunHieuh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-NieunHieuh">
+<ANCHOR id="IBUS-KEY-Hangul-Dikeud" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Dikeud">
+<ANCHOR id="IBUS-KEY-Hangul-SsangDikeud" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangDikeud">
+<ANCHOR id="IBUS-KEY-Hangul-Rieul" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Rieul">
+<ANCHOR id="IBUS-KEY-Hangul-RieulKiyeog" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulKiyeog">
+<ANCHOR id="IBUS-KEY-Hangul-RieulMieum" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulMieum">
+<ANCHOR id="IBUS-KEY-Hangul-RieulPieub" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulPieub">
+<ANCHOR id="IBUS-KEY-Hangul-RieulSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulSios">
+<ANCHOR id="IBUS-KEY-Hangul-RieulTieut" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulTieut">
+<ANCHOR id="IBUS-KEY-Hangul-RieulPhieuf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulPhieuf">
+<ANCHOR id="IBUS-KEY-Hangul-RieulHieuh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulHieuh">
+<ANCHOR id="IBUS-KEY-Hangul-Mieum" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Mieum">
+<ANCHOR id="IBUS-KEY-Hangul-Pieub" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Pieub">
+<ANCHOR id="IBUS-KEY-Hangul-SsangPieub" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangPieub">
+<ANCHOR id="IBUS-KEY-Hangul-PieubSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PieubSios">
+<ANCHOR id="IBUS-KEY-Hangul-Sios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Sios">
+<ANCHOR id="IBUS-KEY-Hangul-SsangSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangSios">
+<ANCHOR id="IBUS-KEY-Hangul-Ieung" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Ieung">
+<ANCHOR id="IBUS-KEY-Hangul-Jieuj" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Jieuj">
+<ANCHOR id="IBUS-KEY-Hangul-SsangJieuj" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SsangJieuj">
+<ANCHOR id="IBUS-KEY-Hangul-Cieuc" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Cieuc">
+<ANCHOR id="IBUS-KEY-Hangul-Khieuq" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Khieuq">
+<ANCHOR id="IBUS-KEY-Hangul-Tieut" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Tieut">
+<ANCHOR id="IBUS-KEY-Hangul-Phieuf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Phieuf">
+<ANCHOR id="IBUS-KEY-Hangul-Hieuh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-Hieuh">
+<ANCHOR id="IBUS-KEY-Hangul-A" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-A">
+<ANCHOR id="IBUS-KEY-Hangul-AE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AE">
+<ANCHOR id="IBUS-KEY-Hangul-YA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YA">
+<ANCHOR id="IBUS-KEY-Hangul-YAE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YAE">
+<ANCHOR id="IBUS-KEY-Hangul-EO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-EO">
+<ANCHOR id="IBUS-KEY-Hangul-E" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-E">
+<ANCHOR id="IBUS-KEY-Hangul-YEO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YEO">
+<ANCHOR id="IBUS-KEY-Hangul-YE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YE">
+<ANCHOR id="IBUS-KEY-Hangul-O" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-O">
+<ANCHOR id="IBUS-KEY-Hangul-WA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WA">
+<ANCHOR id="IBUS-KEY-Hangul-WAE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WAE">
+<ANCHOR id="IBUS-KEY-Hangul-OE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-OE">
+<ANCHOR id="IBUS-KEY-Hangul-YO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YO">
+<ANCHOR id="IBUS-KEY-Hangul-U" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-U">
+<ANCHOR id="IBUS-KEY-Hangul-WEO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WEO">
+<ANCHOR id="IBUS-KEY-Hangul-WE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WE">
+<ANCHOR id="IBUS-KEY-Hangul-WI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-WI">
+<ANCHOR id="IBUS-KEY-Hangul-YU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YU">
+<ANCHOR id="IBUS-KEY-Hangul-EU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-EU">
+<ANCHOR id="IBUS-KEY-Hangul-YI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YI">
+<ANCHOR id="IBUS-KEY-Hangul-I" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-I">
+<ANCHOR id="IBUS-KEY-Hangul-J-Kiyeog" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Kiyeog">
+<ANCHOR id="IBUS-KEY-Hangul-J-SsangKiyeog" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-SsangKiyeog">
+<ANCHOR id="IBUS-KEY-Hangul-J-KiyeogSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-KiyeogSios">
+<ANCHOR id="IBUS-KEY-Hangul-J-Nieun" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Nieun">
+<ANCHOR id="IBUS-KEY-Hangul-J-NieunJieuj" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-NieunJieuj">
+<ANCHOR id="IBUS-KEY-Hangul-J-NieunHieuh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-NieunHieuh">
+<ANCHOR id="IBUS-KEY-Hangul-J-Dikeud" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Dikeud">
+<ANCHOR id="IBUS-KEY-Hangul-J-Rieul" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Rieul">
+<ANCHOR id="IBUS-KEY-Hangul-J-RieulKiyeog" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulKiyeog">
+<ANCHOR id="IBUS-KEY-Hangul-J-RieulMieum" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulMieum">
+<ANCHOR id="IBUS-KEY-Hangul-J-RieulPieub" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulPieub">
+<ANCHOR id="IBUS-KEY-Hangul-J-RieulSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulSios">
+<ANCHOR id="IBUS-KEY-Hangul-J-RieulTieut" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulTieut">
+<ANCHOR id="IBUS-KEY-Hangul-J-RieulPhieuf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulPhieuf">
+<ANCHOR id="IBUS-KEY-Hangul-J-RieulHieuh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-RieulHieuh">
+<ANCHOR id="IBUS-KEY-Hangul-J-Mieum" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Mieum">
+<ANCHOR id="IBUS-KEY-Hangul-J-Pieub" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Pieub">
+<ANCHOR id="IBUS-KEY-Hangul-J-PieubSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-PieubSios">
+<ANCHOR id="IBUS-KEY-Hangul-J-Sios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Sios">
+<ANCHOR id="IBUS-KEY-Hangul-J-SsangSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-SsangSios">
+<ANCHOR id="IBUS-KEY-Hangul-J-Ieung" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Ieung">
+<ANCHOR id="IBUS-KEY-Hangul-J-Jieuj" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Jieuj">
+<ANCHOR id="IBUS-KEY-Hangul-J-Cieuc" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Cieuc">
+<ANCHOR id="IBUS-KEY-Hangul-J-Khieuq" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Khieuq">
+<ANCHOR id="IBUS-KEY-Hangul-J-Tieut" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Tieut">
+<ANCHOR id="IBUS-KEY-Hangul-J-Phieuf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Phieuf">
+<ANCHOR id="IBUS-KEY-Hangul-J-Hieuh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-Hieuh">
+<ANCHOR id="IBUS-KEY-Hangul-RieulYeorinHieuh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-RieulYeorinHieuh">
+<ANCHOR id="IBUS-KEY-Hangul-SunkyeongeumMieum" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumMieum">
+<ANCHOR id="IBUS-KEY-Hangul-SunkyeongeumPieub" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumPieub">
+<ANCHOR id="IBUS-KEY-Hangul-PanSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-PanSios">
+<ANCHOR id="IBUS-KEY-Hangul-KkogjiDalrinIeung" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-KkogjiDalrinIeung">
+<ANCHOR id="IBUS-KEY-Hangul-SunkyeongeumPhieuf" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-SunkyeongeumPhieuf">
+<ANCHOR id="IBUS-KEY-Hangul-YeorinHieuh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-YeorinHieuh">
+<ANCHOR id="IBUS-KEY-Hangul-AraeA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AraeA">
+<ANCHOR id="IBUS-KEY-Hangul-AraeAE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-AraeAE">
+<ANCHOR id="IBUS-KEY-Hangul-J-PanSios" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-PanSios">
+<ANCHOR id="IBUS-KEY-Hangul-J-KkogjiDalrinIeung" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-KkogjiDalrinIeung">
+<ANCHOR id="IBUS-KEY-Hangul-J-YeorinHieuh" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Hangul-J-YeorinHieuh">
+<ANCHOR id="IBUS-KEY-Korean-Won" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Korean-Won">
+<ANCHOR id="IBUS-KEY-Armenian-ligature-ew" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ligature-ew">
+<ANCHOR id="IBUS-KEY-Armenian-full-stop" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-full-stop">
+<ANCHOR id="IBUS-KEY-Armenian-verjaket" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-verjaket">
+<ANCHOR id="IBUS-KEY-Armenian-separation-mark" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-separation-mark">
+<ANCHOR id="IBUS-KEY-Armenian-but" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-but">
+<ANCHOR id="IBUS-KEY-Armenian-hyphen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-hyphen">
+<ANCHOR id="IBUS-KEY-Armenian-yentamna" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-yentamna">
+<ANCHOR id="IBUS-KEY-Armenian-exclam" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-exclam">
+<ANCHOR id="IBUS-KEY-Armenian-amanak" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-amanak">
+<ANCHOR id="IBUS-KEY-Armenian-accent" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-accent">
+<ANCHOR id="IBUS-KEY-Armenian-shesht" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-shesht">
+<ANCHOR id="IBUS-KEY-Armenian-question" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-question">
+<ANCHOR id="IBUS-KEY-Armenian-paruyk" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-paruyk">
+<ANCHOR id="IBUS-KEY-Armenian-AYB" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-AYB">
+<ANCHOR id="IBUS-KEY-Armenian-ayb" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ayb">
+<ANCHOR id="IBUS-KEY-Armenian-BEN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-BEN">
+<ANCHOR id="IBUS-KEY-Armenian-ben" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ben">
+<ANCHOR id="IBUS-KEY-Armenian-GIM" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-GIM">
+<ANCHOR id="IBUS-KEY-Armenian-gim" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-gim">
+<ANCHOR id="IBUS-KEY-Armenian-DA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-DA">
+<ANCHOR id="IBUS-KEY-Armenian-da" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-da">
+<ANCHOR id="IBUS-KEY-Armenian-YECH" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-YECH">
+<ANCHOR id="IBUS-KEY-Armenian-yech" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-yech">
+<ANCHOR id="IBUS-KEY-Armenian-ZA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ZA">
+<ANCHOR id="IBUS-KEY-Armenian-za" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-za">
+<ANCHOR id="IBUS-KEY-Armenian-E" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-E">
+<ANCHOR id="IBUS-KEY-Armenian-e" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-e">
+<ANCHOR id="IBUS-KEY-Armenian-AT" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-AT">
+<ANCHOR id="IBUS-KEY-Armenian-at" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-at">
+<ANCHOR id="IBUS-KEY-Armenian-TO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TO">
+<ANCHOR id="IBUS-KEY-Armenian-to" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-to">
+<ANCHOR id="IBUS-KEY-Armenian-ZHE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ZHE">
+<ANCHOR id="IBUS-KEY-Armenian-zhe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-zhe">
+<ANCHOR id="IBUS-KEY-Armenian-INI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-INI">
+<ANCHOR id="IBUS-KEY-Armenian-ini" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ini">
+<ANCHOR id="IBUS-KEY-Armenian-LYUN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-LYUN">
+<ANCHOR id="IBUS-KEY-Armenian-lyun" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-lyun">
+<ANCHOR id="IBUS-KEY-Armenian-KHE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KHE">
+<ANCHOR id="IBUS-KEY-Armenian-khe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-khe">
+<ANCHOR id="IBUS-KEY-Armenian-TSA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TSA">
+<ANCHOR id="IBUS-KEY-Armenian-tsa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tsa">
+<ANCHOR id="IBUS-KEY-Armenian-KEN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KEN">
+<ANCHOR id="IBUS-KEY-Armenian-ken" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ken">
+<ANCHOR id="IBUS-KEY-Armenian-HO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-HO">
+<ANCHOR id="IBUS-KEY-Armenian-ho" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ho">
+<ANCHOR id="IBUS-KEY-Armenian-DZA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-DZA">
+<ANCHOR id="IBUS-KEY-Armenian-dza" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-dza">
+<ANCHOR id="IBUS-KEY-Armenian-GHAT" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-GHAT">
+<ANCHOR id="IBUS-KEY-Armenian-ghat" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ghat">
+<ANCHOR id="IBUS-KEY-Armenian-TCHE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TCHE">
+<ANCHOR id="IBUS-KEY-Armenian-tche" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tche">
+<ANCHOR id="IBUS-KEY-Armenian-MEN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-MEN">
+<ANCHOR id="IBUS-KEY-Armenian-men" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-men">
+<ANCHOR id="IBUS-KEY-Armenian-HI" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-HI">
+<ANCHOR id="IBUS-KEY-Armenian-hi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-hi">
+<ANCHOR id="IBUS-KEY-Armenian-NU" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-NU">
+<ANCHOR id="IBUS-KEY-Armenian-nu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-nu">
+<ANCHOR id="IBUS-KEY-Armenian-SHA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-SHA">
+<ANCHOR id="IBUS-KEY-Armenian-sha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-sha">
+<ANCHOR id="IBUS-KEY-Armenian-VO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VO">
+<ANCHOR id="IBUS-KEY-Armenian-vo" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vo">
+<ANCHOR id="IBUS-KEY-Armenian-CHA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-CHA">
+<ANCHOR id="IBUS-KEY-Armenian-cha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-cha">
+<ANCHOR id="IBUS-KEY-Armenian-PE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-PE">
+<ANCHOR id="IBUS-KEY-Armenian-pe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-pe">
+<ANCHOR id="IBUS-KEY-Armenian-JE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-JE">
+<ANCHOR id="IBUS-KEY-Armenian-je" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-je">
+<ANCHOR id="IBUS-KEY-Armenian-RA" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-RA">
+<ANCHOR id="IBUS-KEY-Armenian-ra" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ra">
+<ANCHOR id="IBUS-KEY-Armenian-SE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-SE">
+<ANCHOR id="IBUS-KEY-Armenian-se" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-se">
+<ANCHOR id="IBUS-KEY-Armenian-VEV" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VEV">
+<ANCHOR id="IBUS-KEY-Armenian-vev" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vev">
+<ANCHOR id="IBUS-KEY-Armenian-TYUN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TYUN">
+<ANCHOR id="IBUS-KEY-Armenian-tyun" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tyun">
+<ANCHOR id="IBUS-KEY-Armenian-RE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-RE">
+<ANCHOR id="IBUS-KEY-Armenian-re" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-re">
+<ANCHOR id="IBUS-KEY-Armenian-TSO" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-TSO">
+<ANCHOR id="IBUS-KEY-Armenian-tso" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-tso">
+<ANCHOR id="IBUS-KEY-Armenian-VYUN" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-VYUN">
+<ANCHOR id="IBUS-KEY-Armenian-vyun" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-vyun">
+<ANCHOR id="IBUS-KEY-Armenian-PYUR" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-PYUR">
+<ANCHOR id="IBUS-KEY-Armenian-pyur" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-pyur">
+<ANCHOR id="IBUS-KEY-Armenian-KE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-KE">
+<ANCHOR id="IBUS-KEY-Armenian-ke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-ke">
+<ANCHOR id="IBUS-KEY-Armenian-O" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-O">
+<ANCHOR id="IBUS-KEY-Armenian-o" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-o">
+<ANCHOR id="IBUS-KEY-Armenian-FE" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-FE">
+<ANCHOR id="IBUS-KEY-Armenian-fe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-fe">
+<ANCHOR id="IBUS-KEY-Armenian-apostrophe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Armenian-apostrophe">
+<ANCHOR id="IBUS-KEY-Georgian-an" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-an">
+<ANCHOR id="IBUS-KEY-Georgian-ban" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-ban">
+<ANCHOR id="IBUS-KEY-Georgian-gan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-gan">
+<ANCHOR id="IBUS-KEY-Georgian-don" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-don">
+<ANCHOR id="IBUS-KEY-Georgian-en" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-en">
+<ANCHOR id="IBUS-KEY-Georgian-vin" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-vin">
+<ANCHOR id="IBUS-KEY-Georgian-zen" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-zen">
+<ANCHOR id="IBUS-KEY-Georgian-tan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-tan">
+<ANCHOR id="IBUS-KEY-Georgian-in" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-in">
+<ANCHOR id="IBUS-KEY-Georgian-kan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-kan">
+<ANCHOR id="IBUS-KEY-Georgian-las" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-las">
+<ANCHOR id="IBUS-KEY-Georgian-man" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-man">
+<ANCHOR id="IBUS-KEY-Georgian-nar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-nar">
+<ANCHOR id="IBUS-KEY-Georgian-on" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-on">
+<ANCHOR id="IBUS-KEY-Georgian-par" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-par">
+<ANCHOR id="IBUS-KEY-Georgian-zhar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-zhar">
+<ANCHOR id="IBUS-KEY-Georgian-rae" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-rae">
+<ANCHOR id="IBUS-KEY-Georgian-san" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-san">
+<ANCHOR id="IBUS-KEY-Georgian-tar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-tar">
+<ANCHOR id="IBUS-KEY-Georgian-un" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-un">
+<ANCHOR id="IBUS-KEY-Georgian-phar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-phar">
+<ANCHOR id="IBUS-KEY-Georgian-khar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-khar">
+<ANCHOR id="IBUS-KEY-Georgian-ghan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-ghan">
+<ANCHOR id="IBUS-KEY-Georgian-qar" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-qar">
+<ANCHOR id="IBUS-KEY-Georgian-shin" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-shin">
+<ANCHOR id="IBUS-KEY-Georgian-chin" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-chin">
+<ANCHOR id="IBUS-KEY-Georgian-can" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-can">
+<ANCHOR id="IBUS-KEY-Georgian-jil" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-jil">
+<ANCHOR id="IBUS-KEY-Georgian-cil" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-cil">
+<ANCHOR id="IBUS-KEY-Georgian-char" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-char">
+<ANCHOR id="IBUS-KEY-Georgian-xan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-xan">
+<ANCHOR id="IBUS-KEY-Georgian-jhan" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-jhan">
+<ANCHOR id="IBUS-KEY-Georgian-hae" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hae">
+<ANCHOR id="IBUS-KEY-Georgian-he" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-he">
+<ANCHOR id="IBUS-KEY-Georgian-hie" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hie">
+<ANCHOR id="IBUS-KEY-Georgian-we" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-we">
+<ANCHOR id="IBUS-KEY-Georgian-har" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-har">
+<ANCHOR id="IBUS-KEY-Georgian-hoe" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-hoe">
+<ANCHOR id="IBUS-KEY-Georgian-fi" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Georgian-fi">
+<ANCHOR id="IBUS-KEY-Xabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Xabovedot">
+<ANCHOR id="IBUS-KEY-Ibreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ibreve">
+<ANCHOR id="IBUS-KEY-Zstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Zstroke">
+<ANCHOR id="IBUS-KEY-Gcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Gcaron">
+<ANCHOR id="IBUS-KEY-Ocaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ocaron">
+<ANCHOR id="IBUS-KEY-Obarred" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Obarred">
+<ANCHOR id="IBUS-KEY-xabovedot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-xabovedot">
+<ANCHOR id="IBUS-KEY-ibreve" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ibreve">
+<ANCHOR id="IBUS-KEY-zstroke" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-zstroke">
+<ANCHOR id="IBUS-KEY-gcaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-gcaron">
+<ANCHOR id="IBUS-KEY-ocaron" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ocaron">
+<ANCHOR id="IBUS-KEY-obarred" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-obarred">
+<ANCHOR id="IBUS-KEY-SCHWA:CAPS" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-SCHWA:CAPS">
+<ANCHOR id="IBUS-KEY-schwa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-schwa">
+<ANCHOR id="IBUS-KEY-Lbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Lbelowdot">
+<ANCHOR id="IBUS-KEY-lbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-lbelowdot">
+<ANCHOR id="IBUS-KEY-Abelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Abelowdot">
+<ANCHOR id="IBUS-KEY-abelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-abelowdot">
+<ANCHOR id="IBUS-KEY-Ahook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ahook">
+<ANCHOR id="IBUS-KEY-ahook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ahook">
+<ANCHOR id="IBUS-KEY-Acircumflexacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexacute">
+<ANCHOR id="IBUS-KEY-acircumflexacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-acircumflexacute">
+<ANCHOR id="IBUS-KEY-Acircumflexgrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexgrave">
+<ANCHOR id="IBUS-KEY-acircumflexgrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-acircumflexgrave">
+<ANCHOR id="IBUS-KEY-Acircumflexhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexhook">
+<ANCHOR id="IBUS-KEY-acircumflexhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-acircumflexhook">
+<ANCHOR id="IBUS-KEY-Acircumflextilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Acircumflextilde">
+<ANCHOR id="IBUS-KEY-acircumflextilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-acircumflextilde">
+<ANCHOR id="IBUS-KEY-Acircumflexbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Acircumflexbelowdot">
+<ANCHOR id="IBUS-KEY-acircumflexbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-acircumflexbelowdot">
+<ANCHOR id="IBUS-KEY-Abreveacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Abreveacute">
+<ANCHOR id="IBUS-KEY-abreveacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-abreveacute">
+<ANCHOR id="IBUS-KEY-Abrevegrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Abrevegrave">
+<ANCHOR id="IBUS-KEY-abrevegrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-abrevegrave">
+<ANCHOR id="IBUS-KEY-Abrevehook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Abrevehook">
+<ANCHOR id="IBUS-KEY-abrevehook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-abrevehook">
+<ANCHOR id="IBUS-KEY-Abrevetilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Abrevetilde">
+<ANCHOR id="IBUS-KEY-abrevetilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-abrevetilde">
+<ANCHOR id="IBUS-KEY-Abrevebelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Abrevebelowdot">
+<ANCHOR id="IBUS-KEY-abrevebelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-abrevebelowdot">
+<ANCHOR id="IBUS-KEY-Ebelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ebelowdot">
+<ANCHOR id="IBUS-KEY-ebelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ebelowdot">
+<ANCHOR id="IBUS-KEY-Ehook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ehook">
+<ANCHOR id="IBUS-KEY-ehook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ehook">
+<ANCHOR id="IBUS-KEY-Etilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Etilde">
+<ANCHOR id="IBUS-KEY-etilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-etilde">
+<ANCHOR id="IBUS-KEY-Ecircumflexacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexacute">
+<ANCHOR id="IBUS-KEY-ecircumflexacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexacute">
+<ANCHOR id="IBUS-KEY-Ecircumflexgrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexgrave">
+<ANCHOR id="IBUS-KEY-ecircumflexgrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexgrave">
+<ANCHOR id="IBUS-KEY-Ecircumflexhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexhook">
+<ANCHOR id="IBUS-KEY-ecircumflexhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexhook">
+<ANCHOR id="IBUS-KEY-Ecircumflextilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflextilde">
+<ANCHOR id="IBUS-KEY-ecircumflextilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ecircumflextilde">
+<ANCHOR id="IBUS-KEY-Ecircumflexbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ecircumflexbelowdot">
+<ANCHOR id="IBUS-KEY-ecircumflexbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ecircumflexbelowdot">
+<ANCHOR id="IBUS-KEY-Ihook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ihook">
+<ANCHOR id="IBUS-KEY-ihook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ihook">
+<ANCHOR id="IBUS-KEY-Ibelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ibelowdot">
+<ANCHOR id="IBUS-KEY-ibelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ibelowdot">
+<ANCHOR id="IBUS-KEY-Obelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Obelowdot">
+<ANCHOR id="IBUS-KEY-obelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-obelowdot">
+<ANCHOR id="IBUS-KEY-Ohook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ohook">
+<ANCHOR id="IBUS-KEY-ohook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ohook">
+<ANCHOR id="IBUS-KEY-Ocircumflexacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexacute">
+<ANCHOR id="IBUS-KEY-ocircumflexacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexacute">
+<ANCHOR id="IBUS-KEY-Ocircumflexgrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexgrave">
+<ANCHOR id="IBUS-KEY-ocircumflexgrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexgrave">
+<ANCHOR id="IBUS-KEY-Ocircumflexhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexhook">
+<ANCHOR id="IBUS-KEY-ocircumflexhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexhook">
+<ANCHOR id="IBUS-KEY-Ocircumflextilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflextilde">
+<ANCHOR id="IBUS-KEY-ocircumflextilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ocircumflextilde">
+<ANCHOR id="IBUS-KEY-Ocircumflexbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ocircumflexbelowdot">
+<ANCHOR id="IBUS-KEY-ocircumflexbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ocircumflexbelowdot">
+<ANCHOR id="IBUS-KEY-Ohornacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ohornacute">
+<ANCHOR id="IBUS-KEY-ohornacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ohornacute">
+<ANCHOR id="IBUS-KEY-Ohorngrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ohorngrave">
+<ANCHOR id="IBUS-KEY-ohorngrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ohorngrave">
+<ANCHOR id="IBUS-KEY-Ohornhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ohornhook">
+<ANCHOR id="IBUS-KEY-ohornhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ohornhook">
+<ANCHOR id="IBUS-KEY-Ohorntilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ohorntilde">
+<ANCHOR id="IBUS-KEY-ohorntilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ohorntilde">
+<ANCHOR id="IBUS-KEY-Ohornbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ohornbelowdot">
+<ANCHOR id="IBUS-KEY-ohornbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ohornbelowdot">
+<ANCHOR id="IBUS-KEY-Ubelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ubelowdot">
+<ANCHOR id="IBUS-KEY-ubelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ubelowdot">
+<ANCHOR id="IBUS-KEY-Uhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uhook">
+<ANCHOR id="IBUS-KEY-uhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uhook">
+<ANCHOR id="IBUS-KEY-Uhornacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uhornacute">
+<ANCHOR id="IBUS-KEY-uhornacute" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uhornacute">
+<ANCHOR id="IBUS-KEY-Uhorngrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uhorngrave">
+<ANCHOR id="IBUS-KEY-uhorngrave" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uhorngrave">
+<ANCHOR id="IBUS-KEY-Uhornhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uhornhook">
+<ANCHOR id="IBUS-KEY-uhornhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uhornhook">
+<ANCHOR id="IBUS-KEY-Uhorntilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uhorntilde">
+<ANCHOR id="IBUS-KEY-uhorntilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uhorntilde">
+<ANCHOR id="IBUS-KEY-Uhornbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uhornbelowdot">
+<ANCHOR id="IBUS-KEY-uhornbelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uhornbelowdot">
+<ANCHOR id="IBUS-KEY-Ybelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ybelowdot">
+<ANCHOR id="IBUS-KEY-ybelowdot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ybelowdot">
+<ANCHOR id="IBUS-KEY-Yhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Yhook">
+<ANCHOR id="IBUS-KEY-yhook" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-yhook">
+<ANCHOR id="IBUS-KEY-Ytilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ytilde">
+<ANCHOR id="IBUS-KEY-ytilde" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ytilde">
+<ANCHOR id="IBUS-KEY-Ohorn" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Ohorn">
+<ANCHOR id="IBUS-KEY-ohorn" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ohorn">
+<ANCHOR id="IBUS-KEY-Uhorn" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Uhorn">
+<ANCHOR id="IBUS-KEY-uhorn" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-uhorn">
+<ANCHOR id="IBUS-KEY-EcuSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-EcuSign">
+<ANCHOR id="IBUS-KEY-ColonSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ColonSign">
+<ANCHOR id="IBUS-KEY-CruzeiroSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-CruzeiroSign">
+<ANCHOR id="IBUS-KEY-FFrancSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-FFrancSign">
+<ANCHOR id="IBUS-KEY-LiraSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-LiraSign">
+<ANCHOR id="IBUS-KEY-MillSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-MillSign">
+<ANCHOR id="IBUS-KEY-NairaSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-NairaSign">
+<ANCHOR id="IBUS-KEY-PesetaSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-PesetaSign">
+<ANCHOR id="IBUS-KEY-RupeeSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-RupeeSign">
+<ANCHOR id="IBUS-KEY-WonSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-WonSign">
+<ANCHOR id="IBUS-KEY-NewSheqelSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-NewSheqelSign">
+<ANCHOR id="IBUS-KEY-DongSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-DongSign">
+<ANCHOR id="IBUS-KEY-EuroSign" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-EuroSign">
+<ANCHOR id="IBUS-KEY-zerosuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-zerosuperior">
+<ANCHOR id="IBUS-KEY-foursuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-foursuperior">
+<ANCHOR id="IBUS-KEY-fivesuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-fivesuperior">
+<ANCHOR id="IBUS-KEY-sixsuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-sixsuperior">
+<ANCHOR id="IBUS-KEY-sevensuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-sevensuperior">
+<ANCHOR id="IBUS-KEY-eightsuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-eightsuperior">
+<ANCHOR id="IBUS-KEY-ninesuperior" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ninesuperior">
+<ANCHOR id="IBUS-KEY-zerosubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-zerosubscript">
+<ANCHOR id="IBUS-KEY-onesubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-onesubscript">
+<ANCHOR id="IBUS-KEY-twosubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-twosubscript">
+<ANCHOR id="IBUS-KEY-threesubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-threesubscript">
+<ANCHOR id="IBUS-KEY-foursubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-foursubscript">
+<ANCHOR id="IBUS-KEY-fivesubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-fivesubscript">
+<ANCHOR id="IBUS-KEY-sixsubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-sixsubscript">
+<ANCHOR id="IBUS-KEY-sevensubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-sevensubscript">
+<ANCHOR id="IBUS-KEY-eightsubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-eightsubscript">
+<ANCHOR id="IBUS-KEY-ninesubscript" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-ninesubscript">
+<ANCHOR id="IBUS-KEY-partdifferential" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-partdifferential">
+<ANCHOR id="IBUS-KEY-emptyset" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-emptyset">
+<ANCHOR id="IBUS-KEY-elementof" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-elementof">
+<ANCHOR id="IBUS-KEY-notelementof" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-notelementof">
+<ANCHOR id="IBUS-KEY-containsas" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-containsas">
+<ANCHOR id="IBUS-KEY-squareroot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-squareroot">
+<ANCHOR id="IBUS-KEY-cuberoot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-cuberoot">
+<ANCHOR id="IBUS-KEY-fourthroot" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-fourthroot">
+<ANCHOR id="IBUS-KEY-dintegral" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-dintegral">
+<ANCHOR id="IBUS-KEY-tintegral" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-tintegral">
+<ANCHOR id="IBUS-KEY-because" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-because">
+<ANCHOR id="IBUS-KEY-approxeq" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-approxeq">
+<ANCHOR id="IBUS-KEY-notapproxeq" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-notapproxeq">
+<ANCHOR id="IBUS-KEY-notidentical" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-notidentical">
+<ANCHOR id="IBUS-KEY-stricteq" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-stricteq">
+<ANCHOR id="IBUS-KEY-braille-dot-1" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-1">
+<ANCHOR id="IBUS-KEY-braille-dot-2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-2">
+<ANCHOR id="IBUS-KEY-braille-dot-3" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-3">
+<ANCHOR id="IBUS-KEY-braille-dot-4" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-4">
+<ANCHOR id="IBUS-KEY-braille-dot-5" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-5">
+<ANCHOR id="IBUS-KEY-braille-dot-6" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-6">
+<ANCHOR id="IBUS-KEY-braille-dot-7" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-7">
+<ANCHOR id="IBUS-KEY-braille-dot-8" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-8">
+<ANCHOR id="IBUS-KEY-braille-dot-9" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-9">
+<ANCHOR id="IBUS-KEY-braille-dot-10" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dot-10">
+<ANCHOR id="IBUS-KEY-braille-blank" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-blank">
+<ANCHOR id="IBUS-KEY-braille-dots-1" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1">
+<ANCHOR id="IBUS-KEY-braille-dots-2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2">
+<ANCHOR id="IBUS-KEY-braille-dots-12" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12">
+<ANCHOR id="IBUS-KEY-braille-dots-3" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3">
+<ANCHOR id="IBUS-KEY-braille-dots-13" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13">
+<ANCHOR id="IBUS-KEY-braille-dots-23" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23">
+<ANCHOR id="IBUS-KEY-braille-dots-123" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123">
+<ANCHOR id="IBUS-KEY-braille-dots-4" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4">
+<ANCHOR id="IBUS-KEY-braille-dots-14" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14">
+<ANCHOR id="IBUS-KEY-braille-dots-24" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24">
+<ANCHOR id="IBUS-KEY-braille-dots-124" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124">
+<ANCHOR id="IBUS-KEY-braille-dots-34" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34">
+<ANCHOR id="IBUS-KEY-braille-dots-134" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134">
+<ANCHOR id="IBUS-KEY-braille-dots-234" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234">
+<ANCHOR id="IBUS-KEY-braille-dots-1234" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234">
+<ANCHOR id="IBUS-KEY-braille-dots-5" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-5">
+<ANCHOR id="IBUS-KEY-braille-dots-15" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-15">
+<ANCHOR id="IBUS-KEY-braille-dots-25" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-25">
+<ANCHOR id="IBUS-KEY-braille-dots-125" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-125">
+<ANCHOR id="IBUS-KEY-braille-dots-35" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-35">
+<ANCHOR id="IBUS-KEY-braille-dots-135" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-135">
+<ANCHOR id="IBUS-KEY-braille-dots-235" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-235">
+<ANCHOR id="IBUS-KEY-braille-dots-1235" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1235">
+<ANCHOR id="IBUS-KEY-braille-dots-45" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-45">
+<ANCHOR id="IBUS-KEY-braille-dots-145" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-145">
+<ANCHOR id="IBUS-KEY-braille-dots-245" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-245">
+<ANCHOR id="IBUS-KEY-braille-dots-1245" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1245">
+<ANCHOR id="IBUS-KEY-braille-dots-345" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-345">
+<ANCHOR id="IBUS-KEY-braille-dots-1345" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1345">
+<ANCHOR id="IBUS-KEY-braille-dots-2345" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2345">
+<ANCHOR id="IBUS-KEY-braille-dots-12345" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12345">
+<ANCHOR id="IBUS-KEY-braille-dots-6" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-6">
+<ANCHOR id="IBUS-KEY-braille-dots-16" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-16">
+<ANCHOR id="IBUS-KEY-braille-dots-26" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-26">
+<ANCHOR id="IBUS-KEY-braille-dots-126" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-126">
+<ANCHOR id="IBUS-KEY-braille-dots-36" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-36">
+<ANCHOR id="IBUS-KEY-braille-dots-136" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-136">
+<ANCHOR id="IBUS-KEY-braille-dots-236" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-236">
+<ANCHOR id="IBUS-KEY-braille-dots-1236" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1236">
+<ANCHOR id="IBUS-KEY-braille-dots-46" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-46">
+<ANCHOR id="IBUS-KEY-braille-dots-146" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-146">
+<ANCHOR id="IBUS-KEY-braille-dots-246" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-246">
+<ANCHOR id="IBUS-KEY-braille-dots-1246" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1246">
+<ANCHOR id="IBUS-KEY-braille-dots-346" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-346">
+<ANCHOR id="IBUS-KEY-braille-dots-1346" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1346">
+<ANCHOR id="IBUS-KEY-braille-dots-2346" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2346">
+<ANCHOR id="IBUS-KEY-braille-dots-12346" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12346">
+<ANCHOR id="IBUS-KEY-braille-dots-56" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-56">
+<ANCHOR id="IBUS-KEY-braille-dots-156" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-156">
+<ANCHOR id="IBUS-KEY-braille-dots-256" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-256">
+<ANCHOR id="IBUS-KEY-braille-dots-1256" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1256">
+<ANCHOR id="IBUS-KEY-braille-dots-356" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-356">
+<ANCHOR id="IBUS-KEY-braille-dots-1356" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1356">
+<ANCHOR id="IBUS-KEY-braille-dots-2356" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2356">
+<ANCHOR id="IBUS-KEY-braille-dots-12356" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12356">
+<ANCHOR id="IBUS-KEY-braille-dots-456" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-456">
+<ANCHOR id="IBUS-KEY-braille-dots-1456" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1456">
+<ANCHOR id="IBUS-KEY-braille-dots-2456" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2456">
+<ANCHOR id="IBUS-KEY-braille-dots-12456" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12456">
+<ANCHOR id="IBUS-KEY-braille-dots-3456" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3456">
+<ANCHOR id="IBUS-KEY-braille-dots-13456" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13456">
+<ANCHOR id="IBUS-KEY-braille-dots-23456" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23456">
+<ANCHOR id="IBUS-KEY-braille-dots-123456" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123456">
+<ANCHOR id="IBUS-KEY-braille-dots-7" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-7">
+<ANCHOR id="IBUS-KEY-braille-dots-17" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-17">
+<ANCHOR id="IBUS-KEY-braille-dots-27" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-27">
+<ANCHOR id="IBUS-KEY-braille-dots-127" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-127">
+<ANCHOR id="IBUS-KEY-braille-dots-37" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-37">
+<ANCHOR id="IBUS-KEY-braille-dots-137" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-137">
+<ANCHOR id="IBUS-KEY-braille-dots-237" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-237">
+<ANCHOR id="IBUS-KEY-braille-dots-1237" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1237">
+<ANCHOR id="IBUS-KEY-braille-dots-47" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-47">
+<ANCHOR id="IBUS-KEY-braille-dots-147" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-147">
+<ANCHOR id="IBUS-KEY-braille-dots-247" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-247">
+<ANCHOR id="IBUS-KEY-braille-dots-1247" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1247">
+<ANCHOR id="IBUS-KEY-braille-dots-347" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-347">
+<ANCHOR id="IBUS-KEY-braille-dots-1347" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1347">
+<ANCHOR id="IBUS-KEY-braille-dots-2347" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2347">
+<ANCHOR id="IBUS-KEY-braille-dots-12347" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12347">
+<ANCHOR id="IBUS-KEY-braille-dots-57" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-57">
+<ANCHOR id="IBUS-KEY-braille-dots-157" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-157">
+<ANCHOR id="IBUS-KEY-braille-dots-257" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-257">
+<ANCHOR id="IBUS-KEY-braille-dots-1257" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1257">
+<ANCHOR id="IBUS-KEY-braille-dots-357" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-357">
+<ANCHOR id="IBUS-KEY-braille-dots-1357" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1357">
+<ANCHOR id="IBUS-KEY-braille-dots-2357" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2357">
+<ANCHOR id="IBUS-KEY-braille-dots-12357" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12357">
+<ANCHOR id="IBUS-KEY-braille-dots-457" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-457">
+<ANCHOR id="IBUS-KEY-braille-dots-1457" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1457">
+<ANCHOR id="IBUS-KEY-braille-dots-2457" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2457">
+<ANCHOR id="IBUS-KEY-braille-dots-12457" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12457">
+<ANCHOR id="IBUS-KEY-braille-dots-3457" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3457">
+<ANCHOR id="IBUS-KEY-braille-dots-13457" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13457">
+<ANCHOR id="IBUS-KEY-braille-dots-23457" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23457">
+<ANCHOR id="IBUS-KEY-braille-dots-123457" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123457">
+<ANCHOR id="IBUS-KEY-braille-dots-67" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-67">
+<ANCHOR id="IBUS-KEY-braille-dots-167" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-167">
+<ANCHOR id="IBUS-KEY-braille-dots-267" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-267">
+<ANCHOR id="IBUS-KEY-braille-dots-1267" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1267">
+<ANCHOR id="IBUS-KEY-braille-dots-367" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-367">
+<ANCHOR id="IBUS-KEY-braille-dots-1367" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1367">
+<ANCHOR id="IBUS-KEY-braille-dots-2367" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2367">
+<ANCHOR id="IBUS-KEY-braille-dots-12367" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12367">
+<ANCHOR id="IBUS-KEY-braille-dots-467" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-467">
+<ANCHOR id="IBUS-KEY-braille-dots-1467" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1467">
+<ANCHOR id="IBUS-KEY-braille-dots-2467" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2467">
+<ANCHOR id="IBUS-KEY-braille-dots-12467" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12467">
+<ANCHOR id="IBUS-KEY-braille-dots-3467" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3467">
+<ANCHOR id="IBUS-KEY-braille-dots-13467" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13467">
+<ANCHOR id="IBUS-KEY-braille-dots-23467" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23467">
+<ANCHOR id="IBUS-KEY-braille-dots-123467" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123467">
+<ANCHOR id="IBUS-KEY-braille-dots-567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-567">
+<ANCHOR id="IBUS-KEY-braille-dots-1567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1567">
+<ANCHOR id="IBUS-KEY-braille-dots-2567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2567">
+<ANCHOR id="IBUS-KEY-braille-dots-12567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12567">
+<ANCHOR id="IBUS-KEY-braille-dots-3567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3567">
+<ANCHOR id="IBUS-KEY-braille-dots-13567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13567">
+<ANCHOR id="IBUS-KEY-braille-dots-23567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23567">
+<ANCHOR id="IBUS-KEY-braille-dots-123567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123567">
+<ANCHOR id="IBUS-KEY-braille-dots-4567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4567">
+<ANCHOR id="IBUS-KEY-braille-dots-14567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14567">
+<ANCHOR id="IBUS-KEY-braille-dots-24567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24567">
+<ANCHOR id="IBUS-KEY-braille-dots-124567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124567">
+<ANCHOR id="IBUS-KEY-braille-dots-34567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34567">
+<ANCHOR id="IBUS-KEY-braille-dots-134567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134567">
+<ANCHOR id="IBUS-KEY-braille-dots-234567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234567">
+<ANCHOR id="IBUS-KEY-braille-dots-1234567" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234567">
+<ANCHOR id="IBUS-KEY-braille-dots-8" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-8">
+<ANCHOR id="IBUS-KEY-braille-dots-18" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-18">
+<ANCHOR id="IBUS-KEY-braille-dots-28" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-28">
+<ANCHOR id="IBUS-KEY-braille-dots-128" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-128">
+<ANCHOR id="IBUS-KEY-braille-dots-38" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-38">
+<ANCHOR id="IBUS-KEY-braille-dots-138" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-138">
+<ANCHOR id="IBUS-KEY-braille-dots-238" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-238">
+<ANCHOR id="IBUS-KEY-braille-dots-1238" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1238">
+<ANCHOR id="IBUS-KEY-braille-dots-48" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-48">
+<ANCHOR id="IBUS-KEY-braille-dots-148" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-148">
+<ANCHOR id="IBUS-KEY-braille-dots-248" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-248">
+<ANCHOR id="IBUS-KEY-braille-dots-1248" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1248">
+<ANCHOR id="IBUS-KEY-braille-dots-348" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-348">
+<ANCHOR id="IBUS-KEY-braille-dots-1348" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1348">
+<ANCHOR id="IBUS-KEY-braille-dots-2348" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2348">
+<ANCHOR id="IBUS-KEY-braille-dots-12348" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12348">
+<ANCHOR id="IBUS-KEY-braille-dots-58" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-58">
+<ANCHOR id="IBUS-KEY-braille-dots-158" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-158">
+<ANCHOR id="IBUS-KEY-braille-dots-258" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-258">
+<ANCHOR id="IBUS-KEY-braille-dots-1258" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1258">
+<ANCHOR id="IBUS-KEY-braille-dots-358" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-358">
+<ANCHOR id="IBUS-KEY-braille-dots-1358" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1358">
+<ANCHOR id="IBUS-KEY-braille-dots-2358" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2358">
+<ANCHOR id="IBUS-KEY-braille-dots-12358" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12358">
+<ANCHOR id="IBUS-KEY-braille-dots-458" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-458">
+<ANCHOR id="IBUS-KEY-braille-dots-1458" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1458">
+<ANCHOR id="IBUS-KEY-braille-dots-2458" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2458">
+<ANCHOR id="IBUS-KEY-braille-dots-12458" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12458">
+<ANCHOR id="IBUS-KEY-braille-dots-3458" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3458">
+<ANCHOR id="IBUS-KEY-braille-dots-13458" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13458">
+<ANCHOR id="IBUS-KEY-braille-dots-23458" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23458">
+<ANCHOR id="IBUS-KEY-braille-dots-123458" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123458">
+<ANCHOR id="IBUS-KEY-braille-dots-68" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-68">
+<ANCHOR id="IBUS-KEY-braille-dots-168" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-168">
+<ANCHOR id="IBUS-KEY-braille-dots-268" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-268">
+<ANCHOR id="IBUS-KEY-braille-dots-1268" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1268">
+<ANCHOR id="IBUS-KEY-braille-dots-368" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-368">
+<ANCHOR id="IBUS-KEY-braille-dots-1368" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1368">
+<ANCHOR id="IBUS-KEY-braille-dots-2368" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2368">
+<ANCHOR id="IBUS-KEY-braille-dots-12368" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12368">
+<ANCHOR id="IBUS-KEY-braille-dots-468" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-468">
+<ANCHOR id="IBUS-KEY-braille-dots-1468" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1468">
+<ANCHOR id="IBUS-KEY-braille-dots-2468" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2468">
+<ANCHOR id="IBUS-KEY-braille-dots-12468" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12468">
+<ANCHOR id="IBUS-KEY-braille-dots-3468" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3468">
+<ANCHOR id="IBUS-KEY-braille-dots-13468" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13468">
+<ANCHOR id="IBUS-KEY-braille-dots-23468" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23468">
+<ANCHOR id="IBUS-KEY-braille-dots-123468" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123468">
+<ANCHOR id="IBUS-KEY-braille-dots-568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-568">
+<ANCHOR id="IBUS-KEY-braille-dots-1568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1568">
+<ANCHOR id="IBUS-KEY-braille-dots-2568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2568">
+<ANCHOR id="IBUS-KEY-braille-dots-12568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12568">
+<ANCHOR id="IBUS-KEY-braille-dots-3568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3568">
+<ANCHOR id="IBUS-KEY-braille-dots-13568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13568">
+<ANCHOR id="IBUS-KEY-braille-dots-23568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23568">
+<ANCHOR id="IBUS-KEY-braille-dots-123568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123568">
+<ANCHOR id="IBUS-KEY-braille-dots-4568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4568">
+<ANCHOR id="IBUS-KEY-braille-dots-14568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14568">
+<ANCHOR id="IBUS-KEY-braille-dots-24568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24568">
+<ANCHOR id="IBUS-KEY-braille-dots-124568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124568">
+<ANCHOR id="IBUS-KEY-braille-dots-34568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34568">
+<ANCHOR id="IBUS-KEY-braille-dots-134568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134568">
+<ANCHOR id="IBUS-KEY-braille-dots-234568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234568">
+<ANCHOR id="IBUS-KEY-braille-dots-1234568" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234568">
+<ANCHOR id="IBUS-KEY-braille-dots-78" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-78">
+<ANCHOR id="IBUS-KEY-braille-dots-178" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-178">
+<ANCHOR id="IBUS-KEY-braille-dots-278" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-278">
+<ANCHOR id="IBUS-KEY-braille-dots-1278" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1278">
+<ANCHOR id="IBUS-KEY-braille-dots-378" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-378">
+<ANCHOR id="IBUS-KEY-braille-dots-1378" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1378">
+<ANCHOR id="IBUS-KEY-braille-dots-2378" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2378">
+<ANCHOR id="IBUS-KEY-braille-dots-12378" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12378">
+<ANCHOR id="IBUS-KEY-braille-dots-478" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-478">
+<ANCHOR id="IBUS-KEY-braille-dots-1478" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1478">
+<ANCHOR id="IBUS-KEY-braille-dots-2478" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2478">
+<ANCHOR id="IBUS-KEY-braille-dots-12478" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12478">
+<ANCHOR id="IBUS-KEY-braille-dots-3478" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3478">
+<ANCHOR id="IBUS-KEY-braille-dots-13478" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13478">
+<ANCHOR id="IBUS-KEY-braille-dots-23478" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23478">
+<ANCHOR id="IBUS-KEY-braille-dots-123478" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123478">
+<ANCHOR id="IBUS-KEY-braille-dots-578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-578">
+<ANCHOR id="IBUS-KEY-braille-dots-1578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1578">
+<ANCHOR id="IBUS-KEY-braille-dots-2578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2578">
+<ANCHOR id="IBUS-KEY-braille-dots-12578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12578">
+<ANCHOR id="IBUS-KEY-braille-dots-3578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3578">
+<ANCHOR id="IBUS-KEY-braille-dots-13578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13578">
+<ANCHOR id="IBUS-KEY-braille-dots-23578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23578">
+<ANCHOR id="IBUS-KEY-braille-dots-123578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123578">
+<ANCHOR id="IBUS-KEY-braille-dots-4578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4578">
+<ANCHOR id="IBUS-KEY-braille-dots-14578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14578">
+<ANCHOR id="IBUS-KEY-braille-dots-24578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24578">
+<ANCHOR id="IBUS-KEY-braille-dots-124578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124578">
+<ANCHOR id="IBUS-KEY-braille-dots-34578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34578">
+<ANCHOR id="IBUS-KEY-braille-dots-134578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134578">
+<ANCHOR id="IBUS-KEY-braille-dots-234578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234578">
+<ANCHOR id="IBUS-KEY-braille-dots-1234578" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234578">
+<ANCHOR id="IBUS-KEY-braille-dots-678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-678">
+<ANCHOR id="IBUS-KEY-braille-dots-1678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1678">
+<ANCHOR id="IBUS-KEY-braille-dots-2678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2678">
+<ANCHOR id="IBUS-KEY-braille-dots-12678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12678">
+<ANCHOR id="IBUS-KEY-braille-dots-3678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-3678">
+<ANCHOR id="IBUS-KEY-braille-dots-13678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-13678">
+<ANCHOR id="IBUS-KEY-braille-dots-23678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-23678">
+<ANCHOR id="IBUS-KEY-braille-dots-123678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-123678">
+<ANCHOR id="IBUS-KEY-braille-dots-4678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-4678">
+<ANCHOR id="IBUS-KEY-braille-dots-14678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-14678">
+<ANCHOR id="IBUS-KEY-braille-dots-24678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-24678">
+<ANCHOR id="IBUS-KEY-braille-dots-124678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-124678">
+<ANCHOR id="IBUS-KEY-braille-dots-34678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-34678">
+<ANCHOR id="IBUS-KEY-braille-dots-134678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-134678">
+<ANCHOR id="IBUS-KEY-braille-dots-234678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-234678">
+<ANCHOR id="IBUS-KEY-braille-dots-1234678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1234678">
+<ANCHOR id="IBUS-KEY-braille-dots-5678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-5678">
+<ANCHOR id="IBUS-KEY-braille-dots-15678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-15678">
+<ANCHOR id="IBUS-KEY-braille-dots-25678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-25678">
+<ANCHOR id="IBUS-KEY-braille-dots-125678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-125678">
+<ANCHOR id="IBUS-KEY-braille-dots-35678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-35678">
+<ANCHOR id="IBUS-KEY-braille-dots-135678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-135678">
+<ANCHOR id="IBUS-KEY-braille-dots-235678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-235678">
+<ANCHOR id="IBUS-KEY-braille-dots-1235678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1235678">
+<ANCHOR id="IBUS-KEY-braille-dots-45678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-45678">
+<ANCHOR id="IBUS-KEY-braille-dots-145678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-145678">
+<ANCHOR id="IBUS-KEY-braille-dots-245678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-245678">
+<ANCHOR id="IBUS-KEY-braille-dots-1245678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1245678">
+<ANCHOR id="IBUS-KEY-braille-dots-345678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-345678">
+<ANCHOR id="IBUS-KEY-braille-dots-1345678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-1345678">
+<ANCHOR id="IBUS-KEY-braille-dots-2345678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-2345678">
+<ANCHOR id="IBUS-KEY-braille-dots-12345678" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-braille-dots-12345678">
+<ANCHOR id="IBUS-KEY-Sinh-ng" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ng">
+<ANCHOR id="IBUS-KEY-Sinh-h2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-h2">
+<ANCHOR id="IBUS-KEY-Sinh-a" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-a">
+<ANCHOR id="IBUS-KEY-Sinh-aa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aa">
+<ANCHOR id="IBUS-KEY-Sinh-ae" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ae">
+<ANCHOR id="IBUS-KEY-Sinh-aee" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aee">
+<ANCHOR id="IBUS-KEY-Sinh-i" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-i">
+<ANCHOR id="IBUS-KEY-Sinh-ii" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ii">
+<ANCHOR id="IBUS-KEY-Sinh-u" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-u">
+<ANCHOR id="IBUS-KEY-Sinh-uu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-uu">
+<ANCHOR id="IBUS-KEY-Sinh-ri" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ri">
+<ANCHOR id="IBUS-KEY-Sinh-rii" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-rii">
+<ANCHOR id="IBUS-KEY-Sinh-lu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lu">
+<ANCHOR id="IBUS-KEY-Sinh-luu" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-luu">
+<ANCHOR id="IBUS-KEY-Sinh-e" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-e">
+<ANCHOR id="IBUS-KEY-Sinh-ee" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ee">
+<ANCHOR id="IBUS-KEY-Sinh-ai" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ai">
+<ANCHOR id="IBUS-KEY-Sinh-o" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-o">
+<ANCHOR id="IBUS-KEY-Sinh-oo" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-oo">
+<ANCHOR id="IBUS-KEY-Sinh-au" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-au">
+<ANCHOR id="IBUS-KEY-Sinh-ka" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ka">
+<ANCHOR id="IBUS-KEY-Sinh-kha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-kha">
+<ANCHOR id="IBUS-KEY-Sinh-ga" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ga">
+<ANCHOR id="IBUS-KEY-Sinh-gha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-gha">
+<ANCHOR id="IBUS-KEY-Sinh-ng2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ng2">
+<ANCHOR id="IBUS-KEY-Sinh-nga" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nga">
+<ANCHOR id="IBUS-KEY-Sinh-ca" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ca">
+<ANCHOR id="IBUS-KEY-Sinh-cha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-cha">
+<ANCHOR id="IBUS-KEY-Sinh-ja" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ja">
+<ANCHOR id="IBUS-KEY-Sinh-jha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-jha">
+<ANCHOR id="IBUS-KEY-Sinh-nya" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nya">
+<ANCHOR id="IBUS-KEY-Sinh-jnya" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-jnya">
+<ANCHOR id="IBUS-KEY-Sinh-nja" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nja">
+<ANCHOR id="IBUS-KEY-Sinh-tta" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-tta">
+<ANCHOR id="IBUS-KEY-Sinh-ttha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ttha">
+<ANCHOR id="IBUS-KEY-Sinh-dda" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dda">
+<ANCHOR id="IBUS-KEY-Sinh-ddha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ddha">
+<ANCHOR id="IBUS-KEY-Sinh-nna" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-nna">
+<ANCHOR id="IBUS-KEY-Sinh-ndda" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ndda">
+<ANCHOR id="IBUS-KEY-Sinh-tha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-tha">
+<ANCHOR id="IBUS-KEY-Sinh-thha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-thha">
+<ANCHOR id="IBUS-KEY-Sinh-dha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dha">
+<ANCHOR id="IBUS-KEY-Sinh-dhha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-dhha">
+<ANCHOR id="IBUS-KEY-Sinh-na" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-na">
+<ANCHOR id="IBUS-KEY-Sinh-ndha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ndha">
+<ANCHOR id="IBUS-KEY-Sinh-pa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-pa">
+<ANCHOR id="IBUS-KEY-Sinh-pha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-pha">
+<ANCHOR id="IBUS-KEY-Sinh-ba" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ba">
+<ANCHOR id="IBUS-KEY-Sinh-bha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-bha">
+<ANCHOR id="IBUS-KEY-Sinh-ma" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ma">
+<ANCHOR id="IBUS-KEY-Sinh-mba" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-mba">
+<ANCHOR id="IBUS-KEY-Sinh-ya" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ya">
+<ANCHOR id="IBUS-KEY-Sinh-ra" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ra">
+<ANCHOR id="IBUS-KEY-Sinh-la" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-la">
+<ANCHOR id="IBUS-KEY-Sinh-va" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-va">
+<ANCHOR id="IBUS-KEY-Sinh-sha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-sha">
+<ANCHOR id="IBUS-KEY-Sinh-ssha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ssha">
+<ANCHOR id="IBUS-KEY-Sinh-sa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-sa">
+<ANCHOR id="IBUS-KEY-Sinh-ha" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ha">
+<ANCHOR id="IBUS-KEY-Sinh-lla" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lla">
+<ANCHOR id="IBUS-KEY-Sinh-fa" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-fa">
+<ANCHOR id="IBUS-KEY-Sinh-al" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-al">
+<ANCHOR id="IBUS-KEY-Sinh-aa2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aa2">
+<ANCHOR id="IBUS-KEY-Sinh-ae2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ae2">
+<ANCHOR id="IBUS-KEY-Sinh-aee2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-aee2">
+<ANCHOR id="IBUS-KEY-Sinh-i2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-i2">
+<ANCHOR id="IBUS-KEY-Sinh-ii2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ii2">
+<ANCHOR id="IBUS-KEY-Sinh-u2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-u2">
+<ANCHOR id="IBUS-KEY-Sinh-uu2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-uu2">
+<ANCHOR id="IBUS-KEY-Sinh-ru2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ru2">
+<ANCHOR id="IBUS-KEY-Sinh-e2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-e2">
+<ANCHOR id="IBUS-KEY-Sinh-ee2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ee2">
+<ANCHOR id="IBUS-KEY-Sinh-ai2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ai2">
+<ANCHOR id="IBUS-KEY-Sinh-o2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-o2">
+<ANCHOR id="IBUS-KEY-Sinh-oo2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-oo2">
+<ANCHOR id="IBUS-KEY-Sinh-au2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-au2">
+<ANCHOR id="IBUS-KEY-Sinh-lu2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-lu2">
+<ANCHOR id="IBUS-KEY-Sinh-ruu2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-ruu2">
+<ANCHOR id="IBUS-KEY-Sinh-luu2" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-luu2">
+<ANCHOR id="IBUS-KEY-Sinh-kunddaliya" href="ibus/ibus-IBusKeysyms.html#IBUS-KEY-Sinh-kunddaliya">
+<ANCHOR id="ibus-ibusutil" href="ibus/ibus-ibusutil.html">
+<ANCHOR id="ibus-ibusutil.stability-level" href="ibus/ibus-ibusutil.html#ibus-ibusutil.stability-level">
+<ANCHOR id="ibus-ibusutil.synopsis" href="ibus/ibus-ibusutil.html#ibus-ibusutil.synopsis">
+<ANCHOR id="ibus-ibusutil.description" href="ibus/ibus-ibusutil.html#ibus-ibusutil.description">
+<ANCHOR id="ibus-ibusutil.details" href="ibus/ibus-ibusutil.html#ibus-ibusutil.details">
+<ANCHOR id="ibus-get-language-name" href="ibus/ibus-ibusutil.html#ibus-get-language-name">
+<ANCHOR id="IBusConfig" href="ibus/IBusConfig.html">
+<ANCHOR id="IBusConfig.synopsis" href="ibus/IBusConfig.html#IBusConfig.synopsis">
+<ANCHOR id="IBusConfig.object-hierarchy" href="ibus/IBusConfig.html#IBusConfig.object-hierarchy">
+<ANCHOR id="IBusConfig.implemented-interfaces" href="ibus/IBusConfig.html#IBusConfig.implemented-interfaces">
+<ANCHOR id="IBusConfig.signals" href="ibus/IBusConfig.html#IBusConfig.signals">
+<ANCHOR id="IBusConfig.description" href="ibus/IBusConfig.html#IBusConfig.description">
+<ANCHOR id="IBusConfig.details" href="ibus/IBusConfig.html#IBusConfig.details">
+<ANCHOR id="IBusConfig-struct" href="ibus/IBusConfig.html#IBusConfig-struct">
+<ANCHOR id="IBusConfigClass" href="ibus/IBusConfig.html#IBusConfigClass">
+<ANCHOR id="ibus-config-new" href="ibus/IBusConfig.html#ibus-config-new">
+<ANCHOR id="ibus-config-new-async" href="ibus/IBusConfig.html#ibus-config-new-async">
+<ANCHOR id="ibus-config-new-async-finish" href="ibus/IBusConfig.html#ibus-config-new-async-finish">
+<ANCHOR id="ibus-config-get-value" href="ibus/IBusConfig.html#ibus-config-get-value">
+<ANCHOR id="ibus-config-get-value-async" href="ibus/IBusConfig.html#ibus-config-get-value-async">
+<ANCHOR id="ibus-config-get-value-async-finish" href="ibus/IBusConfig.html#ibus-config-get-value-async-finish">
+<ANCHOR id="ibus-config-get-values" href="ibus/IBusConfig.html#ibus-config-get-values">
+<ANCHOR id="ibus-config-get-values-async" href="ibus/IBusConfig.html#ibus-config-get-values-async">
+<ANCHOR id="ibus-config-get-values-async-finish" href="ibus/IBusConfig.html#ibus-config-get-values-async-finish">
+<ANCHOR id="ibus-config-set-value" href="ibus/IBusConfig.html#ibus-config-set-value">
+<ANCHOR id="ibus-config-set-value-async" href="ibus/IBusConfig.html#ibus-config-set-value-async">
+<ANCHOR id="ibus-config-set-value-async-finish" href="ibus/IBusConfig.html#ibus-config-set-value-async-finish">
+<ANCHOR id="ibus-config-unset" href="ibus/IBusConfig.html#ibus-config-unset">
+<ANCHOR id="ibus-config-watch" href="ibus/IBusConfig.html#ibus-config-watch">
+<ANCHOR id="ibus-config-unwatch" href="ibus/IBusConfig.html#ibus-config-unwatch">
+<ANCHOR id="IBusConfig.signal-details" href="ibus/IBusConfig.html#IBusConfig.signal-details">
+<ANCHOR id="IBusConfig-value-changed" href="ibus/IBusConfig.html#IBusConfig-value-changed">
+<ANCHOR id="IBusConfigService" href="ibus/IBusConfigService.html">
+<ANCHOR id="IBusConfigService.stability-level" href="ibus/IBusConfigService.html#IBusConfigService.stability-level">
+<ANCHOR id="IBusConfigService.synopsis" href="ibus/IBusConfigService.html#IBusConfigService.synopsis">
+<ANCHOR id="IBusConfigService.object-hierarchy" href="ibus/IBusConfigService.html#IBusConfigService.object-hierarchy">
+<ANCHOR id="IBusConfigService.description" href="ibus/IBusConfigService.html#IBusConfigService.description">
+<ANCHOR id="IBusConfigService.details" href="ibus/IBusConfigService.html#IBusConfigService.details">
+<ANCHOR id="IBusConfigService-struct" href="ibus/IBusConfigService.html#IBusConfigService-struct">
+<ANCHOR id="IBusConfigServiceClass" href="ibus/IBusConfigService.html#IBusConfigServiceClass">
+<ANCHOR id="ibus-config-service-new" href="ibus/IBusConfigService.html#ibus-config-service-new">
+<ANCHOR id="ibus-config-service-value-changed" href="ibus/IBusConfigService.html#ibus-config-service-value-changed">
+<ANCHOR id="IBusObservedPath" href="ibus/IBusObservedPath.html">
+<ANCHOR id="IBusObservedPath.stability-level" href="ibus/IBusObservedPath.html#IBusObservedPath.stability-level">
+<ANCHOR id="IBusObservedPath.synopsis" href="ibus/IBusObservedPath.html#IBusObservedPath.synopsis">
+<ANCHOR id="IBusObservedPath.object-hierarchy" href="ibus/IBusObservedPath.html#IBusObservedPath.object-hierarchy">
+<ANCHOR id="IBusObservedPath.description" href="ibus/IBusObservedPath.html#IBusObservedPath.description">
+<ANCHOR id="IBusObservedPath.details" href="ibus/IBusObservedPath.html#IBusObservedPath.details">
+<ANCHOR id="IBusObservedPath-struct" href="ibus/IBusObservedPath.html#IBusObservedPath-struct">
+<ANCHOR id="IBusObservedPathClass" href="ibus/IBusObservedPath.html#IBusObservedPathClass">
+<ANCHOR id="ibus-observed-path-new-from-xml-node" href="ibus/IBusObservedPath.html#ibus-observed-path-new-from-xml-node">
+<ANCHOR id="ibus-observed-path-new" href="ibus/IBusObservedPath.html#ibus-observed-path-new">
+<ANCHOR id="ibus-observed-path-traverse" href="ibus/IBusObservedPath.html#ibus-observed-path-traverse">
+<ANCHOR id="ibus-observed-path-check-modification" href="ibus/IBusObservedPath.html#ibus-observed-path-check-modification">
+<ANCHOR id="ibus-observed-path-output" href="ibus/IBusObservedPath.html#ibus-observed-path-output">
+<ANCHOR id="IBusRegistry" href="ibus/IBusRegistry.html">
+<ANCHOR id="IBusRegistry.stability-level" href="ibus/IBusRegistry.html#IBusRegistry.stability-level">
+<ANCHOR id="IBusRegistry.synopsis" href="ibus/IBusRegistry.html#IBusRegistry.synopsis">
+<ANCHOR id="IBusRegistry.object-hierarchy" href="ibus/IBusRegistry.html#IBusRegistry.object-hierarchy">
+<ANCHOR id="IBusRegistry.signals" href="ibus/IBusRegistry.html#IBusRegistry.signals">
+<ANCHOR id="IBusRegistry.description" href="ibus/IBusRegistry.html#IBusRegistry.description">
+<ANCHOR id="IBusRegistry.details" href="ibus/IBusRegistry.html#IBusRegistry.details">
+<ANCHOR id="IBusRegistry-struct" href="ibus/IBusRegistry.html#IBusRegistry-struct">
+<ANCHOR id="IBusRegistryClass" href="ibus/IBusRegistry.html#IBusRegistryClass">
+<ANCHOR id="ibus-registry-new" href="ibus/IBusRegistry.html#ibus-registry-new">
+<ANCHOR id="ibus-registry-load" href="ibus/IBusRegistry.html#ibus-registry-load">
+<ANCHOR id="ibus-registry-load-in-dir" href="ibus/IBusRegistry.html#ibus-registry-load-in-dir">
+<ANCHOR id="ibus-registry-load-cache" href="ibus/IBusRegistry.html#ibus-registry-load-cache">
+<ANCHOR id="ibus-registry-load-cache-file" href="ibus/IBusRegistry.html#ibus-registry-load-cache-file">
+<ANCHOR id="ibus-registry-save-cache" href="ibus/IBusRegistry.html#ibus-registry-save-cache">
+<ANCHOR id="ibus-registry-save-cache-file" href="ibus/IBusRegistry.html#ibus-registry-save-cache-file">
+<ANCHOR id="ibus-registry-output" href="ibus/IBusRegistry.html#ibus-registry-output">
+<ANCHOR id="ibus-registry-check-modification" href="ibus/IBusRegistry.html#ibus-registry-check-modification">
+<ANCHOR id="ibus-registry-get-components" href="ibus/IBusRegistry.html#ibus-registry-get-components">
+<ANCHOR id="ibus-registry-get-observed-paths" href="ibus/IBusRegistry.html#ibus-registry-get-observed-paths">
+<ANCHOR id="ibus-registry-start-monitor-changes" href="ibus/IBusRegistry.html#ibus-registry-start-monitor-changes">
+<ANCHOR id="IBusRegistry.signal-details" href="ibus/IBusRegistry.html#IBusRegistry.signal-details">
+<ANCHOR id="IBusRegistry-changed" href="ibus/IBusRegistry.html#IBusRegistry-changed">
+<ANCHOR id="ibus-ibusversion" href="ibus/ibus-ibusversion.html">
+<ANCHOR id="ibus-ibusversion.stability-level" href="ibus/ibus-ibusversion.html#ibus-ibusversion.stability-level">
+<ANCHOR id="ibus-ibusversion.synopsis" href="ibus/ibus-ibusversion.html#ibus-ibusversion.synopsis">
+<ANCHOR id="ibus-ibusversion.description" href="ibus/ibus-ibusversion.html#ibus-ibusversion.description">
+<ANCHOR id="ibus-ibusversion.details" href="ibus/ibus-ibusversion.html#ibus-ibusversion.details">
+<ANCHOR id="IBUS-MAJOR-VERSION:CAPS" href="ibus/ibus-ibusversion.html#IBUS-MAJOR-VERSION:CAPS">
+<ANCHOR id="IBUS-MINOR-VERSION:CAPS" href="ibus/ibus-ibusversion.html#IBUS-MINOR-VERSION:CAPS">
+<ANCHOR id="IBUS-MICRO-VERSION:CAPS" href="ibus/ibus-ibusversion.html#IBUS-MICRO-VERSION:CAPS">
+<ANCHOR id="IBUS-CHECK-VERSION:CAPS" href="ibus/ibus-ibusversion.html#IBUS-CHECK-VERSION:CAPS">
+<ANCHOR id="ibus-ibusxml" href="ibus/ibus-ibusxml.html">
+<ANCHOR id="ibus-ibusxml.stability-level" href="ibus/ibus-ibusxml.html#ibus-ibusxml.stability-level">
+<ANCHOR id="ibus-ibusxml.synopsis" href="ibus/ibus-ibusxml.html#ibus-ibusxml.synopsis">
+<ANCHOR id="ibus-ibusxml.description" href="ibus/ibus-ibusxml.html#ibus-ibusxml.description">
+<ANCHOR id="ibus-ibusxml.details" href="ibus/ibus-ibusxml.html#ibus-ibusxml.details">
+<ANCHOR id="XMLNode" href="ibus/ibus-ibusxml.html#XMLNode">
+<ANCHOR id="ibus-xml-parse-file" href="ibus/ibus-ibusxml.html#ibus-xml-parse-file">
+<ANCHOR id="ibus-xml-parse-buffer" href="ibus/ibus-ibusxml.html#ibus-xml-parse-buffer">
+<ANCHOR id="ibus-xml-free" href="ibus/ibus-ibusxml.html#ibus-xml-free">
+<ANCHOR id="ibus-xml-output" href="ibus/ibus-ibusxml.html#ibus-xml-output">
+<ANCHOR id="IBusBus" href="ibus/IBusBus.html">
+<ANCHOR id="IBusBus.stability-level" href="ibus/IBusBus.html#IBusBus.stability-level">
+<ANCHOR id="IBusBus.synopsis" href="ibus/IBusBus.html#IBusBus.synopsis">
+<ANCHOR id="IBusBus.object-hierarchy" href="ibus/IBusBus.html#IBusBus.object-hierarchy">
+<ANCHOR id="IBusBus.properties" href="ibus/IBusBus.html#IBusBus.properties">
+<ANCHOR id="IBusBus.signals" href="ibus/IBusBus.html#IBusBus.signals">
+<ANCHOR id="IBusBus.description" href="ibus/IBusBus.html#IBusBus.description">
+<ANCHOR id="IBusBus.details" href="ibus/IBusBus.html#IBusBus.details">
+<ANCHOR id="IBusBus-struct" href="ibus/IBusBus.html#IBusBus-struct">
+<ANCHOR id="IBusBusClass" href="ibus/IBusBus.html#IBusBusClass">
+<ANCHOR id="ibus-bus-new" href="ibus/IBusBus.html#ibus-bus-new">
+<ANCHOR id="ibus-bus-new-async" href="ibus/IBusBus.html#ibus-bus-new-async">
+<ANCHOR id="ibus-bus-is-connected" href="ibus/IBusBus.html#ibus-bus-is-connected">
+<ANCHOR id="ibus-bus-get-connection" href="ibus/IBusBus.html#ibus-bus-get-connection">
+<ANCHOR id="ibus-bus-hello" href="ibus/IBusBus.html#ibus-bus-hello">
+<ANCHOR id="ibus-bus-request-name" href="ibus/IBusBus.html#ibus-bus-request-name">
+<ANCHOR id="ibus-bus-request-name-async" href="ibus/IBusBus.html#ibus-bus-request-name-async">
+<ANCHOR id="ibus-bus-request-name-async-finish" href="ibus/IBusBus.html#ibus-bus-request-name-async-finish">
+<ANCHOR id="ibus-bus-release-name" href="ibus/IBusBus.html#ibus-bus-release-name">
+<ANCHOR id="ibus-bus-release-name-async" href="ibus/IBusBus.html#ibus-bus-release-name-async">
+<ANCHOR id="ibus-bus-release-name-async-finish" href="ibus/IBusBus.html#ibus-bus-release-name-async-finish">
+<ANCHOR id="ibus-bus-list-queued-owners" href="ibus/IBusBus.html#ibus-bus-list-queued-owners">
+<ANCHOR id="ibus-bus-name-has-owner" href="ibus/IBusBus.html#ibus-bus-name-has-owner">
+<ANCHOR id="ibus-bus-name-has-owner-async" href="ibus/IBusBus.html#ibus-bus-name-has-owner-async">
+<ANCHOR id="ibus-bus-name-has-owner-async-finish" href="ibus/IBusBus.html#ibus-bus-name-has-owner-async-finish">
+<ANCHOR id="ibus-bus-list-names" href="ibus/IBusBus.html#ibus-bus-list-names">
+<ANCHOR id="ibus-bus-add-match" href="ibus/IBusBus.html#ibus-bus-add-match">
+<ANCHOR id="ibus-bus-add-match-async" href="ibus/IBusBus.html#ibus-bus-add-match-async">
+<ANCHOR id="ibus-bus-add-match-async-finish" href="ibus/IBusBus.html#ibus-bus-add-match-async-finish">
+<ANCHOR id="ibus-bus-remove-match" href="ibus/IBusBus.html#ibus-bus-remove-match">
+<ANCHOR id="ibus-bus-remove-match-async" href="ibus/IBusBus.html#ibus-bus-remove-match-async">
+<ANCHOR id="ibus-bus-remove-match-async-finish" href="ibus/IBusBus.html#ibus-bus-remove-match-async-finish">
+<ANCHOR id="ibus-bus-get-name-owner" href="ibus/IBusBus.html#ibus-bus-get-name-owner">
+<ANCHOR id="ibus-bus-get-name-owner-async" href="ibus/IBusBus.html#ibus-bus-get-name-owner-async">
+<ANCHOR id="ibus-bus-get-name-owner-async-finish" href="ibus/IBusBus.html#ibus-bus-get-name-owner-async-finish">
+<ANCHOR id="ibus-bus-exit" href="ibus/IBusBus.html#ibus-bus-exit">
+<ANCHOR id="ibus-bus-exit-async" href="ibus/IBusBus.html#ibus-bus-exit-async">
+<ANCHOR id="ibus-bus-exit-async-finish" href="ibus/IBusBus.html#ibus-bus-exit-async-finish">
+<ANCHOR id="ibus-bus-create-input-context" href="ibus/IBusBus.html#ibus-bus-create-input-context">
+<ANCHOR id="ibus-bus-create-input-context-async" href="ibus/IBusBus.html#ibus-bus-create-input-context-async">
+<ANCHOR id="ibus-bus-create-input-context-async-finish" href="ibus/IBusBus.html#ibus-bus-create-input-context-async-finish">
+<ANCHOR id="ibus-bus-current-input-context" href="ibus/IBusBus.html#ibus-bus-current-input-context">
+<ANCHOR id="ibus-bus-current-input-context-async" href="ibus/IBusBus.html#ibus-bus-current-input-context-async">
+<ANCHOR id="ibus-bus-current-input-context-async-finish" href="ibus/IBusBus.html#ibus-bus-current-input-context-async-finish">
+<ANCHOR id="ibus-bus-register-component" href="ibus/IBusBus.html#ibus-bus-register-component">
+<ANCHOR id="ibus-bus-register-component-async" href="ibus/IBusBus.html#ibus-bus-register-component-async">
+<ANCHOR id="ibus-bus-register-component-async-finish" href="ibus/IBusBus.html#ibus-bus-register-component-async-finish">
+<ANCHOR id="ibus-bus-list-engines" href="ibus/IBusBus.html#ibus-bus-list-engines">
+<ANCHOR id="ibus-bus-list-engines-async" href="ibus/IBusBus.html#ibus-bus-list-engines-async">
+<ANCHOR id="ibus-bus-list-engines-async-finish" href="ibus/IBusBus.html#ibus-bus-list-engines-async-finish">
+<ANCHOR id="ibus-bus-list-active-engines" href="ibus/IBusBus.html#ibus-bus-list-active-engines">
+<ANCHOR id="ibus-bus-list-active-engines-async" href="ibus/IBusBus.html#ibus-bus-list-active-engines-async">
+<ANCHOR id="ibus-bus-list-active-engines-async-finish" href="ibus/IBusBus.html#ibus-bus-list-active-engines-async-finish">
+<ANCHOR id="ibus-bus-get-engines-by-names" href="ibus/IBusBus.html#ibus-bus-get-engines-by-names">
+<ANCHOR id="ibus-bus-get-use-sys-layout" href="ibus/IBusBus.html#ibus-bus-get-use-sys-layout">
+<ANCHOR id="ibus-bus-get-use-sys-layout-async" href="ibus/IBusBus.html#ibus-bus-get-use-sys-layout-async">
+<ANCHOR id="ibus-bus-get-use-sys-layout-async-finish" href="ibus/IBusBus.html#ibus-bus-get-use-sys-layout-async-finish">
+<ANCHOR id="ibus-bus-get-use-global-engine" href="ibus/IBusBus.html#ibus-bus-get-use-global-engine">
+<ANCHOR id="ibus-bus-get-use-global-engine-async" href="ibus/IBusBus.html#ibus-bus-get-use-global-engine-async">
+<ANCHOR id="ibus-bus-get-use-global-engine-async-finish" href="ibus/IBusBus.html#ibus-bus-get-use-global-engine-async-finish">
+<ANCHOR id="ibus-bus-is-global-engine-enabled" href="ibus/IBusBus.html#ibus-bus-is-global-engine-enabled">
+<ANCHOR id="ibus-bus-is-global-engine-enabled-async" href="ibus/IBusBus.html#ibus-bus-is-global-engine-enabled-async">
+<ANCHOR id="ibus-bus-is-global-engine-enabled-async-finish" href="ibus/IBusBus.html#ibus-bus-is-global-engine-enabled-async-finish">
+<ANCHOR id="ibus-bus-get-global-engine" href="ibus/IBusBus.html#ibus-bus-get-global-engine">
+<ANCHOR id="ibus-bus-get-global-engine-async" href="ibus/IBusBus.html#ibus-bus-get-global-engine-async">
+<ANCHOR id="ibus-bus-get-global-engine-async-finish" href="ibus/IBusBus.html#ibus-bus-get-global-engine-async-finish">
+<ANCHOR id="ibus-bus-set-global-engine" href="ibus/IBusBus.html#ibus-bus-set-global-engine">
+<ANCHOR id="ibus-bus-set-global-engine-async" href="ibus/IBusBus.html#ibus-bus-set-global-engine-async">
+<ANCHOR id="ibus-bus-set-global-engine-async-finish" href="ibus/IBusBus.html#ibus-bus-set-global-engine-async-finish">
+<ANCHOR id="ibus-bus-set-watch-dbus-signal" href="ibus/IBusBus.html#ibus-bus-set-watch-dbus-signal">
+<ANCHOR id="ibus-bus-set-watch-ibus-signal" href="ibus/IBusBus.html#ibus-bus-set-watch-ibus-signal">
+<ANCHOR id="ibus-bus-get-config" href="ibus/IBusBus.html#ibus-bus-get-config">
+<ANCHOR id="ibus-bus-preload-engines" href="ibus/IBusBus.html#ibus-bus-preload-engines">
+<ANCHOR id="ibus-bus-preload-engines-async" href="ibus/IBusBus.html#ibus-bus-preload-engines-async">
+<ANCHOR id="ibus-bus-preload-engines-async-finish" href="ibus/IBusBus.html#ibus-bus-preload-engines-async-finish">
+<ANCHOR id="ibus-bus-get-ibus-property" href="ibus/IBusBus.html#ibus-bus-get-ibus-property">
+<ANCHOR id="ibus-bus-get-ibus-property-async" href="ibus/IBusBus.html#ibus-bus-get-ibus-property-async">
+<ANCHOR id="ibus-bus-get-ibus-property-async-finish" href="ibus/IBusBus.html#ibus-bus-get-ibus-property-async-finish">
+<ANCHOR id="ibus-bus-set-ibus-property" href="ibus/IBusBus.html#ibus-bus-set-ibus-property">
+<ANCHOR id="ibus-bus-set-ibus-property-async" href="ibus/IBusBus.html#ibus-bus-set-ibus-property-async">
+<ANCHOR id="ibus-bus-set-ibus-property-async-finish" href="ibus/IBusBus.html#ibus-bus-set-ibus-property-async-finish">
+<ANCHOR id="IBusBus.property-details" href="ibus/IBusBus.html#IBusBus.property-details">
+<ANCHOR id="IBusBus--connect-async" href="ibus/IBusBus.html#IBusBus--connect-async">
+<ANCHOR id="IBusBus.signal-details" href="ibus/IBusBus.html#IBusBus.signal-details">
+<ANCHOR id="IBusBus-connected" href="ibus/IBusBus.html#IBusBus-connected">
+<ANCHOR id="IBusBus-disconnected" href="ibus/IBusBus.html#IBusBus-disconnected">
+<ANCHOR id="IBusBus-global-engine-changed" href="ibus/IBusBus.html#IBusBus-global-engine-changed">
+<ANCHOR id="IBusBus-name-owner-changed" href="ibus/IBusBus.html#IBusBus-name-owner-changed">
+<ANCHOR id="IBusProxy" href="ibus/IBusProxy.html">
+<ANCHOR id="IBusProxy.stability-level" href="ibus/IBusProxy.html#IBusProxy.stability-level">
+<ANCHOR id="IBusProxy.synopsis" href="ibus/IBusProxy.html#IBusProxy.synopsis">
+<ANCHOR id="IBusProxy.object-hierarchy" href="ibus/IBusProxy.html#IBusProxy.object-hierarchy">
+<ANCHOR id="IBusProxy.implemented-interfaces" href="ibus/IBusProxy.html#IBusProxy.implemented-interfaces">
+<ANCHOR id="IBusProxy.signals" href="ibus/IBusProxy.html#IBusProxy.signals">
+<ANCHOR id="IBusProxy.description" href="ibus/IBusProxy.html#IBusProxy.description">
+<ANCHOR id="IBusProxy.details" href="ibus/IBusProxy.html#IBusProxy.details">
+<ANCHOR id="IBUS-PROXY-FLAGS:CAPS" href="ibus/IBusProxy.html#IBUS-PROXY-FLAGS:CAPS">
+<ANCHOR id="IBUS-PROXY-SET-FLAGS:CAPS" href="ibus/IBusProxy.html#IBUS-PROXY-SET-FLAGS:CAPS">
+<ANCHOR id="IBUS-PROXY-UNSET-FLAGS:CAPS" href="ibus/IBusProxy.html#IBUS-PROXY-UNSET-FLAGS:CAPS">
+<ANCHOR id="IBUS-PROXY-DESTROYED:CAPS" href="ibus/IBusProxy.html#IBUS-PROXY-DESTROYED:CAPS">
+<ANCHOR id="IBusProxy-struct" href="ibus/IBusProxy.html#IBusProxy-struct">
+<ANCHOR id="IBusProxyClass" href="ibus/IBusProxy.html#IBusProxyClass">
+<ANCHOR id="ibus-proxy-destroy" href="ibus/IBusProxy.html#ibus-proxy-destroy">
+<ANCHOR id="IBusProxy.signal-details" href="ibus/IBusProxy.html#IBusProxy.signal-details">
+<ANCHOR id="IBusProxy-destroy" href="ibus/IBusProxy.html#IBusProxy-destroy">
+<ANCHOR id="IBusSerializable" href="ibus/IBusSerializable.html">
+<ANCHOR id="IBusSerializable.stability-level" href="ibus/IBusSerializable.html#IBusSerializable.stability-level">
+<ANCHOR id="IBusSerializable.synopsis" href="ibus/IBusSerializable.html#IBusSerializable.synopsis">
+<ANCHOR id="IBusSerializable.object-hierarchy" href="ibus/IBusSerializable.html#IBusSerializable.object-hierarchy">
+<ANCHOR id="IBusSerializable.description" href="ibus/IBusSerializable.html#IBusSerializable.description">
+<ANCHOR id="IBusSerializable.details" href="ibus/IBusSerializable.html#IBusSerializable.details">
+<ANCHOR id="ibus-serializable-set-attachment" href="ibus/IBusSerializable.html#ibus-serializable-set-attachment">
+<ANCHOR id="ibus-serializable-get-attachment" href="ibus/IBusSerializable.html#ibus-serializable-get-attachment">
+<ANCHOR id="ibus-serializable-remove-attachment" href="ibus/IBusSerializable.html#ibus-serializable-remove-attachment">
+<ANCHOR id="IBusSerializable-struct" href="ibus/IBusSerializable.html#IBusSerializable-struct">
+<ANCHOR id="IBusSerializableSerializeFunc" href="ibus/IBusSerializable.html#IBusSerializableSerializeFunc">
+<ANCHOR id="IBusSerializableDeserializeFunc" href="ibus/IBusSerializable.html#IBusSerializableDeserializeFunc">
+<ANCHOR id="IBusSerializableCopyFunc" href="ibus/IBusSerializable.html#IBusSerializableCopyFunc">
+<ANCHOR id="IBusSerializableClass" href="ibus/IBusSerializable.html#IBusSerializableClass">
+<ANCHOR id="ibus-serializable-new" href="ibus/IBusSerializable.html#ibus-serializable-new">
+<ANCHOR id="ibus-serializable-set-qattachment" href="ibus/IBusSerializable.html#ibus-serializable-set-qattachment">
+<ANCHOR id="ibus-serializable-get-qattachment" href="ibus/IBusSerializable.html#ibus-serializable-get-qattachment">
+<ANCHOR id="ibus-serializable-remove-qattachment" href="ibus/IBusSerializable.html#ibus-serializable-remove-qattachment">
+<ANCHOR id="ibus-serializable-copy" href="ibus/IBusSerializable.html#ibus-serializable-copy">
+<ANCHOR id="ibus-serializable-serialize" href="ibus/IBusSerializable.html#ibus-serializable-serialize">
+<ANCHOR id="ibus-serializable-deserialize" href="ibus/IBusSerializable.html#ibus-serializable-deserialize">
+<ANCHOR id="IBusService" href="ibus/IBusService.html">
+<ANCHOR id="IBusService.stability-level" href="ibus/IBusService.html#IBusService.stability-level">
+<ANCHOR id="IBusService.synopsis" href="ibus/IBusService.html#IBusService.synopsis">
+<ANCHOR id="IBusService.object-hierarchy" href="ibus/IBusService.html#IBusService.object-hierarchy">
+<ANCHOR id="IBusService.description" href="ibus/IBusService.html#IBusService.description">
+<ANCHOR id="IBusService.details" href="ibus/IBusService.html#IBusService.details">
+<ANCHOR id="IBusService-struct" href="ibus/IBusService.html#IBusService-struct">
+<ANCHOR id="IBusServiceClass" href="ibus/IBusService.html#IBusServiceClass">
+<ANCHOR id="ibus-service-new" href="ibus/IBusService.html#ibus-service-new">
+<ANCHOR id="ibus-service-get-object-path" href="ibus/IBusService.html#ibus-service-get-object-path">
+<ANCHOR id="ibus-service-get-connection" href="ibus/IBusService.html#ibus-service-get-connection">
+<ANCHOR id="ibus-service-register" href="ibus/IBusService.html#ibus-service-register">
+<ANCHOR id="ibus-service-unregister" href="ibus/IBusService.html#ibus-service-unregister">
+<ANCHOR id="ibus-service-emit-signal" href="ibus/IBusService.html#ibus-service-emit-signal">
+<ANCHOR id="ibus-service-class-add-interfaces" href="ibus/IBusService.html#ibus-service-class-add-interfaces">
+<ANCHOR id="ibus-ibusdebug" href="ibus/ibus-ibusdebug.html">
+<ANCHOR id="ibus-ibusdebug.stability-level" href="ibus/ibus-ibusdebug.html#ibus-ibusdebug.stability-level">
+<ANCHOR id="ibus-ibusdebug.synopsis" href="ibus/ibus-ibusdebug.html#ibus-ibusdebug.synopsis">
+<ANCHOR id="ibus-ibusdebug.description" href="ibus/ibus-ibusdebug.html#ibus-ibusdebug.description">
+<ANCHOR id="ibus-ibusdebug.details" href="ibus/ibus-ibusdebug.html#ibus-ibusdebug.details">
+<ANCHOR id="ibus-warning" href="ibus/ibus-ibusdebug.html#ibus-warning">
+<ANCHOR id="ibus-ibuserror" href="ibus/ibus-ibuserror.html">
+<ANCHOR id="ibus-ibuserror.synopsis" href="ibus/ibus-ibuserror.html#ibus-ibuserror.synopsis">
+<ANCHOR id="ibus-ibuserror.description" href="ibus/ibus-ibuserror.html#ibus-ibuserror.description">
+<ANCHOR id="ibus-ibuserror.details" href="ibus/ibus-ibuserror.html#ibus-ibuserror.details">
+<ANCHOR id="IBUS-ERROR:CAPS" href="ibus/ibus-ibuserror.html#IBUS-ERROR:CAPS">
+<ANCHOR id="ibus-error-quark" href="ibus/ibus-ibuserror.html#ibus-error-quark">
+<ANCHOR id="IBusObject" href="ibus/IBusObject.html">
+<ANCHOR id="IBusObject.stability-level" href="ibus/IBusObject.html#IBusObject.stability-level">
+<ANCHOR id="IBusObject.synopsis" href="ibus/IBusObject.html#IBusObject.synopsis">
+<ANCHOR id="IBusObject.object-hierarchy" href="ibus/IBusObject.html#IBusObject.object-hierarchy">
+<ANCHOR id="IBusObject.signals" href="ibus/IBusObject.html#IBusObject.signals">
+<ANCHOR id="IBusObject.description" href="ibus/IBusObject.html#IBusObject.description">
+<ANCHOR id="IBusObject.details" href="ibus/IBusObject.html#IBusObject.details">
+<ANCHOR id="IBUS-OBJECT-IN-DESTRUCTION:CAPS" href="ibus/IBusObject.html#IBUS-OBJECT-IN-DESTRUCTION:CAPS">
+<ANCHOR id="IBUS-OBJECT-DESTROYED:CAPS" href="ibus/IBusObject.html#IBUS-OBJECT-DESTROYED:CAPS">
+<ANCHOR id="IBusObject-struct" href="ibus/IBusObject.html#IBusObject-struct">
+<ANCHOR id="IBusObjectClass" href="ibus/IBusObject.html#IBusObjectClass">
+<ANCHOR id="ibus-object-new" href="ibus/IBusObject.html#ibus-object-new">
+<ANCHOR id="ibus-object-destroy" href="ibus/IBusObject.html#ibus-object-destroy">
+<ANCHOR id="IBusObject.signal-details" href="ibus/IBusObject.html#IBusObject.signal-details">
+<ANCHOR id="IBusObject-destroy" href="ibus/IBusObject.html#IBusObject-destroy">
+<ANCHOR id="ibus-ibusshare" href="ibus/ibus-ibusshare.html">
+<ANCHOR id="ibus-ibusshare.stability-level" href="ibus/ibus-ibusshare.html#ibus-ibusshare.stability-level">
+<ANCHOR id="ibus-ibusshare.synopsis" href="ibus/ibus-ibusshare.html#ibus-ibusshare.synopsis">
+<ANCHOR id="ibus-ibusshare.description" href="ibus/ibus-ibusshare.html#ibus-ibusshare.description">
+<ANCHOR id="ibus-ibusshare.details" href="ibus/ibus-ibusshare.html#ibus-ibusshare.details">
+<ANCHOR id="IBUS-DEPRECATED:CAPS" href="ibus/ibus-ibusshare.html#IBUS-DEPRECATED:CAPS">
+<ANCHOR id="IBUS-SERVICE-IBUS:CAPS" href="ibus/ibus-ibusshare.html#IBUS-SERVICE-IBUS:CAPS">
+<ANCHOR id="IBUS-SERVICE-PANEL:CAPS" href="ibus/ibus-ibusshare.html#IBUS-SERVICE-PANEL:CAPS">
+<ANCHOR id="IBUS-SERVICE-CONFIG:CAPS" href="ibus/ibus-ibusshare.html#IBUS-SERVICE-CONFIG:CAPS">
+<ANCHOR id="IBUS-SERVICE-NOTIFICATIONS:CAPS" href="ibus/ibus-ibusshare.html#IBUS-SERVICE-NOTIFICATIONS:CAPS">
+<ANCHOR id="IBUS-PATH-IBUS:CAPS" href="ibus/ibus-ibusshare.html#IBUS-PATH-IBUS:CAPS">
+<ANCHOR id="IBUS-PATH-FACTORY:CAPS" href="ibus/ibus-ibusshare.html#IBUS-PATH-FACTORY:CAPS">
+<ANCHOR id="IBUS-PATH-PANEL:CAPS" href="ibus/ibus-ibusshare.html#IBUS-PATH-PANEL:CAPS">
+<ANCHOR id="IBUS-PATH-CONFIG:CAPS" href="ibus/ibus-ibusshare.html#IBUS-PATH-CONFIG:CAPS">
+<ANCHOR id="IBUS-PATH-NOTIFICATIONS:CAPS" href="ibus/ibus-ibusshare.html#IBUS-PATH-NOTIFICATIONS:CAPS">
+<ANCHOR id="IBUS-PATH-INPUT-CONTEXT:CAPS" href="ibus/ibus-ibusshare.html#IBUS-PATH-INPUT-CONTEXT:CAPS">
+<ANCHOR id="IBUS-INTERFACE-IBUS:CAPS" href="ibus/ibus-ibusshare.html#IBUS-INTERFACE-IBUS:CAPS">
+<ANCHOR id="IBUS-INTERFACE-INPUT-CONTEXT:CAPS" href="ibus/ibus-ibusshare.html#IBUS-INTERFACE-INPUT-CONTEXT:CAPS">
+<ANCHOR id="IBUS-INTERFACE-FACTORY:CAPS" href="ibus/ibus-ibusshare.html#IBUS-INTERFACE-FACTORY:CAPS">
+<ANCHOR id="IBUS-INTERFACE-ENGINE:CAPS" href="ibus/ibus-ibusshare.html#IBUS-INTERFACE-ENGINE:CAPS">
+<ANCHOR id="IBUS-INTERFACE-PANEL:CAPS" href="ibus/ibus-ibusshare.html#IBUS-INTERFACE-PANEL:CAPS">
+<ANCHOR id="IBUS-INTERFACE-CONFIG:CAPS" href="ibus/ibus-ibusshare.html#IBUS-INTERFACE-CONFIG:CAPS">
+<ANCHOR id="IBUS-INTERFACE-NOTIFICATIONS:CAPS" href="ibus/ibus-ibusshare.html#IBUS-INTERFACE-NOTIFICATIONS:CAPS">
+<ANCHOR id="ibus-get-local-machine-id" href="ibus/ibus-ibusshare.html#ibus-get-local-machine-id">
+<ANCHOR id="ibus-set-display" href="ibus/ibus-ibusshare.html#ibus-set-display">
+<ANCHOR id="ibus-get-address" href="ibus/ibus-ibusshare.html#ibus-get-address">
+<ANCHOR id="ibus-write-address" href="ibus/ibus-ibusshare.html#ibus-write-address">
+<ANCHOR id="ibus-get-user-name" href="ibus/ibus-ibusshare.html#ibus-get-user-name">
+<ANCHOR id="ibus-get-daemon-uid" href="ibus/ibus-ibusshare.html#ibus-get-daemon-uid">
+<ANCHOR id="ibus-get-socket-path" href="ibus/ibus-ibusshare.html#ibus-get-socket-path">
+<ANCHOR id="ibus-get-timeout" href="ibus/ibus-ibusshare.html#ibus-get-timeout">
+<ANCHOR id="ibus-free-strv" href="ibus/ibus-ibusshare.html#ibus-free-strv">
+<ANCHOR id="ibus-key-event-to-string" href="ibus/ibus-ibusshare.html#ibus-key-event-to-string">
+<ANCHOR id="ibus-key-event-from-string" href="ibus/ibus-ibusshare.html#ibus-key-event-from-string">
+<ANCHOR id="ibus-init" href="ibus/ibus-ibusshare.html#ibus-init">
+<ANCHOR id="ibus-main" href="ibus/ibus-ibusshare.html#ibus-main">
+<ANCHOR id="ibus-quit" href="ibus/ibus-ibusshare.html#ibus-quit">
+<ANCHOR id="ibus-set-log-handler" href="ibus/ibus-ibusshare.html#ibus-set-log-handler">
+<ANCHOR id="ibus-unset-log-handler" href="ibus/ibus-ibusshare.html#ibus-unset-log-handler">
+<ANCHOR id="ibus-ibustypes" href="ibus/ibus-ibustypes.html">
+<ANCHOR id="ibus-ibustypes.stability-level" href="ibus/ibus-ibustypes.html#ibus-ibustypes.stability-level">
+<ANCHOR id="ibus-ibustypes.synopsis" href="ibus/ibus-ibustypes.html#ibus-ibustypes.synopsis">
+<ANCHOR id="IBusModifierType" href="ibus/ibus-ibustypes.html#IBusModifierType">
+<ANCHOR id="IBusCapabilite" href="ibus/ibus-ibustypes.html#IBusCapabilite">
+<ANCHOR id="IBusOrientation" href="ibus/ibus-ibustypes.html#IBusOrientation">
+<ANCHOR id="ibus-ibustypes.object-hierarchy" href="ibus/ibus-ibustypes.html#ibus-ibustypes.object-hierarchy">
+<ANCHOR id="ibus-ibustypes.description" href="ibus/ibus-ibustypes.html#ibus-ibustypes.description">
+<ANCHOR id="ibus-ibustypes.details" href="ibus/ibus-ibustypes.html#ibus-ibustypes.details">
+<ANCHOR id="IBusModifierType-enum" href="ibus/ibus-ibustypes.html#IBusModifierType-enum">
+<ANCHOR id="IBUS-SHIFT-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-SHIFT-MASK:CAPS">
+<ANCHOR id="IBUS-LOCK-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-LOCK-MASK:CAPS">
+<ANCHOR id="IBUS-CONTROL-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-CONTROL-MASK:CAPS">
+<ANCHOR id="IBUS-MOD1-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-MOD1-MASK:CAPS">
+<ANCHOR id="IBUS-MOD2-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-MOD2-MASK:CAPS">
+<ANCHOR id="IBUS-MOD3-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-MOD3-MASK:CAPS">
+<ANCHOR id="IBUS-MOD4-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-MOD4-MASK:CAPS">
+<ANCHOR id="IBUS-MOD5-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-MOD5-MASK:CAPS">
+<ANCHOR id="IBUS-BUTTON1-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUTTON1-MASK:CAPS">
+<ANCHOR id="IBUS-BUTTON2-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUTTON2-MASK:CAPS">
+<ANCHOR id="IBUS-BUTTON3-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUTTON3-MASK:CAPS">
+<ANCHOR id="IBUS-BUTTON4-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUTTON4-MASK:CAPS">
+<ANCHOR id="IBUS-BUTTON5-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUTTON5-MASK:CAPS">
+<ANCHOR id="IBUS-HANDLED-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-HANDLED-MASK:CAPS">
+<ANCHOR id="IBUS-FORWARD-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-FORWARD-MASK:CAPS">
+<ANCHOR id="IBUS-IGNORED-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-IGNORED-MASK:CAPS">
+<ANCHOR id="IBUS-SUPER-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-SUPER-MASK:CAPS">
+<ANCHOR id="IBUS-HYPER-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-HYPER-MASK:CAPS">
+<ANCHOR id="IBUS-META-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-META-MASK:CAPS">
+<ANCHOR id="IBUS-RELEASE-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-RELEASE-MASK:CAPS">
+<ANCHOR id="IBUS-MODIFIER-MASK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-MODIFIER-MASK:CAPS">
+<ANCHOR id="IBusCapabilite-enum" href="ibus/ibus-ibustypes.html#IBusCapabilite-enum">
+<ANCHOR id="IBUS-CAP-PREEDIT-TEXT:CAPS" href="ibus/ibus-ibustypes.html#IBUS-CAP-PREEDIT-TEXT:CAPS">
+<ANCHOR id="IBUS-CAP-AUXILIARY-TEXT:CAPS" href="ibus/ibus-ibustypes.html#IBUS-CAP-AUXILIARY-TEXT:CAPS">
+<ANCHOR id="IBUS-CAP-LOOKUP-TABLE:CAPS" href="ibus/ibus-ibustypes.html#IBUS-CAP-LOOKUP-TABLE:CAPS">
+<ANCHOR id="IBUS-CAP-FOCUS:CAPS" href="ibus/ibus-ibustypes.html#IBUS-CAP-FOCUS:CAPS">
+<ANCHOR id="IBUS-CAP-PROPERTY:CAPS" href="ibus/ibus-ibustypes.html#IBUS-CAP-PROPERTY:CAPS">
+<ANCHOR id="IBUS-CAP-SURROUNDING-TEXT:CAPS" href="ibus/ibus-ibustypes.html#IBUS-CAP-SURROUNDING-TEXT:CAPS">
+<ANCHOR id="IBusPreeditFocusMode" href="ibus/ibus-ibustypes.html#IBusPreeditFocusMode">
+<ANCHOR id="IBUS-ENGINE-PREEDIT-CLEAR:CAPS" href="ibus/ibus-ibustypes.html#IBUS-ENGINE-PREEDIT-CLEAR:CAPS">
+<ANCHOR id="IBUS-ENGINE-PREEDIT-COMMIT:CAPS" href="ibus/ibus-ibustypes.html#IBUS-ENGINE-PREEDIT-COMMIT:CAPS">
+<ANCHOR id="IBusOrientation-enum" href="ibus/ibus-ibustypes.html#IBusOrientation-enum">
+<ANCHOR id="IBUS-ORIENTATION-HORIZONTAL:CAPS" href="ibus/ibus-ibustypes.html#IBUS-ORIENTATION-HORIZONTAL:CAPS">
+<ANCHOR id="IBUS-ORIENTATION-VERTICAL:CAPS" href="ibus/ibus-ibustypes.html#IBUS-ORIENTATION-VERTICAL:CAPS">
+<ANCHOR id="IBUS-ORIENTATION-SYSTEM:CAPS" href="ibus/ibus-ibustypes.html#IBUS-ORIENTATION-SYSTEM:CAPS">
+<ANCHOR id="IBusBusNameFlag" href="ibus/ibus-ibustypes.html#IBusBusNameFlag">
+<ANCHOR id="IBUS-BUS-NAME-FLAG-ALLOW-REPLACEMENT:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUS-NAME-FLAG-ALLOW-REPLACEMENT:CAPS">
+<ANCHOR id="IBUS-BUS-NAME-FLAG-REPLACE-EXISTING:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUS-NAME-FLAG-REPLACE-EXISTING:CAPS">
+<ANCHOR id="IBUS-BUS-NAME-FLAG-DO-NOT-QUEUE:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUS-NAME-FLAG-DO-NOT-QUEUE:CAPS">
+<ANCHOR id="IBusBusRequestNameReply" href="ibus/ibus-ibustypes.html#IBusBusRequestNameReply">
+<ANCHOR id="IBUS-BUS-REQUEST-NAME-REPLY-PRIMARY-OWNER:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUS-REQUEST-NAME-REPLY-PRIMARY-OWNER:CAPS">
+<ANCHOR id="IBUS-BUS-REQUEST-NAME-REPLY-IN-QUEUE:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUS-REQUEST-NAME-REPLY-IN-QUEUE:CAPS">
+<ANCHOR id="IBUS-BUS-REQUEST-NAME-REPLY-EXISTS:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUS-REQUEST-NAME-REPLY-EXISTS:CAPS">
+<ANCHOR id="IBUS-BUS-REQUEST-NAME-REPLY-ALREADY-OWNER:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUS-REQUEST-NAME-REPLY-ALREADY-OWNER:CAPS">
+<ANCHOR id="IBusBusStartServiceByNameReply" href="ibus/ibus-ibustypes.html#IBusBusStartServiceByNameReply">
+<ANCHOR id="IBUS-BUS-START-REPLY-SUCCESS:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUS-START-REPLY-SUCCESS:CAPS">
+<ANCHOR id="IBUS-BUS-START-REPLY-ALREADY-RUNNING:CAPS" href="ibus/ibus-ibustypes.html#IBUS-BUS-START-REPLY-ALREADY-RUNNING:CAPS">
+<ANCHOR id="IBusError" href="ibus/ibus-ibustypes.html#IBusError">
+<ANCHOR id="IBUS-ERROR-NO-ENGINE:CAPS" href="ibus/ibus-ibustypes.html#IBUS-ERROR-NO-ENGINE:CAPS">
+<ANCHOR id="IBUS-ERROR-NO-CONFIG:CAPS" href="ibus/ibus-ibustypes.html#IBUS-ERROR-NO-CONFIG:CAPS">
+<ANCHOR id="IBUS-ERROR-FAILED:CAPS" href="ibus/ibus-ibustypes.html#IBUS-ERROR-FAILED:CAPS">
+<ANCHOR id="IBusRectangle" href="ibus/ibus-ibustypes.html#IBusRectangle">
+<ANCHOR id="IBusFreeFunc" href="ibus/ibus-ibustypes.html#IBusFreeFunc">
+<ANCHOR id="IBusInputPurpose" href="ibus/ibus-ibustypes.html#IBusInputPurpose">
+<ANCHOR id="IBUS-INPUT-PURPOSE-FREE-FORM:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-FREE-FORM:CAPS">
+<ANCHOR id="IBUS-INPUT-PURPOSE-ALPHA:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-ALPHA:CAPS">
+<ANCHOR id="IBUS-INPUT-PURPOSE-DIGITS:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-DIGITS:CAPS">
+<ANCHOR id="IBUS-INPUT-PURPOSE-NUMBER:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-NUMBER:CAPS">
+<ANCHOR id="IBUS-INPUT-PURPOSE-PHONE:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-PHONE:CAPS">
+<ANCHOR id="IBUS-INPUT-PURPOSE-URL:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-URL:CAPS">
+<ANCHOR id="IBUS-INPUT-PURPOSE-EMAIL:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-EMAIL:CAPS">
+<ANCHOR id="IBUS-INPUT-PURPOSE-NAME:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-NAME:CAPS">
+<ANCHOR id="IBUS-INPUT-PURPOSE-PASSWORD:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-PASSWORD:CAPS">
+<ANCHOR id="IBUS-INPUT-PURPOSE-PIN:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-PURPOSE-PIN:CAPS">
+<ANCHOR id="IBusInputHints" href="ibus/ibus-ibustypes.html#IBusInputHints">
+<ANCHOR id="IBUS-INPUT-HINT-NONE:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-HINT-NONE:CAPS">
+<ANCHOR id="IBUS-INPUT-HINT-SPELLCHECK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-HINT-SPELLCHECK:CAPS">
+<ANCHOR id="IBUS-INPUT-HINT-NO-SPELLCHECK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-HINT-NO-SPELLCHECK:CAPS">
+<ANCHOR id="IBUS-INPUT-HINT-WORD-COMPLETION:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-HINT-WORD-COMPLETION:CAPS">
+<ANCHOR id="IBUS-INPUT-HINT-LOWERCASE:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-HINT-LOWERCASE:CAPS">
+<ANCHOR id="IBUS-INPUT-HINT-UPPERCASE-CHARS:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-HINT-UPPERCASE-CHARS:CAPS">
+<ANCHOR id="IBUS-INPUT-HINT-UPPERCASE-WORDS:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-HINT-UPPERCASE-WORDS:CAPS">
+<ANCHOR id="IBUS-INPUT-HINT-UPPERCASE-SENTENCES:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-HINT-UPPERCASE-SENTENCES:CAPS">
+<ANCHOR id="IBUS-INPUT-HINT-INHIBIT-OSK:CAPS" href="ibus/ibus-ibustypes.html#IBUS-INPUT-HINT-INHIBIT-OSK:CAPS">
+<ANCHOR id="annotation-glossterm-out" href="ibus/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-array" href="ibus/annotation-glossary.html#annotation-glossterm-array">
+<ANCHOR id="annotation-glossterm-allow-none" href="ibus/annotation-glossary.html#annotation-glossterm-allow-none">
+<ANCHOR id="annotation-glossterm-element-type" href="ibus/annotation-glossary.html#annotation-glossterm-element-type">
+<ANCHOR id="annotation-glossterm-transfer container" href="ibus/annotation-glossary.html#annotation-glossterm-transfer container">
+<ANCHOR id="annotation-glossterm-transfer full" href="ibus/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-transfer none" href="ibus/annotation-glossary.html#annotation-glossterm-transfer none">
diff --git a/docs/reference/ibus/html/left.png b/docs/reference/ibus/html/left.png
new file mode 100644 (file)
index 0000000..2d05b3d
Binary files /dev/null and b/docs/reference/ibus/html/left.png differ
diff --git a/docs/reference/ibus/html/right.png b/docs/reference/ibus/html/right.png
new file mode 100644 (file)
index 0000000..92832e3
Binary files /dev/null and b/docs/reference/ibus/html/right.png differ
diff --git a/docs/reference/ibus/html/style.css b/docs/reference/ibus/html/style.css
new file mode 100644 (file)
index 0000000..d6f6c26
--- /dev/null
@@ -0,0 +1,266 @@
+.synopsis, .classsynopsis
+{
+  /* tango:aluminium 1/2 */
+  background: #eeeeec;
+  border: solid 1px #d3d7cf;
+  padding: 0.5em;
+}
+.programlisting
+{
+  /* tango:sky blue 0/1 */
+  background: #e6f3ff;
+  border: solid 1px #729fcf;
+  padding: 0.5em;
+}
+.variablelist
+{
+  padding: 4px;
+  margin-left: 3em;
+}
+.variablelist td:first-child
+{
+  vertical-align: top;
+}
+
+@media screen {
+  sup a.footnote
+  {
+    position: relative;
+    top: 0em ! important;
+    
+  }
+  /* this is needed so that the local anchors are displayed below the naviagtion */
+  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+  {
+    display: inline-block;
+    position: relative;
+    top:-5em;
+  }
+  /* this seems to be a bug in the xsl style sheets when generating indexes */
+  div.index div.index
+  {
+    top: 0em;
+  }
+  /* make space for the fixed navigation bar and add space at the bottom so that
+   * link targets appear somewhat close to top
+   */
+  body
+  {
+    padding-top: 3.2em;
+    padding-bottom: 20em;
+  }
+  /* style and size the navigation bar */
+  table.navigation#top
+  {
+    position: fixed;
+    /* tango:scarlet red 0/1 */
+    background: #ffe6e6;
+    border: solid 1px #ef2929;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+    z-index: 10;
+  }
+  .navigation a, .navigation a:visited
+  {
+    /* tango:scarlet red 3 */
+    color: #a40000;
+  }
+  .navigation a:hover
+  {
+    /* tango:scarlet red 1 */
+    color: #ef2929;
+  }
+  td.shortcuts
+  {
+    /* tango:scarlet red 1 */
+    color: #ef2929;
+    font-size: 80%;
+    white-space: nowrap;
+  }
+}
+@media print {
+  table.navigation {
+    visibility: collapse;
+    display: none;
+  }
+  div.titlepage table.navigation {
+    visibility: visible;
+    display: table;
+    /* tango:scarlet red 0/1 */
+    background: #ffe6e6;
+    border: solid 1px #ef2929;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+  }
+}
+
+.navigation .title
+{
+  font-size: 200%;
+}
+
+div.gallery-float
+{
+  float: left;
+  padding: 10px;
+}
+div.gallery-float img
+{
+  border-style: none;
+}
+div.gallery-spacer
+{
+  clear: both;
+}
+
+a, a:visited
+{
+  text-decoration: none;
+  /* tango:sky blue 2 */
+  color: #3465a4;
+}
+a:hover
+{
+  text-decoration: underline;
+  /* tango:sky blue 1 */
+  color: #729fcf;
+}
+
+div.table table
+{
+  border-collapse: collapse;
+  border-spacing: 0px;
+  /* tango:aluminium 3 */
+  border: solid 1px #babdb6;
+}
+
+div.table table td, div.table table th
+{
+  /* tango:aluminium 3 */
+  border: solid 1px #babdb6;
+  padding: 3px;
+  vertical-align: top;
+}
+
+div.table table th
+{
+  /* tango:aluminium 2 */
+  background-color: #d3d7cf;
+}
+
+hr
+{
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  background: #babdb6;
+  border: none 0px;
+  height: 1px;
+  clear: both;
+}
+
+.footer
+{
+  padding-top: 3.5em;
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  text-align: center;
+  font-size: 80%;
+}
+
+.warning
+{
+  /* tango:orange 0/1 */
+  background: #ffeed9;
+  border-color: #ffb04f;
+}
+.note
+{
+  /* tango:chameleon 0/0.5 */
+  background: #d8ffb2;
+  border-color: #abf562;
+}
+.note, .warning
+{
+  padding: 0.5em;
+  border-width: 1px;
+  border-style: solid;
+}
+.note h3, .warning h3
+{
+  margin-top: 0.0em
+}
+.note p, .warning p
+{
+  margin-bottom: 0.0em
+}
+
+/* blob links */
+h2 .extralinks, h3 .extralinks
+{
+  float: right;
+  /* tango:aluminium 3 */
+  color: #babdb6;
+  font-size: 80%;
+  font-weight: normal;
+}
+
+.annotation
+{
+  /* tango:aluminium 5 */
+  color: #555753;
+  font-size: 80%;
+  font-weight: normal;
+}
+
+/* code listings */
+
+.listing_code .programlisting .cbracket   { color: #a40000; } /* tango: scarlet red 3 */
+.listing_code .programlisting .comment    { color: #a1a39d; } /* tango: aluminium 4 */
+.listing_code .programlisting .function   { color: #000000; font-weight: bold; }
+.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
+.listing_code .programlisting .keyword    { color: #4e9a06; } /* tango: chameleon 3  */
+.listing_code .programlisting .linenum    { color: #babdb6; } /* tango: aluminium 3 */
+.listing_code .programlisting .normal     { color: #000000; }
+.listing_code .programlisting .number     { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .preproc    { color: #204a87; } /* tango: sky blue 3  */
+.listing_code .programlisting .string     { color: #c17d11; } /* tango: chocolate 2 */
+.listing_code .programlisting .type       { color: #000000; }
+.listing_code .programlisting .type a     { color: #11326b; } /* tango: sky blue 4 */
+.listing_code .programlisting .symbol     { color: #ce5c00; } /* tango: orange 3 */
+
+.listing_frame {
+  /* tango:sky blue 1 */
+  border: solid 1px #729fcf;
+  padding: 0px;
+}
+
+.listing_lines, .listing_code {
+  margin-top: 0px;
+  margin-bottom: 0px;
+  padding: 0.5em;
+}
+.listing_lines {
+  /* tango:sky blue 0.5 */
+  background: #a6c5e3;
+  /* tango:aluminium 6 */
+  color: #2e3436;
+}
+.listing_code {
+  /* tango:sky blue 0 */
+  background: #e6f3ff;
+}
+.listing_code .programlisting {
+  /* override from previous */
+  border: none 0px;
+  padding: 0px;
+}
+.listing_lines pre, .listing_code pre {
+  margin: 0px;
+}
+
diff --git a/docs/reference/ibus/html/up.png b/docs/reference/ibus/html/up.png
new file mode 100644 (file)
index 0000000..85b3e2a
Binary files /dev/null and b/docs/reference/ibus/html/up.png differ
diff --git a/docs/reference/ibus/ibus-docs.sgml b/docs/reference/ibus/ibus-docs.sgml
new file mode 100644 (file)
index 0000000..eaccca6
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
+  <bookinfo>
+    <title>IBus Reference Manual</title>
+    <releaseinfo>
+      Intelligent Input Bus (IBus) 1.5.4 reference manual.
+      The latest version of this documentation can be found on-line at
+      <ulink role="online-location" url="http://code.google.com/p/ibus">http://code.google.com/p/ibus</ulink>.
+    </releaseinfo>
+  </bookinfo>
+
+  <chapter>
+      <title>Overview</title>
+      <para>This manual is the API specification for the IBus.
+           IBus is built upon GObject and D-Bus,
+           so you may find that modules are named as classes and objects in the sense of GObject,
+           and may D-Bus wrapper API.</para>
+
+      <para>According to the puroposes of modules, we categorized them into following parts:</para>
+      <variablelist>
+         <varlistentry>
+             <term>Panel</term>
+             <listitem><para>A IBus-panel is an UI which provides UI components such as language bar,
+                     property buttons and so on.</para></listitem>
+         </varlistentry>
+         <varlistentry>
+             <term>Input method engine (IME)</term>
+             <listitem><para>An Input method engine is an implementation of certain input method.
+                     Here lists essential classes and functions for input method engine building,
+                     such as engine specification, and class abstracts.</para></listitem>
+         </varlistentry>
+         <varlistentry>
+             <term>Configuration</term>
+             <listitem><para>This part lists functions for configuring IBus and engines.
+                     Since most configuration files are in XML format,
+                     XML handling functions are also listed here.</para></listitem>
+         </varlistentry>
+         <varlistentry>
+             <term>Communication</term>
+             <listitem><para>Here lists the service communication functions.</para></listitem>
+         </varlistentry>
+         <varlistentry>
+             <term>Internal</term>
+             <listitem><para>Definition and functions for IBus internal use.</para></listitem>
+         </varlistentry>
+      </variablelist>
+      <para>Normally input method developers need only to read the first three parts.
+      </para>
+  </chapter>
+  <chapter>
+      <title>Panel (User Interfaces)</title>
+      <para>These API pages directly related to user interfaces, such as
+         pre-edit buffer, auxiliary text, language bar, button,
+         radio boxes, and so on.
+      </para>
+      <xi:include href="xml/ibusattribute.xml"/>
+      <xi:include href="xml/ibusattrlist.xml"/>
+      <xi:include href="xml/ibushotkey.xml"/>
+      <xi:include href="xml/ibuslookuptable.xml"/>
+      <xi:include href="xml/ibuspanelservice.xml"/>
+      <xi:include href="xml/ibusproperty.xml"/>
+      <xi:include href="xml/ibusproplist.xml"/>
+      <xi:include href="xml/ibustext.xml"/>
+  </chapter>
+  <chapter>
+      <title>Input method engine</title>
+      <para>An Input method engine is an implementation of certain input method.
+         Here lists essential classes and functions for input method engine building,
+         such as engine specification, and class abstracts.</para>
+      <xi:include href="xml/ibuscomponent.xml"/>
+      <xi:include href="xml/ibusengine.xml"/>
+      <xi:include href="xml/ibusenginedesc.xml"/>
+      <xi:include href="xml/ibusenginesimple.xml"/>
+      <xi:include href="xml/ibusfactory.xml"/>
+      <xi:include href="xml/ibusinputcontext.xml"/>
+      <xi:include href="xml/ibuskeys.xml"/>
+      <xi:include href="xml/ibuskeymap.xml"/>
+      <xi:include href="xml/ibuskeysyms-compat.xml"/>
+      <xi:include href="xml/ibuskeysyms.xml"/>
+      <xi:include href="xml/ibusutil.xml"/>
+  </chapter>
+  <chapter>
+      <title>Configuration</title>
+      <para>This part lists functions for configuring IBus and engines.
+         Since most configuration files are in XML format,
+         XML handling functions are also listed here.</para>
+      <xi:include href="xml/ibusconfig.xml"/>
+      <xi:include href="xml/ibusconfigservice.xml"/>
+      <xi:include href="xml/ibusobservedpath.xml"/>
+      <xi:include href="xml/ibusregistry.xml"/>
+      <xi:include href="xml/ibusversion.xml"/>
+      <xi:include href="xml/ibusxml.xml"/>
+  </chapter>
+  <chapter>
+      <title>Communication</title>
+      <para>Here lists the service communication functions.</para>
+      <xi:include href="xml/ibusbus.xml"/>
+      <xi:include href="xml/ibusproxy.xml"/>
+      <xi:include href="xml/ibusserializable.xml"/>
+      <xi:include href="xml/ibusservice.xml"/>
+  </chapter>
+  <chapter>
+      <title>Internal</title>
+      <para>Definition and functions for IBus internal use.</para>
+      <xi:include href="xml/ibusdebug.xml"/>
+      <xi:include href="xml/ibuserror.xml"/>
+      <xi:include href="xml/ibusobject.xml"/>
+      <xi:include href="xml/ibusshare.xml"/>
+      <xi:include href="xml/ibustypes.xml"/>
+  </chapter>
+  <index id="api-index-full">
+    <title>Index</title>
+    <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
+  </index>
+  <index id="api-index-deprecated" role="deprecated">
+    <title>Index of deprecated symbols</title>
+    <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
+  </index>
+  <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
+</book>
+
diff --git a/docs/reference/ibus/tmpl/ibus-unused.sgml b/docs/reference/ibus/tmpl/ibus-unused.sgml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/docs/reference/ibus/tmpl/ibusattribute.sgml b/docs/reference/ibus/tmpl/ibusattribute.sgml
new file mode 100644 (file)
index 0000000..dfd5752
--- /dev/null
@@ -0,0 +1,142 @@
+<!-- ##### SECTION Title ##### -->
+IBusAttribute
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### ENUM IBusAttrType ##### -->
+<para>
+
+</para>
+
+@IBUS_ATTR_TYPE_UNDERLINE: 
+@IBUS_ATTR_TYPE_FOREGROUND: 
+@IBUS_ATTR_TYPE_BACKGROUND: 
+
+<!-- ##### ENUM IBusAttrUnderline ##### -->
+<para>
+
+</para>
+
+@IBUS_ATTR_UNDERLINE_NONE: 
+@IBUS_ATTR_UNDERLINE_SINGLE: 
+@IBUS_ATTR_UNDERLINE_DOUBLE: 
+@IBUS_ATTR_UNDERLINE_LOW: 
+@IBUS_ATTR_UNDERLINE_ERROR: 
+
+<!-- ##### STRUCT IBusAttribute ##### -->
+<para>
+
+</para>
+
+@type: 
+@value: 
+@start_index: 
+@end_index: 
+
+<!-- ##### STRUCT IBusAttributeClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_attribute_new ##### -->
+<para>
+
+</para>
+
+@type: 
+@value: 
+@start_index: 
+@end_index: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_attribute_get_attr_type ##### -->
+<para>
+
+</para>
+
+@attr: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_attribute_get_value ##### -->
+<para>
+
+</para>
+
+@attr: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_attribute_get_start_index ##### -->
+<para>
+
+</para>
+
+@attr: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_attribute_get_end_index ##### -->
+<para>
+
+</para>
+
+@attr: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_attr_underline_new ##### -->
+<para>
+
+</para>
+
+@underline_type: 
+@start_index: 
+@end_index: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_attr_foreground_new ##### -->
+<para>
+
+</para>
+
+@color: 
+@start_index: 
+@end_index: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_attr_background_new ##### -->
+<para>
+
+</para>
+
+@color: 
+@start_index: 
+@end_index: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusattrlist.sgml b/docs/reference/ibus/tmpl/ibusattrlist.sgml
new file mode 100644 (file)
index 0000000..84604fd
--- /dev/null
@@ -0,0 +1,65 @@
+<!-- ##### SECTION Title ##### -->
+IBusAttrList
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusAttrList ##### -->
+<para>
+
+</para>
+
+@attributes: 
+
+<!-- ##### STRUCT IBusAttrListClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_attr_list_new ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_attr_list_append ##### -->
+<para>
+
+</para>
+
+@attr_list: 
+@attr: 
+
+
+<!-- ##### FUNCTION ibus_attr_list_get ##### -->
+<para>
+
+</para>
+
+@attr_list: 
+@index: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusbus.sgml b/docs/reference/ibus/tmpl/ibusbus.sgml
new file mode 100644 (file)
index 0000000..d5a62e1
--- /dev/null
@@ -0,0 +1,844 @@
+<!-- ##### SECTION Title ##### -->
+IBusBus
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusBus ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL IBusBus::connected ##### -->
+<para>
+
+</para>
+
+@ibusbus: the object which received the signal.
+
+<!-- ##### SIGNAL IBusBus::disconnected ##### -->
+<para>
+
+</para>
+
+@ibusbus: the object which received the signal.
+
+<!-- ##### SIGNAL IBusBus::global-engine-changed ##### -->
+<para>
+
+</para>
+
+@ibusbus: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusBus::name-owner-changed ##### -->
+<para>
+
+</para>
+
+@ibusbus: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+
+<!-- ##### ARG IBusBus:connect-async ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT IBusBusClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_bus_new ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_new_async ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_is_connected ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_connection ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_hello ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_request_name ##### -->
+<para>
+
+</para>
+
+@bus: 
+@name: 
+@flags: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_request_name_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@name: 
+@flags: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_request_name_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_release_name ##### -->
+<para>
+
+</para>
+
+@bus: 
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_release_name_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@name: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_release_name_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_list_queued_owners ##### -->
+<para>
+
+</para>
+
+@bus: 
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_name_has_owner ##### -->
+<para>
+
+</para>
+
+@bus: 
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_name_has_owner_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@name: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_name_has_owner_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_list_names ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_add_match ##### -->
+<para>
+
+</para>
+
+@bus: 
+@rule: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_add_match_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@rule: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_add_match_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_remove_match ##### -->
+<para>
+
+</para>
+
+@bus: 
+@rule: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_remove_match_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@rule: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_remove_match_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_name_owner ##### -->
+<para>
+
+</para>
+
+@bus: 
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_name_owner_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@name: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_name_owner_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_exit ##### -->
+<para>
+
+</para>
+
+@bus: 
+@restart: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_exit_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@restart: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_exit_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_create_input_context ##### -->
+<para>
+
+</para>
+
+@bus: 
+@client_name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_create_input_context_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@client_name: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_create_input_context_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_current_input_context ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_current_input_context_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_current_input_context_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_register_component ##### -->
+<para>
+
+</para>
+
+@bus: 
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_register_component_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@component: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_register_component_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_list_engines ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_list_engines_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_list_engines_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_list_active_engines ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_list_active_engines_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_list_active_engines_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_engines_by_names ##### -->
+<para>
+
+</para>
+
+@bus: 
+@names: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_use_sys_layout ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_use_sys_layout_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_use_sys_layout_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_use_global_engine ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_use_global_engine_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_use_global_engine_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_is_global_engine_enabled ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_is_global_engine_enabled_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_is_global_engine_enabled_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_global_engine ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_global_engine_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_global_engine_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_set_global_engine ##### -->
+<para>
+
+</para>
+
+@bus: 
+@global_engine: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_set_global_engine_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@global_engine: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_set_global_engine_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_set_watch_dbus_signal ##### -->
+<para>
+
+</para>
+
+@bus: 
+@watch: 
+
+
+<!-- ##### FUNCTION ibus_bus_set_watch_ibus_signal ##### -->
+<para>
+
+</para>
+
+@bus: 
+@watch: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_config ##### -->
+<para>
+
+</para>
+
+@bus: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_preload_engines ##### -->
+<para>
+
+</para>
+
+@bus: 
+@names: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_preload_engines_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@names: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_preload_engines_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_ibus_property ##### -->
+<para>
+
+</para>
+
+@bus: 
+@property_name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_ibus_property_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@property_name: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_get_ibus_property_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_bus_set_ibus_property ##### -->
+<para>
+
+</para>
+
+@bus: 
+@property_name: 
+@value: 
+
+
+<!-- ##### FUNCTION ibus_bus_set_ibus_property_async ##### -->
+<para>
+
+</para>
+
+@bus: 
+@property_name: 
+@value: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_bus_set_ibus_property_async_finish ##### -->
+<para>
+
+</para>
+
+@bus: 
+@res: 
+@error: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibuscomponent.sgml b/docs/reference/ibus/tmpl/ibuscomponent.sgml
new file mode 100644 (file)
index 0000000..1ea2cb6
--- /dev/null
@@ -0,0 +1,260 @@
+<!-- ##### SECTION Title ##### -->
+IBusComponent
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusComponent ##### -->
+<para>
+
+</para>
+
+@pdummy: 
+
+<!-- ##### ARG IBusComponent:author ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusComponent:command-line ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusComponent:description ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusComponent:homepage ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusComponent:license ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusComponent:name ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusComponent:textdomain ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusComponent:version ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT IBusComponentClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_component_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@description: 
+@version: 
+@license: 
+@author: 
+@homepage: 
+@command_line: 
+@textdomain: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_new_varargs ##### -->
+<para>
+
+</para>
+
+@first_property_name: 
+@...: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_new_from_xml_node ##### -->
+<para>
+
+</para>
+
+@node: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_new_from_file ##### -->
+<para>
+
+</para>
+
+@filename: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_get_name ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_get_description ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_get_version ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_get_license ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_get_author ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_get_homepage ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_get_exec ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_get_textdomain ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_add_observed_path ##### -->
+<para>
+
+</para>
+
+@component: 
+@path: 
+@access_fs: 
+
+
+<!-- ##### FUNCTION ibus_component_add_engine ##### -->
+<para>
+
+</para>
+
+@component: 
+@engine: 
+
+
+<!-- ##### FUNCTION ibus_component_get_engines ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_output ##### -->
+<para>
+
+</para>
+
+@component: 
+@output: 
+@indent: 
+
+
+<!-- ##### FUNCTION ibus_component_output_engines ##### -->
+<para>
+
+</para>
+
+@component: 
+@output: 
+@indent: 
+
+
+<!-- ##### FUNCTION ibus_component_check_modification ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_component_get_observed_paths ##### -->
+<para>
+
+</para>
+
+@component: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusconfig.sgml b/docs/reference/ibus/tmpl/ibusconfig.sgml
new file mode 100644 (file)
index 0000000..b434604
--- /dev/null
@@ -0,0 +1,219 @@
+<!-- ##### SECTION Title ##### -->
+IBusConfig
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusConfig ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL IBusConfig::value-changed ##### -->
+<para>
+
+</para>
+
+@ibusconfig: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+
+<!-- ##### STRUCT IBusConfigClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION ibus_config_new ##### -->
+<para>
+
+</para>
+
+@connection: 
+@cancellable: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_new_async ##### -->
+<para>
+
+</para>
+
+@connection: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_config_new_async_finish ##### -->
+<para>
+
+</para>
+
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_get_value ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_get_value_async ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@name: 
+@timeout_ms: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_config_get_value_async_finish ##### -->
+<para>
+
+</para>
+
+@config: 
+@result: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_get_values ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_get_values_async ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@timeout_ms: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_config_get_values_async_finish ##### -->
+<para>
+
+</para>
+
+@config: 
+@result: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_set_value ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@name: 
+@value: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_set_value_async ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@name: 
+@value: 
+@timeout_ms: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_config_set_value_async_finish ##### -->
+<para>
+
+</para>
+
+@config: 
+@result: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_unset ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_watch ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_unwatch ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@name: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusconfigservice.sgml b/docs/reference/ibus/tmpl/ibusconfigservice.sgml
new file mode 100644 (file)
index 0000000..7d28832
--- /dev/null
@@ -0,0 +1,60 @@
+<!-- ##### SECTION Title ##### -->
+IBusConfigService
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusConfigService ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT IBusConfigServiceClass ##### -->
+<para>
+
+</para>
+
+@set_value: 
+@get_value: 
+@unset_value: 
+@get_values: 
+
+<!-- ##### FUNCTION ibus_config_service_new ##### -->
+<para>
+
+</para>
+
+@connection: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_config_service_value_changed ##### -->
+<para>
+
+</para>
+
+@config: 
+@section: 
+@name: 
+@value: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusdebug.sgml b/docs/reference/ibus/tmpl/ibusdebug.sgml
new file mode 100644 (file)
index 0000000..07449d3
--- /dev/null
@@ -0,0 +1,33 @@
+<!-- ##### SECTION Title ##### -->
+ibusdebug
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO ibus_warning ##### -->
+<para>
+
+</para>
+
+@msg: 
+@...: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusengine.sgml b/docs/reference/ibus/tmpl/ibusengine.sgml
new file mode 100644 (file)
index 0000000..b26c0ed
--- /dev/null
@@ -0,0 +1,431 @@
+<!-- ##### SECTION Title ##### -->
+IBusEngine
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusEngine ##### -->
+<para>
+
+</para>
+
+@enabled: 
+@has_focus: 
+@cursor_area: 
+@client_capabilities: 
+
+<!-- ##### SIGNAL IBusEngine::cancel-hand-writing ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusEngine::candidate-clicked ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+
+<!-- ##### SIGNAL IBusEngine::cursor-down ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+
+<!-- ##### SIGNAL IBusEngine::cursor-up ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+
+<!-- ##### SIGNAL IBusEngine::disable ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+
+<!-- ##### SIGNAL IBusEngine::enable ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+
+<!-- ##### SIGNAL IBusEngine::focus-in ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+
+<!-- ##### SIGNAL IBusEngine::focus-out ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+
+<!-- ##### SIGNAL IBusEngine::page-down ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+
+<!-- ##### SIGNAL IBusEngine::page-up ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+
+<!-- ##### SIGNAL IBusEngine::process-hand-writing-event ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+@arg2: 
+
+<!-- ##### SIGNAL IBusEngine::process-key-event ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+@Returns: 
+
+<!-- ##### SIGNAL IBusEngine::property-activate ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+@arg2: 
+
+<!-- ##### SIGNAL IBusEngine::property-hide ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusEngine::property-show ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusEngine::reset ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+
+<!-- ##### SIGNAL IBusEngine::set-capabilities ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusEngine::set-content-type ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+@arg2: 
+
+<!-- ##### SIGNAL IBusEngine::set-cursor-location ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+@arg4: 
+
+<!-- ##### SIGNAL IBusEngine::set-surrounding-text ##### -->
+<para>
+
+</para>
+
+@ibusengine: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+
+<!-- ##### ARG IBusEngine:engine-name ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT IBusEngineClass ##### -->
+<para>
+
+</para>
+
+@process_key_event: 
+@focus_in: 
+@focus_out: 
+@reset: 
+@enable: 
+@disable: 
+@set_cursor_location: 
+@set_capabilities: 
+@page_up: 
+@page_down: 
+@cursor_up: 
+@cursor_down: 
+@property_activate: 
+@property_show: 
+@property_hide: 
+@candidate_clicked: 
+@set_surrounding_text: 
+@process_hand_writing_event: 
+@cancel_hand_writing: 
+@set_content_type: 
+
+<!-- ##### FUNCTION ibus_engine_new ##### -->
+<para>
+
+</para>
+
+@engine_name: 
+@object_path: 
+@connection: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_new_with_type ##### -->
+<para>
+
+</para>
+
+@engine_type: 
+@engine_name: 
+@object_path: 
+@connection: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_commit_text ##### -->
+<para>
+
+</para>
+
+@engine: 
+@text: 
+
+
+<!-- ##### FUNCTION ibus_engine_update_preedit_text ##### -->
+<para>
+
+</para>
+
+@engine: 
+@text: 
+@cursor_pos: 
+@visible: 
+
+
+<!-- ##### FUNCTION ibus_engine_update_preedit_text_with_mode ##### -->
+<para>
+
+</para>
+
+@engine: 
+@text: 
+@cursor_pos: 
+@visible: 
+@mode: 
+
+
+<!-- ##### FUNCTION ibus_engine_show_preedit_text ##### -->
+<para>
+
+</para>
+
+@engine: 
+
+
+<!-- ##### FUNCTION ibus_engine_hide_preedit_text ##### -->
+<para>
+
+</para>
+
+@engine: 
+
+
+<!-- ##### FUNCTION ibus_engine_update_auxiliary_text ##### -->
+<para>
+
+</para>
+
+@engine: 
+@text: 
+@visible: 
+
+
+<!-- ##### FUNCTION ibus_engine_show_auxiliary_text ##### -->
+<para>
+
+</para>
+
+@engine: 
+
+
+<!-- ##### FUNCTION ibus_engine_hide_auxiliary_text ##### -->
+<para>
+
+</para>
+
+@engine: 
+
+
+<!-- ##### FUNCTION ibus_engine_update_lookup_table ##### -->
+<para>
+
+</para>
+
+@engine: 
+@lookup_table: 
+@visible: 
+
+
+<!-- ##### FUNCTION ibus_engine_update_lookup_table_fast ##### -->
+<para>
+
+</para>
+
+@engine: 
+@lookup_table: 
+@visible: 
+
+
+<!-- ##### FUNCTION ibus_engine_show_lookup_table ##### -->
+<para>
+
+</para>
+
+@engine: 
+
+
+<!-- ##### FUNCTION ibus_engine_hide_lookup_table ##### -->
+<para>
+
+</para>
+
+@engine: 
+
+
+<!-- ##### FUNCTION ibus_engine_forward_key_event ##### -->
+<para>
+
+</para>
+
+@engine: 
+@keyval: 
+@keycode: 
+@state: 
+
+
+<!-- ##### FUNCTION ibus_engine_register_properties ##### -->
+<para>
+
+</para>
+
+@engine: 
+@prop_list: 
+
+
+<!-- ##### FUNCTION ibus_engine_update_property ##### -->
+<para>
+
+</para>
+
+@engine: 
+@prop: 
+
+
+<!-- ##### FUNCTION ibus_engine_delete_surrounding_text ##### -->
+<para>
+
+</para>
+
+@engine: 
+@offset: 
+@nchars: 
+
+
+<!-- ##### FUNCTION ibus_engine_get_surrounding_text ##### -->
+<para>
+
+</para>
+
+@engine: 
+@text: 
+@cursor_pos: 
+@anchor_pos: 
+
+
+<!-- ##### FUNCTION ibus_engine_get_content_type ##### -->
+<para>
+
+</para>
+
+@engine: 
+@purpose: 
+@hints: 
+
+
+<!-- ##### FUNCTION ibus_engine_get_name ##### -->
+<para>
+
+</para>
+
+@engine: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusenginedesc.sgml b/docs/reference/ibus/tmpl/ibusenginedesc.sgml
new file mode 100644 (file)
index 0000000..af7dcf6
--- /dev/null
@@ -0,0 +1,306 @@
+<!-- ##### SECTION Title ##### -->
+IBusEngineDesc
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusEngineDesc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG IBusEngineDesc:author ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:description ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:hotkeys ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:icon ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:language ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:layout ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:layout-option ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:layout-variant ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:license ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:longname ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:name ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:rank ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:setup ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:symbol ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:textdomain ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusEngineDesc:version ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT IBusEngineDescClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_engine_desc_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@longname: 
+@description: 
+@language: 
+@license: 
+@author: 
+@icon: 
+@layout: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_new_varargs ##### -->
+<para>
+
+</para>
+
+@first_property_name: 
+@...: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_new_from_xml_node ##### -->
+<para>
+
+</para>
+
+@node: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_name ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_longname ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_description ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_language ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_license ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_author ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_icon ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_layout ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_layout_variant ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_layout_option ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_rank ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_hotkeys ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_symbol ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_setup ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_version ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_get_textdomain ##### -->
+<para>
+
+</para>
+
+@info: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_engine_desc_output ##### -->
+<para>
+
+</para>
+
+@info: 
+@output: 
+@indent: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusenginesimple.sgml b/docs/reference/ibus/tmpl/ibusenginesimple.sgml
new file mode 100644 (file)
index 0000000..629f5fa
--- /dev/null
@@ -0,0 +1,54 @@
+<!-- ##### SECTION Title ##### -->
+IBusEngineSimple
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO IBUS_MAX_COMPOSE_LEN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT IBusEngineSimple ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT IBusEngineSimpleClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION ibus_engine_simple_add_table ##### -->
+<para>
+
+</para>
+
+@simple: 
+@data: 
+@max_seq_len: 
+@n_seqs: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibuserror.sgml b/docs/reference/ibus/tmpl/ibuserror.sgml
new file mode 100644 (file)
index 0000000..a7b0789
--- /dev/null
@@ -0,0 +1,40 @@
+<!-- ##### SECTION Title ##### -->
+ibuserror
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO IBUS_ERROR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION ibus_error_quark ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusfactory.sgml b/docs/reference/ibus/tmpl/ibusfactory.sgml
new file mode 100644 (file)
index 0000000..c38c6a2
--- /dev/null
@@ -0,0 +1,75 @@
+<!-- ##### SECTION Title ##### -->
+IBusFactory
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusFactory ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL IBusFactory::create-engine ##### -->
+<para>
+
+</para>
+
+@ibusfactory: the object which received the signal.
+@arg1: 
+@Returns: 
+
+<!-- ##### STRUCT IBusFactoryClass ##### -->
+<para>
+
+</para>
+
+@create_engine: 
+
+<!-- ##### FUNCTION ibus_factory_new ##### -->
+<para>
+
+</para>
+
+@connection: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_factory_add_engine ##### -->
+<para>
+
+</para>
+
+@factory: 
+@engine_name: 
+@engine_type: 
+
+
+<!-- ##### FUNCTION ibus_factory_create_engine ##### -->
+<para>
+
+</para>
+
+@factory: 
+@engine_name: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibushotkey.sgml b/docs/reference/ibus/tmpl/ibushotkey.sgml
new file mode 100644 (file)
index 0000000..a176a2d
--- /dev/null
@@ -0,0 +1,116 @@
+<!-- ##### SECTION Title ##### -->
+IBusHotkeyProfile
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusHotkeyProfile ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL IBusHotkeyProfile::trigger ##### -->
+<para>
+
+</para>
+
+@ibushotkeyprofile: the object which received the signal.
+@arg1: 
+@arg2: 
+
+<!-- ##### STRUCT IBusHotkeyProfileClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+@trigger: 
+
+<!-- ##### FUNCTION ibus_hotkey_profile_add_hotkey ##### -->
+<para>
+
+</para>
+
+@profile: 
+@keyval: 
+@modifiers: 
+@event: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_hotkey_profile_add_hotkey_from_string ##### -->
+<para>
+
+</para>
+
+@profile: 
+@str: 
+@event: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_hotkey_profile_remove_hotkey ##### -->
+<para>
+
+</para>
+
+@profile: 
+@keyval: 
+@modifiers: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_hotkey_profile_remove_hotkey_by_event ##### -->
+<para>
+
+</para>
+
+@profile: 
+@event: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_hotkey_profile_filter_key_event ##### -->
+<para>
+
+</para>
+
+@profile: 
+@keyval: 
+@modifiers: 
+@prev_keyval: 
+@prev_modifiers: 
+@user_data: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_hotkey_profile_lookup_hotkey ##### -->
+<para>
+
+</para>
+
+@profile: 
+@keyval: 
+@modifiers: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusinputcontext.sgml b/docs/reference/ibus/tmpl/ibusinputcontext.sgml
new file mode 100644 (file)
index 0000000..60bf45e
--- /dev/null
@@ -0,0 +1,441 @@
+<!-- ##### SECTION Title ##### -->
+IBusInputContext
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusInputContext ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL IBusInputContext::commit-text ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusInputContext::cursor-down-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::cursor-up-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::delete-surrounding-text ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+@arg1: 
+@arg2: 
+
+<!-- ##### SIGNAL IBusInputContext::disabled ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::enabled ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::forward-key-event ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+
+<!-- ##### SIGNAL IBusInputContext::hide-auxiliary-text ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::hide-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::hide-preedit-text ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::page-down-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::page-up-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::register-properties ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusInputContext::show-auxiliary-text ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::show-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::show-preedit-text ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+
+<!-- ##### SIGNAL IBusInputContext::update-auxiliary-text ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+@arg1: 
+@arg2: 
+
+<!-- ##### SIGNAL IBusInputContext::update-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+@arg1: 
+@arg2: 
+
+<!-- ##### SIGNAL IBusInputContext::update-preedit-text ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+
+<!-- ##### SIGNAL IBusInputContext::update-property ##### -->
+<para>
+
+</para>
+
+@ibusinputcontext: the object which received the signal.
+@arg1: 
+
+<!-- ##### STRUCT IBusInputContextClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_input_context_new ##### -->
+<para>
+
+</para>
+
+@path: 
+@connection: 
+@cancellable: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_input_context_new_async ##### -->
+<para>
+
+</para>
+
+@path: 
+@connection: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_input_context_new_async_finish ##### -->
+<para>
+
+</para>
+
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_input_context_get_input_context ##### -->
+<para>
+
+</para>
+
+@path: 
+@connection: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_input_context_get_input_context_async ##### -->
+<para>
+
+</para>
+
+@path: 
+@connection: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_input_context_get_input_context_async_finish ##### -->
+<para>
+
+</para>
+
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_input_context_process_hand_writing_event ##### -->
+<para>
+
+</para>
+
+@context: 
+@coordinates: 
+@coordinates_len: 
+
+
+<!-- ##### FUNCTION ibus_input_context_cancel_hand_writing ##### -->
+<para>
+
+</para>
+
+@context: 
+@n_strokes: 
+
+
+<!-- ##### FUNCTION ibus_input_context_process_key_event_async ##### -->
+<para>
+
+</para>
+
+@context: 
+@keyval: 
+@keycode: 
+@state: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_input_context_process_key_event_async_finish ##### -->
+<para>
+
+</para>
+
+@context: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_input_context_process_key_event ##### -->
+<para>
+
+</para>
+
+@context: 
+@keyval: 
+@keycode: 
+@state: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_input_context_set_cursor_location ##### -->
+<para>
+
+</para>
+
+@context: 
+@x: 
+@y: 
+@w: 
+@h: 
+
+
+<!-- ##### FUNCTION ibus_input_context_set_capabilities ##### -->
+<para>
+
+</para>
+
+@context: 
+@capabilities: 
+
+
+<!-- ##### FUNCTION ibus_input_context_property_activate ##### -->
+<para>
+
+</para>
+
+@context: 
+@prop_name: 
+@state: 
+
+
+<!-- ##### FUNCTION ibus_input_context_focus_in ##### -->
+<para>
+
+</para>
+
+@context: 
+
+
+<!-- ##### FUNCTION ibus_input_context_focus_out ##### -->
+<para>
+
+</para>
+
+@context: 
+
+
+<!-- ##### FUNCTION ibus_input_context_reset ##### -->
+<para>
+
+</para>
+
+@context: 
+
+
+<!-- ##### FUNCTION ibus_input_context_get_engine_async ##### -->
+<para>
+
+</para>
+
+@context: 
+@timeout_msec: 
+@cancellable: 
+@callback: 
+@user_data: 
+
+
+<!-- ##### FUNCTION ibus_input_context_get_engine_async_finish ##### -->
+<para>
+
+</para>
+
+@context: 
+@res: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_input_context_get_engine ##### -->
+<para>
+
+</para>
+
+@context: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_input_context_set_engine ##### -->
+<para>
+
+</para>
+
+@context: 
+@name: 
+
+
+<!-- ##### FUNCTION ibus_input_context_set_surrounding_text ##### -->
+<para>
+
+</para>
+
+@context: 
+@text: 
+@cursor_pos: 
+@anchor_pos: 
+
+
+<!-- ##### FUNCTION ibus_input_context_needs_surrounding_text ##### -->
+<para>
+
+</para>
+
+@context: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_input_context_set_content_type ##### -->
+<para>
+
+</para>
+
+@context: 
+@purpose: 
+@hints: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibuskeymap.sgml b/docs/reference/ibus/tmpl/ibuskeymap.sgml
new file mode 100644 (file)
index 0000000..7914ca5
--- /dev/null
@@ -0,0 +1,68 @@
+<!-- ##### SECTION Title ##### -->
+IBusKeymap
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusKeymap ##### -->
+<para>
+
+</para>
+
+@name: 
+@keymap: 
+
+<!-- ##### STRUCT IBusKeymapClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_keymap_new ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_keymap_get ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_keymap_lookup_keysym ##### -->
+<para>
+
+</para>
+
+@keymap: 
+@keycode: 
+@state: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibuskeys.sgml b/docs/reference/ibus/tmpl/ibuskeys.sgml
new file mode 100644 (file)
index 0000000..7809489
--- /dev/null
@@ -0,0 +1,60 @@
+<!-- ##### SECTION Title ##### -->
+ibuskeys
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION ibus_keyval_name ##### -->
+<para>
+
+</para>
+
+@keyval: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_keyval_from_name ##### -->
+<para>
+
+</para>
+
+@keyval_name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_unicode_to_keyval ##### -->
+<para>
+
+</para>
+
+@wc: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_keyval_to_unicode ##### -->
+<para>
+
+</para>
+
+@keyval: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibuskeysyms-compat.sgml b/docs/reference/ibus/tmpl/ibuskeysyms-compat.sgml
new file mode 100644 (file)
index 0000000..55f61dd
--- /dev/null
@@ -0,0 +1,13947 @@
+<!-- ##### SECTION Title ##### -->
+ibuskeysyms-compat
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO IBUS_VoidSymbol ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_BackSpace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Tab ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Linefeed ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Clear ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Return ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pause ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Scroll_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Sys_Req ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Escape ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Delete ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Multi_key ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Codeinput ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_SingleCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_MultipleCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_PreviousCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Kanji ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Muhenkan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Henkan_Mode ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Henkan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Romaji ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hiragana ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Katakana ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hiragana_Katakana ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Zenkaku ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hankaku ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Zenkaku_Hankaku ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Touroku ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Massyo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Kana_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Kana_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Eisu_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Eisu_toggle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Kanji_Bangou ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Zen_Koho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Mae_Koho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Home ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Prior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Page_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Next ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Page_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_End ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Begin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Select ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Print ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Execute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Insert ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Undo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Redo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Menu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Find ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cancel ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Help ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Break ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Mode_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_script_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Num_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Space ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Tab ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Enter ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_F1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_F2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_F3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_F4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Home ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Prior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Page_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Next ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Page_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_End ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Begin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Insert ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Delete ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Equal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Multiply ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Add ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Separator ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Subtract ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Decimal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_Divide ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_0 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KP_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F11 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F12 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F13 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F14 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F15 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F17 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F18 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F19 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F20 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F21 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F22 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F23 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F24 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F25 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F26 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F27 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F28 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F29 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F30 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F31 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R11 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R12 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F33 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R13 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F34 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R14 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F35 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R15 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Shift_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Shift_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Control_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Control_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Caps_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Shift_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Meta_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Meta_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Alt_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Alt_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Super_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Super_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hyper_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hyper_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Level2_Latch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Level3_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Level3_Latch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Level3_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Level5_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Level5_Latch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Level5_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Group_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Group_Latch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Next_Group ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Next_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Prev_Group ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Prev_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_First_Group ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_First_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Last_Group ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Last_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Left_Tab ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Move_Line_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Move_Line_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Partial_Line_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Partial_Line_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Partial_Space_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Partial_Space_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Set_Margin_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Set_Margin_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Release_Margin_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Release_Margin_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Release_Both_Margins ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Fast_Cursor_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Fast_Cursor_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Fast_Cursor_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Fast_Cursor_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Continuous_Underline ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Discontinuous_Underline ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Emphasize ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Center_Object ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ISO_Enter ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_grave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_acute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_circumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_tilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_perispomeni ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_breve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_abovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_diaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_abovering ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_doubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_caron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_cedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_ogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_iota ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_voiced_sound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_semivoiced_sound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_belowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_hook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_horn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_stroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_abovecomma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_psili ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_abovereversedcomma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_dasia ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_belowring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_belowmacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_belowcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_belowtilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_belowbreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dead_belowdiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_First_Virtual_Screen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Prev_Virtual_Screen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Next_Virtual_Screen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Last_Virtual_Screen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Terminate_Server ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_AccessX_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_AccessX_Feedback_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_RepeatKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_SlowKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_BounceKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_StickyKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_MouseKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_MouseKeys_Accel_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Overlay1_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Overlay2_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_AudibleBell_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_UpLeft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_UpRight ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DownLeft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DownRight ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Button_Dflt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Button1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Button2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Button3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Button4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Button5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DblClick_Dflt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DblClick1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DblClick2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DblClick3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DblClick4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DblClick5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Drag_Dflt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Drag1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Drag2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Drag3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Drag4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Drag5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_EnableKeys ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_Accelerate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DfltBtnNext ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pointer_DfltBtnPrev ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Duplicate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_FieldMark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Right2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Left2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_BackTab ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_EraseEOF ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_EraseInput ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Reset ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Quit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_PA1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_PA2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_PA3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Test ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Attn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_CursorBlink ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_AltCursor ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_KeyClick ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Jump ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Ident ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Rule ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Copy ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Play ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Setup ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Record ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_ChangeScreen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_DeleteWord ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_ExSelect ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_CursorSelect ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_PrintScreen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3270_Enter ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_space ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_exclam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_quotedbl ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_numbersign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dollar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_percent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ampersand ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_apostrophe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_quoteright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_parenleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_parenright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_asterisk ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_plus ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_comma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_minus ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_period ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_slash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_0 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_colon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_semicolon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_less ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_equal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_greater ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_question ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_at ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_A ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_B ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_C ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_D ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_F ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_G ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_H ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_J ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_K ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_M ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_N ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_P ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Q ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_S ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_T ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_U ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_V ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_W ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_X ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Y ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Z ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_bracketleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_backslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_bracketright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_asciicircum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_underscore ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_grave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_quoteleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_a ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_b ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_c ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_d ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_f ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_g ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_h ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_j ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_k ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_l ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_m ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_n ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_p ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_q ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_r ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_s ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_t ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_u ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_v ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_w ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_x ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_y ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_z ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braceleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braceright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_asciitilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_nobreakspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_exclamdown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_cent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_sterling ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_currency ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_yen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_brokenbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_section ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_diaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_copyright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ordfeminine ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_guillemotleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_notsign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hyphen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_registered ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_degree ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_plusminus ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_twosuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_threesuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_acute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_mu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_paragraph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_periodcentered ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_cedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_onesuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_masculine ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_guillemotright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_onequarter ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_onehalf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_threequarters ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_questiondown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Agrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Aacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Acircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Atilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Adiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Aring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_AE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ccedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Egrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Eacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ecircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ediaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Igrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Iacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Icircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Idiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ETH ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Eth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ograve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Oacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ocircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Otilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Odiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_multiply ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Oslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ooblique ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ugrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ucircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Udiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Yacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_THORN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ssharp ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_agrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_aacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_acircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_atilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_adiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_aring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ccedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_egrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_eacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ecircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ediaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_igrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_iacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_icircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_idiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_eth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ograve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_oacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ocircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_otilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_odiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_division ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_oslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ooblique ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ugrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ucircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_udiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_yacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_thorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ydiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Aogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_breve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Lstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Lcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Sacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Scaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Scedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Tcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Zacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Zcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Zabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_aogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_sacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_caron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_scaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_scedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_tcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_zacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_doubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_zcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_zabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Racute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Abreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Lacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ccaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Eogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ecaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Dcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Dstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Nacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ncaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Odoubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Rcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Udoubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Tcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_racute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_abreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_cacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ccaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_eogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ecaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_nacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ncaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_odoubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_udoubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_tcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_abovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Iabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Gbreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Jcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_idotless ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_gbreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_jcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ccircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Gabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Gcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ubreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Scircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_cabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ccircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_gabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_gcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ubreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_scircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kra ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kappa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Rcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Itilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Lcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Emacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Gcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Tslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_itilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_emacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_gcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_tslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ENG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_eng ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Amacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Iogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Eabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Imacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ncedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Omacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Kcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Utilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Umacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_amacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_iogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_eabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_imacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ncedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_omacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_utilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_umacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Babovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_babovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Dabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Wgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Wacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ygrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Fabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_fabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Mabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_mabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Pabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_wgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_pabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_wacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Sabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ygrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Wdiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_wdiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_sabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Wcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Tabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ycircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_wcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_tabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ycircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_OE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_oe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ydiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_overline ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_fullstop ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_openingbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_closingbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_comma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_conjunctive ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_middledot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_WO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_a ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_u ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_ya ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_yu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_yo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_tsu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_tu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_prolongedsound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_A ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_U ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_KA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_KI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_KU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_KE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_KO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_SA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_SHI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_SU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_SE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_SO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_TA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_CHI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_TI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_TSU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_TU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_TE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_TO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_NA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_NI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_NU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_NE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_NO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_HA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_HI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_FU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_HU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_HE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_HO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_MA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_MI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_MU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_ME ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_MO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_YA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_YU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_YO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_RA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_RI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_RU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_RE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_RO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_WA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_N ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_voicedsound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_semivoicedsound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_kana_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_0 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_percent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_superscript_alef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_tteh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_peh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_tcheh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_ddal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_rreh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_comma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_fullstop ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_0 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_semicolon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_question_mark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_hamza ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_maddaonalef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_hamzaonalef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_hamzaonwaw ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_hamzaunderalef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_hamzaonyeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_alef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_beh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_tehmarbuta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_teh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_theh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_jeem ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_hah ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_khah ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_dal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_thal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_ra ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_zain ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_seen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_sheen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_sad ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_dad ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_tah ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_zah ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_ain ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_ghain ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_tatweel ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_feh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_qaf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_kaf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_lam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_meem ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_noon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_ha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_heh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_waw ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_alefmaksura ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_yeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_fathatan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_dammatan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_kasratan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_fatha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_damma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_kasra ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_shadda ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_sukun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_madda_above ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_hamza_above ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_hamza_below ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_jeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_veh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_keheh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_gaf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_noon_ghunna ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_heh_doachashmee ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Farsi_yeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_farsi_yeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_yeh_baree ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_heh_goal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Arabic_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_GHE_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ghe_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ZHE_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_zhe_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_KA_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ka_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_KA_vertstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ka_vertstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_EN_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_en_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_U_straight ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_u_straight ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_U_straight_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_u_straight_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_HA_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ha_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_CHE_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_che_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_CHE_vertstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_che_vertstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_SHHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_shha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_SCHWA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_schwa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_I_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_i_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_O_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_o_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_U_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_u_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_dje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Macedonia_gje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_io ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukrainian_ie ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukranian_je ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Macedonia_dse ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukrainian_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukranian_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukrainian_yi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukranian_yi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_je ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_je ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_lje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_lje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_nje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_nje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_tshe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Macedonia_kje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukrainian_ghe_with_upturn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Byelorussian_shortu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_dzhe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_dze ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_numerosign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_DJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Macedonia_GJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_IO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukrainian_IE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukranian_JE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Macedonia_DSE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukrainian_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukranian_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukrainian_YI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukranian_YI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_JE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_JE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_LJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_LJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_NJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_NJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_TSHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Macedonia_KJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ukrainian_GHE_WITH_UPTURN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Byelorussian_SHORTU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_DZHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Serbian_DZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_yu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_a ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_be ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_tse ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_de ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ie ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ghe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_shorti ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ka ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_el ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_em ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_en ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_pe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ya ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_er ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_es ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_te ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_u ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_zhe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_softsign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_yeru ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ze ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_sha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_shcha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_che ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_hardsign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_YU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_A ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_BE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_TSE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_DE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_IE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_EF ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_GHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_HA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_SHORTI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_KA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_EL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_EM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_EN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_PE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_YA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ES ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_TE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_U ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ZHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_VE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_SOFTSIGN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_YERU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_ZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_SHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_SHCHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_CHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Cyrillic_HARDSIGN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_ALPHAaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_EPSILONaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_ETAaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_IOTAaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_IOTAdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_IOTAdiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_OMICRONaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_UPSILONaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_UPSILONdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_OMEGAaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_accentdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_horizbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_alphaaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_epsilonaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_etaaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_iotaaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_iotadieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_iotaaccentdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_omicronaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_upsilonaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_upsilondieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_upsilonaccentdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_omegaaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_ALPHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_BETA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_GAMMA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_DELTA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_EPSILON ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_ZETA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_ETA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_THETA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_IOTA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_KAPPA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_LAMDA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_LAMBDA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_MU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_NU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_XI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_OMICRON ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_PI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_RHO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_SIGMA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_TAU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_UPSILON ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_PHI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_CHI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_PSI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_OMEGA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_alpha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_beta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_gamma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_delta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_epsilon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_zeta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_eta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_theta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_iota ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_kappa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_lamda ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_lambda ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_mu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_nu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_xi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_omicron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_pi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_rho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_sigma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_finalsmallsigma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_tau ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_upsilon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_phi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_chi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_psi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_omega ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Greek_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftradical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_topleftradical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_horizconnector ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_topintegral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_botintegral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_vertconnector ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_topleftsqbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_botleftsqbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_toprightsqbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_botrightsqbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_topleftparens ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_botleftparens ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_toprightparens ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_botrightparens ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftmiddlecurlybrace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightmiddlecurlybrace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_topleftsummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_botleftsummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_topvertsummationconnector ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_botvertsummationconnector ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_toprightsummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_botrightsummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightmiddlesummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lessthanequal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_notequal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_greaterthanequal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_integral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_therefore ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_variation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_infinity ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_nabla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_approximate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_similarequal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ifonlyif ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_implies ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_identical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_radical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_includedin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_includes ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_intersection ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_union ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_logicaland ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_logicalor ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_partialderivative ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_function ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftarrow ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uparrow ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightarrow ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_downarrow ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_blank ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_soliddiamond ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_checkerboard ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ht ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ff ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_cr ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_nl ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_vt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lowrightcorner ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uprightcorner ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_upleftcorner ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lowleftcorner ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_crossinglines ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_horizlinescan1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_horizlinescan3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_horizlinescan5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_horizlinescan7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_horizlinescan9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_bott ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_topt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_vertbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_emspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_enspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_em3space ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_em4space ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_digitspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_punctspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_thinspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hairspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_emdash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_endash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_signifblank ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ellipsis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_doubbaselinedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_onethird ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_twothirds ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_onefifth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_twofifths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_threefifths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_fourfifths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_onesixth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_fivesixths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_careof ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_figdash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftanglebracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_decimalpoint ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightanglebracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_marker ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_oneeighth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_threeeighths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_fiveeighths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_seveneighths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_trademark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_signaturemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_trademarkincircle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftopentriangle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightopentriangle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_emopencircle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_emopenrectangle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftsinglequotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightsinglequotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftdoublequotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightdoublequotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_prescription ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_minutes ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_seconds ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_latincross ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hexagram ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_filledrectbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_filledlefttribullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_filledrighttribullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_emfilledcircle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_emfilledrect ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_enopencircbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_enopensquarebullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_openrectbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_opentribulletup ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_opentribulletdown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_openstar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_enfilledcircbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_enfilledsqbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_filledtribulletup ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_filledtribulletdown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftpointer ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightpointer ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_club ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_diamond ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_heart ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_maltesecross ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dagger ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_doubledagger ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_checkmark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ballotcross ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_musicalsharp ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_musicalflat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_malesymbol ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_femalesymbol ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_telephone ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_telephonerecorder ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_phonographcopyright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_caret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_singlelowquotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_doublelowquotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_cursor ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftcaret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightcaret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_downcaret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_upcaret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_overbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_downtack ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_upshoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_downstile ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_underbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_jot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_quad ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uptack ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_circle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_upstile ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_downshoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_rightshoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_leftshoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lefttack ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_righttack ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_doublelowline ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_aleph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_bet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_beth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_gimel ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_gimmel ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_dalet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_daleth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_he ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_waw ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_zain ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_zayin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_chet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_het ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_tet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_teth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_yod ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_finalkaph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_kaph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_lamed ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_finalmem ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_mem ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_finalnun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_nun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_samech ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_samekh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_ayin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_finalpe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_pe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_finalzade ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_finalzadi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_zade ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_zadi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_qoph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_kuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_resh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_shin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_taw ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_hebrew_taf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hebrew_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_kokai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_khokhai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_khokhuat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_khokhwai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_khokhon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_khorakhang ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_ngongu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_chochan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_choching ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_chochang ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_soso ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_chochoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_yoying ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_dochada ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_topatak ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_thothan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_thonangmontho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_thophuthao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_nonen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_dodek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_totao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_thothung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_thothahan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_thothong ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_nonu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_bobaimai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_popla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_phophung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_fofa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_phophan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_fofan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_phosamphao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_moma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_yoyak ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_rorua ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_ru ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_loling ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_lu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_wowaen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_sosala ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_sorusi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_sosua ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_hohip ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_lochula ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_oang ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_honokhuk ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_paiyannoi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_saraa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_maihanakat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_saraaa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_saraam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_sarai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_saraii ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_saraue ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_sarauee ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_sarau ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_sarauu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_phinthu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_maihanakat_maitho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_baht ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_sarae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_saraae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_sarao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_saraaimaimuan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_saraaimaimalai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_lakkhangyao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_maiyamok ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_maitaikhu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_maiek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_maitho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_maitri ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_maichattawa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_thanthakhat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_nikhahit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_leksun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_leknung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_leksong ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_leksam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_leksi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_lekha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_lekhok ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_lekchet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_lekpaet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Thai_lekkao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Start ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_End ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Hanja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Jamo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Romaja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Codeinput ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Jeonja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Banja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_PreHanja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_PostHanja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_SingleCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_MultipleCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_PreviousCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Special ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Kiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_SsangKiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_KiyeogSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Nieun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_NieunJieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_NieunHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Dikeud ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_SsangDikeud ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Rieul ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_RieulKiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_RieulMieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_RieulPieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_RieulSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_RieulTieut ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_RieulPhieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_RieulHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Mieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Pieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_SsangPieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_PieubSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Sios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_SsangSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Ieung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Jieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_SsangJieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Cieuc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Khieuq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Tieut ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Phieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_Hieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_A ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_AE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_YA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_YAE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_EO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_YEO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_YE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_WA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_WAE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_OE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_YO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_U ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_WEO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_WE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_WI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_YU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_EU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_YI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Kiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_SsangKiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_KiyeogSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Nieun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_NieunJieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_NieunHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Dikeud ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Rieul ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_RieulKiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_RieulMieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_RieulPieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_RieulSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_RieulTieut ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_RieulPhieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_RieulHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Mieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Pieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_PieubSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Sios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_SsangSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Ieung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Jieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Cieuc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Khieuq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Tieut ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Phieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_Hieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_RieulYeorinHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_SunkyeongeumMieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_SunkyeongeumPieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_PanSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_KkogjiDalrinIeung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_SunkyeongeumPhieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_YeorinHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_AraeA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_AraeAE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_PanSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_KkogjiDalrinIeung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Hangul_J_YeorinHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Korean_Won ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ligature_ew ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_full_stop ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_verjaket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_separation_mark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_but ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_hyphen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_yentamna ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_exclam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_amanak ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_accent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_shesht ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_question ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_paruyk ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_AYB ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ayb ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_BEN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ben ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_GIM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_gim ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_DA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_da ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_YECH ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_yech ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ZA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_za ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_AT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_at ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_TO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_to ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ZHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_zhe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_INI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ini ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_LYUN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_lyun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_KHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_khe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_TSA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_tsa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_KEN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ken ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_HO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_DZA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_dza ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_GHAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ghat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_TCHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_tche ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_MEN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_men ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_HI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_hi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_NU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_nu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_SHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_sha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_VO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_vo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_CHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_cha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_PE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_pe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_JE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_je ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_RA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ra ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_SE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_se ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_VEV ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_vev ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_TYUN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_tyun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_RE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_re ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_TSO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_tso ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_VYUN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_vyun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_PYUR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_pyur ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_KE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_ke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_FE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_fe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Armenian_apostrophe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_an ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_ban ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_gan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_don ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_en ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_vin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_zen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_tan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_in ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_kan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_las ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_man ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_nar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_on ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_par ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_zhar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_rae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_san ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_tar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_un ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_phar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_khar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_ghan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_qar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_shin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_chin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_can ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_jil ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_cil ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_char ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_xan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_jhan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_hae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_he ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_hie ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_we ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_har ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_hoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Georgian_fi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Xabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ibreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Zstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Gcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ocaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Obarred ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_xabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ibreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_zstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_gcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ocaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_obarred ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_SCHWA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_schwa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Lbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_lbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Abelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_abelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ahook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ahook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Acircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_acircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Acircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_acircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Acircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_acircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Acircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_acircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Acircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_acircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Abreveacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_abreveacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Abrevegrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_abrevegrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Abrevehook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_abrevehook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Abrevetilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_abrevetilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Abrevebelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_abrevebelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ebelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ebelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ehook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ehook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Etilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_etilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ecircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ecircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ecircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ecircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ecircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ecircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ecircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ecircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ecircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ecircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ihook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ihook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ibelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ibelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Obelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_obelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ohook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ohook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ocircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ocircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ocircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ocircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ocircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ocircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ocircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ocircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ocircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ocircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ohornacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ohornacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ohorngrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ohorngrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ohornhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ohornhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ohorntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ohorntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ohornbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ohornbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ubelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ubelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uhornacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uhornacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uhorngrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uhorngrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uhornhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uhornhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uhorntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uhorntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uhornbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uhornbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ybelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ybelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Yhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_yhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ytilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ytilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Ohorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ohorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_Uhorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_uhorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_EcuSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ColonSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_CruzeiroSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_FFrancSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_LiraSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_MillSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_NairaSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_PesetaSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_RupeeSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_WonSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_NewSheqelSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_DongSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_EuroSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_zerosuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_foursuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_fivesuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_sixsuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_sevensuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_eightsuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ninesuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_zerosubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_onesubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_twosubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_threesubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_foursubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_fivesubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_sixsubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_sevensubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_eightsubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_ninesubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_partdifferential ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_emptyset ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_elementof ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_notelementof ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_containsas ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_squareroot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_cuberoot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_fourthroot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_dintegral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_tintegral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_because ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_approxeq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_notapproxeq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_notidentical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_stricteq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dot_10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_blank ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_14 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_24 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_124 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_34 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_134 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_234 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1234 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_15 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_25 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_125 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_35 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_135 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_235 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1235 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_45 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_145 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_245 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1245 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_345 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1345 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2345 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12345 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_26 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_126 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_36 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_136 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_236 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1236 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_46 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_146 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_246 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1246 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_346 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1346 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2346 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12346 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_56 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_156 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_256 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1256 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_356 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1356 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2356 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12356 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_17 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_27 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_127 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_37 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_137 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_237 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1237 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_47 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_147 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_247 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1247 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_347 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1347 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2347 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12347 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_57 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_157 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_257 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1257 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_357 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1357 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2357 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12357 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_67 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_167 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_267 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1267 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_367 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1367 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2367 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12367 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_4567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_14567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_24567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_124567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_34567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_134567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_234567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1234567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_18 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_28 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_128 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_38 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_138 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_238 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1238 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_48 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_148 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_248 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1248 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_348 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1348 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2348 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12348 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_58 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_158 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_258 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1258 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_358 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1358 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2358 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12358 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_68 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_168 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_268 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1268 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_368 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1368 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2368 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12368 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_4568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_14568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_24568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_124568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_34568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_134568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_234568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1234568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_78 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_178 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_278 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1278 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_378 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1378 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2378 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12378 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_4578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_14578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_24578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_124578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_34578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_134578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_234578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1234578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_3678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_13678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_23678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_123678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_4678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_14678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_24678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_124678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_34678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_134678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_234678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1234678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_5678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_15678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_25678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_125678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_35678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_135678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_235678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1235678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_45678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_145678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_245678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1245678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_345678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_1345678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_2345678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_braille_dots_12345678 ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/reference/ibus/tmpl/ibuskeysyms.sgml b/docs/reference/ibus/tmpl/ibuskeysyms.sgml
new file mode 100644 (file)
index 0000000..948a03c
--- /dev/null
@@ -0,0 +1,14661 @@
+<!-- ##### SECTION Title ##### -->
+ibuskeysyms
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO IBUS_KEY_VoidSymbol ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_BackSpace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Tab ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Linefeed ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Clear ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Return ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pause ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Scroll_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sys_Req ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Escape ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Delete ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Multi_key ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Codeinput ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_SingleCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_MultipleCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_PreviousCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Kanji ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Muhenkan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Henkan_Mode ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Henkan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Romaji ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hiragana ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Katakana ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hiragana_Katakana ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Zenkaku ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hankaku ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Zenkaku_Hankaku ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Touroku ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Massyo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Kana_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Kana_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Eisu_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Eisu_toggle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Kanji_Bangou ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Zen_Koho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Mae_Koho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Home ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Prior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Page_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Next ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Page_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_End ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Begin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Select ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Print ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Execute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Insert ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Undo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Redo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Menu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Find ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cancel ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Help ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Break ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Mode_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_script_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Num_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Space ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Tab ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Enter ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_F1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_F2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_F3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_F4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Home ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Prior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Page_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Next ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Page_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_End ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Begin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Insert ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Delete ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Equal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Multiply ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Add ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Separator ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Subtract ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Decimal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_Divide ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_0 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_KP_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F11 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F12 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F13 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F14 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F15 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F17 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F18 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F19 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F20 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F21 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F22 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F23 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F24 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F25 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F26 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F27 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F28 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F29 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F30 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F31 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R11 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R12 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F33 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R13 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F34 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R14 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F35 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R15 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Shift_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Shift_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Control_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Control_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Caps_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Shift_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Meta_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Meta_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Alt_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Alt_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Super_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Super_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hyper_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hyper_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Level2_Latch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Level3_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Level3_Latch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Level3_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Level5_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Level5_Latch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Level5_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Group_Shift ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Group_Latch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Next_Group ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Next_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Prev_Group ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Prev_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_First_Group ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_First_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Last_Group ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Last_Group_Lock ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Left_Tab ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Move_Line_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Move_Line_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Partial_Line_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Partial_Line_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Partial_Space_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Partial_Space_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Set_Margin_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Set_Margin_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Release_Margin_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Release_Margin_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Release_Both_Margins ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Fast_Cursor_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Fast_Cursor_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Fast_Cursor_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Fast_Cursor_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Continuous_Underline ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Discontinuous_Underline ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Emphasize ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Center_Object ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ISO_Enter ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_grave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_acute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_circumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_tilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_perispomeni ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_breve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_abovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_diaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_abovering ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_doubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_caron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_cedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_ogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_iota ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_voiced_sound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_semivoiced_sound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_belowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_hook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_horn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_stroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_abovecomma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_psili ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_abovereversedcomma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_dasia ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_doublegrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_belowring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_belowmacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_belowcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_belowtilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_belowbreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_belowdiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_invertedbreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_belowcomma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_currency ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_a ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_A ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_u ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_U ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_small_schwa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dead_capital_schwa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_First_Virtual_Screen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Prev_Virtual_Screen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Next_Virtual_Screen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Last_Virtual_Screen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Terminate_Server ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_AccessX_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_AccessX_Feedback_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_RepeatKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_SlowKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_BounceKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_StickyKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_MouseKeys_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_MouseKeys_Accel_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Overlay1_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Overlay2_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_AudibleBell_Enable ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Left ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Right ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Up ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Down ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_UpLeft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_UpRight ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DownLeft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DownRight ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Button_Dflt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Button1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Button2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Button3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Button4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Button5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DblClick_Dflt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DblClick1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DblClick2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DblClick3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DblClick4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DblClick5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Drag_Dflt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Drag1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Drag2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Drag3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Drag4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Drag5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_EnableKeys ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_Accelerate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DfltBtnNext ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pointer_DfltBtnPrev ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_CH ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_c_h ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_C_h ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_C_H ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Duplicate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_FieldMark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Right2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Left2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_BackTab ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_EraseEOF ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_EraseInput ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Reset ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Quit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_PA1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_PA2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_PA3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Test ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Attn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_CursorBlink ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_AltCursor ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_KeyClick ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Jump ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Ident ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Rule ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Copy ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Play ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Setup ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Record ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_ChangeScreen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_DeleteWord ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_ExSelect ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_CursorSelect ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_PrintScreen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3270_Enter ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_space ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_exclam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_quotedbl ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_numbersign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dollar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_percent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ampersand ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_apostrophe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_quoteright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_parenleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_parenright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_asterisk ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_plus ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_comma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_minus ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_period ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_slash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_0 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_colon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_semicolon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_less ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_equal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_greater ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_question ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_at ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_A ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_B ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_C ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_D ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_F ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_G ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_H ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_J ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_K ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_L ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_M ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_N ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_P ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Q ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_R ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_S ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_T ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_U ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_V ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_W ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_X ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Y ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Z ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_bracketleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_backslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_bracketright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_asciicircum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_underscore ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_grave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_quoteleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_a ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_b ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_c ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_d ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_f ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_g ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_h ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_j ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_k ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_l ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_m ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_n ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_p ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_q ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_r ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_s ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_t ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_u ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_v ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_w ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_x ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_y ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_z ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braceleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braceright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_asciitilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_nobreakspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_exclamdown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_cent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_sterling ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_currency ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_yen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_brokenbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_section ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_diaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_copyright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ordfeminine ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_guillemotleft ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_notsign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hyphen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_registered ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_degree ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_plusminus ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_twosuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_threesuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_acute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_mu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_paragraph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_periodcentered ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_cedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_onesuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_masculine ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_guillemotright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_onequarter ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_onehalf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_threequarters ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_questiondown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Agrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Aacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Acircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Atilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Adiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Aring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_AE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ccedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Egrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Eacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ecircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ediaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Igrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Iacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Icircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Idiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ETH ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Eth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ograve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Oacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ocircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Otilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Odiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_multiply ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Oslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ooblique ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ugrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ucircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Udiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Yacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_THORN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ssharp ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_agrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_aacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_acircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_atilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_adiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_aring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ccedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_egrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_eacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ecircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ediaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_igrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_iacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_icircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_idiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_eth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ograve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_oacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ocircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_otilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_odiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_division ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_oslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ooblique ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ugrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ucircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_udiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_yacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_thorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ydiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Aogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_breve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Lstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Lcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Scaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Scedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Tcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Zacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Zcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Zabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_aogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_sacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_caron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_scaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_scedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_tcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_zacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_doubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_zcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_zabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Racute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Abreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Lacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ccaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Eogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ecaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Dcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Dstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Nacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ncaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Odoubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Rcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Udoubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Tcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_racute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_abreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_cacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ccaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_eogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ecaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_nacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ncaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_odoubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uring ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_udoubleacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_tcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_abovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Iabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Gbreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Jcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_idotless ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_gbreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_jcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ccircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Gabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Gcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ubreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Scircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_cabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ccircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_gabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_gcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ubreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_scircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kra ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kappa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Rcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Itilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Lcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Emacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Gcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Tslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_itilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_emacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_gcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_tslash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ENG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_eng ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Amacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Iogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Eabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Imacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ncedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Omacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Kcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Utilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Umacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_amacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_iogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_eabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_imacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ncedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_omacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kcedilla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uogonek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_utilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_umacron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Wcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_wcircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ycircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ycircumflex ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Babovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_babovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Dabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Fabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_fabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Mabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_mabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Pabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_pabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_sabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Tabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_tabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Wgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_wgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Wacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_wacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Wdiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_wdiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ygrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ygrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_OE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_oe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ydiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_overline ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_fullstop ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_openingbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_closingbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_comma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_conjunctive ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_middledot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_WO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_a ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_u ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_ya ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_yu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_yo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_tsu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_tu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_prolongedsound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_A ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_U ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_KA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_KI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_KU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_KE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_KO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_SA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_SHI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_SU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_SE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_SO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_TA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_CHI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_TI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_TSU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_TU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_TE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_TO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_NA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_NI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_NU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_NE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_NO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_HA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_HI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_FU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_HU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_HE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_HO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_MA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_MI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_MU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_ME ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_MO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_YA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_YU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_YO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_RA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_RI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_RU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_RE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_RO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_WA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_N ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_voicedsound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_semivoicedsound ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_kana_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_0 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_percent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_superscript_alef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_tteh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_peh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_tcheh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_ddal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_rreh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_comma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_fullstop ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_0 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_semicolon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_question_mark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_hamza ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_maddaonalef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_hamzaonalef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_hamzaonwaw ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_hamzaunderalef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_hamzaonyeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_alef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_beh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_tehmarbuta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_teh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_theh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_jeem ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_hah ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_khah ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_dal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_thal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_ra ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_zain ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_seen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_sheen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_sad ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_dad ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_tah ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_zah ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_ain ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_ghain ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_tatweel ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_feh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_qaf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_kaf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_lam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_meem ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_noon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_ha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_heh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_waw ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_alefmaksura ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_yeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_fathatan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_dammatan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_kasratan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_fatha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_damma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_kasra ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_shadda ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_sukun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_madda_above ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_hamza_above ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_hamza_below ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_jeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_veh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_keheh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_gaf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_noon_ghunna ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_heh_doachashmee ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Farsi_yeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_farsi_yeh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_yeh_baree ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_heh_goal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Arabic_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_GHE_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ghe_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ZHE_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_zhe_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_KA_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ka_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_KA_vertstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ka_vertstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_EN_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_en_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_U_straight ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_u_straight ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_U_straight_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_u_straight_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_HA_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ha_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_CHE_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_che_descender ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_CHE_vertstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_che_vertstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_SHHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_shha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_SCHWA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_schwa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_I_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_i_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_O_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_o_bar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_U_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_u_macron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_dje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Macedonia_gje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_io ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukrainian_ie ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukranian_je ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Macedonia_dse ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukrainian_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukranian_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukrainian_yi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukranian_yi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_je ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_je ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_lje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_lje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_nje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_nje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_tshe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Macedonia_kje ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukrainian_ghe_with_upturn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Byelorussian_shortu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_dzhe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_dze ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_numerosign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_DJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Macedonia_GJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_IO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukrainian_IE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukranian_JE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Macedonia_DSE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukrainian_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukranian_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukrainian_YI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukranian_YI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_JE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_JE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_LJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_LJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_NJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_NJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_TSHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Macedonia_KJE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ukrainian_GHE_WITH_UPTURN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Byelorussian_SHORTU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_DZHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Serbian_DZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_yu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_a ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_be ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_tse ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_de ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ie ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ef ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ghe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_shorti ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ka ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_el ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_em ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_en ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_pe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ya ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_er ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_es ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_te ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_u ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_zhe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_softsign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_yeru ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ze ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_sha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_shcha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_che ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_hardsign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_YU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_A ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_BE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_TSE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_DE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_IE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_EF ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_GHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_HA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_SHORTI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_KA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_EL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_EM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_EN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_PE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_YA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ES ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_TE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_U ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ZHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_VE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_SOFTSIGN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_YERU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_ZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_SHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_SHCHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_CHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Cyrillic_HARDSIGN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_ALPHAaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_EPSILONaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_ETAaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_IOTAaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_IOTAdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_IOTAdiaeresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_OMICRONaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_UPSILONaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_UPSILONdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_OMEGAaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_accentdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_horizbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_alphaaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_epsilonaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_etaaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_iotaaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_iotadieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_iotaaccentdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_omicronaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_upsilonaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_upsilondieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_upsilonaccentdieresis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_omegaaccent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_ALPHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_BETA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_GAMMA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_DELTA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_EPSILON ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_ZETA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_ETA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_THETA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_IOTA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_KAPPA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_LAMDA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_LAMBDA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_MU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_NU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_XI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_OMICRON ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_PI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_RHO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_SIGMA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_TAU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_UPSILON ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_PHI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_CHI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_PSI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_OMEGA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_alpha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_beta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_gamma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_delta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_epsilon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_zeta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_eta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_theta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_iota ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_kappa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_lamda ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_lambda ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_mu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_nu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_xi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_omicron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_pi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_rho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_sigma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_finalsmallsigma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_tau ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_upsilon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_phi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_chi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_psi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_omega ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Greek_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftradical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_topleftradical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_horizconnector ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_topintegral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_botintegral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_vertconnector ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_topleftsqbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_botleftsqbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_toprightsqbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_botrightsqbracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_topleftparens ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_botleftparens ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_toprightparens ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_botrightparens ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftmiddlecurlybrace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightmiddlecurlybrace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_topleftsummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_botleftsummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_topvertsummationconnector ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_botvertsummationconnector ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_toprightsummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_botrightsummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightmiddlesummation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lessthanequal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_notequal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_greaterthanequal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_integral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_therefore ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_variation ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_infinity ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_nabla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_approximate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_similarequal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ifonlyif ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_implies ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_identical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_radical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_includedin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_includes ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_intersection ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_union ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_logicaland ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_logicalor ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_partialderivative ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_function ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftarrow ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uparrow ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightarrow ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_downarrow ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_blank ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_soliddiamond ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_checkerboard ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ht ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ff ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_cr ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_nl ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_vt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lowrightcorner ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uprightcorner ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_upleftcorner ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lowleftcorner ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_crossinglines ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_horizlinescan1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_horizlinescan3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_horizlinescan5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_horizlinescan7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_horizlinescan9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_bott ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_topt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_vertbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_emspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_enspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_em3space ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_em4space ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_digitspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_punctspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_thinspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hairspace ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_emdash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_endash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_signifblank ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ellipsis ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_doubbaselinedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_onethird ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_twothirds ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_onefifth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_twofifths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_threefifths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_fourfifths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_onesixth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_fivesixths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_careof ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_figdash ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftanglebracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_decimalpoint ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightanglebracket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_marker ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_oneeighth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_threeeighths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_fiveeighths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_seveneighths ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_trademark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_signaturemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_trademarkincircle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftopentriangle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightopentriangle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_emopencircle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_emopenrectangle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftsinglequotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightsinglequotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftdoublequotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightdoublequotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_prescription ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_minutes ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_seconds ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_latincross ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hexagram ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_filledrectbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_filledlefttribullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_filledrighttribullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_emfilledcircle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_emfilledrect ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_enopencircbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_enopensquarebullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_openrectbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_opentribulletup ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_opentribulletdown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_openstar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_enfilledcircbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_enfilledsqbullet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_filledtribulletup ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_filledtribulletdown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftpointer ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightpointer ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_club ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_diamond ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_heart ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_maltesecross ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dagger ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_doubledagger ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_checkmark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ballotcross ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_musicalsharp ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_musicalflat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_malesymbol ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_femalesymbol ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_telephone ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_telephonerecorder ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_phonographcopyright ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_caret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_singlelowquotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_doublelowquotemark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_cursor ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftcaret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightcaret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_downcaret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_upcaret ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_overbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_downtack ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_upshoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_downstile ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_underbar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_jot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_quad ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uptack ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_circle ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_upstile ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_downshoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_rightshoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_leftshoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lefttack ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_righttack ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_doublelowline ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_aleph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_bet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_beth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_gimel ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_gimmel ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_dalet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_daleth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_he ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_waw ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_zain ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_zayin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_chet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_het ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_tet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_teth ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_yod ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_finalkaph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_kaph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_lamed ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_finalmem ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_mem ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_finalnun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_nun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_samech ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_samekh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_ayin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_finalpe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_pe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_finalzade ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_finalzadi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_zade ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_zadi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_qoph ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_kuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_resh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_shin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_taw ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_hebrew_taf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hebrew_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_kokai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_khokhai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_khokhuat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_khokhwai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_khokhon ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_khorakhang ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_ngongu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_chochan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_choching ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_chochang ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_soso ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_chochoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_yoying ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_dochada ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_topatak ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_thothan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_thonangmontho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_thophuthao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_nonen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_dodek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_totao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_thothung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_thothahan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_thothong ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_nonu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_bobaimai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_popla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_phophung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_fofa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_phophan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_fofan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_phosamphao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_moma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_yoyak ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_rorua ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_ru ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_loling ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_lu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_wowaen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_sosala ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_sorusi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_sosua ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_hohip ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_lochula ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_oang ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_honokhuk ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_paiyannoi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_saraa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_maihanakat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_saraaa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_saraam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_sarai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_saraii ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_saraue ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_sarauee ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_sarau ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_sarauu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_phinthu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_maihanakat_maitho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_baht ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_sarae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_saraae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_sarao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_saraaimaimuan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_saraaimaimalai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_lakkhangyao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_maiyamok ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_maitaikhu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_maiek ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_maitho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_maitri ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_maichattawa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_thanthakhat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_nikhahit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_leksun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_leknung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_leksong ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_leksam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_leksi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_lekha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_lekhok ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_lekchet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_lekpaet ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Thai_lekkao ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Start ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_End ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Hanja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Jamo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Romaja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Codeinput ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Jeonja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Banja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_PreHanja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_PostHanja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_SingleCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_MultipleCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_PreviousCandidate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Special ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_switch ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Kiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_SsangKiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_KiyeogSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Nieun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_NieunJieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_NieunHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Dikeud ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_SsangDikeud ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Rieul ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_RieulKiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_RieulMieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_RieulPieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_RieulSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_RieulTieut ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_RieulPhieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_RieulHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Mieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Pieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_SsangPieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_PieubSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Sios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_SsangSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Ieung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Jieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_SsangJieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Cieuc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Khieuq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Tieut ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Phieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_Hieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_A ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_AE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_YA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_YAE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_EO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_YEO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_YE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_WA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_WAE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_OE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_YO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_U ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_WEO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_WE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_WI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_YU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_EU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_YI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_I ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Kiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_SsangKiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_KiyeogSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Nieun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_NieunJieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_NieunHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Dikeud ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Rieul ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_RieulKiyeog ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_RieulMieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_RieulPieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_RieulSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_RieulTieut ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_RieulPhieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_RieulHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Mieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Pieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_PieubSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Sios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_SsangSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Ieung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Jieuj ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Cieuc ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Khieuq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Tieut ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Phieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_Hieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_RieulYeorinHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_SunkyeongeumMieum ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_SunkyeongeumPieub ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_PanSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_KkogjiDalrinIeung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_SunkyeongeumPhieuf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_YeorinHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_AraeA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_AraeAE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_PanSios ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_KkogjiDalrinIeung ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Hangul_J_YeorinHieuh ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Korean_Won ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ligature_ew ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_full_stop ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_verjaket ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_separation_mark ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_but ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_hyphen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_yentamna ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_exclam ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_amanak ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_accent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_shesht ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_question ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_paruyk ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_AYB ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ayb ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_BEN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ben ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_GIM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_gim ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_DA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_da ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_YECH ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_yech ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ZA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_za ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_AT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_at ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_TO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_to ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ZHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_zhe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_INI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ini ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_LYUN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_lyun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_KHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_khe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_TSA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_tsa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_KEN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ken ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_HO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ho ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_DZA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_dza ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_GHAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ghat ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_TCHE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_tche ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_MEN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_men ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_HI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_hi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_NU ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_nu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_SHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_sha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_VO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_vo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_CHA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_cha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_PE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_pe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_JE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_je ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_RA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ra ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_SE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_se ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_VEV ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_vev ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_TYUN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_tyun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_RE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_re ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_TSO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_tso ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_VYUN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_vyun ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_PYUR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_pyur ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_KE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_ke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_O ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_FE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_fe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Armenian_apostrophe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_an ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_ban ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_gan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_don ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_en ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_vin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_zen ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_tan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_in ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_kan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_las ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_man ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_nar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_on ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_par ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_zhar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_rae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_san ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_tar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_un ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_phar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_khar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_ghan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_qar ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_shin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_chin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_can ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_jil ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_cil ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_char ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_xan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_jhan ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_hae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_he ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_hie ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_we ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_har ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_hoe ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Georgian_fi ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Xabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ibreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Zstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Gcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ocaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Obarred ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_xabovedot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ibreve ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_zstroke ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_gcaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ocaron ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_obarred ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_SCHWA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_schwa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Lbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_lbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Abelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_abelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ahook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ahook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Acircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_acircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Acircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_acircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Acircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_acircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Acircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_acircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Acircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_acircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Abreveacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_abreveacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Abrevegrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_abrevegrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Abrevehook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_abrevehook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Abrevetilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_abrevetilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Abrevebelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_abrevebelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ebelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ebelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ehook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ehook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Etilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_etilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ecircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ecircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ecircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ecircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ecircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ecircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ecircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ecircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ecircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ecircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ihook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ihook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ibelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ibelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Obelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_obelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ohook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ohook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ocircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ocircumflexacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ocircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ocircumflexgrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ocircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ocircumflexhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ocircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ocircumflextilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ocircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ocircumflexbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ohornacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ohornacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ohorngrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ohorngrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ohornhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ohornhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ohorntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ohorntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ohornbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ohornbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ubelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ubelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uhornacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uhornacute ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uhorngrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uhorngrave ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uhornhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uhornhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uhorntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uhorntilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uhornbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uhornbelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ybelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ybelowdot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Yhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_yhook ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ytilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ytilde ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Ohorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ohorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Uhorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_uhorn ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_EcuSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ColonSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_CruzeiroSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_FFrancSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_LiraSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_MillSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_NairaSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_PesetaSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_RupeeSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_WonSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_NewSheqelSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_DongSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_EuroSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_zerosuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_foursuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_fivesuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_sixsuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_sevensuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_eightsuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ninesuperior ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_zerosubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_onesubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_twosubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_threesubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_foursubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_fivesubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_sixsubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_sevensubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_eightsubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_ninesubscript ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_partdifferential ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_emptyset ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_elementof ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_notelementof ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_containsas ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_squareroot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_cuberoot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_fourthroot ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_dintegral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_tintegral ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_because ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_approxeq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_notapproxeq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_notidentical ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_stricteq ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dot_10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_blank ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_14 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_24 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_124 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_34 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_134 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_234 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1234 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_5 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_15 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_25 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_125 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_35 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_135 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_235 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1235 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_45 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_145 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_245 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1245 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_345 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1345 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2345 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12345 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_6 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_26 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_126 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_36 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_136 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_236 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1236 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_46 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_146 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_246 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1246 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_346 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1346 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2346 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12346 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_56 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_156 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_256 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1256 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_356 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1356 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2356 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12356 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123456 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_7 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_17 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_27 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_127 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_37 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_137 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_237 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1237 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_47 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_147 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_247 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1247 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_347 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1347 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2347 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12347 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_57 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_157 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_257 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1257 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_357 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1357 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2357 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12357 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123457 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_67 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_167 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_267 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1267 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_367 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1367 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2367 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12367 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123467 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_4567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_14567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_24567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_124567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_34567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_134567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_234567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1234567 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_18 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_28 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_128 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_38 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_138 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_238 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1238 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_48 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_148 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_248 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1248 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_348 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1348 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2348 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12348 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_58 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_158 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_258 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1258 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_358 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1358 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2358 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12358 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123458 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_68 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_168 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_268 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1268 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_368 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1368 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2368 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12368 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123468 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_4568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_14568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_24568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_124568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_34568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_134568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_234568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1234568 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_78 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_178 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_278 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1278 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_378 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1378 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2378 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12378 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123478 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_4578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_14578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_24578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_124578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_34578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_134578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_234578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1234578 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_3678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_13678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_23678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_123678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_4678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_14678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_24678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_124678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_34678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_134678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_234678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1234678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_5678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_15678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_25678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_125678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_35678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_135678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_235678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1235678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_45678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_145678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_245678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1245678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_345678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_1345678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_2345678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_braille_dots_12345678 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ng ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_h2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_a ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_aa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ae ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_aee ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_i ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ii ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_u ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_uu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ri ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_rii ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_lu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_luu ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_e ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ee ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ai ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_o ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_oo ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_au ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ka ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_kha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ga ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_gha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ng2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_nga ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ca ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_cha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_jha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_nya ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_jnya ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_nja ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_tta ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ttha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_dda ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ddha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_nna ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ndda ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_tha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_thha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_dha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_dhha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_na ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ndha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_pa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_pha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ba ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_bha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ma ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_mba ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ya ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ra ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_la ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_va ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_sha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ssha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_sa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ha ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_lla ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_fa ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_al ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_aa2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ae2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_aee2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_i2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ii2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_u2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_uu2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ru2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_e2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ee2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ai2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_o2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_oo2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_au2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_lu2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_ruu2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_luu2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_KEY_Sinh_kunddaliya ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/reference/ibus/tmpl/ibuslookuptable.sgml b/docs/reference/ibus/tmpl/ibuslookuptable.sgml
new file mode 100644 (file)
index 0000000..9df2a88
--- /dev/null
@@ -0,0 +1,256 @@
+<!-- ##### SECTION Title ##### -->
+IBusLookupTable
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusLookupTable ##### -->
+<para>
+
+</para>
+
+@page_size: 
+@cursor_pos: 
+@cursor_visible: 
+@round: 
+@orientation: 
+@candidates: 
+@labels: 
+
+<!-- ##### STRUCT IBusLookupTableClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_lookup_table_new ##### -->
+<para>
+
+</para>
+
+@page_size: 
+@cursor_pos: 
+@cursor_visible: 
+@round: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_append_candidate ##### -->
+<para>
+
+</para>
+
+@table: 
+@text: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_get_number_of_candidates ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_get_candidate ##### -->
+<para>
+
+</para>
+
+@table: 
+@index: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_append_label ##### -->
+<para>
+
+</para>
+
+@table: 
+@text: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_set_label ##### -->
+<para>
+
+</para>
+
+@table: 
+@index: 
+@text: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_get_label ##### -->
+<para>
+
+</para>
+
+@table: 
+@index: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_set_cursor_pos ##### -->
+<para>
+
+</para>
+
+@table: 
+@cursor_pos: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_get_cursor_pos ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_set_cursor_visible ##### -->
+<para>
+
+</para>
+
+@table: 
+@visible: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_is_cursor_visible ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_get_cursor_in_page ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_set_page_size ##### -->
+<para>
+
+</para>
+
+@table: 
+@page_size: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_get_page_size ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_set_round ##### -->
+<para>
+
+</para>
+
+@table: 
+@round: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_is_round ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_set_orientation ##### -->
+<para>
+
+</para>
+
+@table: 
+@orientation: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_get_orientation ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_clear ##### -->
+<para>
+
+</para>
+
+@table: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_page_up ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_page_down ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_cursor_up ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_lookup_table_cursor_down ##### -->
+<para>
+
+</para>
+
+@table: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusobject.sgml b/docs/reference/ibus/tmpl/ibusobject.sgml
new file mode 100644 (file)
index 0000000..211002d
--- /dev/null
@@ -0,0 +1,78 @@
+<!-- ##### SECTION Title ##### -->
+IBusObject
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO IBUS_OBJECT_IN_DESTRUCTION ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+
+<!-- ##### MACRO IBUS_OBJECT_DESTROYED ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+
+<!-- ##### STRUCT IBusObject ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL IBusObject::destroy ##### -->
+<para>
+
+</para>
+
+@ibusobject: the object which received the signal.
+
+<!-- ##### STRUCT IBusObjectClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+@destroy: 
+
+<!-- ##### FUNCTION ibus_object_new ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_object_destroy ##### -->
+<para>
+
+</para>
+
+@object: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusobservedpath.sgml b/docs/reference/ibus/tmpl/ibusobservedpath.sgml
new file mode 100644 (file)
index 0000000..3a44c74
--- /dev/null
@@ -0,0 +1,90 @@
+<!-- ##### SECTION Title ##### -->
+IBusObservedPath
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusObservedPath ##### -->
+<para>
+
+</para>
+
+@path: 
+@mtime: 
+@is_dir: 
+@is_exist: 
+
+<!-- ##### STRUCT IBusObservedPathClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_observed_path_new_from_xml_node ##### -->
+<para>
+
+</para>
+
+@node: 
+@fill_stat: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_observed_path_new ##### -->
+<para>
+
+</para>
+
+@path: 
+@fill_stat: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_observed_path_traverse ##### -->
+<para>
+
+</para>
+
+@path: 
+@dir_only: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_observed_path_check_modification ##### -->
+<para>
+
+</para>
+
+@path: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_observed_path_output ##### -->
+<para>
+
+</para>
+
+@path: 
+@output: 
+@indent: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibuspanelservice.sgml b/docs/reference/ibus/tmpl/ibuspanelservice.sgml
new file mode 100644 (file)
index 0000000..9db3fbd
--- /dev/null
@@ -0,0 +1,325 @@
+<!-- ##### SECTION Title ##### -->
+IBusPanelService
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusPanelService ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL IBusPanelService::cursor-down-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::cursor-up-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::destroy-context ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusPanelService::focus-in ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusPanelService::focus-out ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusPanelService::hide-auxiliary-text ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::hide-language-bar ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::hide-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::hide-preedit-text ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::page-down-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::page-up-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::register-properties ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+@arg1: 
+
+<!-- ##### SIGNAL IBusPanelService::reset ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::set-cursor-location ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+@arg4: 
+
+<!-- ##### SIGNAL IBusPanelService::show-auxiliary-text ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::show-language-bar ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::show-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::show-preedit-text ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::start-setup ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::state-changed ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+
+<!-- ##### SIGNAL IBusPanelService::update-auxiliary-text ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+@arg1: 
+@arg2: 
+
+<!-- ##### SIGNAL IBusPanelService::update-lookup-table ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+@arg1: 
+@arg2: 
+
+<!-- ##### SIGNAL IBusPanelService::update-preedit-text ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+@arg1: 
+@arg2: 
+@arg3: 
+
+<!-- ##### SIGNAL IBusPanelService::update-property ##### -->
+<para>
+
+</para>
+
+@ibuspanelservice: the object which received the signal.
+@arg1: 
+
+<!-- ##### STRUCT IBusPanelServiceClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+@focus_in: 
+@focus_out: 
+@register_properties: 
+@set_cursor_location: 
+@update_auxiliary_text: 
+@update_lookup_table: 
+@update_preedit_text: 
+@update_property: 
+@cursor_down_lookup_table: 
+@cursor_up_lookup_table: 
+@hide_auxiliary_text: 
+@hide_language_bar: 
+@hide_lookup_table: 
+@hide_preedit_text: 
+@page_down_lookup_table: 
+@page_up_lookup_table: 
+@reset: 
+@show_auxiliary_text: 
+@show_language_bar: 
+@show_lookup_table: 
+@show_preedit_text: 
+@start_setup: 
+@state_changed: 
+@destroy_context: 
+
+<!-- ##### FUNCTION ibus_panel_service_new ##### -->
+<para>
+
+</para>
+
+@connection: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_panel_service_candidate_clicked ##### -->
+<para>
+
+</para>
+
+@panel: 
+@index: 
+@button: 
+@state: 
+
+
+<!-- ##### FUNCTION ibus_panel_service_cursor_down ##### -->
+<para>
+
+</para>
+
+@panel: 
+
+
+<!-- ##### FUNCTION ibus_panel_service_cursor_up ##### -->
+<para>
+
+</para>
+
+@panel: 
+
+
+<!-- ##### FUNCTION ibus_panel_service_page_down ##### -->
+<para>
+
+</para>
+
+@panel: 
+
+
+<!-- ##### FUNCTION ibus_panel_service_page_up ##### -->
+<para>
+
+</para>
+
+@panel: 
+
+
+<!-- ##### FUNCTION ibus_panel_service_property_activate ##### -->
+<para>
+
+</para>
+
+@panel: 
+@prop_name: 
+@prop_state: 
+
+
+<!-- ##### FUNCTION ibus_panel_service_property_show ##### -->
+<para>
+
+</para>
+
+@panel: 
+@prop_name: 
+
+
+<!-- ##### FUNCTION ibus_panel_service_property_hide ##### -->
+<para>
+
+</para>
+
+@panel: 
+@prop_name: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusproperty.sgml b/docs/reference/ibus/tmpl/ibusproperty.sgml
new file mode 100644 (file)
index 0000000..a4e6ab4
--- /dev/null
@@ -0,0 +1,320 @@
+<!-- ##### SECTION Title ##### -->
+IBusProperty
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### ENUM IBusPropType ##### -->
+<para>
+
+</para>
+
+@PROP_TYPE_NORMAL: 
+@PROP_TYPE_TOGGLE: 
+@PROP_TYPE_RADIO: 
+@PROP_TYPE_MENU: 
+@PROP_TYPE_SEPARATOR: 
+
+<!-- ##### ENUM IBusPropState ##### -->
+<para>
+
+</para>
+
+@PROP_STATE_UNCHECKED: 
+@PROP_STATE_CHECKED: 
+@PROP_STATE_INCONSISTENT: 
+
+<!-- ##### STRUCT IBusProperty ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ARG IBusProperty:icon ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusProperty:key ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusProperty:label ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusProperty:prop-type ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusProperty:sensitive ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusProperty:state ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusProperty:sub-props ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusProperty:symbol ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusProperty:tooltip ##### -->
+<para>
+
+</para>
+
+<!-- ##### ARG IBusProperty:visible ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT IBusPropertyClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_property_new ##### -->
+<para>
+
+</para>
+
+@key: 
+@type: 
+@label: 
+@icon: 
+@tooltip: 
+@sensitive: 
+@visible: 
+@state: 
+@prop_list: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_new_varargs ##### -->
+<para>
+
+</para>
+
+@first_property_name: 
+@...: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_get_key ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_get_label ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_set_label ##### -->
+<para>
+
+</para>
+
+@prop: 
+@label: 
+
+
+<!-- ##### FUNCTION ibus_property_get_symbol ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_set_symbol ##### -->
+<para>
+
+</para>
+
+@prop: 
+@symbol: 
+
+
+<!-- ##### FUNCTION ibus_property_get_icon ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_set_icon ##### -->
+<para>
+
+</para>
+
+@prop: 
+@icon: 
+
+
+<!-- ##### FUNCTION ibus_property_get_tooltip ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_set_tooltip ##### -->
+<para>
+
+</para>
+
+@prop: 
+@tooltip: 
+
+
+<!-- ##### FUNCTION ibus_property_get_sensitive ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_set_sensitive ##### -->
+<para>
+
+</para>
+
+@prop: 
+@sensitive: 
+
+
+<!-- ##### FUNCTION ibus_property_get_visible ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_set_visible ##### -->
+<para>
+
+</para>
+
+@prop: 
+@visible: 
+
+
+<!-- ##### FUNCTION ibus_property_get_prop_type ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_get_state ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_set_state ##### -->
+<para>
+
+</para>
+
+@prop: 
+@state: 
+
+
+<!-- ##### FUNCTION ibus_property_get_sub_props ##### -->
+<para>
+
+</para>
+
+@prop: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_property_set_sub_props ##### -->
+<para>
+
+</para>
+
+@prop: 
+@prop_list: 
+
+
+<!-- ##### FUNCTION ibus_property_update ##### -->
+<para>
+
+</para>
+
+@prop: 
+@prop_update: 
+@Returns: 
+
+
+<!-- ##### STRUCT IBusPropListClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### STRUCT IBusPropList ##### -->
+<para>
+
+</para>
+
+@properties: 
+
diff --git a/docs/reference/ibus/tmpl/ibusproplist.sgml b/docs/reference/ibus/tmpl/ibusproplist.sgml
new file mode 100644 (file)
index 0000000..0a57973
--- /dev/null
@@ -0,0 +1,75 @@
+<!-- ##### SECTION Title ##### -->
+IBusPropList
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusPropList ##### -->
+<para>
+
+</para>
+
+@properties: 
+
+<!-- ##### STRUCT IBusPropListClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_prop_list_new ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_prop_list_append ##### -->
+<para>
+
+</para>
+
+@prop_list: 
+@prop: 
+
+
+<!-- ##### FUNCTION ibus_prop_list_get ##### -->
+<para>
+
+</para>
+
+@prop_list: 
+@index: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_prop_list_update_property ##### -->
+<para>
+
+</para>
+
+@prop_list: 
+@prop: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusproxy.sgml b/docs/reference/ibus/tmpl/ibusproxy.sgml
new file mode 100644 (file)
index 0000000..a4eb7a2
--- /dev/null
@@ -0,0 +1,87 @@
+<!-- ##### SECTION Title ##### -->
+IBusProxy
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO IBUS_PROXY_FLAGS ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+
+<!-- ##### MACRO IBUS_PROXY_SET_FLAGS ##### -->
+<para>
+
+</para>
+
+@obj: 
+@flag: 
+
+
+<!-- ##### MACRO IBUS_PROXY_UNSET_FLAGS ##### -->
+<para>
+
+</para>
+
+@obj: 
+@flag: 
+
+
+<!-- ##### MACRO IBUS_PROXY_DESTROYED ##### -->
+<para>
+
+</para>
+
+@obj: 
+
+
+<!-- ##### STRUCT IBusProxy ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL IBusProxy::destroy ##### -->
+<para>
+
+</para>
+
+@ibusproxy: the object which received the signal.
+
+<!-- ##### STRUCT IBusProxyClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+@destroy: 
+
+<!-- ##### FUNCTION ibus_proxy_destroy ##### -->
+<para>
+
+</para>
+
+@proxy: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusregistry.sgml b/docs/reference/ibus/tmpl/ibusregistry.sgml
new file mode 100644 (file)
index 0000000..e3673a4
--- /dev/null
@@ -0,0 +1,154 @@
+<!-- ##### SECTION Title ##### -->
+IBusRegistry
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusRegistry ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SIGNAL IBusRegistry::changed ##### -->
+<para>
+
+</para>
+
+@ibusregistry: the object which received the signal.
+
+<!-- ##### STRUCT IBusRegistryClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION ibus_registry_new ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_registry_load ##### -->
+<para>
+
+</para>
+
+@registry: 
+
+
+<!-- ##### FUNCTION ibus_registry_load_in_dir ##### -->
+<para>
+
+</para>
+
+@registry: 
+@dirname: 
+
+
+<!-- ##### FUNCTION ibus_registry_load_cache ##### -->
+<para>
+
+</para>
+
+@registry: 
+@is_user: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_registry_load_cache_file ##### -->
+<para>
+
+</para>
+
+@registry: 
+@filename: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_registry_save_cache ##### -->
+<para>
+
+</para>
+
+@registry: 
+@is_user: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_registry_save_cache_file ##### -->
+<para>
+
+</para>
+
+@registry: 
+@filename: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_registry_output ##### -->
+<para>
+
+</para>
+
+@registry: 
+@output: 
+@indent: 
+
+
+<!-- ##### FUNCTION ibus_registry_check_modification ##### -->
+<para>
+
+</para>
+
+@registry: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_registry_get_components ##### -->
+<para>
+
+</para>
+
+@registry: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_registry_get_observed_paths ##### -->
+<para>
+
+</para>
+
+@registry: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_registry_start_monitor_changes ##### -->
+<para>
+
+</para>
+
+@registry: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusserializable.sgml b/docs/reference/ibus/tmpl/ibusserializable.sgml
new file mode 100644 (file)
index 0000000..25fd44f
--- /dev/null
@@ -0,0 +1,159 @@
+<!-- ##### SECTION Title ##### -->
+IBusSerializable
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO ibus_serializable_set_attachment ##### -->
+<para>
+
+</para>
+
+@o: 
+@k: 
+@v: 
+
+
+<!-- ##### MACRO ibus_serializable_get_attachment ##### -->
+<para>
+
+</para>
+
+@o: 
+@k: 
+
+
+<!-- ##### MACRO ibus_serializable_remove_attachment ##### -->
+<para>
+
+</para>
+
+@o: 
+@k: 
+
+
+<!-- ##### STRUCT IBusSerializable ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### USER_FUNCTION IBusSerializableSerializeFunc ##### -->
+<para>
+
+</para>
+
+@serializable: 
+@builder: 
+@Returns: 
+
+
+<!-- ##### USER_FUNCTION IBusSerializableDeserializeFunc ##### -->
+<para>
+
+</para>
+
+@serializable: 
+@variant: 
+@Returns: 
+
+
+<!-- ##### USER_FUNCTION IBusSerializableCopyFunc ##### -->
+<para>
+
+</para>
+
+@dest: 
+@src: 
+@Returns: 
+
+
+<!-- ##### STRUCT IBusSerializableClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION ibus_serializable_new ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_serializable_set_qattachment ##### -->
+<para>
+
+</para>
+
+@serializable: 
+@key: 
+@value: 
+
+
+<!-- ##### FUNCTION ibus_serializable_get_qattachment ##### -->
+<para>
+
+</para>
+
+@serializable: 
+@key: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_serializable_remove_qattachment ##### -->
+<para>
+
+</para>
+
+@serializable: 
+@key: 
+
+
+<!-- ##### FUNCTION ibus_serializable_copy ##### -->
+<para>
+
+</para>
+
+@serializable: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_serializable_serialize ##### -->
+<para>
+
+</para>
+
+@serializable: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_serializable_deserialize ##### -->
+<para>
+
+</para>
+
+@variant: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusservice.sgml b/docs/reference/ibus/tmpl/ibusservice.sgml
new file mode 100644 (file)
index 0000000..775f0f3
--- /dev/null
@@ -0,0 +1,111 @@
+<!-- ##### SECTION Title ##### -->
+IBusService
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusService ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT IBusServiceClass ##### -->
+<para>
+
+</para>
+
+@service_method_call: 
+@service_get_property: 
+@service_set_property: 
+
+<!-- ##### FUNCTION ibus_service_new ##### -->
+<para>
+
+</para>
+
+@connection: 
+@path: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_service_get_object_path ##### -->
+<para>
+
+</para>
+
+@service: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_service_get_connection ##### -->
+<para>
+
+</para>
+
+@service: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_service_register ##### -->
+<para>
+
+</para>
+
+@service: 
+@connection: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_service_unregister ##### -->
+<para>
+
+</para>
+
+@service: 
+@connection: 
+
+
+<!-- ##### FUNCTION ibus_service_emit_signal ##### -->
+<para>
+
+</para>
+
+@service: 
+@dest_bus_name: 
+@interface_name: 
+@signal_name: 
+@parameters: 
+@error: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_service_class_add_interfaces ##### -->
+<para>
+
+</para>
+
+@klass: 
+@xml_data: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusshare.sgml b/docs/reference/ibus/tmpl/ibusshare.sgml
new file mode 100644 (file)
index 0000000..ec2debc
--- /dev/null
@@ -0,0 +1,289 @@
+<!-- ##### SECTION Title ##### -->
+ibusshare
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO IBUS_DEPRECATED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_SERVICE_IBUS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_SERVICE_PANEL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_SERVICE_CONFIG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_SERVICE_NOTIFICATIONS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_PATH_IBUS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_PATH_FACTORY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_PATH_PANEL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_PATH_CONFIG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_PATH_NOTIFICATIONS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_PATH_INPUT_CONTEXT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_INTERFACE_IBUS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_INTERFACE_INPUT_CONTEXT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_INTERFACE_FACTORY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_INTERFACE_ENGINE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_INTERFACE_PANEL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_INTERFACE_CONFIG ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_INTERFACE_NOTIFICATIONS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION ibus_get_local_machine_id ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_set_display ##### -->
+<para>
+
+</para>
+
+@display: 
+
+
+<!-- ##### FUNCTION ibus_get_address ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_write_address ##### -->
+<para>
+
+</para>
+
+@address: 
+
+
+<!-- ##### FUNCTION ibus_get_user_name ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_get_daemon_uid ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_get_socket_path ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_get_timeout ##### -->
+<para>
+
+</para>
+
+@void: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_free_strv ##### -->
+<para>
+
+</para>
+
+@strv: 
+
+
+<!-- ##### FUNCTION ibus_key_event_to_string ##### -->
+<para>
+
+</para>
+
+@keyval: 
+@modifiers: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_key_event_from_string ##### -->
+<para>
+
+</para>
+
+@string: 
+@keyval: 
+@modifiers: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_init ##### -->
+<para>
+
+</para>
+
+@void: 
+
+
+<!-- ##### FUNCTION ibus_main ##### -->
+<para>
+
+</para>
+
+@void: 
+
+
+<!-- ##### FUNCTION ibus_quit ##### -->
+<para>
+
+</para>
+
+@void: 
+
+
+<!-- ##### FUNCTION ibus_set_log_handler ##### -->
+<para>
+
+</para>
+
+@verbose: 
+
+
+<!-- ##### FUNCTION ibus_unset_log_handler ##### -->
+<para>
+
+</para>
+
+@void: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibustext.sgml b/docs/reference/ibus/tmpl/ibustext.sgml
new file mode 100644 (file)
index 0000000..0013c8f
--- /dev/null
@@ -0,0 +1,143 @@
+<!-- ##### SECTION Title ##### -->
+IBusText
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT IBusText ##### -->
+<para>
+
+</para>
+
+@is_static: 
+@text: 
+@attrs: 
+
+<!-- ##### STRUCT IBusTextClass ##### -->
+<para>
+
+</para>
+
+@parent: 
+
+<!-- ##### FUNCTION ibus_text_new_from_string ##### -->
+<para>
+
+</para>
+
+@str: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_text_new_from_ucs4 ##### -->
+<para>
+
+</para>
+
+@str: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_text_new_from_static_string ##### -->
+<para>
+
+</para>
+
+@str: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_text_new_from_printf ##### -->
+<para>
+
+</para>
+
+@fmt: 
+@...: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_text_new_from_unichar ##### -->
+<para>
+
+</para>
+
+@c: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_text_append_attribute ##### -->
+<para>
+
+</para>
+
+@text: 
+@type: 
+@value: 
+@start_index: 
+@end_index: 
+
+
+<!-- ##### FUNCTION ibus_text_get_length ##### -->
+<para>
+
+</para>
+
+@text: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_text_get_is_static ##### -->
+<para>
+
+</para>
+
+@text: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_text_get_text ##### -->
+<para>
+
+</para>
+
+@text: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_text_get_attributes ##### -->
+<para>
+
+</para>
+
+@text: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_text_set_attributes ##### -->
+<para>
+
+</para>
+
+@text: 
+@attrs: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibustypes.sgml b/docs/reference/ibus/tmpl/ibustypes.sgml
new file mode 100644 (file)
index 0000000..38d1dc3
--- /dev/null
@@ -0,0 +1,165 @@
+<!-- ##### SECTION Title ##### -->
+ibustypes
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### ENUM IBusModifierType ##### -->
+<para>
+
+</para>
+
+@IBUS_SHIFT_MASK: 
+@IBUS_LOCK_MASK: 
+@IBUS_CONTROL_MASK: 
+@IBUS_MOD1_MASK: 
+@IBUS_MOD2_MASK: 
+@IBUS_MOD3_MASK: 
+@IBUS_MOD4_MASK: 
+@IBUS_MOD5_MASK: 
+@IBUS_BUTTON1_MASK: 
+@IBUS_BUTTON2_MASK: 
+@IBUS_BUTTON3_MASK: 
+@IBUS_BUTTON4_MASK: 
+@IBUS_BUTTON5_MASK: 
+@IBUS_HANDLED_MASK: 
+@IBUS_FORWARD_MASK: 
+@IBUS_IGNORED_MASK: 
+@IBUS_SUPER_MASK: 
+@IBUS_HYPER_MASK: 
+@IBUS_META_MASK: 
+@IBUS_RELEASE_MASK: 
+@IBUS_MODIFIER_MASK: 
+
+<!-- ##### ENUM IBusCapabilite ##### -->
+<para>
+
+</para>
+
+@IBUS_CAP_PREEDIT_TEXT: 
+@IBUS_CAP_AUXILIARY_TEXT: 
+@IBUS_CAP_LOOKUP_TABLE: 
+@IBUS_CAP_FOCUS: 
+@IBUS_CAP_PROPERTY: 
+@IBUS_CAP_SURROUNDING_TEXT: 
+
+<!-- ##### ENUM IBusPreeditFocusMode ##### -->
+<para>
+
+</para>
+
+@IBUS_ENGINE_PREEDIT_CLEAR: 
+@IBUS_ENGINE_PREEDIT_COMMIT: 
+
+<!-- ##### ENUM IBusOrientation ##### -->
+<para>
+
+</para>
+
+@IBUS_ORIENTATION_HORIZONTAL: 
+@IBUS_ORIENTATION_VERTICAL: 
+@IBUS_ORIENTATION_SYSTEM: 
+
+<!-- ##### ENUM IBusBusNameFlag ##### -->
+<para>
+
+</para>
+
+@IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT: 
+@IBUS_BUS_NAME_FLAG_REPLACE_EXISTING: 
+@IBUS_BUS_NAME_FLAG_DO_NOT_QUEUE: 
+
+<!-- ##### ENUM IBusBusRequestNameReply ##### -->
+<para>
+
+</para>
+
+@IBUS_BUS_REQUEST_NAME_REPLY_PRIMARY_OWNER: 
+@IBUS_BUS_REQUEST_NAME_REPLY_IN_QUEUE: 
+@IBUS_BUS_REQUEST_NAME_REPLY_EXISTS: 
+@IBUS_BUS_REQUEST_NAME_REPLY_ALREADY_OWNER: 
+
+<!-- ##### ENUM IBusBusStartServiceByNameReply ##### -->
+<para>
+
+</para>
+
+@IBUS_BUS_START_REPLY_SUCCESS: 
+@IBUS_BUS_START_REPLY_ALREADY_RUNNING: 
+
+<!-- ##### ENUM IBusError ##### -->
+<para>
+
+</para>
+
+@IBUS_ERROR_NO_ENGINE: 
+@IBUS_ERROR_NO_CONFIG: 
+@IBUS_ERROR_FAILED: 
+
+<!-- ##### STRUCT IBusRectangle ##### -->
+<para>
+
+</para>
+
+@x: 
+@y: 
+@width: 
+@height: 
+
+<!-- ##### USER_FUNCTION IBusFreeFunc ##### -->
+<para>
+
+</para>
+
+@object: 
+
+
+<!-- ##### ENUM IBusInputPurpose ##### -->
+<para>
+
+</para>
+
+@IBUS_INPUT_PURPOSE_FREE_FORM: 
+@IBUS_INPUT_PURPOSE_ALPHA: 
+@IBUS_INPUT_PURPOSE_DIGITS: 
+@IBUS_INPUT_PURPOSE_NUMBER: 
+@IBUS_INPUT_PURPOSE_PHONE: 
+@IBUS_INPUT_PURPOSE_URL: 
+@IBUS_INPUT_PURPOSE_EMAIL: 
+@IBUS_INPUT_PURPOSE_NAME: 
+@IBUS_INPUT_PURPOSE_PASSWORD: 
+@IBUS_INPUT_PURPOSE_PIN: 
+
+<!-- ##### ENUM IBusInputHints ##### -->
+<para>
+
+</para>
+
+@IBUS_INPUT_HINT_NONE: 
+@IBUS_INPUT_HINT_SPELLCHECK: 
+@IBUS_INPUT_HINT_NO_SPELLCHECK: 
+@IBUS_INPUT_HINT_WORD_COMPLETION: 
+@IBUS_INPUT_HINT_LOWERCASE: 
+@IBUS_INPUT_HINT_UPPERCASE_CHARS: 
+@IBUS_INPUT_HINT_UPPERCASE_WORDS: 
+@IBUS_INPUT_HINT_UPPERCASE_SENTENCES: 
+@IBUS_INPUT_HINT_INHIBIT_OSK: 
+
diff --git a/docs/reference/ibus/tmpl/ibusutil.sgml b/docs/reference/ibus/tmpl/ibusutil.sgml
new file mode 100644 (file)
index 0000000..95e75ca
--- /dev/null
@@ -0,0 +1,33 @@
+<!-- ##### SECTION Title ##### -->
+ibusutil
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION ibus_get_language_name ##### -->
+<para>
+
+</para>
+
+@_locale: 
+@Returns: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusversion.sgml b/docs/reference/ibus/tmpl/ibusversion.sgml
new file mode 100644 (file)
index 0000000..261a251
--- /dev/null
@@ -0,0 +1,55 @@
+<!-- ##### SECTION Title ##### -->
+ibusversion
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO IBUS_MAJOR_VERSION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_MINOR_VERSION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_MICRO_VERSION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO IBUS_CHECK_VERSION ##### -->
+<para>
+
+</para>
+
+@major: 
+@minor: 
+@micro: 
+
+
diff --git a/docs/reference/ibus/tmpl/ibusxml.sgml b/docs/reference/ibus/tmpl/ibusxml.sgml
new file mode 100644 (file)
index 0000000..6492c80
--- /dev/null
@@ -0,0 +1,69 @@
+<!-- ##### SECTION Title ##### -->
+ibusxml
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT XMLNode ##### -->
+<para>
+
+</para>
+
+@name: 
+@text: 
+@attributes: 
+@sub_nodes: 
+
+<!-- ##### FUNCTION ibus_xml_parse_file ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_xml_parse_buffer ##### -->
+<para>
+
+</para>
+
+@buffer: 
+@Returns: 
+
+
+<!-- ##### FUNCTION ibus_xml_free ##### -->
+<para>
+
+</para>
+
+@node: 
+
+
+<!-- ##### FUNCTION ibus_xml_output ##### -->
+<para>
+
+</para>
+
+@node: 
+@output: 
+
+
diff --git a/docs/specification b/docs/specification
deleted file mode 100644 (file)
index 4788229..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-IM Specification
-Peng Huang <shawn.p.huang@gmail.com>
-
-1. Introducation
-       About
-       Architecture
-
-
-Chapter 1 Introducation
-
-About
-
-This document contain the specification of IM which is a software that managers all input services in the system.
-
-Architecture
-
-IM manager provides a directory service. All IM services will register themself in this directory service. All clients can enumerate serivces in a specified directoy folder and get a nodification when a specified folder's contain be changed.
-
diff --git a/engine/Makefile.in b/engine/Makefile.in
new file mode 100644 (file)
index 0000000..8aeafe3
--- /dev/null
@@ -0,0 +1,931 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2010, Google Inc. All rights reserved.
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@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
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+libexec_PROGRAMS = ibus-engine-simple$(EXEEXT)
+subdir = engine
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am main.c \
+       $(top_srcdir)/depcomp $(srcdir)/ibus_engine_simple_vala.stamp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(libexecdir)" \
+       "$(DESTDIR)$(componentdir)"
+PROGRAMS = $(libexec_PROGRAMS)
+am_ibus_engine_simple_OBJECTS = ibus_engine_simple-main.$(OBJEXT)
+ibus_engine_simple_OBJECTS = $(am_ibus_engine_simple_OBJECTS)
+am__DEPENDENCIES_1 = $(libibus)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+ibus_engine_simple_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(ibus_engine_simple_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+       $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+VALACOMPILE = $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS)
+LTVALACOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(VALAC) $(AM_VALAFLAGS) \
+       $(VALAFLAGS)
+AM_V_VALAC = $(am__v_VALAC_@AM_V@)
+am__v_VALAC_ = $(am__v_VALAC_@AM_DEFAULT_V@)
+am__v_VALAC_0 = @echo "  VALAC   " $@;
+am__v_VALAC_1 = 
+SOURCES = $(ibus_engine_simple_SOURCES)
+DIST_SOURCES = $(ibus_engine_simple_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+DATA = $(component_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+AM_CPPFLAGS = \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       $(NULL)
+
+AM_CFLAGS = \
+       @GLIB2_CFLAGS@ \
+       @GIO2_CFLAGS@ \
+       @GTHREAD2_CFLAGS@ \
+       -DG_LOG_DOMAIN=\"IBUS\" \
+       -DPKGDATADIR=\"$(pkgdatadir)\" \
+       -DLIBEXECDIR=\"$(libexecdir)\" \
+       -DBINDIR=\"@bindir@\" \
+    -DIBUS_DISABLE_DEPRECATED \
+       -Wno-unused-variable \
+       -Wno-unused-but-set-variable \
+       -Wno-unused-function \
+       $(NULL)
+
+AM_LDADD = \
+       @GOBJECT2_LIBS@ \
+       @GLIB2_LIBS@ \
+       @GIO2_LIBS@ \
+       @GTHREAD2_LIBS@ \
+       $(libibus) \
+       $(NULL)
+
+AM_VALAFLAGS = \
+       --vapidir=$(top_builddir)/bindings/vala \
+       --pkg=ibus-1.0 \
+       --target-glib="$(VALA_TARGET_GLIB_VERSION)" \
+       $(NULL)
+
+ibus_engine_simple_SOURCES = \
+       main.vala \
+       $(NULL)
+
+ibus_engine_simple_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(NULL)
+
+ibus_engine_simple_LDADD = \
+       $(AM_LDADD) \
+       $(NULL)
+
+ibus_engine_simple_DEPENDENCIES = \
+       $(libibus) \
+       $(NULL)
+
+component_DATA = \
+       simple.xml \
+       $(NULL)
+
+componentdir = $(pkgdatadir)/component
+CLEANFILES = \
+       simple.xml \
+       $(NULL)
+
+EXTRA_DIST = \
+       simple.xml.in \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu engine/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu engine/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-libexecPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
+
+clean-libexecPROGRAMS:
+       @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus-engine-simple$(EXEEXT): $(ibus_engine_simple_OBJECTS) $(ibus_engine_simple_DEPENDENCIES) $(EXTRA_ibus_engine_simple_DEPENDENCIES) 
+       @rm -f ibus-engine-simple$(EXEEXT)
+       $(AM_V_CCLD)$(ibus_engine_simple_LINK) $(ibus_engine_simple_OBJECTS) $(ibus_engine_simple_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_engine_simple-main.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ibus_engine_simple-main.o: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_engine_simple_CFLAGS) $(CFLAGS) -MT ibus_engine_simple-main.o -MD -MP -MF $(DEPDIR)/ibus_engine_simple-main.Tpo -c -o ibus_engine_simple-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_engine_simple-main.Tpo $(DEPDIR)/ibus_engine_simple-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_engine_simple-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_engine_simple_CFLAGS) $(CFLAGS) -c -o ibus_engine_simple-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+ibus_engine_simple-main.obj: main.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_engine_simple_CFLAGS) $(CFLAGS) -MT ibus_engine_simple-main.obj -MD -MP -MF $(DEPDIR)/ibus_engine_simple-main.Tpo -c -o ibus_engine_simple-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_engine_simple-main.Tpo $(DEPDIR)/ibus_engine_simple-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='main.c' object='ibus_engine_simple-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_engine_simple_CFLAGS) $(CFLAGS) -c -o ibus_engine_simple-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+$(srcdir)/main.c: $(srcdir)/ibus_engine_simple_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_engine_simple_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_engine_simple_vala.stamp; \
+       fi
+$(srcdir)/ibus_engine_simple_vala.stamp: main.vala
+       $(AM_V_at)rm -f $@ && echo stamp > $@-t
+       $(AM_V_VALAC)$(am__cd) $(srcdir) && $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS) -C main.vala
+       $(AM_V_at)mv -f $@-t $@
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-componentDATA: $(component_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(componentdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(componentdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(componentdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(componentdir)" || exit $$?; \
+       done
+
+uninstall-componentDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(componentdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(componentdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -rm -f $(srcdir)/ibus_engine_simple_vala.stamp
+       -rm -f $(srcdir)/main.c
+       -rm -f main.c
+clean: clean-am
+
+clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-componentDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libexecPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-componentDATA uninstall-libexecPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-componentDATA \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-libexecPROGRAMS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+       uninstall-am uninstall-componentDATA uninstall-libexecPROGRAMS
+
+
+simple.xml: simple.xml.in
+       $(AM_V_GEN) sed \
+               -e 's|@VERSION[@]|$(VERSION)|g' \
+               -e 's|@libexecdir[@]|$(libexecdir)|g' $< > $@.tmp && \
+               mv $@.tmp $@
+
+$(libibus):
+       $(MAKE) -C $(top_builddir)/src
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/engine/gensimple.py b/engine/gensimple.py
deleted file mode 100644 (file)
index 857397e..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright (c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 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 program; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-# Boston, MA  02111-1307  USA
-
-import cgi
-import urllib2
-from xml.dom import minidom
-
-def simplfy_dom(node):
-    name = node.nodeName
-    children = {}
-    if len(node.childNodes) == 1 and node.childNodes[0].nodeType == node.TEXT_NODE:
-        return name, node.childNodes[0].nodeValue
-    for child in node.childNodes:
-        if child.nodeType != node.ELEMENT_NODE:
-            continue
-        child_name, child_value = simplfy_dom(child)
-        if child_name not in children:
-            children[child_name] = []
-        children[child_name].append(child_value)
-    return name, children
-
-def parse_xml():
-    filename = "/usr/share/X11/xkb/rules/evdev.xml"
-    dom = minidom.parse(file(filename))
-    name, root = simplfy_dom(dom)
-
-    layouts = root['xkbConfigRegistry'][0]['layoutList'][0]['layout']
-    for layout in layouts:
-        config = layout['configItem'][0]
-        name = config['name'][0]
-        short_desc = config.get('shortDescription', [''])[0]
-        desc = config.get('description', [''])[0]
-        languages = config.get('languageList', [{}])[0].get('iso639Id', [])
-        variants = layout.get('variantList', [{}])[0].get('variant', [])
-        yield name, '', short_desc, desc, languages
-        for variant in variants:
-            variant_config = variant['configItem'][0]
-            variant_name = variant_config['name'][0]
-            variant_short_desc = variant_config.get('shortDescription', [''])[0]
-            variant_desc = variant_config.get('description', [''])[0]
-            variant_languages = variant_config.get('languageList', [{}])[0].get('iso639Id', [])
-            if not isinstance(variant_languages, list):
-                variant_languages = [variant_languages]
-            yield name, variant_name, variant_short_desc, variant_desc, languages + variant_languages
-
-def gen_xml():
-    header = u"""<?xml version="1.0" encoding="utf-8"?>
-<component>
-       <name>org.freedesktop.IBus.Simple</name>
-       <description>A table based simple engine</description>
-       <exec>@libexecdir@/ibus-engine-simple</exec>
-       <version>@VERSION@</version>
-       <author>Peng Huang &lt;shawn.p.huang@gmail.com&gt;</author>
-       <license>GPL</license>
-       <homepage>http://code.google.com/p/ibus</homepage>
-       <textdomain>ibus</textdomain>
-       <engines>"""
-    engine = u"""\t\t<engine>
-                       <name>%s</name>
-                       <language>%s</language>
-                       <license>GPL</license>
-                       <author>Peng Huang &lt;shawn.p.huang@gmail.com&gt;</author>
-                       <layout>%s</layout>
-                       <longname>%s</longname>
-                       <description>%s</description>
-                        <icon>ibus-keyboard</icon>
-                       <rank>%d</rank>
-               </engine>"""
-    footer = u"""\t</engines>
-</component>"""
-
-    print header
-
-    whitelist = parse_whitelist()
-    for name, vname, sdesc, desc, languages in parse_xml():
-        layout = "%s(%s)" % (name, vname) if vname else name
-        for lang in languages:
-            ibus_name = "xkb:%s:%s:%s" % (name, vname, lang)
-            if ibus_name not in whitelist:
-                continue
-            desc = cgi.escape(desc)
-            out = engine % (ibus_name, lang, layout, desc, desc, 99)
-            print out.encode("utf8")
-
-    print footer
-
-def parse_whitelist():
-    url = "http://git.chromium.org/gitweb/?p=chromium/chromium.git;a=blob_plain;f=chrome/browser/chromeos/input_method/ibus_input_methods.txt;hb=HEAD"
-    whitelist = []
-    for line in urllib2.urlopen(url):
-        line = line.strip()
-        if not line:
-            continue
-        if line.startswith("#"):
-            continue
-        whitelist.append(line.split()[0])
-    return set(whitelist)
-
-if __name__ == "__main__":
-    gen_xml()
diff --git a/engine/ibus_engine_simple_vala.stamp b/engine/ibus_engine_simple_vala.stamp
new file mode 100644 (file)
index 0000000..859afb1
--- /dev/null
@@ -0,0 +1 @@
+stamp
diff --git a/engine/main.c b/engine/main.c
new file mode 100644 (file)
index 0000000..c3a9a73
--- /dev/null
@@ -0,0 +1,308 @@
+/* main.c generated by valac 0.20.1, the Vala compiler
+ * generated from main.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <ibus.h>
+#include <stdlib.h>
+#include <string.h>
+#include <locale.h>
+
+
+#define TYPE_DUMMY_ENGINE (dummy_engine_get_type ())
+#define DUMMY_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DUMMY_ENGINE, DummyEngine))
+#define DUMMY_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DUMMY_ENGINE, DummyEngineClass))
+#define IS_DUMMY_ENGINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DUMMY_ENGINE))
+#define IS_DUMMY_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DUMMY_ENGINE))
+#define DUMMY_ENGINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DUMMY_ENGINE, DummyEngineClass))
+
+typedef struct _DummyEngine DummyEngine;
+typedef struct _DummyEngineClass DummyEngineClass;
+typedef struct _DummyEnginePrivate DummyEnginePrivate;
+typedef struct _Block1Data Block1Data;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+
+struct _DummyEngine {
+       IBusEngineSimple parent_instance;
+       DummyEnginePrivate * priv;
+};
+
+struct _DummyEngineClass {
+       IBusEngineSimpleClass parent_class;
+};
+
+struct _Block1Data {
+       int _ref_count_;
+       IBusBus* bus;
+       gint id;
+};
+
+
+static gpointer dummy_engine_parent_class = NULL;
+
+GType dummy_engine_get_type (void) G_GNUC_CONST;
+enum  {
+       DUMMY_ENGINE_DUMMY_PROPERTY
+};
+DummyEngine* dummy_engine_new (void);
+DummyEngine* dummy_engine_construct (GType object_type);
+gint _vala_main (gchar** args, int args_length1);
+static Block1Data* block1_data_ref (Block1Data* _data1_);
+static void block1_data_unref (void * _userdata_);
+static void __lambda2_ (IBusBus* bus);
+static void ___lambda2__ibus_bus_disconnected (IBusBus* _sender, gpointer self);
+static IBusEngine* __lambda3_ (Block1Data* _data1_, IBusFactory* factory, const gchar* name);
+static IBusEngine* ___lambda3__ibus_factory_create_engine (IBusFactory* _sender, const gchar* engine_name, gpointer self);
+
+const guint16 cedilla_compose_seqs[36] = {(guint16) IBUS_KEY_dead_acute, (guint16) IBUS_KEY_C, (guint16) 0, (guint16) 0, (guint16) 0, (guint16) 0x00C7, (guint16) IBUS_KEY_dead_acute, (guint16) IBUS_KEY_c, (guint16) 0, (guint16) 0, (guint16) 0, (guint16) 0x00E7, (guint16) IBUS_KEY_Multi_key, (guint16) IBUS_KEY_apostrophe, (guint16) IBUS_KEY_C, (guint16) 0, (guint16) 0, (guint16) 0x00C7, (guint16) IBUS_KEY_Multi_key, (guint16) IBUS_KEY_apostrophe, (guint16) IBUS_KEY_c, (guint16) 0, (guint16) 0, (guint16) 0x00E7, (guint16) IBUS_KEY_Multi_key, (guint16) IBUS_KEY_C, (guint16) IBUS_KEY_apostrophe, (guint16) 0, (guint16) 0, (guint16) 0x00C7, (guint16) IBUS_KEY_Multi_key, (guint16) IBUS_KEY_c, (guint16) IBUS_KEY_apostrophe, (guint16) 0, (guint16) 0, (guint16) 0x00E7};
+
+DummyEngine* dummy_engine_construct (GType object_type) {
+       DummyEngine * self = NULL;
+       self = (DummyEngine*) g_object_new (object_type, NULL);
+       return self;
+}
+
+
+DummyEngine* dummy_engine_new (void) {
+       return dummy_engine_construct (TYPE_DUMMY_ENGINE);
+}
+
+
+static void dummy_engine_class_init (DummyEngineClass * klass) {
+       dummy_engine_parent_class = g_type_class_peek_parent (klass);
+}
+
+
+static void dummy_engine_instance_init (DummyEngine * self) {
+}
+
+
+GType dummy_engine_get_type (void) {
+       static volatile gsize dummy_engine_type_id__volatile = 0;
+       if (g_once_init_enter (&dummy_engine_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (DummyEngineClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) dummy_engine_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DummyEngine), 0, (GInstanceInitFunc) dummy_engine_instance_init, NULL };
+               GType dummy_engine_type_id;
+               dummy_engine_type_id = g_type_register_static (ibus_engine_simple_get_type (), "DummyEngine", &g_define_type_info, 0);
+               g_once_init_leave (&dummy_engine_type_id__volatile, dummy_engine_type_id);
+       }
+       return dummy_engine_type_id__volatile;
+}
+
+
+static Block1Data* block1_data_ref (Block1Data* _data1_) {
+       g_atomic_int_inc (&_data1_->_ref_count_);
+       return _data1_;
+}
+
+
+static void block1_data_unref (void * _userdata_) {
+       Block1Data* _data1_;
+       _data1_ = (Block1Data*) _userdata_;
+       if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
+               _g_object_unref0 (_data1_->bus);
+               g_slice_free (Block1Data, _data1_);
+       }
+}
+
+
+static void __lambda2_ (IBusBus* bus) {
+       g_return_if_fail (bus != NULL);
+       g_debug ("main.vala:54: bus disconnected");
+       ibus_quit ();
+}
+
+
+static void ___lambda2__ibus_bus_disconnected (IBusBus* _sender, gpointer self) {
+       __lambda2_ (_sender);
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+static IBusEngine* __lambda3_ (Block1Data* _data1_, IBusFactory* factory, const gchar* name) {
+       IBusEngine* result = NULL;
+       static const char path[] = "/org/freedesktop/IBus/engine/simple/%d";
+       const gchar* _tmp0_ = NULL;
+       gchar* _tmp1_;
+       gchar* lang;
+       const gchar* _tmp2_;
+       const gchar* _tmp5_;
+       gint _tmp6_;
+       gint _tmp7_;
+       gchar* _tmp8_ = NULL;
+       gchar* _tmp9_;
+       IBusBus* _tmp10_;
+       GDBusConnection* _tmp11_ = NULL;
+       IBusEngine* _tmp12_;
+       IBusEngine* _tmp13_;
+       IBusEngine* engine;
+       gboolean _tmp14_ = FALSE;
+       const gchar* _tmp15_;
+       gboolean _tmp20_;
+       g_return_val_if_fail (factory != NULL, NULL);
+       g_return_val_if_fail (name != NULL, NULL);
+       _tmp0_ = setlocale (LC_CTYPE, NULL);
+       _tmp1_ = g_strdup (_tmp0_);
+       lang = _tmp1_;
+       _tmp2_ = lang;
+       if (_tmp2_ == NULL) {
+               const gchar* _tmp3_ = NULL;
+               gchar* _tmp4_;
+               _tmp3_ = g_getenv ("LANG");
+               _tmp4_ = g_strdup (_tmp3_);
+               _g_free0 (lang);
+               lang = _tmp4_;
+       }
+       _tmp5_ = name;
+       _tmp6_ = _data1_->id;
+       _data1_->id = _tmp6_ + 1;
+       _tmp7_ = _data1_->id;
+       _tmp8_ = g_strdup_printf (path, _tmp7_);
+       _tmp9_ = _tmp8_;
+       _tmp10_ = _data1_->bus;
+       _tmp11_ = ibus_bus_get_connection (_tmp10_);
+       _tmp12_ = ibus_engine_new_with_type (ibus_engine_simple_get_type (), _tmp5_, _tmp9_, _tmp11_);
+       g_object_ref_sink (_tmp12_);
+       _tmp13_ = _tmp12_;
+       _g_free0 (_tmp9_);
+       engine = _tmp13_;
+       _tmp15_ = lang;
+       if (_tmp15_ != NULL) {
+               const gchar* _tmp16_;
+               gint _tmp17_;
+               gint _tmp18_;
+               gint _tmp19_ = 0;
+               _tmp16_ = lang;
+               _tmp17_ = strlen ("pt_br");
+               _tmp18_ = _tmp17_;
+               _tmp19_ = g_ascii_strncasecmp (_tmp16_, "pt_br", (gsize) _tmp18_);
+               _tmp14_ = _tmp19_ == 0;
+       } else {
+               _tmp14_ = FALSE;
+       }
+       _tmp20_ = _tmp14_;
+       if (_tmp20_) {
+               IBusEngine* _tmp21_;
+               IBusEngineSimple* _tmp22_;
+               IBusEngineSimple* simple;
+               IBusEngineSimple* _tmp23_;
+               _tmp21_ = engine;
+               _tmp22_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp21_, ibus_engine_simple_get_type (), IBusEngineSimple));
+               simple = _tmp22_;
+               _tmp23_ = simple;
+               ibus_engine_simple_add_table (_tmp23_, cedilla_compose_seqs, 4, G_N_ELEMENTS (cedilla_compose_seqs) / (4 + 2));
+               _g_object_unref0 (simple);
+       }
+       result = engine;
+       _g_free0 (lang);
+       return result;
+}
+
+
+static IBusEngine* ___lambda3__ibus_factory_create_engine (IBusFactory* _sender, const gchar* engine_name, gpointer self) {
+       IBusEngine* result;
+       result = __lambda3_ (self, _sender, engine_name);
+       return result;
+}
+
+
+gint _vala_main (gchar** args, int args_length1) {
+       gint result = 0;
+       Block1Data* _data1_;
+       IBusBus* _tmp0_;
+       IBusBus* _tmp1_;
+       gboolean _tmp2_ = FALSE;
+       IBusBus* _tmp3_;
+       IBusBus* _tmp4_;
+       GDBusConnection* _tmp5_ = NULL;
+       IBusFactory* _tmp6_;
+       IBusFactory* factory;
+       IBusFactory* _tmp7_;
+       guint flags;
+       IBusBus* _tmp8_;
+       guint _tmp9_;
+       guint32 _tmp10_ = 0U;
+       guint retval;
+       guint _tmp11_;
+       _data1_ = g_slice_new0 (Block1Data);
+       _data1_->_ref_count_ = 1;
+       setlocale (LC_ALL, "");
+       ibus_init ();
+       _tmp0_ = ibus_bus_new ();
+       g_object_ref_sink (_tmp0_);
+       _data1_->bus = _tmp0_;
+       _tmp1_ = _data1_->bus;
+       _tmp2_ = ibus_bus_is_connected (_tmp1_);
+       if (!_tmp2_) {
+               g_warning ("main.vala:49: ibus-daemon does not exist.");
+               result = 1;
+               block1_data_unref (_data1_);
+               _data1_ = NULL;
+               return result;
+       }
+       _tmp3_ = _data1_->bus;
+       g_signal_connect (_tmp3_, "disconnected", (GCallback) ___lambda2__ibus_bus_disconnected, NULL);
+       _tmp4_ = _data1_->bus;
+       _tmp5_ = ibus_bus_get_connection (_tmp4_);
+       _tmp6_ = ibus_factory_new (_tmp5_);
+       g_object_ref_sink (_tmp6_);
+       factory = _tmp6_;
+       _data1_->id = 0;
+       _tmp7_ = factory;
+       g_signal_connect_data (_tmp7_, "create-engine", (GCallback) ___lambda3__ibus_factory_create_engine, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
+       flags = (guint) (IBUS_BUS_NAME_FLAG_REPLACE_EXISTING | IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT);
+       _tmp8_ = _data1_->bus;
+       _tmp9_ = flags;
+       _tmp10_ = ibus_bus_request_name (_tmp8_, "org.freedesktop.IBus.Simple", (guint32) _tmp9_);
+       retval = (guint) _tmp10_;
+       _tmp11_ = retval;
+       if (_tmp11_ == ((guint) 0)) {
+               g_warning ("main.vala:104: Registry bus name org.freedesktop.IBus.Simple failed!");
+               result = 1;
+               _g_object_unref0 (factory);
+               block1_data_unref (_data1_);
+               _data1_ = NULL;
+               return result;
+       }
+       ibus_main ();
+       result = 0;
+       _g_object_unref0 (factory);
+       block1_data_unref (_data1_);
+       _data1_ = NULL;
+       return result;
+}
+
+
+int main (int argc, char ** argv) {
+       g_type_init ();
+       return _vala_main (argv, argc);
+}
+
+
+
diff --git a/git.mk b/git.mk
deleted file mode 100644 (file)
index ff5c0c3..0000000
--- a/git.mk
+++ /dev/null
@@ -1,206 +0,0 @@
-# git.mk
-#
-# Copyright 2009, Red Hat, Inc.
-# Copyright 2010,2011 Behdad Esfahbod
-# Written by Behdad Esfahbod
-#
-# Copying and distribution of this file, with or without modification,
-# are permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.
-#
-# The canonical source for this file is https://github.com/behdad/git.mk.
-#
-# To use in your project, import this file in your git repo's toplevel,
-# then do "make -f git.mk".  This modifies all Makefile.am files in
-# your project to -include git.mk.  Remember to add that line to new
-# Makefile.am files you create in your project, or just rerun the
-# "make -f git.mk".
-#
-# This enables automatic .gitignore generation.  If you need to ignore
-# more files, add them to the GITIGNOREFILES variable in your Makefile.am.
-# But think twice before doing that.  If a file has to be in .gitignore,
-# chances are very high that it's a generated file and should be in one
-# of MOSTLYCLEANFILES, CLEANFILES, DISTCLEANFILES, or MAINTAINERCLEANFILES.
-#
-# The only case that you need to manually add a file to GITIGNOREFILES is
-# when remove files in one of mostlyclean-local, clean-local, distclean-local,
-# or maintainer-clean-local make targets.
-#
-# Note that for files like editor backup, etc, there are better places to
-# ignore them.  See "man gitignore".
-#
-# If "make maintainer-clean" removes the files but they are not recognized
-# by this script (that is, if "git status" shows untracked files still), send
-# me the output of "git status" as well as your Makefile.am and Makefile for
-# the directories involved and I'll diagnose.
-#
-# For a list of toplevel files that should be in MAINTAINERCLEANFILES, see
-# Makefile.am.sample in the git.mk git repo.
-#
-# Don't EXTRA_DIST this file.  It is supposed to only live in git clones,
-# not tarballs.  It serves no useful purpose in tarballs and clutters the
-# build dir.
-#
-# This file knows how to handle autoconf, automake, libtool, gtk-doc,
-# gnome-doc-utils, yelp.m4, mallard, intltool, gsettings.
-#
-#
-# KNOWN ISSUES:
-#
-# - Recursive configure doesn't work as $(top_srcdir)/git.mk inside the
-#   submodule doesn't find us.  If you have configure.{in,ac} files in
-#   subdirs, add a proxy git.mk file in those dirs that simply does:
-#   "include $(top_srcdir)/../git.mk".  Add more ..'s to your taste.
-#   And add those files to git.  See vte/gnome-pty-helper/git.mk for
-#   example.
-#
-
-git-all: git-mk-install
-
-git-mk-install:
-       @echo Installing git makefile
-       @any_failed=; \
-               find "`test -z "$(top_srcdir)" && echo . || echo "$(top_srcdir)"`" -name Makefile.am | while read x; do \
-               if grep 'include .*/git.mk' $$x >/dev/null; then \
-                       echo $$x already includes git.mk; \
-               else \
-                       failed=; \
-                       echo "Updating $$x"; \
-                       { cat $$x; \
-                         echo ''; \
-                         echo '-include $$(top_srcdir)/git.mk'; \
-                       } > $$x.tmp || failed=1; \
-                       if test x$$failed = x; then \
-                               mv $$x.tmp $$x || failed=1; \
-                       fi; \
-                       if test x$$failed = x; then : else \
-                               echo Failed updating $$x; >&2 \
-                               any_failed=1; \
-                       fi; \
-       fi; done; test -z "$$any_failed"
-
-.PHONY: git-all git-mk-install
-
-
-### .gitignore generation
-
-$(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
-       $(AM_V_GEN) \
-       { \
-               if test "x$(DOC_MODULE)" = x -o "x$(DOC_MAIN_SGML_FILE)" = x; then :; else \
-                       for x in \
-                               $(DOC_MODULE)-decl-list.txt \
-                               $(DOC_MODULE)-decl.txt \
-                               tmpl/$(DOC_MODULE)-unused.sgml \
-                               "tmpl/*.bak" \
-                               xml html \
-                       ; do echo /$$x; done; \
-               fi; \
-               if test "x$(DOC_MODULE)$(DOC_ID)" = x -o "x$(DOC_LINGUAS)" = x; then :; else \
-                       for x in \
-                               $(_DOC_C_DOCS) \
-                               $(_DOC_LC_DOCS) \
-                               $(_DOC_OMF_ALL) \
-                               $(_DOC_DSK_ALL) \
-                               $(_DOC_HTML_ALL) \
-                               $(_DOC_MOFILES) \
-                               $(_DOC_POFILES) \
-                               $(DOC_H_FILE) \
-                               "*/.xml2po.mo" \
-                               "*/*.omf.out" \
-                       ; do echo /$$x; done; \
-               fi; \
-               if test "x$(HELP_ID)" = x -o "x$(HELP_LINGUAS)" = x; then :; else \
-                       for x in \
-                               $(_HELP_LC_FILES) \
-                               $(_HELP_LC_STAMPS) \
-                               $(_HELP_MOFILES) \
-                       ; do echo /$$x; done; \
-               fi; \
-               if test "x$(gsettings_SCHEMAS)" = x; then :; else \
-                       for x in \
-                               $(gsettings_SCHEMAS:.xml=.valid) \
-                               $(gsettings__enum_file) \
-                       ; do echo /$$x; done; \
-               fi; \
-               if test -f $(srcdir)/po/Makefile.in.in; then \
-                       for x in \
-                               po/Makefile.in.in \
-                               po/Makefile.in \
-                               po/Makefile \
-                               po/POTFILES \
-                               po/stamp-it \
-                               po/.intltool-merge-cache \
-                               "po/*.gmo" \
-                               "po/*.mo" \
-                               po/$(GETTEXT_PACKAGE).pot \
-                               intltool-extract.in \
-                               intltool-merge.in \
-                               intltool-update.in \
-                       ; do echo /$$x; done; \
-               fi; \
-               if test -f $(srcdir)/configure; then \
-                       for x in \
-                               autom4te.cache \
-                               configure \
-                               config.h \
-                               stamp-h1 \
-                               libtool \
-                               config.lt \
-                       ; do echo /$$x; done; \
-               fi; \
-               for x in \
-                       .gitignore \
-                       $(GITIGNOREFILES) \
-                       $(CLEANFILES) \
-                       $(PROGRAMS) \
-                       $(check_PROGRAMS) \
-                       $(EXTRA_PROGRAMS) \
-                       $(LTLIBRARIES) \
-                       so_locations \
-                       .libs _libs \
-                       $(MOSTLYCLEANFILES) \
-                       "*.$(OBJEXT)" \
-                       "*.lo" \
-                       $(DISTCLEANFILES) \
-                       $(am__CONFIG_DISTCLEAN_FILES) \
-                       $(CONFIG_CLEAN_FILES) \
-                       TAGS ID GTAGS GRTAGS GSYMS GPATH tags \
-                       "*.tab.c" \
-                       $(MAINTAINERCLEANFILES) \
-                       $(BUILT_SOURCES) \
-                       $(DEPDIR) \
-                       Makefile \
-                       Makefile.in \
-                       "*.orig" \
-                       "*.rej" \
-                       "*.bak" \
-                       "*~" \
-                       ".*.sw[nop]" \
-                       ".dirstamp" \
-               ; do echo /$$x; done; \
-       } | \
-       sed "s@^/`echo "$(srcdir)" | sed 's/\(.\)/[\1]/g'`/@/@" | \
-       sed 's@/[.]/@/@g' | \
-       LC_ALL=C sort | uniq > $@.tmp && \
-       mv $@.tmp $@;
-
-all: $(srcdir)/.gitignore gitignore-recurse-maybe
-gitignore-recurse-maybe:
-       @if test "x$(SUBDIRS)" = "x$(DIST_SUBDIRS)"; then :; else \
-               $(MAKE) $(AM_MAKEFLAGS) gitignore-recurse; \
-       fi;
-gitignore-recurse:
-       @for subdir in $(DIST_SUBDIRS); do \
-         case " $(SUBDIRS) " in \
-           *" $$subdir "*) :;; \
-           *) test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse || echo "Skipping $$subdir");; \
-         esac; \
-       done
-gitignore: $(srcdir)/.gitignore gitignore-recurse
-
-maintainer-clean: gitignore-clean
-gitignore-clean:
-       -rm -f $(srcdir)/.gitignore
-
-.PHONY: gitignore-clean gitignore gitignore-recurse gitignore-recurse-maybe
diff --git a/gtk-doc.make b/gtk-doc.make
new file mode 100644 (file)
index 0000000..3b5bed0
--- /dev/null
@@ -0,0 +1,302 @@
+# -*- mode: makefile -*-
+
+####################################
+# Everything below here is generic #
+####################################
+
+if GTK_DOC_USE_LIBTOOL
+GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+GTKDOC_RUN = $(LIBTOOL) --mode=execute
+else
+GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+GTKDOC_RUN =
+endif
+
+# We set GPATH here; this gives us semantics for GNU make
+# which are more like other make's VPATH, when it comes to
+# whether a source that is a target of one rule is then
+# searched for in VPATH/GPATH.
+#
+GPATH = $(srcdir)
+
+TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
+
+SETUP_FILES = \
+       $(content_files)                \
+       $(DOC_MAIN_SGML_FILE)           \
+       $(DOC_MODULE)-sections.txt      \
+       $(DOC_MODULE)-overrides.txt
+
+EXTRA_DIST =                           \
+       $(HTML_IMAGES)                  \
+       $(SETUP_FILES)
+
+DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
+       html-build.stamp pdf-build.stamp \
+       tmpl.stamp sgml.stamp html.stamp pdf.stamp
+
+SCANOBJ_FILES =                 \
+       $(DOC_MODULE).args       \
+       $(DOC_MODULE).hierarchy  \
+       $(DOC_MODULE).interfaces \
+       $(DOC_MODULE).prerequisites \
+       $(DOC_MODULE).signals
+
+REPORT_FILES = \
+       $(DOC_MODULE)-undocumented.txt \
+       $(DOC_MODULE)-undeclared.txt \
+       $(DOC_MODULE)-unused.txt
+
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+
+if ENABLE_GTK_DOC
+if GTK_DOC_BUILD_HTML
+HTML_BUILD_STAMP=html-build.stamp
+else
+HTML_BUILD_STAMP=
+endif
+if GTK_DOC_BUILD_PDF
+PDF_BUILD_STAMP=pdf-build.stamp
+else
+PDF_BUILD_STAMP=
+endif
+
+all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+else
+all-local:
+endif
+
+docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+
+$(REPORT_FILES): sgml-build.stamp
+
+#### setup ####
+
+GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V))
+GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP_0=@echo "  DOC   Preparing build";
+
+setup-build.stamp:
+       -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+           files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
+           if test "x$$files" != "x" ; then \
+               for file in $$files ; do \
+                   test -f $(abs_srcdir)/$$file && \
+                       cp -pu $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
+               done; \
+           fi; \
+           test -d $(abs_srcdir)/tmpl && \
+               { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
+               chmod -R u+w $(abs_builddir)/tmpl; } \
+       fi
+       $(AM_V_at)touch setup-build.stamp
+
+#### scan ####
+
+GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V))
+GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN_0=@echo "  DOC   Scanning header files";
+
+GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
+GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT_0=@echo "  DOC   Introspecting gobjects";
+
+scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
+       $(GTK_DOC_V_SCAN)_source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
+       $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
+           scanobj_options=""; \
+           gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+           if test "$(?)" = "0"; then \
+               if test "x$(V)" = "x1"; then \
+                   scanobj_options="--verbose"; \
+               fi; \
+           fi; \
+           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
+           gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
+       else \
+           for i in $(SCANOBJ_FILES) ; do \
+               test -f $$i || touch $$i ; \
+           done \
+       fi
+       $(AM_V_at)touch scan-build.stamp
+
+$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
+       @true
+
+#### templates ####
+
+GTK_DOC_V_TMPL=$(GTK_DOC_V_TMPL_$(V))
+GTK_DOC_V_TMPL_=$(GTK_DOC_V_TMPL_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_TMPL_0=@echo "  DOC   Rebuilding template files";
+
+tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
+       $(GTK_DOC_V_TMPL)gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
+       $(AM_V_at)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+         if test -w $(abs_srcdir) ; then \
+           cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
+         fi \
+       fi
+       $(AM_V_at)touch tmpl-build.stamp
+
+tmpl.stamp: tmpl-build.stamp
+       @true
+
+$(srcdir)/tmpl/*.sgml:
+       @true
+
+#### xml ####
+
+GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
+GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML_0=@echo "  DOC   Building XML";
+
+sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
+       $(GTK_DOC_V_XML)-chmod -R u+w $(srcdir) && _source_dir='' ; \
+       for i in $(DOC_SOURCE_DIR) ; do \
+           _source_dir="$${_source_dir} --source-dir=$$i" ; \
+       done ; \
+       gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
+       $(AM_V_at)touch sgml-build.stamp
+
+sgml.stamp: sgml-build.stamp
+       @true
+
+#### html ####
+
+GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
+GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML_0=@echo "  DOC   Building HTML";
+
+GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
+GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF_0=@echo "  DOC   Fixing cross-references";
+
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+       $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+       mkhtml_options=""; \
+       gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+       if test "$(?)" = "0"; then \
+         if test "x$(V)" = "x1"; then \
+           mkhtml_options="$$mkhtml_options --verbose"; \
+         fi; \
+       fi; \
+       gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
+       if test "$(?)" = "0"; then \
+         mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
+       fi; \
+       cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       -@test "x$(HTML_IMAGES)" = "x" || \
+       for file in $(HTML_IMAGES) ; do \
+         if test -f $(abs_srcdir)/$$file ; then \
+           cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
+         fi; \
+         if test -f $(abs_builddir)/$$file ; then \
+           cp $(abs_builddir)/$$file $(abs_builddir)/html; \
+         fi; \
+       done;
+       $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       $(AM_V_at)touch html-build.stamp
+
+#### pdf ####
+
+GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
+GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF_0=@echo "  DOC   Building PDF";
+
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+       $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+       mkpdf_options=""; \
+       gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
+       if test "$(?)" = "0"; then \
+         if test "x$(V)" = "x1"; then \
+           mkpdf_options="$$mkpdf_options --verbose"; \
+         fi; \
+       fi; \
+       if test "x$(HTML_IMAGES)" != "x"; then \
+         for img in $(HTML_IMAGES); do \
+           part=`dirname $$img`; \
+           echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
+           if test $$? != 0; then \
+             mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
+           fi; \
+         done; \
+       fi; \
+       gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
+       $(AM_V_at)touch pdf-build.stamp
+
+##############
+
+clean-local:
+       @rm -f *~ *.bak
+       @rm -rf .libs
+
+distclean-local:
+       @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
+           $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+       @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+           rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
+           rm -rf tmpl; \
+       fi
+
+maintainer-clean-local:
+       @rm -rf xml html
+
+install-data-local:
+       @installfiles=`echo $(builddir)/html/*`; \
+       if test "$$installfiles" = '$(builddir)/html/*'; \
+       then echo 1>&2 'Nothing to install' ; \
+       else \
+         if test -n "$(DOC_MODULE_VERSION)"; then \
+           installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
+         else \
+           installdir="$(DESTDIR)$(TARGET_DIR)"; \
+         fi; \
+         $(mkinstalldirs) $${installdir} ; \
+         for i in $$installfiles; do \
+           echo ' $(INSTALL_DATA) '$$i ; \
+           $(INSTALL_DATA) $$i $${installdir}; \
+         done; \
+         if test -n "$(DOC_MODULE_VERSION)"; then \
+           mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
+             $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
+         fi; \
+         $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
+       fi
+
+uninstall-local:
+       @if test -n "$(DOC_MODULE_VERSION)"; then \
+         installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
+       else \
+         installdir="$(DESTDIR)$(TARGET_DIR)"; \
+       fi; \
+       rm -rf $${installdir}
+
+#
+# Require gtk-doc when making dist
+#
+if ENABLE_GTK_DOC
+dist-check-gtkdoc: docs
+else
+dist-check-gtkdoc:
+       @echo "*** gtk-doc must be installed and enabled in order to make dist"
+       @false
+endif
+
+dist-hook: dist-check-gtkdoc dist-hook-local
+       @mkdir $(distdir)/tmpl
+       @mkdir $(distdir)/html
+       @-cp ./tmpl/*.sgml $(distdir)/tmpl
+       @cp ./html/* $(distdir)/html
+       @-cp ./$(DOC_MODULE).pdf $(distdir)/
+       @-cp ./$(DOC_MODULE).types $(distdir)/
+       @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
+       @cd $(distdir) && rm -f $(DISTCLEANFILES)
+       @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
+
+.PHONY : dist-hook-local docs
diff --git a/ibus/Makefile.in b/ibus/Makefile.in
new file mode 100644 (file)
index 0000000..10eb769
--- /dev/null
@@ -0,0 +1,946 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = ibus
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(srcdir)/_config.py.in $(ibus_PYTHON) \
+       $(top_srcdir)/py-compile
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = _config.py
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile)
+am__installdirs = "$(DESTDIR)$(ibusdir)" "$(DESTDIR)$(ibusdir)"
+am__pep3147_tweak = \
+  sed -e 's|\.py$$||' -e 's|[^/]*$$|__pycache__/&.*.py|'
+py_compile = $(top_srcdir)/py-compile
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+SUBDIRS = \
+       interface \
+       $(NULL)
+
+ibus_PYTHON = \
+       ascii.py \
+       application.py \
+       attribute.py \
+       common.py \
+       bus.py \
+       inputcontext.py \
+       engine.py \
+       exception.py \
+       factory.py \
+       _gtk.py \
+       __init__.py \
+       keysyms.py \
+       lang.py \
+       lookuptable.py \
+       modifier.py \
+       object.py \
+       panel.py \
+       notifications.py \
+       property.py \
+       serializable.py \
+       text.py \
+       component.py \
+       enginedesc.py \
+       observedpath.py \
+       utility.py \
+       config.py \
+       $(NULL)
+
+nodist_ibus_PYTHON = \
+       _config.py \
+       $(NULL)
+
+ibusdir = @pkgpythondir@
+EXTRA_DIST = \
+       _config.py.in \
+       $(NULL)
+
+CLEANFILES = \
+       *.pyc \
+       $(NULL)
+
+DISTCLEANFILES = \
+       _config.py \
+       $(NULL)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ibus/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu ibus/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+_config.py: $(top_builddir)/config.status $(srcdir)/_config.py.in
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-ibusPYTHON: $(ibus_PYTHON)
+       @$(NORMAL_INSTALL)
+       @list='$(ibus_PYTHON)'; dlist=; list2=; test -n "$(ibusdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(ibusdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(ibusdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
+         if test -f $$b$$p; then \
+           $(am__strip_dir) \
+           dlist="$$dlist $$f"; \
+           list2="$$list2 $$b$$p"; \
+         else :; fi; \
+       done; \
+       for file in $$list2; do echo $$file; done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ibusdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(ibusdir)" || exit $$?; \
+       done || exit $$?; \
+       if test -n "$$dlist"; then \
+         $(am__py_compile) --destdir "$(DESTDIR)" \
+                           --basedir "$(ibusdir)" $$dlist; \
+       else :; fi
+
+uninstall-ibusPYTHON:
+       @$(NORMAL_UNINSTALL)
+       @list='$(ibus_PYTHON)'; test -n "$(ibusdir)" || list=; \
+       py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$py_files" || exit 0; \
+       dir='$(DESTDIR)$(ibusdir)'; \
+       pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \
+       pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \
+       py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \
+       echo "$$py_files_pep3147";\
+       pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \
+       pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \
+       st=0; \
+       for files in \
+         "$$py_files" \
+         "$$pyc_files" \
+         "$$pyo_files" \
+         "$$pyc_files_pep3147" \
+         "$$pyo_files_pep3147" \
+       ; do \
+         $(am__uninstall_files_from_dir) || st=$$?; \
+       done; \
+       exit $$st
+install-nodist_ibusPYTHON: $(nodist_ibus_PYTHON)
+       @$(NORMAL_INSTALL)
+       @list='$(nodist_ibus_PYTHON)'; dlist=; list2=; test -n "$(ibusdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(ibusdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(ibusdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
+         if test -f $$b$$p; then \
+           $(am__strip_dir) \
+           dlist="$$dlist $$f"; \
+           list2="$$list2 $$b$$p"; \
+         else :; fi; \
+       done; \
+       for file in $$list2; do echo $$file; done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ibusdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(ibusdir)" || exit $$?; \
+       done || exit $$?; \
+       if test -n "$$dlist"; then \
+         $(am__py_compile) --destdir "$(DESTDIR)" \
+                           --basedir "$(ibusdir)" $$dlist; \
+       else :; fi
+
+uninstall-nodist_ibusPYTHON:
+       @$(NORMAL_UNINSTALL)
+       @list='$(nodist_ibus_PYTHON)'; test -n "$(ibusdir)" || list=; \
+       py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$py_files" || exit 0; \
+       dir='$(DESTDIR)$(ibusdir)'; \
+       pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \
+       pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \
+       py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \
+       echo "$$py_files_pep3147";\
+       pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \
+       pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \
+       st=0; \
+       for files in \
+         "$$py_files" \
+         "$$pyc_files" \
+         "$$pyo_files" \
+         "$$pyc_files_pep3147" \
+         "$$pyo_files_pep3147" \
+       ; do \
+         $(am__uninstall_files_from_dir) || st=$$?; \
+       done; \
+       exit $$st
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+       for dir in "$(DESTDIR)$(ibusdir)" "$(DESTDIR)$(ibusdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-ibusPYTHON install-nodist_ibusPYTHON
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-ibusPYTHON uninstall-nodist_ibusPYTHON
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-ibusPYTHON install-info \
+       install-info-am install-man install-nodist_ibusPYTHON \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-am uninstall uninstall-am \
+       uninstall-ibusPYTHON uninstall-nodist_ibusPYTHON
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/ibus/interface/Makefile.in b/ibus/interface/Makefile.in
new file mode 100644 (file)
index 0000000..ae8131a
--- /dev/null
@@ -0,0 +1,679 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = ibus/interface
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(ibus_interface_PYTHON) $(top_srcdir)/py-compile
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile)
+am__installdirs = "$(DESTDIR)$(ibus_interfacedir)"
+am__pep3147_tweak = \
+  sed -e 's|\.py$$||' -e 's|[^/]*$$|__pycache__/&.*.py|'
+py_compile = $(top_srcdir)/py-compile
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ibus_interface_PYTHON = \
+       iconfig.py \
+       ienginefactory.py \
+       iengine.py \
+       iibus.py \
+       iinputcontext.py \
+       ipanel.py \
+       inotifications.py \
+       __init__.py \
+       $(NULL)
+
+ibus_interfacedir = @pkgpythondir@/interface
+CLEANFILES = \
+       *.pyc \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ibus/interface/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu ibus/interface/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-ibus_interfacePYTHON: $(ibus_interface_PYTHON)
+       @$(NORMAL_INSTALL)
+       @list='$(ibus_interface_PYTHON)'; dlist=; list2=; test -n "$(ibus_interfacedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(ibus_interfacedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(ibus_interfacedir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
+         if test -f $$b$$p; then \
+           $(am__strip_dir) \
+           dlist="$$dlist $$f"; \
+           list2="$$list2 $$b$$p"; \
+         else :; fi; \
+       done; \
+       for file in $$list2; do echo $$file; done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ibus_interfacedir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(ibus_interfacedir)" || exit $$?; \
+       done || exit $$?; \
+       if test -n "$$dlist"; then \
+         $(am__py_compile) --destdir "$(DESTDIR)" \
+                           --basedir "$(ibus_interfacedir)" $$dlist; \
+       else :; fi
+
+uninstall-ibus_interfacePYTHON:
+       @$(NORMAL_UNINSTALL)
+       @list='$(ibus_interface_PYTHON)'; test -n "$(ibus_interfacedir)" || list=; \
+       py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$py_files" || exit 0; \
+       dir='$(DESTDIR)$(ibus_interfacedir)'; \
+       pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \
+       pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \
+       py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \
+       echo "$$py_files_pep3147";\
+       pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \
+       pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \
+       st=0; \
+       for files in \
+         "$$py_files" \
+         "$$pyc_files" \
+         "$$pyo_files" \
+         "$$pyc_files_pep3147" \
+         "$$pyo_files_pep3147" \
+       ; do \
+         $(am__uninstall_files_from_dir) || st=$$?; \
+       done; \
+       exit $$st
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+       for dir in "$(DESTDIR)$(ibus_interfacedir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-ibus_interfacePYTHON
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-ibus_interfacePYTHON
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-ibus_interfacePYTHON install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+       uninstall-am uninstall-ibus_interfacePYTHON
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/install-sh b/install-sh
new file mode 100755 (executable)
index 0000000..377bb86
--- /dev/null
@@ -0,0 +1,527 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2011-11-20.07; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" ""       $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+       shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+       case $mode in
+         *' '* | *'    '* | *'
+'*       | *'*'* | *'?'* | *'['*)
+           echo "$0: invalid mode: $mode" >&2
+           exit 1;;
+       esac
+       shift;;
+
+    -o) chowncmd="$chownprog $2"
+       shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t) dst_arg=$2
+       # Protect names problematic for 'test' and other utilities.
+       case $dst_arg in
+         -* | [=\(\)!]) dst_arg=./$dst_arg;;
+       esac
+       shift;;
+
+    -T) no_target_directory=true;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --)        shift
+       break;;
+
+    -*)        echo "$0: invalid option: $1" >&2
+       exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+    # Protect names problematic for 'test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call 'install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names problematic for 'test' and other utilities.
+  case $src in
+    -* | [=\(\)!]) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+    dst=$dst_arg
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+       echo "$0: $dst_arg: Is a directory" >&2
+       exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+       (dirname "$dst") 2>/dev/null ||
+       expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+            X"$dst" : 'X\(//\)[^/]' \| \
+            X"$dst" : 'X\(//\)$' \| \
+            X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+       echo X"$dst" |
+           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)[^/].*/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\).*/{
+                  s//\1/
+                  q
+                }
+                s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+       # Create intermediate dirs using mode 755 as modified by the umask.
+       # This is like FreeBSD 'install' as of 1997-10-28.
+       umask=`umask`
+       case $stripcmd.$umask in
+         # Optimize common cases.
+         *[2367][2367]) mkdir_umask=$umask;;
+         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+         *[0-7])
+           mkdir_umask=`expr $umask + 22 \
+             - $umask % 100 % 40 + $umask % 20 \
+             - $umask % 10 % 4 + $umask % 2
+           `;;
+         *) mkdir_umask=$umask,go-w;;
+       esac
+
+       # With -d, create the new directory with the user-specified mode.
+       # Otherwise, rely on $mkdir_umask.
+       if test -n "$dir_arg"; then
+         mkdir_mode=-m$mode
+       else
+         mkdir_mode=
+       fi
+
+       posix_mkdir=false
+       case $umask in
+         *[123567][0-7][0-7])
+           # POSIX mkdir -p sets u+wx bits regardless of umask, which
+           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+           ;;
+         *)
+           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+           trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+           if (umask $mkdir_umask &&
+               exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+           then
+             if test -z "$dir_arg" || {
+                  # Check for POSIX incompatibilities with -m.
+                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                  # other-writable bit of parent directory when it shouldn't.
+                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                  ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                  case $ls_ld_tmpdir in
+                    d????-?r-*) different_mode=700;;
+                    d????-?--*) different_mode=755;;
+                    *) false;;
+                  esac &&
+                  $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                    ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                  }
+                }
+             then posix_mkdir=:
+             fi
+             rmdir "$tmpdir/d" "$tmpdir"
+           else
+             # Remove any dirs left behind by ancient mkdir implementations.
+             rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+           fi
+           trap '' 0;;
+       esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+       umask $mkdir_umask &&
+       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+       /*) prefix='/';;
+       [-=\(\)!]*) prefix='./';;
+       *)  prefix='';;
+      esac
+
+      eval "$initialize_posix_glob"
+
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
+      shift
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+       test X"$d" = X && continue
+
+       prefix=$prefix$d
+       if test -d "$prefix"; then
+         prefixes=
+       else
+         if $posix_mkdir; then
+           (umask=$mkdir_umask &&
+            $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+           # Don't fail if two instances are running concurrently.
+           test -d "$prefix" || exit 1
+         else
+           case $prefix in
+             *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+             *) qprefix=$prefix;;
+           esac
+           prefixes="$prefixes '$qprefix'"
+         fi
+       fi
+       prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+       # Don't fail if two instances are running concurrently.
+       (umask $mkdir_umask &&
+        eval "\$doit_exec \$mkdirprog $prefixes") ||
+         test -d "$dstdir" || exit 1
+       obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"    2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+       # Now remove or move aside any old file at destination location.
+       # We try this two ways since rm can't unlink itself on some
+       # systems and the destination file might be busy for other
+       # reasons.  In this case, the final cleanup might fail but the new
+       # file should still install successfully.
+       {
+         test ! -f "$dst" ||
+         $doit $rmcmd -f "$dst" 2>/dev/null ||
+         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+           { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+         } ||
+         { echo "$0: cannot unlink or rename $dst" >&2
+           (exit 1); exit 1
+         }
+       } &&
+
+       # Now rename the file to the real destination.
+       $doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/ltmain.sh b/ltmain.sh
new file mode 100644 (file)
index 0000000..63ae69d
--- /dev/null
+++ b/ltmain.sh
@@ -0,0 +1,9655 @@
+
+# libtool (GNU libtool) 2.4.2
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# Usage: $progname [OPTION]... [MODE-ARG]...
+#
+# Provide generalized library-building support services.
+#
+#       --config             show all configuration variables
+#       --debug              enable verbose shell tracing
+#   -n, --dry-run            display commands without modifying any files
+#       --features           display basic configuration information and exit
+#       --mode=MODE          use operation mode MODE
+#       --preserve-dup-deps  don't remove duplicate dependency libraries
+#       --quiet, --silent    don't print informational messages
+#       --no-quiet, --no-silent
+#                            print informational messages (default)
+#       --no-warn            don't display warning messages
+#       --tag=TAG            use configuration variables from tag TAG
+#   -v, --verbose            print more informational messages than default
+#       --no-verbose         don't print the extra informational messages
+#       --version            print version information
+#   -h, --help, --help-all   print short, long, or detailed help message
+#
+# MODE must be one of the following:
+#
+#         clean              remove files from the build directory
+#         compile            compile a source file into a libtool object
+#         execute            automatically set library path, then run a program
+#         finish             complete the installation of libtool libraries
+#         install            install libraries or executables
+#         link               create a library or an executable
+#         uninstall          remove libraries from an installed directory
+#
+# MODE-ARGS vary depending on the MODE.  When passed as first option,
+# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+#         host-triplet:        $host
+#         shell:               $SHELL
+#         compiler:            $LTCC
+#         compiler flags:              $LTCFLAGS
+#         linker:              $LD (gnu? $with_gnu_ld)
+#         $progname:   (GNU libtool) 2.4.2
+#         automake:    $automake_version
+#         autoconf:    $autoconf_version
+#
+# Report bugs to <bug-libtool@gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
+
+PROGRAM=libtool
+PACKAGE=libtool
+VERSION=2.4.2
+TIMESTAMP=""
+package_revision=1.3337
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# NLS nuisances: We save the old values to restore during execute mode.
+lt_user_locale=
+lt_safe_locale=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test \"\${$lt_var+set}\" = set; then
+          save_$lt_var=\$$lt_var
+          $lt_var=C
+         export $lt_var
+         lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
+         lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
+       fi"
+done
+LC_ALL=C
+LANGUAGE=C
+export LANGUAGE LC_ALL
+
+$lt_unset CDPATH
+
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+
+
+: ${CP="cp -f"}
+test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77     # $? = 77 is used to indicate a skipped test to automake.
+
+exit_status=$EXIT_SUCCESS
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS="  $lt_nl"
+
+dirname="s,/[^/]*$,,"
+basename="s,^.*/,,"
+
+# func_dirname file append nondir_replacement
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+func_dirname ()
+{
+    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+} # func_dirname may be replaced by extended shell implementation
+
+
+# func_basename file
+func_basename ()
+{
+    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
+} # func_basename may be replaced by extended shell implementation
+
+
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+    # Extract subdirectory from the argument.
+    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
+    if test "X$func_dirname_result" = "X${1}"; then
+      func_dirname_result="${3}"
+    else
+      func_dirname_result="$func_dirname_result${2}"
+    fi
+    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
+} # func_dirname_and_basename may be replaced by extended shell implementation
+
+
+# func_stripname prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+# func_strip_suffix prefix name
+func_stripname ()
+{
+    case ${2} in
+      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+    esac
+} # func_stripname may be replaced by extended shell implementation
+
+
+# These SED scripts presuppose an absolute path with a trailing slash.
+pathcar='s,^/\([^/]*\).*$,\1,'
+pathcdr='s,^/[^/]*,,'
+removedotparts=':dotsl
+               s@/\./@/@g
+               t dotsl
+               s,/\.$,/,'
+collapseslashes='s@/\{1,\}@/@g'
+finalslash='s,/*$,/,'
+
+# func_normal_abspath PATH
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+#             value returned in "$func_normal_abspath_result"
+func_normal_abspath ()
+{
+  # Start from root dir and reassemble the path.
+  func_normal_abspath_result=
+  func_normal_abspath_tpath=$1
+  func_normal_abspath_altnamespace=
+  case $func_normal_abspath_tpath in
+    "")
+      # Empty path, that just means $cwd.
+      func_stripname '' '/' "`pwd`"
+      func_normal_abspath_result=$func_stripname_result
+      return
+    ;;
+    # The next three entries are used to spot a run of precisely
+    # two leading slashes without using negated character classes;
+    # we take advantage of case's first-match behaviour.
+    ///*)
+      # Unusual form of absolute path, do nothing.
+    ;;
+    //*)
+      # Not necessarily an ordinary path; POSIX reserves leading '//'
+      # and for example Cygwin uses it to access remote file shares
+      # over CIFS/SMB, so we conserve a leading double slash if found.
+      func_normal_abspath_altnamespace=/
+    ;;
+    /*)
+      # Absolute path, do nothing.
+    ;;
+    *)
+      # Relative path, prepend $cwd.
+      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+    ;;
+  esac
+  # Cancel out all the simple stuff to save iterations.  We also want
+  # the path to end with a slash for ease of parsing, so make sure
+  # there is one (and only one) here.
+  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
+  while :; do
+    # Processed it all yet?
+    if test "$func_normal_abspath_tpath" = / ; then
+      # If we ascended to the root using ".." the result may be empty now.
+      if test -z "$func_normal_abspath_result" ; then
+        func_normal_abspath_result=/
+      fi
+      break
+    fi
+    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcar"`
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+        -e "$pathcdr"`
+    # Figure out what to do with it
+    case $func_normal_abspath_tcomponent in
+      "")
+        # Trailing empty path component, ignore it.
+      ;;
+      ..)
+        # Parent dir; strip last assembled component from result.
+        func_dirname "$func_normal_abspath_result"
+        func_normal_abspath_result=$func_dirname_result
+      ;;
+      *)
+        # Actual path component, append it.
+        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
+      ;;
+    esac
+  done
+  # Restore leading double-slash if one was found on entry.
+  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+# func_relative_path SRCDIR DSTDIR
+# generates a relative path from SRCDIR to DSTDIR, with a trailing
+# slash if non-empty, suitable for immediately appending a filename
+# without needing to append a separator.
+#             value returned in "$func_relative_path_result"
+func_relative_path ()
+{
+  func_relative_path_result=
+  func_normal_abspath "$1"
+  func_relative_path_tlibdir=$func_normal_abspath_result
+  func_normal_abspath "$2"
+  func_relative_path_tbindir=$func_normal_abspath_result
+
+  # Ascend the tree starting from libdir
+  while :; do
+    # check if we have found a prefix of bindir
+    case $func_relative_path_tbindir in
+      $func_relative_path_tlibdir)
+        # found an exact match
+        func_relative_path_tcancelled=
+        break
+        ;;
+      $func_relative_path_tlibdir*)
+        # found a matching prefix
+        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+        func_relative_path_tcancelled=$func_stripname_result
+        if test -z "$func_relative_path_result"; then
+          func_relative_path_result=.
+        fi
+        break
+        ;;
+      *)
+        func_dirname $func_relative_path_tlibdir
+        func_relative_path_tlibdir=${func_dirname_result}
+        if test "x$func_relative_path_tlibdir" = x ; then
+          # Have to descend all the way to the root!
+          func_relative_path_result=../$func_relative_path_result
+          func_relative_path_tcancelled=$func_relative_path_tbindir
+          break
+        fi
+        func_relative_path_result=../$func_relative_path_result
+        ;;
+    esac
+  done
+
+  # Now calculate path; take care to avoid doubling-up slashes.
+  func_stripname '' '/' "$func_relative_path_result"
+  func_relative_path_result=$func_stripname_result
+  func_stripname '/' '/' "$func_relative_path_tcancelled"
+  if test "x$func_stripname_result" != x ; then
+    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
+  fi
+
+  # Normalisation. If bindir is libdir, return empty string,
+  # else relative path ending with a slash; either way, target
+  # file name can be directly appended.
+  if test ! -z "$func_relative_path_result"; then
+    func_stripname './' '' "$func_relative_path_result/"
+    func_relative_path_result=$func_stripname_result
+  fi
+}
+
+# The name of this program:
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *[\\/]*)
+     progdir=$func_dirname_result
+     progdir=`cd "$progdir" && pwd`
+     progpath="$progdir/$progname"
+     ;;
+  *)
+     save_IFS="$IFS"
+     IFS=${PATH_SEPARATOR-:}
+     for progdir in $PATH; do
+       IFS="$save_IFS"
+       test -x "$progdir/$progname" && break
+     done
+     IFS="$save_IFS"
+     test -n "$progdir" || progdir=`pwd`
+     progpath="$progdir/$progname"
+     ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
+
+# Sed substitution that converts a w32 file name or path
+# which contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-`\' parameter expansions in output of double_quote_subst that were
+# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
+# in input to double_quote_subst, that '$' was protected from expansion.
+# Since each input `\' is now two `\'s, look for any number of runs of
+# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
+bs='\\'
+bs2='\\\\'
+bs4='\\\\\\\\'
+dollar='\$'
+sed_double_backslash="\
+  s/$bs4/&\\
+/g
+  s/^$bs2$dollar/$bs&/
+  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
+  s/\n//g"
+
+# Standard options:
+opt_dry_run=false
+opt_help=false
+opt_quiet=false
+opt_verbose=false
+opt_warning=:
+
+# func_echo arg...
+# Echo program name prefixed message, along with the current mode
+# name if it has been set yet.
+func_echo ()
+{
+    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
+}
+
+# func_verbose arg...
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $opt_verbose && func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
+}
+
+# func_warning arg...
+# Echo program name prefixed warning message to standard error.
+func_warning ()
+{
+    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+
+    # bash bug again:
+    :
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+# func_fatal_help arg...
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+    func_error ${1+"$@"}
+    func_fatal_error "$help"
+}
+help="Try \`$progname --help' for more information."  ## default
+
+
+# func_grep expression filename
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+    $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_mkdir_p directory-path
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+    my_directory_path="$1"
+    my_dir_list=
+
+    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+
+      # Protect directory names starting with `-'
+      case $my_directory_path in
+        -*) my_directory_path="./$my_directory_path" ;;
+      esac
+
+      # While some portion of DIR does not yet exist...
+      while test ! -d "$my_directory_path"; do
+        # ...make a list in topmost first order.  Use a colon delimited
+       # list incase some portion of path contains whitespace.
+        my_dir_list="$my_directory_path:$my_dir_list"
+
+        # If the last portion added has no slash in it, the list is done
+        case $my_directory_path in */*) ;; *) break ;; esac
+
+        # ...otherwise throw away the child directory and loop
+        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
+      done
+      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
+
+      save_mkdir_p_IFS="$IFS"; IFS=':'
+      for my_dir in $my_dir_list; do
+       IFS="$save_mkdir_p_IFS"
+        # mkdir can fail with a `File exist' error if two processes
+        # try to create one of the directories concurrently.  Don't
+        # stop in that case!
+        $MKDIR "$my_dir" 2>/dev/null || :
+      done
+      IFS="$save_mkdir_p_IFS"
+
+      # Bail out if we (or some other process) failed to create a directory.
+      test -d "$my_directory_path" || \
+        func_fatal_error "Failed to create \`$1'"
+    fi
+}
+
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$opt_dry_run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+        save_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$my_tmpdir"
+        umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || \
+        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+    fi
+
+    $ECHO "$my_tmpdir"
+}
+
+
+# func_quote_for_eval arg
+# Aesthetically quote ARG to be evaled later.
+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
+# is double-quoted, suitable for a subsequent eval, whereas
+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
+# which are still active within double quotes backslashified.
+func_quote_for_eval ()
+{
+    case $1 in
+      *[\\\`\"\$]*)
+       func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
+      *)
+        func_quote_for_eval_unquoted_result="$1" ;;
+    esac
+
+    case $func_quote_for_eval_unquoted_result in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting, command substitution and and variable
+      # expansion for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
+        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
+        ;;
+      *)
+        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
+    esac
+}
+
+
+# func_quote_for_expand arg
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    case $1 in
+      *[\\\`\"]*)
+       my_arg=`$ECHO "$1" | $SED \
+           -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        my_arg="$1" ;;
+    esac
+
+    case $my_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
+        my_arg="\"$my_arg\""
+        ;;
+    esac
+
+    func_quote_for_expand_result="$my_arg"
+}
+
+
+# func_show_eval cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$my_cmd"
+      my_status=$?
+      if test "$my_status" -eq 0; then :; else
+       eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$lt_user_locale
+           $my_cmd"
+      my_status=$?
+      eval "$lt_safe_locale"
+      if test "$my_status" -eq 0; then :; else
+       eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+# func_tr_sh
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+  case $1 in
+  [0-9]* | *[!a-zA-Z0-9_]*)
+    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
+    ;;
+  * )
+    func_tr_sh_result=$1
+    ;;
+  esac
+}
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $opt_debug
+
+    $SED -n '/(C)/!b go
+       :more
+       /\./!{
+         N
+         s/\n# / /
+         b more
+       }
+       :go
+       /^# '$PROGRAM' (GNU /,/# warranty; / {
+        s/^# //
+       s/^# *$//
+        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
+        p
+     }' < "$progpath"
+     exit $?
+}
+
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+    $opt_debug
+
+    $SED -n '/^# Usage:/,/^#  *.*--help/ {
+        s/^# //
+       s/^# *$//
+       s/\$progname/'$progname'/
+       p
+    }' < "$progpath"
+    echo
+    $ECHO "run \`$progname --help | more' for full usage"
+    exit $?
+}
+
+# func_help [NOEXIT]
+# Echo long help message to standard output and exit,
+# unless 'noexit' is passed as argument.
+func_help ()
+{
+    $opt_debug
+
+    $SED -n '/^# Usage:/,/# Report bugs to/ {
+       :print
+        s/^# //
+       s/^# *$//
+       s*\$progname*'$progname'*
+       s*\$host*'"$host"'*
+       s*\$SHELL*'"$SHELL"'*
+       s*\$LTCC*'"$LTCC"'*
+       s*\$LTCFLAGS*'"$LTCFLAGS"'*
+       s*\$LD*'"$LD"'*
+       s/\$with_gnu_ld/'"$with_gnu_ld"'/
+       s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
+       s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
+       p
+       d
+     }
+     /^# .* home page:/b print
+     /^# General help using/b print
+     ' < "$progpath"
+    ret=$?
+    if test -z "$1"; then
+      exit $ret
+    fi
+}
+
+# func_missing_arg argname
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+    $opt_debug
+
+    func_error "missing argument for $1."
+    exit_cmd=exit
+}
+
+
+# func_split_short_opt shortopt
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+func_split_short_opt ()
+{
+    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
+    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
+
+    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
+    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
+} # func_split_short_opt may be replaced by extended shell implementation
+
+
+# func_split_long_opt longopt
+# Set func_split_long_opt_name and func_split_long_opt_arg shell
+# variables after splitting LONGOPT at the `=' sign.
+func_split_long_opt ()
+{
+    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
+    my_sed_long_arg='1s/^--[^=]*=//'
+
+    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
+    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
+} # func_split_long_opt may be replaced by extended shell implementation
+
+exit_cmd=:
+
+
+
+
+
+magic="%%%MAGIC variable%%%"
+magic_exe="%%%MAGIC EXE variable%%%"
+
+# Global variables.
+nonopt=
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+    eval "${1}=\$${1}\${2}"
+} # func_append may be replaced by extended shell implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+    func_quote_for_eval "${2}"
+    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
+} # func_append_quoted may be replaced by extended shell implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+    func_arith_result=`expr "${@}"`
+} # func_arith may be replaced by extended shell implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
+} # func_len may be replaced by extended shell implementation
+
+
+# func_lo2o object
+func_lo2o ()
+{
+    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
+} # func_lo2o may be replaced by extended shell implementation
+
+
+# func_xform libobj-or-source
+func_xform ()
+{
+    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
+} # func_xform may be replaced by extended shell implementation
+
+
+# func_fatal_configuration arg...
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+    func_error ${1+"$@"}
+    func_error "See the $PACKAGE documentation for more information."
+    func_fatal_error "Fatal configuration error."
+}
+
+
+# func_config
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+    re_begincf='^# ### BEGIN LIBTOOL'
+    re_endcf='^# ### END LIBTOOL'
+
+    # Default configuration.
+    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+    done
+
+    exit $?
+}
+
+# func_features
+# Display the features supported by this script.
+func_features ()
+{
+    echo "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      echo "enable shared libraries"
+    else
+      echo "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      echo "enable static libraries"
+    else
+      echo "disable static libraries"
+    fi
+
+    exit $?
+}
+
+# func_enable_tag tagname
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+  # Global variable:
+  tagname="$1"
+
+  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+
+  # Validate tagname.
+  case $tagname in
+    *[!-_A-Za-z0-9,/]*)
+      func_fatal_error "invalid tag name: $tagname"
+      ;;
+  esac
+
+  # Don't test for the "default" C tag, as we know it's
+  # there but not specially marked.
+  case $tagname in
+    CC) ;;
+    *)
+      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+       taglist="$taglist $tagname"
+
+       # Evaluate the configuration.  Be careful to quote the path
+       # and the sed script, to avoid splitting on whitespace, but
+       # also don't use non-portable quotes within backquotes within
+       # quotes we have to do it in 2 steps:
+       extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+       eval "$extractedcf"
+      else
+       func_error "ignoring unknown tag $tagname"
+      fi
+      ;;
+  esac
+}
+
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
+
+    exit $EXIT_MISMATCH
+  fi
+}
+
+
+# Shorthand for --mode=foo, only valid as the first argument
+case $1 in
+clean|clea|cle|cl)
+  shift; set dummy --mode clean ${1+"$@"}; shift
+  ;;
+compile|compil|compi|comp|com|co|c)
+  shift; set dummy --mode compile ${1+"$@"}; shift
+  ;;
+execute|execut|execu|exec|exe|ex|e)
+  shift; set dummy --mode execute ${1+"$@"}; shift
+  ;;
+finish|finis|fini|fin|fi|f)
+  shift; set dummy --mode finish ${1+"$@"}; shift
+  ;;
+install|instal|insta|inst|ins|in|i)
+  shift; set dummy --mode install ${1+"$@"}; shift
+  ;;
+link|lin|li|l)
+  shift; set dummy --mode link ${1+"$@"}; shift
+  ;;
+uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+  shift; set dummy --mode uninstall ${1+"$@"}; shift
+  ;;
+esac
+
+
+
+# Option defaults:
+opt_debug=:
+opt_dry_run=false
+opt_config=false
+opt_preserve_dup_deps=false
+opt_features=false
+opt_finish=false
+opt_help=false
+opt_help_all=false
+opt_silent=:
+opt_warning=:
+opt_verbose=:
+opt_silent=false
+opt_verbose=false
+
+
+# Parse options once, thoroughly.  This comes as soon as possible in the
+# script to make things like `--version' happen as quickly as we can.
+{
+  # this just eases exit handling
+  while test $# -gt 0; do
+    opt="$1"
+    shift
+    case $opt in
+      --debug|-x)      opt_debug='set -x'
+                       func_echo "enabling shell trace mode"
+                       $opt_debug
+                       ;;
+      --dry-run|--dryrun|-n)
+                       opt_dry_run=:
+                       ;;
+      --config)
+                       opt_config=:
+func_config
+                       ;;
+      --dlopen|-dlopen)
+                       optarg="$1"
+                       opt_dlopen="${opt_dlopen+$opt_dlopen
+}$optarg"
+                       shift
+                       ;;
+      --preserve-dup-deps)
+                       opt_preserve_dup_deps=:
+                       ;;
+      --features)
+                       opt_features=:
+func_features
+                       ;;
+      --finish)
+                       opt_finish=:
+set dummy --mode finish ${1+"$@"}; shift
+                       ;;
+      --help)
+                       opt_help=:
+                       ;;
+      --help-all)
+                       opt_help_all=:
+opt_help=': help-all'
+                       ;;
+      --mode)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_mode="$optarg"
+case $optarg in
+  # Valid mode arguments:
+  clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+  # Catch anything else as an error
+  *) func_error "invalid argument for $opt"
+     exit_cmd=exit
+     break
+     ;;
+esac
+                       shift
+                       ;;
+      --no-silent|--no-quiet)
+                       opt_silent=false
+func_append preserve_args " $opt"
+                       ;;
+      --no-warning|--no-warn)
+                       opt_warning=false
+func_append preserve_args " $opt"
+                       ;;
+      --no-verbose)
+                       opt_verbose=false
+func_append preserve_args " $opt"
+                       ;;
+      --silent|--quiet)
+                       opt_silent=:
+func_append preserve_args " $opt"
+        opt_verbose=false
+                       ;;
+      --verbose|-v)
+                       opt_verbose=:
+func_append preserve_args " $opt"
+opt_silent=false
+                       ;;
+      --tag)
+                       test $# = 0 && func_missing_arg $opt && break
+                       optarg="$1"
+                       opt_tag="$optarg"
+func_append preserve_args " $opt $optarg"
+func_enable_tag "$optarg"
+                       shift
+                       ;;
+
+      -\?|-h)          func_usage                              ;;
+      --help)          func_help                               ;;
+      --version)       func_version                            ;;
+
+      # Separate optargs to long options:
+      --*=*)
+                       func_split_long_opt "$opt"
+                       set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
+                       shift
+                       ;;
+
+      # Separate non-argument short options:
+      -\?*|-h*|-n*|-v*)
+                       func_split_short_opt "$opt"
+                       set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
+                       shift
+                       ;;
+
+      --)              break                                   ;;
+      -*)              func_fatal_help "unrecognized option \`$opt'" ;;
+      *)               set dummy "$opt" ${1+"$@"};     shift; break  ;;
+    esac
+  done
+
+  # Validate options:
+
+  # save first non-option argument
+  if test "$#" -gt 0; then
+    nonopt="$opt"
+    shift
+  fi
+
+  # preserve --debug
+  test "$opt_debug" = : || func_append preserve_args " --debug"
+
+  case $host in
+    *cygwin* | *mingw* | *pw32* | *cegcc*)
+      # don't eliminate duplications in $postdeps and $predeps
+      opt_duplicate_compiler_generated_deps=:
+      ;;
+    *)
+      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+      ;;
+  esac
+
+  $opt_help || {
+    # Sanity checks first:
+    func_check_version_match
+
+    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+      func_fatal_configuration "not configured to build any kind of library"
+    fi
+
+    # Darwin sucks
+    eval std_shrext=\"$shrext_cmds\"
+
+    # Only execute mode is allowed to have -dlopen flags.
+    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
+      func_error "unrecognized option \`-dlopen'"
+      $ECHO "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    # Change the help message to a mode-specific one.
+    generic_help="$help"
+    help="Try \`$progname --help --mode=$opt_mode' for more information."
+  }
+
+
+  # Bail if the options were screwed
+  $exit_cmd $EXIT_FAILURE
+}
+
+
+
+
+## ----------- ##
+##    Main.    ##
+## ----------- ##
+
+# func_lalib_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+    test -f "$1" &&
+      $SED -e 4q "$1" 2>/dev/null \
+        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs.  To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway.  Works if `file' does not exist.
+func_lalib_unsafe_p ()
+{
+    lalib_p=no
+    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+       for lalib_p_l in 1 2 3 4
+       do
+           read lalib_p_line
+           case "$lalib_p_line" in
+               \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+           esac
+       done
+       exec 0<&5 5<&-
+    fi
+    test "$lalib_p" = yes
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+    func_lalib_p "$1"
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+    func_ltwrapper_exec_suffix=
+    case $1 in
+    *.exe) ;;
+    *) func_ltwrapper_exec_suffix=.exe ;;
+    esac
+    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+    func_dirname_and_basename "$1" "" "."
+    func_stripname '' '.exe' "$func_basename_result"
+    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+    $opt_debug
+    save_ifs=$IFS; IFS='~'
+    for cmd in $1; do
+      IFS=$save_ifs
+      eval cmd=\"$cmd\"
+      func_show_eval "$cmd" "${2-:}"
+    done
+    IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
+# `FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+    $opt_debug
+    case $1 in
+    */* | *\\*)        . "$1" ;;
+    *)         . "./$1" ;;
+    esac
+}
+
+
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot.  Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+  func_resolve_sysroot_result=$1
+  case $func_resolve_sysroot_result in
+  =*)
+    func_stripname '=' '' "$func_resolve_sysroot_result"
+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+    ;;
+  esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+  case "$lt_sysroot:$1" in
+  ?*:"$lt_sysroot"*)
+    func_stripname "$lt_sysroot" '' "$1"
+    func_replace_sysroot_result="=$func_stripname_result"
+    ;;
+  *)
+    # Including no sysroot.
+    func_replace_sysroot_result=$1
+    ;;
+  esac
+}
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    $opt_debug
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+       func_append_quoted CC_quoted "$arg"
+      done
+      CC_expanded=`func_echo_all $CC`
+      CC_quoted_expanded=`func_echo_all $CC_quoted`
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+       for z in $available_tags; do
+         if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+           # Evaluate the configuration.
+           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+           CC_quoted=
+           for arg in $CC; do
+             # Double-quote args containing other shell metacharacters.
+             func_append_quoted CC_quoted "$arg"
+           done
+           CC_expanded=`func_echo_all $CC`
+           CC_quoted_expanded=`func_echo_all $CC_quoted`
+           case "$@ " in
+           " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+           " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
+             # The compiler in the base compile command matches
+             # the one in the tagged configuration.
+             # Assume this is the tagged configuration we want.
+             tagname=$z
+             break
+             ;;
+           esac
+         fi
+       done
+       # If $tagname still isn't set, then no tagged configuration
+       # was found and let the user know that the "--tag" command
+       # line option must be used.
+       if test -z "$tagname"; then
+         func_echo "unable to infer tagged configuration"
+         func_fatal_error "specify a tag with \`--tag'"
+#      else
+#        func_verbose "using $tagname tagged configuration"
+       fi
+       ;;
+      esac
+    fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+    write_libobj=${1}
+    if test "$build_libtool_libs" = yes; then
+      write_lobj=\'${2}\'
+    else
+      write_lobj=none
+    fi
+
+    if test "$build_old_libs" = yes; then
+      write_oldobj=\'${3}\'
+    else
+      write_oldobj=none
+    fi
+
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+      $MV "${write_libobj}T" "${write_libobj}"
+    }
+}
+
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+  $opt_debug
+  func_convert_core_file_wine_to_w32_result="$1"
+  if test -n "$1"; then
+    # Unfortunately, winepath does not exit with a non-zero error code, so we
+    # are forced to check the contents of stdout. On the other hand, if the
+    # command is not found, the shell will set an exit code of 127 and print
+    # *an error message* to stdout. So we must check for both error code of
+    # zero AND non-empty stdout, which explains the odd construction:
+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+        $SED -e "$lt_sed_naive_backslashify"`
+    else
+      func_convert_core_file_wine_to_w32_result=
+    fi
+  fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+  $opt_debug
+  # unfortunately, winepath doesn't convert paths, only file names
+  func_convert_core_path_wine_to_w32_result=""
+  if test -n "$1"; then
+    oldIFS=$IFS
+    IFS=:
+    for func_convert_core_path_wine_to_w32_f in $1; do
+      IFS=$oldIFS
+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
+          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
+        else
+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+        fi
+      fi
+    done
+    IFS=$oldIFS
+  fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+  $opt_debug
+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+    if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_cygpath_result=
+    fi
+  else
+    func_cygpath_result=
+    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
+  fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format.  Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+  $opt_debug
+  # awkward: cmd appends spaces to result
+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+  $opt_debug
+  if test -z "$2" && test -n "$1" ; then
+    func_error "Could not determine host file name corresponding to"
+    func_error "  \`$1'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback:
+    func_to_host_file_result="$1"
+  fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+  $opt_debug
+  if test -z "$4" && test -n "$3"; then
+    func_error "Could not determine the host path corresponding to"
+    func_error "  \`$3'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback.  This is a deliberately simplistic "conversion" and
+    # should not be "improved".  See libtool.info.
+    if test "x$1" != "x$2"; then
+      lt_replace_pathsep_chars="s|$1|$2|g"
+      func_to_host_path_result=`echo "$3" |
+        $SED -e "$lt_replace_pathsep_chars"`
+    else
+      func_to_host_path_result="$3"
+    fi
+  fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+  $opt_debug
+  case $4 in
+  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
+    ;;
+  esac
+  case $4 in
+  $2 ) func_append func_to_host_path_result "$3"
+    ;;
+  esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via `$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+  $opt_debug
+  $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result.  If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+  $opt_debug
+  case ,$2, in
+    *,"$to_tool_file_cmd",*)
+      func_to_tool_file_result=$1
+      ;;
+    *)
+      $to_tool_file_cmd "$1"
+      func_to_tool_file_result=$func_to_host_file_result
+      ;;
+  esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+  func_to_host_file_result="$1"
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+    # LT_CYGPATH in this case.
+    func_to_host_file_result=`cygpath -m "$1"`
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_file_wine_to_w32 "$1"
+    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_file_result="$1"
+  if test -n "$1"; then
+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+    func_convert_core_file_wine_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result="$func_cygpath_result"
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via `$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format.  If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+#   file name conversion function    : func_convert_file_X_to_Y ()
+#   path conversion function         : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same.  If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+  $opt_debug
+  if test -z "$to_host_path_cmd"; then
+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+    to_host_path_cmd="func_convert_path_${func_stripname_result}"
+  fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+  $opt_debug
+  func_init_to_host_path_cmd
+  $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+  func_to_host_path_result="$1"
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from ARG.  MSYS
+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+    # and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
+# a working winepath.  Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+  $opt_debug
+  func_to_host_path_result="$1"
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from
+    # ARG. msys behavior is inconsistent here, cygpath turns them
+    # into '.;' and ';.', and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result="$func_cygpath_result"
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+    $opt_debug
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+    pie_flag=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+       # do not "continue".  Instead, add this to base_compile
+       lastarg="$arg"
+       arg_mode=normal
+       ;;
+
+      target )
+       libobj="$arg"
+       arg_mode=normal
+       continue
+       ;;
+
+      normal )
+       # Accept any command-line options.
+       case $arg in
+       -o)
+         test -n "$libobj" && \
+           func_fatal_error "you cannot specify \`-o' more than once"
+         arg_mode=target
+         continue
+         ;;
+
+       -pie | -fpie | -fPIE)
+          func_append pie_flag " $arg"
+         continue
+         ;;
+
+       -shared | -static | -prefer-pic | -prefer-non-pic)
+         func_append later " $arg"
+         continue
+         ;;
+
+       -no-suppress)
+         suppress_opt=no
+         continue
+         ;;
+
+       -Xcompiler)
+         arg_mode=arg  #  the next one goes into the "base_compile" arg list
+         continue      #  The current "srcfile" will either be retained or
+         ;;            #  replaced later.  I would guess that would be a bug.
+
+       -Wc,*)
+         func_stripname '-Wc,' '' "$arg"
+         args=$func_stripname_result
+         lastarg=
+         save_ifs="$IFS"; IFS=','
+         for arg in $args; do
+           IFS="$save_ifs"
+           func_append_quoted lastarg "$arg"
+         done
+         IFS="$save_ifs"
+         func_stripname ' ' '' "$lastarg"
+         lastarg=$func_stripname_result
+
+         # Add the arguments to base_compile.
+         func_append base_compile " $lastarg"
+         continue
+         ;;
+
+       *)
+         # Accept the current argument as the source file.
+         # The previous "srcfile" becomes the current argument.
+         #
+         lastarg="$srcfile"
+         srcfile="$arg"
+         ;;
+       esac  #  case $arg
+       ;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      func_append_quoted base_compile "$lastarg"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      func_fatal_error "you must specify an argument for -Xcompile"
+      ;;
+    target)
+      func_fatal_error "you must specify a target with \`-o'"
+      ;;
+    *)
+      # Get the name of the library object.
+      test -z "$libobj" && {
+       func_basename "$srcfile"
+       libobj="$func_basename_result"
+      }
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    case $libobj in
+    *.[cCFSifmso] | \
+    *.ada | *.adb | *.ads | *.asm | \
+    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
+      func_xform "$libobj"
+      libobj=$func_xform_result
+      ;;
+    esac
+
+    case $libobj in
+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+    *)
+      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -shared)
+       test "$build_libtool_libs" != yes && \
+         func_fatal_configuration "can not build a shared library"
+       build_old_libs=no
+       continue
+       ;;
+
+      -static)
+       build_libtool_libs=no
+       build_old_libs=yes
+       continue
+       ;;
+
+      -prefer-pic)
+       pic_mode=yes
+       continue
+       ;;
+
+      -prefer-non-pic)
+       pic_mode=no
+       continue
+       ;;
+      esac
+    done
+
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'   &()|`$[]' \
+      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+    func_dirname_and_basename "$obj" "/" ""
+    objname="$func_basename_result"
+    xdir="$func_dirname_result"
+    lobj=${xdir}$objdir/$objname
+
+    test -z "$base_compile" && \
+      func_fatal_help "you must specify a compilation command"
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2* | cegcc*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+       func_echo "Waiting for $lockfile to be removed"
+       sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+       $ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+       $opt_dry_run || $RM $removelist
+       exit $EXIT_FAILURE
+      fi
+      func_append removelist " $output_obj"
+      $ECHO "$srcfile" > "$lockfile"
+    fi
+
+    $opt_dry_run || $RM $removelist
+    func_append removelist " $lockfile"
+    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+    srcfile=$func_to_tool_file_result
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+       command="$base_compile $qsrcfile $pic_flag"
+      else
+       # Don't build PIC code
+       command="$base_compile $qsrcfile"
+      fi
+
+      func_mkdir_p "$xdir$objdir"
+
+      if test -z "$output_obj"; then
+       # Place PIC objects in $objdir
+       func_append command " -o $lobj"
+      fi
+
+      func_show_eval_locale "$command" \
+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+       $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+       $opt_dry_run || $RM $removelist
+       exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+       func_show_eval '$MV "$output_obj" "$lobj"' \
+         'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+       suppress_output=' >/dev/null 2>&1'
+      fi
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+       # Don't build PIC code
+       command="$base_compile $qsrcfile$pie_flag"
+      else
+       command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+       func_append command " -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      func_append command "$suppress_output"
+      func_show_eval_locale "$command" \
+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+      if test "$need_locks" = warn &&
+        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+       $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+       $opt_dry_run || $RM $removelist
+       exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+       func_show_eval '$MV "$output_obj" "$obj"' \
+         'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+    fi
+
+    $opt_dry_run || {
+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+      # Unlock the critical section if it was locked
+      if test "$need_locks" != no; then
+       removelist=$lockfile
+        $RM "$lockfile"
+      fi
+    }
+
+    exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+    # We need to display help for each of the modes.
+    case $opt_mode in
+      "")
+        # Generic help is extracted from the usage comments
+        # at the start of this file.
+        func_help
+        ;;
+
+      clean)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      compile)
+      $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -no-suppress      do not suppress compiler output for multiple passes
+  -prefer-pic       try to build PIC objects only
+  -prefer-non-pic   try to build non-PIC objects only
+  -shared           do not build a \`.o' file suitable for static linking
+  -static           only build a \`.o' file suitable for static linking
+  -Wc,FLAG          pass FLAG directly to the compiler
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+        ;;
+
+      execute)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+        ;;
+
+      finish)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+        ;;
+
+      install)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+        ;;
+
+      link)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -bindir BINDIR    specify path to binaries directory (for systems where
+                    libraries must be found in the PATH setting at runtime)
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -shared           only do dynamic linking of libtool libraries
+  -shrext SUFFIX    override the standard shared library file extension
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+  -weak LIBNAME     declare that the target provides the LIBNAME interface
+  -Wc,FLAG
+  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
+  -Wl,FLAG
+  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
+  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+        ;;
+
+      uninstall)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      *)
+        func_fatal_help "invalid operation mode \`$opt_mode'"
+        ;;
+    esac
+
+    echo
+    $ECHO "Try \`$progname --help' for more information about other modes."
+}
+
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+  if test "$opt_help" = :; then
+    func_mode_help
+  else
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+       func_mode_help
+      done
+    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+       echo
+       func_mode_help
+      done
+    } |
+    sed '1d
+      /^When reporting/,/^Report/{
+       H
+       d
+      }
+      $x
+      /information about other modes/d
+      /more detailed .*MODE/d
+      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+  fi
+  exit $?
+fi
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+    $opt_debug
+    # The first argument is the command name.
+    cmd="$nonopt"
+    test -z "$cmd" && \
+      func_fatal_help "you must specify a COMMAND"
+
+    # Handle -dlopen flags immediately.
+    for file in $opt_dlopen; do
+      test -f "$file" \
+       || func_fatal_help "\`$file' is not a file"
+
+      dir=
+      case $file in
+      *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
+       # Check to see that this really is a libtool archive.
+       func_lalib_unsafe_p "$file" \
+         || func_fatal_help "\`$lib' is not a valid libtool archive"
+
+       # Read the libtool library.
+       dlname=
+       library_names=
+       func_source "$file"
+
+       # Skip this library if it cannot be dlopened.
+       if test -z "$dlname"; then
+         # Warn if it was a shared library.
+         test -n "$library_names" && \
+           func_warning "\`$file' was not linked with \`-export-dynamic'"
+         continue
+       fi
+
+       func_dirname "$file" "" "."
+       dir="$func_dirname_result"
+
+       if test -f "$dir/$objdir/$dlname"; then
+         func_append dir "/$objdir"
+       else
+         if test ! -f "$dir/$dlname"; then
+           func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+         fi
+       fi
+       ;;
+
+      *.lo)
+       # Just add the directory containing the .lo file.
+       func_dirname "$file" "" "."
+       dir="$func_dirname_result"
+       ;;
+
+      *)
+       func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+       continue
+       ;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+       eval "$shlibpath_var=\"\$dir\""
+      else
+       eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -* | *.la | *.lo ) ;;
+      *)
+       # Do a test to see if this is really a libtool program.
+       if func_ltwrapper_script_p "$file"; then
+         func_source "$file"
+         # Transform arg to wrapped name.
+         file="$progdir/$program"
+       elif func_ltwrapper_executable_p "$file"; then
+         func_ltwrapper_scriptname "$file"
+         func_source "$func_ltwrapper_scriptname_result"
+         # Transform arg to wrapped name.
+         file="$progdir/$program"
+       fi
+       ;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      func_append_quoted args "$file"
+    done
+
+    if test "X$opt_dry_run" = Xfalse; then
+      if test -n "$shlibpath_var"; then
+       # Export the shlibpath_var.
+       eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+       eval "if test \"\${save_$lt_var+set}\" = set; then
+                $lt_var=\$save_$lt_var; export $lt_var
+             else
+               $lt_unset $lt_var
+             fi"
+      done
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+       eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+       echo "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $opt_debug
+    libs=
+    libdirs=
+    admincmds=
+
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+       func_append libdirs " $opt"
+
+      elif test -f "$opt"; then
+       if func_lalib_unsafe_p "$opt"; then
+         func_append libs " $opt"
+       else
+         func_warning "\`$opt' is not a valid libtool archive"
+       fi
+
+      else
+       func_fatal_error "invalid argument \`$opt'"
+      fi
+    done
+
+    if test -n "$libs"; then
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+      else
+        sysroot_cmd=
+      fi
+
+      # Remove sysroot references
+      if $opt_dry_run; then
+        for lib in $libs; do
+          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
+        done
+      else
+        tmpdir=`func_mktempdir`
+        for lib in $libs; do
+         sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+           > $tmpdir/tmp-la
+         mv -f $tmpdir/tmp-la $lib
+       done
+        ${RM}r "$tmpdir"
+      fi
+    fi
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for libdir in $libdirs; do
+       if test -n "$finish_cmds"; then
+         # Do each command in the finish commands.
+         func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+       fi
+       if test -n "$finish_eval"; then
+         # Do the single finish_eval.
+         eval cmds=\"$finish_eval\"
+         $opt_dry_run || eval "$cmds" || func_append admincmds "
+       $cmds"
+       fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    $opt_silent && exit $EXIT_SUCCESS
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo "----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+       $ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+       echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+       echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+       echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+       echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+       libdir=LIBDIR
+       eval flag=\"$hardcode_libdir_flag_spec\"
+
+       $ECHO "   - use the \`$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+       $ECHO "   - have your system administrator run these commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+       echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+      fi
+      echo
+
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+       solaris2.[6789]|solaris2.1[0-9])
+         echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+         echo "pages."
+         ;;
+       *)
+         echo "more information, such as the ld(1) and ld.so(8) manual pages."
+         ;;
+      esac
+      echo "----------------------------------------------------------------------"
+    fi
+    exit $EXIT_SUCCESS
+}
+
+test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+    $opt_debug
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       case $nonopt in *shtool*) :;; *) false;; esac; then
+      # Aesthetically quote it.
+      func_quote_for_eval "$nonopt"
+      install_prog="$func_quote_for_eval_result "
+      arg=$1
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    func_quote_for_eval "$arg"
+    func_append install_prog "$func_quote_for_eval_result"
+    install_shared_prog=$install_prog
+    case " $install_prog " in
+      *[\\\ /]cp\ *) install_cp=: ;;
+      *) install_cp=false ;;
+    esac
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    no_mode=:
+    for arg
+    do
+      arg2=
+      if test -n "$dest"; then
+       func_append files " $dest"
+       dest=$arg
+       continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f)
+       if $install_cp; then :; else
+         prev=$arg
+       fi
+       ;;
+      -g | -m | -o)
+       prev=$arg
+       ;;
+      -s)
+       stripme=" -s"
+       continue
+       ;;
+      -*)
+       ;;
+      *)
+       # If the previous option needed an argument, then skip it.
+       if test -n "$prev"; then
+         if test "x$prev" = x-m && test -n "$install_override_mode"; then
+           arg2=$install_override_mode
+           no_mode=false
+         fi
+         prev=
+       else
+         dest=$arg
+         continue
+       fi
+       ;;
+      esac
+
+      # Aesthetically quote the argument.
+      func_quote_for_eval "$arg"
+      func_append install_prog " $func_quote_for_eval_result"
+      if test -n "$arg2"; then
+       func_quote_for_eval "$arg2"
+      fi
+      func_append install_shared_prog " $func_quote_for_eval_result"
+    done
+
+    test -z "$install_prog" && \
+      func_fatal_help "you must specify an install program"
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prev' option requires an argument"
+
+    if test -n "$install_override_mode" && $no_mode; then
+      if $install_cp; then :; else
+       func_quote_for_eval "$install_override_mode"
+       func_append install_shared_prog " -m $func_quote_for_eval_result"
+      fi
+    fi
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+       func_fatal_help "no file or destination specified"
+      else
+       func_fatal_help "you must specify a destination"
+      fi
+    fi
+
+    # Strip any trailing slash from the destination.
+    func_stripname '' '/' "$dest"
+    dest=$func_stripname_result
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      func_dirname_and_basename "$dest" "" "."
+      destdir="$func_dirname_result"
+      destname="$func_basename_result"
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files; shift
+      test "$#" -gt 1 && \
+       func_fatal_help "\`$dest' is not a directory"
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+       case $file in
+       *.lo) ;;
+       *)
+         func_fatal_help "\`$destdir' must be an absolute directory name"
+         ;;
+       esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+       # Do the static libraries later.
+       func_append staticlibs " $file"
+       ;;
+
+      *.la)
+       func_resolve_sysroot "$file"
+       file=$func_resolve_sysroot_result
+
+       # Check to see that this really is a libtool archive.
+       func_lalib_unsafe_p "$file" \
+         || func_fatal_help "\`$file' is not a valid libtool archive"
+
+       library_names=
+       old_library=
+       relink_command=
+       func_source "$file"
+
+       # Add the libdir to current_libdirs if it is the destination.
+       if test "X$destdir" = "X$libdir"; then
+         case "$current_libdirs " in
+         *" $libdir "*) ;;
+         *) func_append current_libdirs " $libdir" ;;
+         esac
+       else
+         # Note the libdir as a future libdir.
+         case "$future_libdirs " in
+         *" $libdir "*) ;;
+         *) func_append future_libdirs " $libdir" ;;
+         esac
+       fi
+
+       func_dirname "$file" "/" ""
+       dir="$func_dirname_result"
+       func_append dir "$objdir"
+
+       if test -n "$relink_command"; then
+         # Determine the prefix the user has applied to our future dir.
+         inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
+
+         # Don't allow the user to place us outside of our expected
+         # location b/c this prevents finding dependent libraries that
+         # are installed to the same prefix.
+         # At present, this check doesn't affect windows .dll's that
+         # are installed into $libdir/../bin (currently, that works fine)
+         # but it's something to keep an eye on.
+         test "$inst_prefix_dir" = "$destdir" && \
+           func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
+
+         if test -n "$inst_prefix_dir"; then
+           # Stick the inst_prefix_dir data into the link command.
+           relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+         else
+           relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+         fi
+
+         func_warning "relinking \`$file'"
+         func_show_eval "$relink_command" \
+           'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
+       fi
+
+       # See the names of the shared library.
+       set dummy $library_names; shift
+       if test -n "$1"; then
+         realname="$1"
+         shift
+
+         srcname="$realname"
+         test -n "$relink_command" && srcname="$realname"T
+
+         # Install the shared library and build the symlinks.
+         func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
+             'exit $?'
+         tstripme="$stripme"
+         case $host_os in
+         cygwin* | mingw* | pw32* | cegcc*)
+           case $realname in
+           *.dll.a)
+             tstripme=""
+             ;;
+           esac
+           ;;
+         esac
+         if test -n "$tstripme" && test -n "$striplib"; then
+           func_show_eval "$striplib $destdir/$realname" 'exit $?'
+         fi
+
+         if test "$#" -gt 0; then
+           # Delete the old symlinks, and create new ones.
+           # Try `ln -sf' first, because the `ln' binary might depend on
+           # the symlink we replace!  Solaris /bin/ln does not understand -f,
+           # so we also need to try rm && ln -s.
+           for linkname
+           do
+             test "$linkname" != "$realname" \
+               && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+           done
+         fi
+
+         # Do each command in the postinstall commands.
+         lib="$destdir/$realname"
+         func_execute_cmds "$postinstall_cmds" 'exit $?'
+       fi
+
+       # Install the pseudo-library for information purposes.
+       func_basename "$file"
+       name="$func_basename_result"
+       instname="$dir/$name"i
+       func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+       # Maybe install the static library, too.
+       test -n "$old_library" && func_append staticlibs " $dir/$old_library"
+       ;;
+
+      *.lo)
+       # Install (i.e. copy) a libtool object.
+
+       # Figure out destination file name, if it wasn't already specified.
+       if test -n "$destname"; then
+         destfile="$destdir/$destname"
+       else
+         func_basename "$file"
+         destfile="$func_basename_result"
+         destfile="$destdir/$destfile"
+       fi
+
+       # Deduce the name of the destination old-style object file.
+       case $destfile in
+       *.lo)
+         func_lo2o "$destfile"
+         staticdest=$func_lo2o_result
+         ;;
+       *.$objext)
+         staticdest="$destfile"
+         destfile=
+         ;;
+       *)
+         func_fatal_help "cannot copy a libtool object to \`$destfile'"
+         ;;
+       esac
+
+       # Install the libtool object if requested.
+       test -n "$destfile" && \
+         func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+       # Install the old object if enabled.
+       if test "$build_old_libs" = yes; then
+         # Deduce the name of the old-style object file.
+         func_lo2o "$file"
+         staticobj=$func_lo2o_result
+         func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+       fi
+       exit $EXIT_SUCCESS
+       ;;
+
+      *)
+       # Figure out destination file name, if it wasn't already specified.
+       if test -n "$destname"; then
+         destfile="$destdir/$destname"
+       else
+         func_basename "$file"
+         destfile="$func_basename_result"
+         destfile="$destdir/$destfile"
+       fi
+
+       # If the file is missing, and there is a .exe on the end, strip it
+       # because it is most likely a libtool script we actually want to
+       # install
+       stripped_ext=""
+       case $file in
+         *.exe)
+           if test ! -f "$file"; then
+             func_stripname '' '.exe' "$file"
+             file=$func_stripname_result
+             stripped_ext=".exe"
+           fi
+           ;;
+       esac
+
+       # Do a test to see if this is really a libtool program.
+       case $host in
+       *cygwin* | *mingw*)
+           if func_ltwrapper_executable_p "$file"; then
+             func_ltwrapper_scriptname "$file"
+             wrapper=$func_ltwrapper_scriptname_result
+           else
+             func_stripname '' '.exe' "$file"
+             wrapper=$func_stripname_result
+           fi
+           ;;
+       *)
+           wrapper=$file
+           ;;
+       esac
+       if func_ltwrapper_script_p "$wrapper"; then
+         notinst_deplibs=
+         relink_command=
+
+         func_source "$wrapper"
+
+         # Check the variables that should have been set.
+         test -z "$generated_by_libtool_version" && \
+           func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+
+         finalize=yes
+         for lib in $notinst_deplibs; do
+           # Check to see that each library is installed.
+           libdir=
+           if test -f "$lib"; then
+             func_source "$lib"
+           fi
+           libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
+           if test -n "$libdir" && test ! -f "$libfile"; then
+             func_warning "\`$lib' has not been installed in \`$libdir'"
+             finalize=no
+           fi
+         done
+
+         relink_command=
+         func_source "$wrapper"
+
+         outputname=
+         if test "$fast_install" = no && test -n "$relink_command"; then
+           $opt_dry_run || {
+             if test "$finalize" = yes; then
+               tmpdir=`func_mktempdir`
+               func_basename "$file$stripped_ext"
+               file="$func_basename_result"
+               outputname="$tmpdir/$file"
+               # Replace the output file specification.
+               relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
+
+               $opt_silent || {
+                 func_quote_for_expand "$relink_command"
+                 eval "func_echo $func_quote_for_expand_result"
+               }
+               if eval "$relink_command"; then :
+                 else
+                 func_error "error: relink \`$file' with the above command before installing it"
+                 $opt_dry_run || ${RM}r "$tmpdir"
+                 continue
+               fi
+               file="$outputname"
+             else
+               func_warning "cannot relink \`$file'"
+             fi
+           }
+         else
+           # Install the binary that we compiled earlier.
+           file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
+         fi
+       fi
+
+       # remove .exe since cygwin /usr/bin/install will append another
+       # one anyway
+       case $install_prog,$host in
+       */usr/bin/install*,*cygwin*)
+         case $file:$destfile in
+         *.exe:*.exe)
+           # this is ok
+           ;;
+         *.exe:*)
+           destfile=$destfile.exe
+           ;;
+         *:*.exe)
+           func_stripname '' '.exe' "$destfile"
+           destfile=$func_stripname_result
+           ;;
+         esac
+         ;;
+       esac
+       func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+       $opt_dry_run || if test -n "$outputname"; then
+         ${RM}r "$tmpdir"
+       fi
+       ;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      func_basename "$file"
+      name="$func_basename_result"
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+      tool_oldlib=$func_to_tool_file_result
+
+      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+       func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
+      fi
+
+      # Do each command in the postinstall commands.
+      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+    done
+
+    test -n "$future_libdirs" && \
+      func_warning "remember to run \`$progname --finish$future_libdirs'"
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      $opt_dry_run && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+    $opt_debug
+    my_outputname="$1"
+    my_originator="$2"
+    my_pic_p="${3-no}"
+    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    my_dlsyms=
+
+    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
+       my_dlsyms="${my_outputname}S.c"
+      else
+       func_error "not configured to extract global symbols from dlpreopened files"
+      fi
+    fi
+
+    if test -n "$my_dlsyms"; then
+      case $my_dlsyms in
+      "") ;;
+      *.c)
+       # Discover the nlist of each of the dlfiles.
+       nlist="$output_objdir/${my_outputname}.nm"
+
+       func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+       # Parse the name list into a source file.
+       func_verbose "creating $output_objdir/$my_dlsyms"
+
+       $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+/* External symbol declarations for the compiler. */\
+"
+
+       if test "$dlself" = yes; then
+         func_verbose "generating symbol list for \`$output'"
+
+         $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+         # Add our own program objects to the symbol list.
+         progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+         for progfile in $progfiles; do
+           func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+           func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
+           $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
+         done
+
+         if test -n "$exclude_expsyms"; then
+           $opt_dry_run || {
+             eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+             eval '$MV "$nlist"T "$nlist"'
+           }
+         fi
+
+         if test -n "$export_symbols_regex"; then
+           $opt_dry_run || {
+             eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+             eval '$MV "$nlist"T "$nlist"'
+           }
+         fi
+
+         # Prepare the list of exported symbols
+         if test -z "$export_symbols"; then
+           export_symbols="$output_objdir/$outputname.exp"
+           $opt_dry_run || {
+             $RM $export_symbols
+             eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+             case $host in
+             *cygwin* | *mingw* | *cegcc* )
+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+               ;;
+             esac
+           }
+         else
+           $opt_dry_run || {
+             eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+             eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+             eval '$MV "$nlist"T "$nlist"'
+             case $host in
+               *cygwin* | *mingw* | *cegcc* )
+                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+                 ;;
+             esac
+           }
+         fi
+       fi
+
+       for dlprefile in $dlprefiles; do
+         func_verbose "extracting global C symbols from \`$dlprefile'"
+         func_basename "$dlprefile"
+         name="$func_basename_result"
+          case $host in
+           *cygwin* | *mingw* | *cegcc* )
+             # if an import library, we need to obtain dlname
+             if func_win32_import_lib_p "$dlprefile"; then
+               func_tr_sh "$dlprefile"
+               eval "curr_lafile=\$libfile_$func_tr_sh_result"
+               dlprefile_dlbasename=""
+               if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+                 # Use subshell, to avoid clobbering current variable values
+                 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+                 if test -n "$dlprefile_dlname" ; then
+                   func_basename "$dlprefile_dlname"
+                   dlprefile_dlbasename="$func_basename_result"
+                 else
+                   # no lafile. user explicitly requested -dlpreopen <import library>.
+                   $sharedlib_from_linklib_cmd "$dlprefile"
+                   dlprefile_dlbasename=$sharedlib_from_linklib_result
+                 fi
+               fi
+               $opt_dry_run || {
+                 if test -n "$dlprefile_dlbasename" ; then
+                   eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+                 else
+                   func_warning "Could not compute DLL name from $name"
+                   eval '$ECHO ": $name " >> "$nlist"'
+                 fi
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+                   $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+               }
+             else # not an import lib
+               $opt_dry_run || {
+                 eval '$ECHO ": $name " >> "$nlist"'
+                 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+                 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+               }
+             fi
+           ;;
+           *)
+             $opt_dry_run || {
+               eval '$ECHO ": $name " >> "$nlist"'
+               func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+               eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+             }
+           ;;
+          esac
+       done
+
+       $opt_dry_run || {
+         # Make sure we have at least an empty file.
+         test -f "$nlist" || : > "$nlist"
+
+         if test -n "$exclude_expsyms"; then
+           $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+           $MV "$nlist"T "$nlist"
+         fi
+
+         # Try sorting and uniquifying the output.
+         if $GREP -v "^: " < "$nlist" |
+             if sort -k 3 </dev/null >/dev/null 2>&1; then
+               sort -k 3
+             else
+               sort +2
+             fi |
+             uniq > "$nlist"S; then
+           :
+         else
+           $GREP -v "^: " < "$nlist" > "$nlist"S
+         fi
+
+         if test -f "$nlist"S; then
+           eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+         else
+           echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
+         fi
+
+         echo >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols.  */
+typedef struct {
+  const char *name;
+  void *address;
+} lt_dlsymlist;
+extern LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+  { \"$my_originator\", (void *) 0 },"
+
+         case $need_lib_prefix in
+         no)
+           eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+           ;;
+         *)
+           eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+           ;;
+         esac
+         echo >> "$output_objdir/$my_dlsyms" "\
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+       } # !$opt_dry_run
+
+       pic_flag_for_symtable=
+       case "$compile_command " in
+       *" -static "*) ;;
+       *)
+         case $host in
+         # compiling the symbol table file with pic_flag works around
+         # a FreeBSD bug that causes programs to crash when -lm is
+         # linked before any other PIC object.  But we must not use
+         # pic_flag when linking with -static.  The problem exists in
+         # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+         *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+           pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+         *-*-hpux*)
+           pic_flag_for_symtable=" $pic_flag"  ;;
+         *)
+           if test "X$my_pic_p" != Xno; then
+             pic_flag_for_symtable=" $pic_flag"
+           fi
+           ;;
+         esac
+         ;;
+       esac
+       symtab_cflags=
+       for arg in $LTCFLAGS; do
+         case $arg in
+         -pie | -fpie | -fPIE) ;;
+         *) func_append symtab_cflags " $arg" ;;
+         esac
+       done
+
+       # Now compile the dynamic symbol file.
+       func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+       # Clean up the generated files.
+       func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+       # Transform the symbol file into the correct name.
+       symfileobj="$output_objdir/${my_outputname}S.$objext"
+       case $host in
+       *cygwin* | *mingw* | *cegcc* )
+         if test -f "$output_objdir/$my_outputname.def"; then
+           compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+           finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+         else
+           compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+           finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+         fi
+         ;;
+       *)
+         compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+         finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+         ;;
+       esac
+       ;;
+      *)
+       func_fatal_error "unknown suffix for \`$my_dlsyms'"
+       ;;
+      esac
+    else
+      # We keep going just in case the user didn't refer to
+      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+      # really was required.
+
+      # Nullify the symbol file.
+      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
+    fi
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
+func_win32_libid ()
+{
+  $opt_debug
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+      func_to_tool_file "$1" func_convert_file_msys_to_w32
+      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+       $SED -n -e '
+           1,100{
+               / I /{
+                   s,.*,import,
+                   p
+                   q
+               }
+           }'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $ECHO "$win32_libid_type"
+}
+
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+  $opt_debug
+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+  $opt_debug
+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+    $SED '/^Contents of section '"$match_literal"':/{
+      # Place marker at beginning of archive member dllname section
+      s/.*/====MARK====/
+      p
+      d
+    }
+    # These lines can sometimes be longer than 43 characters, but
+    # are always uninteresting
+    /:[         ]*file format pe[i]\{,1\}-/d
+    /^In archive [^:]*:/d
+    # Ensure marker is printed
+    /^====MARK====/p
+    # Remove all lines with less than 43 characters
+    /^.\{43\}/!d
+    # From remaining lines, remove first 43 characters
+    s/^.\{43\}//' |
+    $SED -n '
+      # Join marker and all lines until next marker into a single line
+      /^====MARK====/ b para
+      H
+      $ b para
+      b
+      :para
+      x
+      s/\n//g
+      # Remove the marker
+      s/^====MARK====//
+      # Remove trailing dots and whitespace
+      s/[\. \t]*$//
+      # Print
+      /./p' |
+    # we now have a list, one entry per line, of the stringified
+    # contents of the appropriate section of all members of the
+    # archive which possess that section. Heuristic: eliminate
+    # all those which have a first or second character that is
+    # a '.' (that is, objdump's representation of an unprintable
+    # character.) This should work for all archives with less than
+    # 0x302f exports -- but will fail for DLLs whose name actually
+    # begins with a literal '.' or a single character followed by
+    # a '.'.
+    #
+    # Of those that remain, print the first one.
+    $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $opt_debug
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+  $opt_debug
+  if func_cygming_gnu_implib_p "$1" ; then
+    # binutils import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+  elif func_cygming_ms_implib_p "$1" ; then
+    # ms-generated import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+  else
+    # unknown
+    sharedlib_from_linklib_result=""
+  fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    $opt_debug
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+    if test "$lock_old_archive_extraction" = yes; then
+      lockfile=$f_ex_an_ar_oldlib.lock
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+       func_echo "Waiting for $lockfile to be removed"
+       sleep 2
+      done
+    fi
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+                  'stat=$?; rm -f "$lockfile"; exit $stat'
+    if test "$lock_old_archive_extraction" = yes; then
+      $opt_dry_run || rm -f "$lockfile"
+    fi
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+    fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    $opt_debug
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+       [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+       *) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      func_basename "$my_xlib"
+      my_xlib="$func_basename_result"
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+       *" $my_xlib_u "*)
+         func_arith $extracted_serial + 1
+         extracted_serial=$func_arith_result
+         my_xlib_u=lt$extracted_serial-$my_xlib ;;
+       *) break ;;
+       esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
+
+      func_mkdir_p "$my_xdir"
+
+      case $host in
+      *-darwin*)
+       func_verbose "Extracting $my_xabs"
+       # Do not bother doing anything if just a dry run
+       $opt_dry_run || {
+         darwin_orig_dir=`pwd`
+         cd $my_xdir || exit $?
+         darwin_archive=$my_xabs
+         darwin_curdir=`pwd`
+         darwin_base_archive=`basename "$darwin_archive"`
+         darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+         if test -n "$darwin_arches"; then
+           darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+           darwin_arch=
+           func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+           for darwin_arch in  $darwin_arches ; do
+             func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+             $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+             cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+             func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+             cd "$darwin_curdir"
+             $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+           done # $darwin_arches
+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+           darwin_file=
+           darwin_files=
+           for darwin_file in $darwin_filelist; do
+             darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+             $LIPO -create -output "$darwin_file" $darwin_files
+           done # $darwin_filelist
+           $RM -rf unfat-$$
+           cd "$darwin_orig_dir"
+         else
+           cd $darwin_orig_dir
+           func_extract_an_archive "$my_xdir" "$my_xabs"
+         fi # $darwin_arches
+       } # !$opt_dry_run
+       ;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+       ;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+    done
+
+    func_extract_archives_result="$my_oldobjs"
+}
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+       func_emit_wrapper_arg1=${1-no}
+
+       $ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='$macro_version'
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    file=\"\$0\""
+
+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+    $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+    ECHO=\"$qECHO\"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ which is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options which match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=\$0
+  shift
+  for lt_opt
+  do
+    case \"\$lt_opt\" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+        cat \"\$lt_dump_D/\$lt_dump_F\"
+        exit 0
+      ;;
+    --lt-*)
+        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n \"\$lt_option_debug\"; then
+    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+"
+  case $host in
+  # Backslashes separate directories on plain windows
+  *-*-mingw | *-*-os2* | *-cegcc*)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+    ;;
+
+  *)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+    ;;
+  esac
+  $ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  case \" \$* \" in
+  *\\ --lt-*)
+    for lt_wr_arg
+    do
+      case \$lt_wr_arg in
+      --lt-*) ;;
+      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+      esac
+      shift
+    done ;;
+  esac
+  func_exec_program_core \${1+\"\$@\"}
+}
+
+  # Parse options
+  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
+  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+    # special case for '.'
+    if test \"\$thisdir\" = \".\"; then
+      thisdir=\`pwd\`
+    fi
+    # remove .libs from thisdir
+    case \"\$thisdir\" in
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    $objdir )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+       if test "$fast_install" = yes; then
+         $ECHO "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" ||
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $MKDIR \"\$progdir\"
+    else
+      $RM \"\$progdir/\$file\"
+    fi"
+
+         $ECHO "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+       $ECHO \"\$relink_command_output\" >&2
+       $RM \"\$progdir/\$file\"
+       exit 1
+      fi
+    fi
+
+    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $RM \"\$progdir/\$program\";
+      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $RM \"\$progdir/\$file\"
+  fi"
+       else
+         $ECHO "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+       fi
+
+       $ECHO "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+       # fixup the dll searchpath if we need to.
+       #
+       # Fix the DLL searchpath if we need to.  Do this before prepending
+       # to shlibpath, because on Windows, both are PATH and uninstalled
+       # libraries must come first.
+       if test -n "$dllsearchpath"; then
+         $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+       fi
+
+       # Export our shlibpath_var if we have one.
+       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+         $ECHO "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+       fi
+
+       $ECHO "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+      func_exec_program \${1+\"\$@\"}
+    fi
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+}
+
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+       cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+*/
+EOF
+           cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+#  include <io.h>
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+/* declarations of non-ANSI functions */
+#if defined(__MINGW32__)
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined(__CYGWIN__)
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined (other platforms) ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined(_MSC_VER)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+# define S_IXUSR _S_IEXEC
+# ifndef _INTPTR_T_DEFINED
+#  define _INTPTR_T_DEFINED
+#  define intptr_t int
+# endif
+#elif defined(__MINGW32__)
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+#elif defined(__CYGWIN__)
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined (other platforms) ... */
+#endif
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+/* path handling portability macros */
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+       (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+#if defined(LT_DEBUGWRAPPER)
+static int lt_debug = 1;
+#else
+static int lt_debug = 0;
+#endif
+
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
+EOF
+
+           cat <<EOF
+volatile const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+           if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+              func_to_host_path "$temp_rpath"
+             cat <<EOF
+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
+EOF
+           else
+             cat <<"EOF"
+const char * LIB_PATH_VALUE   = "";
+EOF
+           fi
+
+           if test -n "$dllsearchpath"; then
+              func_to_host_path "$dllsearchpath:"
+             cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
+EOF
+           else
+             cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE   = "";
+EOF
+           fi
+
+           if test "$fast_install" = yes; then
+             cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+           else
+             cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+           fi
+
+
+           cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX         "--lt-"
+
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
+static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int  newargc;
+  char *tmp_pathspec;
+  char *actual_cwrapper_path;
+  char *actual_cwrapper_name;
+  char *target_name;
+  char *lt_argv_zero;
+  intptr_t rval = 127;
+
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  newargz = XMALLOC (char *, argc + 1);
+
+  /* very simple arg parsing; don't want to rely on getopt
+   * also, copy all non cwrapper options to newargz, except
+   * argz[0], which is handled differently
+   */
+  newargc=0;
+  for (i = 1; i < argc; i++)
+    {
+      if (strcmp (argv[i], dumpscript_opt) == 0)
+       {
+EOF
+           case "$host" in
+             *mingw* | *cygwin* )
+               # make stdout use "unix" line endings
+               echo "          setmode(1,_O_BINARY);"
+               ;;
+             esac
+
+           cat <<"EOF"
+         lt_dump_script (stdout);
+         return 0;
+       }
+      if (strcmp (argv[i], debug_opt) == 0)
+       {
+          lt_debug = 1;
+          continue;
+       }
+      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal (__FILE__, __LINE__,
+                   "unrecognized %s option: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
+    }
+  newargz[++newargc] = NULL;
+
+EOF
+           cat <<EOF
+  /* The GNU banner must be the first non-error debug message */
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+EOF
+           cat <<"EOF"
+  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
+  tmp_pathspec = find_executable (argv[0]);
+  if (tmp_pathspec == NULL)
+    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (before symlink chase) at: %s\n",
+                 tmp_pathspec);
+
+  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (after symlink chase) at: %s\n",
+                 actual_cwrapper_path);
+  XFREE (tmp_pathspec);
+
+  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
+  strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+  /* wrapper name transforms */
+  strendzap (actual_cwrapper_name, ".exe");
+  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+  XFREE (actual_cwrapper_name);
+  actual_cwrapper_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  /* target_name transforms -- use actual target program name; might have lt- prefix */
+  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+  strendzap (target_name, ".exe");
+  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+  XFREE (target_name);
+  target_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(main) libtool target name: %s\n",
+                 target_name);
+EOF
+
+           cat <<EOF
+  newargz[0] =
+    XMALLOC (char, (strlen (actual_cwrapper_path) +
+                   strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+  strcpy (newargz[0], actual_cwrapper_path);
+  strcat (newargz[0], "$objdir");
+  strcat (newargz[0], "/");
+EOF
+
+           cat <<"EOF"
+  /* stop here, and copy so we don't have to do this twice */
+  tmp_pathspec = xstrdup (newargz[0]);
+
+  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+  strcat (newargz[0], actual_cwrapper_name);
+
+  /* DO want the lt- prefix here if it exists, so use target_name */
+  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+  XFREE (tmp_pathspec);
+  tmp_pathspec = NULL;
+EOF
+
+           case $host_os in
+             mingw*)
+           cat <<"EOF"
+  {
+    char* p;
+    while ((p = strchr (newargz[0], '\\')) != NULL)
+      {
+       *p = '/';
+      }
+    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+      {
+       *p = '/';
+      }
+  }
+EOF
+           ;;
+           esac
+
+           cat <<"EOF"
+  XFREE (target_name);
+  XFREE (actual_cwrapper_path);
+  XFREE (actual_cwrapper_name);
+
+  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+     because on Windows, both *_VARNAMEs are PATH but uninstalled
+     libraries must come first. */
+  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+
+  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+                 nonnull (lt_argv_zero));
+  for (i = 0; i < newargc; i++)
+    {
+      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+                     i, nonnull (newargz[i]));
+    }
+
+EOF
+
+           case $host_os in
+             mingw*)
+               cat <<"EOF"
+  /* execv doesn't actually work on mingw as expected on unix */
+  newargz = prepare_spawn (newargz);
+  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  if (rval == -1)
+    {
+      /* failed to start process */
+      lt_debugprintf (__FILE__, __LINE__,
+                     "(main) failed to launch target \"%s\": %s\n",
+                     lt_argv_zero, nonnull (strerror (errno)));
+      return 127;
+    }
+  return rval;
+EOF
+               ;;
+             *)
+               cat <<"EOF"
+  execv (lt_argv_zero, newargz);
+  return rval; /* =127, but avoids unused variable warning */
+EOF
+               ;;
+           esac
+
+           cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void *p = (void *) malloc (num);
+  if (!p)
+    lt_fatal (__FILE__, __LINE__, "memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+                         string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable (const char *path)
+{
+  struct stat st;
+
+  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+                  nonempty (path));
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+    return 1;
+  else
+    return 0;
+}
+
+int
+make_executable (const char *path)
+{
+  int rval = 0;
+  struct stat st;
+
+  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+                  nonempty (path));
+  if ((!path) || (!*path))
+    return 0;
+
+  if (stat (path, &st) >= 0)
+    {
+      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+    }
+  return rval;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise
+   Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+  int has_slash = 0;
+  const char *p;
+  const char *p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char *concat_name;
+
+  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+                  nonempty (wrapper));
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable (concat_name))
+       return concat_name;
+      XFREE (concat_name);
+    }
+  else
+    {
+#endif
+      if (IS_DIR_SEPARATOR (wrapper[0]))
+       {
+         concat_name = xstrdup (wrapper);
+         if (check_executable (concat_name))
+           return concat_name;
+         XFREE (concat_name);
+       }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+    }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+      {
+       has_slash = 1;
+       break;
+      }
+  if (!has_slash)
+    {
+      /* no slashes; search PATH */
+      const char *path = getenv ("PATH");
+      if (path != NULL)
+       {
+         for (p = path; *p; p = p_next)
+           {
+             const char *q;
+             size_t p_len;
+             for (q = p; *q; q++)
+               if (IS_PATH_SEPARATOR (*q))
+                 break;
+             p_len = q - p;
+             p_next = (*q == '\0' ? q : q + 1);
+             if (p_len == 0)
+               {
+                 /* empty path: current directory */
+                 if (getcwd (tmp, LT_PATHMAX) == NULL)
+                   lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+                              nonnull (strerror (errno)));
+                 tmp_len = strlen (tmp);
+                 concat_name =
+                   XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+                 memcpy (concat_name, tmp, tmp_len);
+                 concat_name[tmp_len] = '/';
+                 strcpy (concat_name + tmp_len + 1, wrapper);
+               }
+             else
+               {
+                 concat_name =
+                   XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+                 memcpy (concat_name, p, p_len);
+                 concat_name[p_len] = '/';
+                 strcpy (concat_name + p_len + 1, wrapper);
+               }
+             if (check_executable (concat_name))
+               return concat_name;
+             XFREE (concat_name);
+           }
+       }
+      /* not found in PATH; assume curdir */
+    }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+              nonnull (strerror (errno)));
+  tmp_len = strlen (tmp);
+  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable (concat_name))
+    return concat_name;
+  XFREE (concat_name);
+  return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+  return xstrdup (pathspec);
+#else
+  char buf[LT_PATHMAX];
+  struct stat s;
+  char *tmp_pathspec = xstrdup (pathspec);
+  char *p;
+  int has_symlinks = 0;
+  while (strlen (tmp_pathspec) && !has_symlinks)
+    {
+      lt_debugprintf (__FILE__, __LINE__,
+                     "checking path component for symlinks: %s\n",
+                     tmp_pathspec);
+      if (lstat (tmp_pathspec, &s) == 0)
+       {
+         if (S_ISLNK (s.st_mode) != 0)
+           {
+             has_symlinks = 1;
+             break;
+           }
+
+         /* search backwards for last DIR_SEPARATOR */
+         p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+         while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+           p--;
+         if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+           {
+             /* no more DIR_SEPARATORS left */
+             break;
+           }
+         *p = '\0';
+       }
+      else
+       {
+         lt_fatal (__FILE__, __LINE__,
+                   "error accessing file \"%s\": %s",
+                   tmp_pathspec, nonnull (strerror (errno)));
+       }
+    }
+  XFREE (tmp_pathspec);
+
+  if (!has_symlinks)
+    {
+      return xstrdup (pathspec);
+    }
+
+  tmp_pathspec = realpath (pathspec, buf);
+  if (tmp_pathspec == 0)
+    {
+      lt_fatal (__FILE__, __LINE__,
+               "could not follow symlinks for %s", pathspec);
+    }
+  return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert (str != NULL);
+  assert (pat != NULL);
+
+  len = strlen (str);
+  patlen = strlen (pat);
+
+  if (patlen <= len)
+    {
+      str += len - patlen;
+      if (strcmp (str, pat) == 0)
+       *str = '\0';
+    }
+  return str;
+}
+
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+  va_list args;
+  if (lt_debug)
+    {
+      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+      va_start (args, fmt);
+      (void) vfprintf (stderr, fmt, args);
+      va_end (args);
+    }
+}
+
+static void
+lt_error_core (int exit_status, const char *file,
+              int line, const char *mode,
+              const char *message, va_list ap)
+{
+  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *file, int line, const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
+  va_end (ap);
+}
+
+static const char *
+nonnull (const char *s)
+{
+  return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+  return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_setenv) setting '%s' to '%s'\n",
+                  nonnull (name), nonnull (value));
+  {
+#ifdef HAVE_SETENV
+    /* always make a copy, for consistency with !HAVE_SETENV */
+    char *str = xstrdup (value);
+    setenv (name, str, 1);
+#else
+    int len = strlen (name) + 1 + strlen (value) + 1;
+    char *str = XMALLOC (char, len);
+    sprintf (str, "%s=%s", name, value);
+    if (putenv (str) != EXIT_SUCCESS)
+      {
+        XFREE (str);
+      }
+#endif
+  }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+  char *new_value;
+  if (orig_value && *orig_value)
+    {
+      int orig_value_len = strlen (orig_value);
+      int add_len = strlen (add);
+      new_value = XMALLOC (char, add_len + orig_value_len + 1);
+      if (to_end)
+        {
+          strcpy (new_value, orig_value);
+          strcpy (new_value + orig_value_len, add);
+        }
+      else
+        {
+          strcpy (new_value, add);
+          strcpy (new_value + add_len, orig_value);
+        }
+    }
+  else
+    {
+      new_value = xstrdup (add);
+    }
+  return new_value;
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      /* some systems can't cope with a ':'-terminated path #' */
+      int len = strlen (new_value);
+      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+        {
+          new_value[len-1] = '\0';
+        }
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+  lt_debugprintf (__FILE__, __LINE__,
+                 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+EOF
+           case $host_os in
+             mingw*)
+               cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+   Note that spawn() does not by itself call the command interpreter
+     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+         GetVersionEx(&v);
+         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+      }) ? "cmd.exe" : "command.com").
+   Instead it simply concatenates the arguments, separated by ' ', and calls
+   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
+   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+   special way:
+   - Space and tab are interpreted as delimiters. They are not treated as
+     delimiters if they are surrounded by double quotes: "...".
+   - Unescaped double quotes are removed from the input. Their only effect is
+     that within double quotes, space and tab are treated like normal
+     characters.
+   - Backslashes not followed by double quotes are not special.
+   - But 2*n+1 backslashes followed by a double quote become
+     n backslashes followed by a double quote (n >= 0):
+       \" -> "
+       \\\" -> \"
+       \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+  size_t argc;
+  char **new_argv;
+  size_t i;
+
+  /* Count number of arguments.  */
+  for (argc = 0; argv[argc] != NULL; argc++)
+    ;
+
+  /* Allocate new argument vector.  */
+  new_argv = XMALLOC (char *, argc + 1);
+
+  /* Put quoted arguments into the new argument vector.  */
+  for (i = 0; i < argc; i++)
+    {
+      const char *string = argv[i];
+
+      if (string[0] == '\0')
+       new_argv[i] = xstrdup ("\"\"");
+      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+       {
+         int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+         size_t length;
+         unsigned int backslashes;
+         const char *s;
+         char *quoted_string;
+         char *p;
+
+         length = 0;
+         backslashes = 0;
+         if (quote_around)
+           length++;
+         for (s = string; *s != '\0'; s++)
+           {
+             char c = *s;
+             if (c == '"')
+               length += backslashes + 1;
+             length++;
+             if (c == '\\')
+               backslashes++;
+             else
+               backslashes = 0;
+           }
+         if (quote_around)
+           length += backslashes + 1;
+
+         quoted_string = XMALLOC (char, length + 1);
+
+         p = quoted_string;
+         backslashes = 0;
+         if (quote_around)
+           *p++ = '"';
+         for (s = string; *s != '\0'; s++)
+           {
+             char c = *s;
+             if (c == '"')
+               {
+                 unsigned int j;
+                 for (j = backslashes + 1; j > 0; j--)
+                   *p++ = '\\';
+               }
+             *p++ = c;
+             if (c == '\\')
+               backslashes++;
+             else
+               backslashes = 0;
+           }
+         if (quote_around)
+           {
+             unsigned int j;
+             for (j = backslashes; j > 0; j--)
+               *p++ = '\\';
+             *p++ = '"';
+           }
+         *p = '\0';
+
+         new_argv[i] = quoted_string;
+       }
+      else
+       new_argv[i] = (char *) string;
+    }
+  new_argv[argc] = NULL;
+
+  return new_argv;
+}
+EOF
+               ;;
+           esac
+
+            cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+           func_emit_wrapper yes |
+             $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/  fputs ("\1", f);/p
+g
+D'
+            cat <<"EOF"
+}
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+    $opt_debug
+    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+    *import*) : ;;
+    *) false ;;
+    esac
+}
+
+# func_mode_link arg...
+func_mode_link ()
+{
+    $opt_debug
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args=$nonopt
+    base_compile="$nonopt $@"
+    compile_command=$nonopt
+    finalize_command=$nonopt
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+    new_inherited_linker_flags=
+
+    avoid_version=no
+    bindir=
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    weak_libs=
+    single_module="${wl}-single_module"
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -shared)
+       test "$build_libtool_libs" != yes && \
+         func_fatal_configuration "can not build a shared library"
+       build_old_libs=no
+       break
+       ;;
+      -all-static | -static | -static-libtool-libs)
+       case $arg in
+       -all-static)
+         if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+           func_warning "complete static linking is impossible in this configuration"
+         fi
+         if test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
+         fi
+         prefer_static_libs=yes
+         ;;
+       -static)
+         if test -z "$pic_flag" && test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
+         fi
+         prefer_static_libs=built
+         ;;
+       -static-libtool-libs)
+         if test -z "$pic_flag" && test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
+         fi
+         prefer_static_libs=yes
+         ;;
+       esac
+       build_libtool_libs=no
+       build_old_libs=yes
+       break
+       ;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+       case $prev in
+       output)
+         func_append compile_command " @OUTPUT@"
+         func_append finalize_command " @OUTPUT@"
+         ;;
+       esac
+
+       case $prev in
+       bindir)
+         bindir="$arg"
+         prev=
+         continue
+         ;;
+       dlfiles|dlprefiles)
+         if test "$preload" = no; then
+           # Add the symbol object into the linking commands.
+           func_append compile_command " @SYMFILE@"
+           func_append finalize_command " @SYMFILE@"
+           preload=yes
+         fi
+         case $arg in
+         *.la | *.lo) ;;  # We handle these cases below.
+         force)
+           if test "$dlself" = no; then
+             dlself=needless
+             export_dynamic=yes
+           fi
+           prev=
+           continue
+           ;;
+         self)
+           if test "$prev" = dlprefiles; then
+             dlself=yes
+           elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+             dlself=yes
+           else
+             dlself=needless
+             export_dynamic=yes
+           fi
+           prev=
+           continue
+           ;;
+         *)
+           if test "$prev" = dlfiles; then
+             func_append dlfiles " $arg"
+           else
+             func_append dlprefiles " $arg"
+           fi
+           prev=
+           continue
+           ;;
+         esac
+         ;;
+       expsyms)
+         export_symbols="$arg"
+         test -f "$arg" \
+           || func_fatal_error "symbol file \`$arg' does not exist"
+         prev=
+         continue
+         ;;
+       expsyms_regex)
+         export_symbols_regex="$arg"
+         prev=
+         continue
+         ;;
+       framework)
+         case $host in
+           *-*-darwin*)
+             case "$deplibs " in
+               *" $qarg.ltframework "*) ;;
+               *) func_append deplibs " $qarg.ltframework" # this is fixed later
+                  ;;
+             esac
+             ;;
+         esac
+         prev=
+         continue
+         ;;
+       inst_prefix)
+         inst_prefix_dir="$arg"
+         prev=
+         continue
+         ;;
+       objectlist)
+         if test -f "$arg"; then
+           save_arg=$arg
+           moreargs=
+           for fil in `cat "$save_arg"`
+           do
+#            func_append moreargs " $fil"
+             arg=$fil
+             # A libtool-controlled object.
+
+             # Check to see that this really is a libtool object.
+             if func_lalib_unsafe_p "$arg"; then
+               pic_object=
+               non_pic_object=
+
+               # Read the .lo file
+               func_source "$arg"
+
+               if test -z "$pic_object" ||
+                  test -z "$non_pic_object" ||
+                  test "$pic_object" = none &&
+                  test "$non_pic_object" = none; then
+                 func_fatal_error "cannot find name of object for \`$arg'"
+               fi
+
+               # Extract subdirectory from the argument.
+               func_dirname "$arg" "/" ""
+               xdir="$func_dirname_result"
+
+               if test "$pic_object" != none; then
+                 # Prepend the subdirectory the object is found in.
+                 pic_object="$xdir$pic_object"
+
+                 if test "$prev" = dlfiles; then
+                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+                     func_append dlfiles " $pic_object"
+                     prev=
+                     continue
+                   else
+                     # If libtool objects are unsupported, then we need to preload.
+                     prev=dlprefiles
+                   fi
+                 fi
+
+                 # CHECK ME:  I think I busted this.  -Ossama
+                 if test "$prev" = dlprefiles; then
+                   # Preload the old-style object.
+                   func_append dlprefiles " $pic_object"
+                   prev=
+                 fi
+
+                 # A PIC object.
+                 func_append libobjs " $pic_object"
+                 arg="$pic_object"
+               fi
+
+               # Non-PIC object.
+               if test "$non_pic_object" != none; then
+                 # Prepend the subdirectory the object is found in.
+                 non_pic_object="$xdir$non_pic_object"
+
+                 # A standard non-PIC object
+                 func_append non_pic_objects " $non_pic_object"
+                 if test -z "$pic_object" || test "$pic_object" = none ; then
+                   arg="$non_pic_object"
+                 fi
+               else
+                 # If the PIC object exists, use it instead.
+                 # $xdir was prepended to $pic_object above.
+                 non_pic_object="$pic_object"
+                 func_append non_pic_objects " $non_pic_object"
+               fi
+             else
+               # Only an error if not doing a dry-run.
+               if $opt_dry_run; then
+                 # Extract subdirectory from the argument.
+                 func_dirname "$arg" "/" ""
+                 xdir="$func_dirname_result"
+
+                 func_lo2o "$arg"
+                 pic_object=$xdir$objdir/$func_lo2o_result
+                 non_pic_object=$xdir$func_lo2o_result
+                 func_append libobjs " $pic_object"
+                 func_append non_pic_objects " $non_pic_object"
+               else
+                 func_fatal_error "\`$arg' is not a valid libtool object"
+               fi
+             fi
+           done
+         else
+           func_fatal_error "link input file \`$arg' does not exist"
+         fi
+         arg=$save_arg
+         prev=
+         continue
+         ;;
+       precious_regex)
+         precious_files_regex="$arg"
+         prev=
+         continue
+         ;;
+       release)
+         release="-$arg"
+         prev=
+         continue
+         ;;
+       rpath | xrpath)
+         # We need an absolute path.
+         case $arg in
+         [\\/]* | [A-Za-z]:[\\/]*) ;;
+         *)
+           func_fatal_error "only absolute run-paths are allowed"
+           ;;
+         esac
+         if test "$prev" = rpath; then
+           case "$rpath " in
+           *" $arg "*) ;;
+           *) func_append rpath " $arg" ;;
+           esac
+         else
+           case "$xrpath " in
+           *" $arg "*) ;;
+           *) func_append xrpath " $arg" ;;
+           esac
+         fi
+         prev=
+         continue
+         ;;
+       shrext)
+         shrext_cmds="$arg"
+         prev=
+         continue
+         ;;
+       weak)
+         func_append weak_libs " $arg"
+         prev=
+         continue
+         ;;
+       xcclinker)
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $qarg"
+         prev=
+         func_append compile_command " $qarg"
+         func_append finalize_command " $qarg"
+         continue
+         ;;
+       xcompiler)
+         func_append compiler_flags " $qarg"
+         prev=
+         func_append compile_command " $qarg"
+         func_append finalize_command " $qarg"
+         continue
+         ;;
+       xlinker)
+         func_append linker_flags " $qarg"
+         func_append compiler_flags " $wl$qarg"
+         prev=
+         func_append compile_command " $wl$qarg"
+         func_append finalize_command " $wl$qarg"
+         continue
+         ;;
+       *)
+         eval "$prev=\"\$arg\""
+         prev=
+         continue
+         ;;
+       esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+       if test -n "$link_static_flag"; then
+         # See comment for -static flag below, for more details.
+         func_append compile_command " $link_static_flag"
+         func_append finalize_command " $link_static_flag"
+       fi
+       continue
+       ;;
+
+      -allow-undefined)
+       # FIXME: remove this flag sometime in the future.
+       func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+       ;;
+
+      -avoid-version)
+       avoid_version=yes
+       continue
+       ;;
+
+      -bindir)
+       prev=bindir
+       continue
+       ;;
+
+      -dlopen)
+       prev=dlfiles
+       continue
+       ;;
+
+      -dlpreopen)
+       prev=dlprefiles
+       continue
+       ;;
+
+      -export-dynamic)
+       export_dynamic=yes
+       continue
+       ;;
+
+      -export-symbols | -export-symbols-regex)
+       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+         func_fatal_error "more than one -exported-symbols argument is not allowed"
+       fi
+       if test "X$arg" = "X-export-symbols"; then
+         prev=expsyms
+       else
+         prev=expsyms_regex
+       fi
+       continue
+       ;;
+
+      -framework)
+       prev=framework
+       continue
+       ;;
+
+      -inst-prefix-dir)
+       prev=inst_prefix
+       continue
+       ;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+       case $with_gcc/$host in
+       no/*-*-irix* | /*-*-irix*)
+         func_append compile_command " $arg"
+         func_append finalize_command " $arg"
+         ;;
+       esac
+       continue
+       ;;
+
+      -L*)
+       func_stripname "-L" '' "$arg"
+       if test -z "$func_stripname_result"; then
+         if test "$#" -gt 0; then
+           func_fatal_error "require no space between \`-L' and \`$1'"
+         else
+           func_fatal_error "need path for \`-L' option"
+         fi
+       fi
+       func_resolve_sysroot "$func_stripname_result"
+       dir=$func_resolve_sysroot_result
+       # We need an absolute path.
+       case $dir in
+       [\\/]* | [A-Za-z]:[\\/]*) ;;
+       *)
+         absdir=`cd "$dir" && pwd`
+         test -z "$absdir" && \
+           func_fatal_error "cannot determine absolute directory name of \`$dir'"
+         dir="$absdir"
+         ;;
+       esac
+       case "$deplibs " in
+       *" -L$dir "* | *" $arg "*)
+         # Will only happen for absolute or sysroot arguments
+         ;;
+       *)
+         # Preserve sysroot, but never include relative directories
+         case $dir in
+           [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+           *) func_append deplibs " -L$dir" ;;
+         esac
+         func_append lib_search_path " $dir"
+         ;;
+       esac
+       case $host in
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+         testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
+         case :$dllsearchpath: in
+         *":$dir:"*) ;;
+         ::) dllsearchpath=$dir;;
+         *) func_append dllsearchpath ":$dir";;
+         esac
+         case :$dllsearchpath: in
+         *":$testbindir:"*) ;;
+         ::) dllsearchpath=$testbindir;;
+         *) func_append dllsearchpath ":$testbindir";;
+         esac
+         ;;
+       esac
+       continue
+       ;;
+
+      -l*)
+       if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+         case $host in
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+           # These systems don't actually have a C or math library (as such)
+           continue
+           ;;
+         *-*-os2*)
+           # These systems don't actually have a C library (as such)
+           test "X$arg" = "X-lc" && continue
+           ;;
+         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+           # Do not include libc due to us having libc/libc_r.
+           test "X$arg" = "X-lc" && continue
+           ;;
+         *-*-rhapsody* | *-*-darwin1.[012])
+           # Rhapsody C and math libraries are in the System framework
+           func_append deplibs " System.ltframework"
+           continue
+           ;;
+         *-*-sco3.2v5* | *-*-sco5v6*)
+           # Causes problems with __ctype
+           test "X$arg" = "X-lc" && continue
+           ;;
+         *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+           # Compiler inserts libc in the correct place for threads to work
+           test "X$arg" = "X-lc" && continue
+           ;;
+         esac
+       elif test "X$arg" = "X-lc_r"; then
+        case $host in
+        *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+          # Do not include libc_r directly, use -pthread flag.
+          continue
+          ;;
+        esac
+       fi
+       func_append deplibs " $arg"
+       continue
+       ;;
+
+      -module)
+       module=yes
+       continue
+       ;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      # Darwin uses the -arch flag to determine output architecture.
+      -model|-arch|-isysroot|--sysroot)
+       func_append compiler_flags " $arg"
+       func_append compile_command " $arg"
+       func_append finalize_command " $arg"
+       prev=xcompiler
+       continue
+       ;;
+
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+       func_append compiler_flags " $arg"
+       func_append compile_command " $arg"
+       func_append finalize_command " $arg"
+       case "$new_inherited_linker_flags " in
+           *" $arg "*) ;;
+           * ) func_append new_inherited_linker_flags " $arg" ;;
+       esac
+       continue
+       ;;
+
+      -multi_module)
+       single_module="${wl}-multi_module"
+       continue
+       ;;
+
+      -no-fast-install)
+       fast_install=no
+       continue
+       ;;
+
+      -no-install)
+       case $host in
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+         # The PATH hackery in wrapper scripts is required on Windows
+         # and Darwin in order for the loader to find any dlls it needs.
+         func_warning "\`-no-install' is ignored for $host"
+         func_warning "assuming \`-no-fast-install' instead"
+         fast_install=no
+         ;;
+       *) no_install=yes ;;
+       esac
+       continue
+       ;;
+
+      -no-undefined)
+       allow_undefined=no
+       continue
+       ;;
+
+      -objectlist)
+       prev=objectlist
+       continue
+       ;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+       prev=precious_regex
+       continue
+       ;;
+
+      -release)
+       prev=release
+       continue
+       ;;
+
+      -rpath)
+       prev=rpath
+       continue
+       ;;
+
+      -R)
+       prev=xrpath
+       continue
+       ;;
+
+      -R*)
+       func_stripname '-R' '' "$arg"
+       dir=$func_stripname_result
+       # We need an absolute path.
+       case $dir in
+       [\\/]* | [A-Za-z]:[\\/]*) ;;
+       =*)
+         func_stripname '=' '' "$dir"
+         dir=$lt_sysroot$func_stripname_result
+         ;;
+       *)
+         func_fatal_error "only absolute run-paths are allowed"
+         ;;
+       esac
+       case "$xrpath " in
+       *" $dir "*) ;;
+       *) func_append xrpath " $dir" ;;
+       esac
+       continue
+       ;;
+
+      -shared)
+       # The effects of -shared are defined in a previous loop.
+       continue
+       ;;
+
+      -shrext)
+       prev=shrext
+       continue
+       ;;
+
+      -static | -static-libtool-libs)
+       # The effects of -static are defined in a previous loop.
+       # We used to do the same as -all-static on platforms that
+       # didn't have a PIC flag, but the assumption that the effects
+       # would be equivalent was wrong.  It would break on at least
+       # Digital Unix and AIX.
+       continue
+       ;;
+
+      -thread-safe)
+       thread_safe=yes
+       continue
+       ;;
+
+      -version-info)
+       prev=vinfo
+       continue
+       ;;
+
+      -version-number)
+       prev=vinfo
+       vinfo_number=yes
+       continue
+       ;;
+
+      -weak)
+        prev=weak
+       continue
+       ;;
+
+      -Wc,*)
+       func_stripname '-Wc,' '' "$arg"
+       args=$func_stripname_result
+       arg=
+       save_ifs="$IFS"; IFS=','
+       for flag in $args; do
+         IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+         func_append arg " $func_quote_for_eval_result"
+         func_append compiler_flags " $func_quote_for_eval_result"
+       done
+       IFS="$save_ifs"
+       func_stripname ' ' '' "$arg"
+       arg=$func_stripname_result
+       ;;
+
+      -Wl,*)
+       func_stripname '-Wl,' '' "$arg"
+       args=$func_stripname_result
+       arg=
+       save_ifs="$IFS"; IFS=','
+       for flag in $args; do
+         IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+         func_append arg " $wl$func_quote_for_eval_result"
+         func_append compiler_flags " $wl$func_quote_for_eval_result"
+         func_append linker_flags " $func_quote_for_eval_result"
+       done
+       IFS="$save_ifs"
+       func_stripname ' ' '' "$arg"
+       arg=$func_stripname_result
+       ;;
+
+      -Xcompiler)
+       prev=xcompiler
+       continue
+       ;;
+
+      -Xlinker)
+       prev=xlinker
+       continue
+       ;;
+
+      -XCClinker)
+       prev=xcclinker
+       continue
+       ;;
+
+      # -msg_* for osf cc
+      -msg_*)
+       func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+       ;;
+
+      # Flags to be passed through unchanged, with rationale:
+      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
+      # -r[0-9][0-9]*        specify processor for the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+      # +DA*, +DD*           enable 64-bit mode for the HP compiler
+      # -q*                  compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+      # -F/path              path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # @file                GCC response files
+      # -tp=*                Portland pgcc target processor selection
+      # --sysroot=*          for sysroot support
+      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
+        func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+        func_append compile_command " $arg"
+        func_append finalize_command " $arg"
+        func_append compiler_flags " $arg"
+        continue
+        ;;
+
+      # Some other compiler flag.
+      -* | +*)
+        func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+       ;;
+
+      *.$objext)
+       # A standard object.
+       func_append objs " $arg"
+       ;;
+
+      *.lo)
+       # A libtool-controlled object.
+
+       # Check to see that this really is a libtool object.
+       if func_lalib_unsafe_p "$arg"; then
+         pic_object=
+         non_pic_object=
+
+         # Read the .lo file
+         func_source "$arg"
+
+         if test -z "$pic_object" ||
+            test -z "$non_pic_object" ||
+            test "$pic_object" = none &&
+            test "$non_pic_object" = none; then
+           func_fatal_error "cannot find name of object for \`$arg'"
+         fi
+
+         # Extract subdirectory from the argument.
+         func_dirname "$arg" "/" ""
+         xdir="$func_dirname_result"
+
+         if test "$pic_object" != none; then
+           # Prepend the subdirectory the object is found in.
+           pic_object="$xdir$pic_object"
+
+           if test "$prev" = dlfiles; then
+             if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+               func_append dlfiles " $pic_object"
+               prev=
+               continue
+             else
+               # If libtool objects are unsupported, then we need to preload.
+               prev=dlprefiles
+             fi
+           fi
+
+           # CHECK ME:  I think I busted this.  -Ossama
+           if test "$prev" = dlprefiles; then
+             # Preload the old-style object.
+             func_append dlprefiles " $pic_object"
+             prev=
+           fi
+
+           # A PIC object.
+           func_append libobjs " $pic_object"
+           arg="$pic_object"
+         fi
+
+         # Non-PIC object.
+         if test "$non_pic_object" != none; then
+           # Prepend the subdirectory the object is found in.
+           non_pic_object="$xdir$non_pic_object"
+
+           # A standard non-PIC object
+           func_append non_pic_objects " $non_pic_object"
+           if test -z "$pic_object" || test "$pic_object" = none ; then
+             arg="$non_pic_object"
+           fi
+         else
+           # If the PIC object exists, use it instead.
+           # $xdir was prepended to $pic_object above.
+           non_pic_object="$pic_object"
+           func_append non_pic_objects " $non_pic_object"
+         fi
+       else
+         # Only an error if not doing a dry-run.
+         if $opt_dry_run; then
+           # Extract subdirectory from the argument.
+           func_dirname "$arg" "/" ""
+           xdir="$func_dirname_result"
+
+           func_lo2o "$arg"
+           pic_object=$xdir$objdir/$func_lo2o_result
+           non_pic_object=$xdir$func_lo2o_result
+           func_append libobjs " $pic_object"
+           func_append non_pic_objects " $non_pic_object"
+         else
+           func_fatal_error "\`$arg' is not a valid libtool object"
+         fi
+       fi
+       ;;
+
+      *.$libext)
+       # An archive.
+       func_append deplibs " $arg"
+       func_append old_deplibs " $arg"
+       continue
+       ;;
+
+      *.la)
+       # A libtool-controlled library.
+
+       func_resolve_sysroot "$arg"
+       if test "$prev" = dlfiles; then
+         # This library was specified with -dlopen.
+         func_append dlfiles " $func_resolve_sysroot_result"
+         prev=
+       elif test "$prev" = dlprefiles; then
+         # The library was specified with -dlpreopen.
+         func_append dlprefiles " $func_resolve_sysroot_result"
+         prev=
+       else
+         func_append deplibs " $func_resolve_sysroot_result"
+       fi
+       continue
+       ;;
+
+      # Some other compiler argument.
+      *)
+       # Unknown arguments in both finalize_command and compile_command need
+       # to be aesthetically quoted because they are evaled later.
+       func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+       ;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+       func_append compile_command " $arg"
+       func_append finalize_command " $arg"
+      fi
+    done # argument parsing loop
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prevarg' option requires an argument"
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      func_append compile_command " $arg"
+      func_append finalize_command " $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    func_basename "$output"
+    outputname="$func_basename_result"
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    func_dirname "$output" "/" ""
+    output_objdir="$func_dirname_result$objdir"
+    func_to_tool_file "$output_objdir/"
+    tool_output_objdir=$func_to_tool_file_result
+    # Create the object directory.
+    func_mkdir_p "$output_objdir"
+
+    # Determine the type of output
+    case $output in
+    "")
+      func_fatal_help "you must specify an output file"
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if $opt_preserve_dup_deps ; then
+       case "$libs " in
+       *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+       esac
+      fi
+      func_append libs " $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if $opt_duplicate_compiler_generated_deps; then
+       for pre_post_dep in $predeps $postdeps; do
+         case "$pre_post_deps " in
+         *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
+         esac
+         func_append pre_post_deps " $pre_post_dep"
+       done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+
+    case $linkmode in
+    lib)
+       passes="conv dlpreopen link"
+       for file in $dlfiles $dlprefiles; do
+         case $file in
+         *.la) ;;
+         *)
+           func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+           ;;
+         esac
+       done
+       ;;
+    prog)
+       compile_deplibs=
+       finalize_deplibs=
+       alldeplibs=no
+       newdlfiles=
+       newdlprefiles=
+       passes="conv scan dlopen dlpreopen link"
+       ;;
+    *)  passes="conv"
+       ;;
+    esac
+
+    for pass in $passes; do
+      # The preopen pass in lib mode reverses $deplibs; put it back here
+      # so that -L comes before libs that need it for instance...
+      if test "$linkmode,$pass" = "lib,link"; then
+       ## FIXME: Find the place where the list is rebuilt in the wrong
+       ##        order, and fix it there properly
+        tmp_deplibs=
+       for deplib in $deplibs; do
+         tmp_deplibs="$deplib $tmp_deplibs"
+       done
+       deplibs="$tmp_deplibs"
+      fi
+
+      if test "$linkmode,$pass" = "lib,link" ||
+        test "$linkmode,$pass" = "prog,scan"; then
+       libs="$deplibs"
+       deplibs=
+      fi
+      if test "$linkmode" = prog; then
+       case $pass in
+       dlopen) libs="$dlfiles" ;;
+       dlpreopen) libs="$dlprefiles" ;;
+       link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+       esac
+      fi
+      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+       # Collect and forward deplibs of preopened libtool libs
+       for lib in $dlprefiles; do
+         # Ignore non-libtool-libs
+         dependency_libs=
+         func_resolve_sysroot "$lib"
+         case $lib in
+         *.la) func_source "$func_resolve_sysroot_result" ;;
+         esac
+
+         # Collect preopened libtool deplibs, except any this library
+         # has declared as weak libs
+         for deplib in $dependency_libs; do
+           func_basename "$deplib"
+            deplib_base=$func_basename_result
+           case " $weak_libs " in
+           *" $deplib_base "*) ;;
+           *) func_append deplibs " $deplib" ;;
+           esac
+         done
+       done
+       libs="$dlprefiles"
+      fi
+      if test "$pass" = dlopen; then
+       # Collect dlpreopened libraries
+       save_deplibs="$deplibs"
+       deplibs=
+      fi
+
+      for deplib in $libs; do
+       lib=
+       found=no
+       case $deplib in
+       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+         if test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$deplib $compile_deplibs"
+           finalize_deplibs="$deplib $finalize_deplibs"
+         else
+           func_append compiler_flags " $deplib"
+           if test "$linkmode" = lib ; then
+               case "$new_inherited_linker_flags " in
+                   *" $deplib "*) ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
+               esac
+           fi
+         fi
+         continue
+         ;;
+       -l*)
+         if test "$linkmode" != lib && test "$linkmode" != prog; then
+           func_warning "\`-l' is ignored for archives/objects"
+           continue
+         fi
+         func_stripname '-l' '' "$deplib"
+         name=$func_stripname_result
+         if test "$linkmode" = lib; then
+           searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+         else
+           searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+         fi
+         for searchdir in $searchdirs; do
+           for search_ext in .la $std_shrext .so .a; do
+             # Search the libtool library
+             lib="$searchdir/lib${name}${search_ext}"
+             if test -f "$lib"; then
+               if test "$search_ext" = ".la"; then
+                 found=yes
+               else
+                 found=no
+               fi
+               break 2
+             fi
+           done
+         done
+         if test "$found" != yes; then
+           # deplib doesn't seem to be a libtool library
+           if test "$linkmode,$pass" = "prog,link"; then
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             deplibs="$deplib $deplibs"
+             test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+           fi
+           continue
+         else # deplib is a libtool library
+           # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+           # We need to do some special things here, and not later.
+           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+             case " $predeps $postdeps " in
+             *" $deplib "*)
+               if func_lalib_p "$lib"; then
+                 library_names=
+                 old_library=
+                 func_source "$lib"
+                 for l in $old_library $library_names; do
+                   ll="$l"
+                 done
+                 if test "X$ll" = "X$old_library" ; then # only static version available
+                   found=no
+                   func_dirname "$lib" "" "."
+                   ladir="$func_dirname_result"
+                   lib=$ladir/$old_library
+                   if test "$linkmode,$pass" = "prog,link"; then
+                     compile_deplibs="$deplib $compile_deplibs"
+                     finalize_deplibs="$deplib $finalize_deplibs"
+                   else
+                     deplibs="$deplib $deplibs"
+                     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+                   fi
+                   continue
+                 fi
+               fi
+               ;;
+             *) ;;
+             esac
+           fi
+         fi
+         ;; # -l
+       *.ltframework)
+         if test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$deplib $compile_deplibs"
+           finalize_deplibs="$deplib $finalize_deplibs"
+         else
+           deplibs="$deplib $deplibs"
+           if test "$linkmode" = lib ; then
+               case "$new_inherited_linker_flags " in
+                   *" $deplib "*) ;;
+                   * ) func_append new_inherited_linker_flags " $deplib" ;;
+               esac
+           fi
+         fi
+         continue
+         ;;
+       -L*)
+         case $linkmode in
+         lib)
+           deplibs="$deplib $deplibs"
+           test "$pass" = conv && continue
+           newdependency_libs="$deplib $newdependency_libs"
+           func_stripname '-L' '' "$deplib"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
+           ;;
+         prog)
+           if test "$pass" = conv; then
+             deplibs="$deplib $deplibs"
+             continue
+           fi
+           if test "$pass" = scan; then
+             deplibs="$deplib $deplibs"
+           else
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           fi
+           func_stripname '-L' '' "$deplib"
+           func_resolve_sysroot "$func_stripname_result"
+           func_append newlib_search_path " $func_resolve_sysroot_result"
+           ;;
+         *)
+           func_warning "\`-L' is ignored for archives/objects"
+           ;;
+         esac # linkmode
+         continue
+         ;; # -L
+       -R*)
+         if test "$pass" = link; then
+           func_stripname '-R' '' "$deplib"
+           func_resolve_sysroot "$func_stripname_result"
+           dir=$func_resolve_sysroot_result
+           # Make sure the xrpath contains only unique directories.
+           case "$xrpath " in
+           *" $dir "*) ;;
+           *) func_append xrpath " $dir" ;;
+           esac
+         fi
+         deplibs="$deplib $deplibs"
+         continue
+         ;;
+       *.la)
+         func_resolve_sysroot "$deplib"
+         lib=$func_resolve_sysroot_result
+         ;;
+       *.$libext)
+         if test "$pass" = conv; then
+           deplibs="$deplib $deplibs"
+           continue
+         fi
+         case $linkmode in
+         lib)
+           # Linking convenience modules into shared libraries is allowed,
+           # but linking other static libraries is non-portable.
+           case " $dlpreconveniencelibs " in
+           *" $deplib "*) ;;
+           *)
+             valid_a_lib=no
+             case $deplibs_check_method in
+               match_pattern*)
+                 set dummy $deplibs_check_method; shift
+                 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+                 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
+                   | $EGREP "$match_pattern_regex" > /dev/null; then
+                   valid_a_lib=yes
+                 fi
+               ;;
+               pass_all)
+                 valid_a_lib=yes
+               ;;
+             esac
+             if test "$valid_a_lib" != yes; then
+               echo
+               $ECHO "*** Warning: Trying to link with static lib archive $deplib."
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because the file extensions .$libext of this argument makes me believe"
+               echo "*** that it is just a static archive that I should not use here."
+             else
+               echo
+               $ECHO "*** Warning: Linking the shared library $output against the"
+               $ECHO "*** static library $deplib is not portable!"
+               deplibs="$deplib $deplibs"
+             fi
+             ;;
+           esac
+           continue
+           ;;
+         prog)
+           if test "$pass" != link; then
+             deplibs="$deplib $deplibs"
+           else
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           fi
+           continue
+           ;;
+         esac # linkmode
+         ;; # *.$libext
+       *.lo | *.$objext)
+         if test "$pass" = conv; then
+           deplibs="$deplib $deplibs"
+         elif test "$linkmode" = prog; then
+           if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+             # If there is no dlopen support or we're linking statically,
+             # we need to preload.
+             func_append newdlprefiles " $deplib"
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             func_append newdlfiles " $deplib"
+           fi
+         fi
+         continue
+         ;;
+       %DEPLIBS%)
+         alldeplibs=yes
+         continue
+         ;;
+       esac # case $deplib
+
+       if test "$found" = yes || test -f "$lib"; then :
+       else
+         func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
+       fi
+
+       # Check to see that this really is a libtool archive.
+       func_lalib_unsafe_p "$lib" \
+         || func_fatal_error "\`$lib' is not a valid libtool archive"
+
+       func_dirname "$lib" "" "."
+       ladir="$func_dirname_result"
+
+       dlname=
+       dlopen=
+       dlpreopen=
+       libdir=
+       library_names=
+       old_library=
+       inherited_linker_flags=
+       # If the library was installed with an old release of libtool,
+       # it will not redefine variables installed, or shouldnotlink
+       installed=yes
+       shouldnotlink=no
+       avoidtemprpath=
+
+
+       # Read the .la file
+       func_source "$lib"
+
+       # Convert "-framework foo" to "foo.ltframework"
+       if test -n "$inherited_linker_flags"; then
+         tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
+         for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+           case " $new_inherited_linker_flags " in
+             *" $tmp_inherited_linker_flag "*) ;;
+             *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
+           esac
+         done
+       fi
+       dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+       if test "$linkmode,$pass" = "lib,link" ||
+          test "$linkmode,$pass" = "prog,scan" ||
+          { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+         test -n "$dlopen" && func_append dlfiles " $dlopen"
+         test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
+       fi
+
+       if test "$pass" = conv; then
+         # Only check for convenience libraries
+         deplibs="$lib $deplibs"
+         if test -z "$libdir"; then
+           if test -z "$old_library"; then
+             func_fatal_error "cannot find name of link library for \`$lib'"
+           fi
+           # It is a libtool convenience library, so add in its objects.
+           func_append convenience " $ladir/$objdir/$old_library"
+           func_append old_convenience " $ladir/$objdir/$old_library"
+         elif test "$linkmode" != prog && test "$linkmode" != lib; then
+           func_fatal_error "\`$lib' is not a convenience library"
+         fi
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           deplibs="$deplib $deplibs"
+           if $opt_preserve_dup_deps ; then
+             case "$tmp_libs " in
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+             esac
+           fi
+           func_append tmp_libs " $deplib"
+         done
+         continue
+       fi # $pass = conv
+
+
+       # Get the name of the library we link against.
+       linklib=
+       if test -n "$old_library" &&
+          { test "$prefer_static_libs" = yes ||
+            test "$prefer_static_libs,$installed" = "built,no"; }; then
+         linklib=$old_library
+       else
+         for l in $old_library $library_names; do
+           linklib="$l"
+         done
+       fi
+       if test -z "$linklib"; then
+         func_fatal_error "cannot find name of link library for \`$lib'"
+       fi
+
+       # This library was specified with -dlopen.
+       if test "$pass" = dlopen; then
+         if test -z "$libdir"; then
+           func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
+         fi
+         if test -z "$dlname" ||
+            test "$dlopen_support" != yes ||
+            test "$build_libtool_libs" = no; then
+           # If there is no dlname, no dlopen support or we're linking
+           # statically, we need to preload.  We also need to preload any
+           # dependent libraries so libltdl's deplib preloader doesn't
+           # bomb out in the load deplibs phase.
+           func_append dlprefiles " $lib $dependency_libs"
+         else
+           func_append newdlfiles " $lib"
+         fi
+         continue
+       fi # $pass = dlopen
+
+       # We need an absolute path.
+       case $ladir in
+       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+       *)
+         abs_ladir=`cd "$ladir" && pwd`
+         if test -z "$abs_ladir"; then
+           func_warning "cannot determine absolute directory name of \`$ladir'"
+           func_warning "passing it literally to the linker, although it might fail"
+           abs_ladir="$ladir"
+         fi
+         ;;
+       esac
+       func_basename "$lib"
+       laname="$func_basename_result"
+
+       # Find the relevant object directory and library name.
+       if test "X$installed" = Xyes; then
+         if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+           func_warning "library \`$lib' was moved."
+           dir="$ladir"
+           absdir="$abs_ladir"
+           libdir="$abs_ladir"
+         else
+           dir="$lt_sysroot$libdir"
+           absdir="$lt_sysroot$libdir"
+         fi
+         test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+       else
+         if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+           dir="$ladir"
+           absdir="$abs_ladir"
+           # Remove this search path later
+           func_append notinst_path " $abs_ladir"
+         else
+           dir="$ladir/$objdir"
+           absdir="$abs_ladir/$objdir"
+           # Remove this search path later
+           func_append notinst_path " $abs_ladir"
+         fi
+       fi # $installed = yes
+       func_stripname 'lib' '.la' "$laname"
+       name=$func_stripname_result
+
+       # This library was specified with -dlpreopen.
+       if test "$pass" = dlpreopen; then
+         if test -z "$libdir" && test "$linkmode" = prog; then
+           func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+         fi
+         case "$host" in
+           # special handling for platforms with PE-DLLs.
+           *cygwin* | *mingw* | *cegcc* )
+             # Linker will automatically link against shared library if both
+             # static and shared are present.  Therefore, ensure we extract
+             # symbols from the import library if a shared library is present
+             # (otherwise, the dlopen module name will be incorrect).  We do
+             # this by putting the import library name into $newdlprefiles.
+             # We recover the dlopen module name by 'saving' the la file
+             # name in a special purpose variable, and (later) extracting the
+             # dlname from the la file.
+             if test -n "$dlname"; then
+               func_tr_sh "$dir/$linklib"
+               eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+               func_append newdlprefiles " $dir/$linklib"
+             else
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             fi
+           ;;
+           * )
+             # Prefer using a static library (so that no silly _DYNAMIC symbols
+             # are required to link).
+             if test -n "$old_library"; then
+               func_append newdlprefiles " $dir/$old_library"
+               # Keep a list of preopened convenience libraries to check
+               # that they are being used correctly in the link pass.
+               test -z "$libdir" && \
+                 func_append dlpreconveniencelibs " $dir/$old_library"
+             # Otherwise, use the dlname, so that lt_dlopen finds it.
+             elif test -n "$dlname"; then
+               func_append newdlprefiles " $dir/$dlname"
+             else
+               func_append newdlprefiles " $dir/$linklib"
+             fi
+           ;;
+         esac
+       fi # $pass = dlpreopen
+
+       if test -z "$libdir"; then
+         # Link the convenience library
+         if test "$linkmode" = lib; then
+           deplibs="$dir/$old_library $deplibs"
+         elif test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$dir/$old_library $compile_deplibs"
+           finalize_deplibs="$dir/$old_library $finalize_deplibs"
+         else
+           deplibs="$lib $deplibs" # used for prog,scan pass
+         fi
+         continue
+       fi
+
+
+       if test "$linkmode" = prog && test "$pass" != link; then
+         func_append newlib_search_path " $ladir"
+         deplibs="$lib $deplibs"
+
+         linkalldeplibs=no
+         if test "$link_all_deplibs" != no || test -z "$library_names" ||
+            test "$build_libtool_libs" = no; then
+           linkalldeplibs=yes
+         fi
+
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           case $deplib in
+           -L*) func_stripname '-L' '' "$deplib"
+                func_resolve_sysroot "$func_stripname_result"
+                func_append newlib_search_path " $func_resolve_sysroot_result"
+                ;;
+           esac
+           # Need to link against all dependency_libs?
+           if test "$linkalldeplibs" = yes; then
+             deplibs="$deplib $deplibs"
+           else
+             # Need to hardcode shared library paths
+             # or/and link against static libraries
+             newdependency_libs="$deplib $newdependency_libs"
+           fi
+           if $opt_preserve_dup_deps ; then
+             case "$tmp_libs " in
+             *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+             esac
+           fi
+           func_append tmp_libs " $deplib"
+         done # for deplib
+         continue
+       fi # $linkmode = prog...
+
+       if test "$linkmode,$pass" = "prog,link"; then
+         if test -n "$library_names" &&
+            { { test "$prefer_static_libs" = no ||
+                test "$prefer_static_libs,$installed" = "built,yes"; } ||
+              test -z "$old_library"; }; then
+           # We need to hardcode the library path
+           if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+             # Make sure the rpath contains only unique directories.
+             case "$temp_rpath:" in
+             *"$absdir:"*) ;;
+             *) func_append temp_rpath "$absdir:" ;;
+             esac
+           fi
+
+           # Hardcode the library path.
+           # Skip directories that are in the system default run-time
+           # search path.
+           case " $sys_lib_dlsearch_path " in
+           *" $absdir "*) ;;
+           *)
+             case "$compile_rpath " in
+             *" $absdir "*) ;;
+             *) func_append compile_rpath " $absdir" ;;
+             esac
+             ;;
+           esac
+           case " $sys_lib_dlsearch_path " in
+           *" $libdir "*) ;;
+           *)
+             case "$finalize_rpath " in
+             *" $libdir "*) ;;
+             *) func_append finalize_rpath " $libdir" ;;
+             esac
+             ;;
+           esac
+         fi # $linkmode,$pass = prog,link...
+
+         if test "$alldeplibs" = yes &&
+            { test "$deplibs_check_method" = pass_all ||
+              { test "$build_libtool_libs" = yes &&
+                test -n "$library_names"; }; }; then
+           # We only need to search for static libraries
+           continue
+         fi
+       fi
+
+       link_static=no # Whether the deplib will be linked statically
+       use_static_libs=$prefer_static_libs
+       if test "$use_static_libs" = built && test "$installed" = yes; then
+         use_static_libs=no
+       fi
+       if test -n "$library_names" &&
+          { test "$use_static_libs" = no || test -z "$old_library"; }; then
+         case $host in
+         *cygwin* | *mingw* | *cegcc*)
+             # No point in relinking DLLs because paths are not encoded
+             func_append notinst_deplibs " $lib"
+             need_relink=no
+           ;;
+         *)
+           if test "$installed" = no; then
+             func_append notinst_deplibs " $lib"
+             need_relink=yes
+           fi
+           ;;
+         esac
+         # This is a shared library
+
+         # Warn about portability, can't link against -module's on some
+         # systems (darwin).  Don't bleat about dlopened modules though!
+         dlopenmodule=""
+         for dlpremoduletest in $dlprefiles; do
+           if test "X$dlpremoduletest" = "X$lib"; then
+             dlopenmodule="$dlpremoduletest"
+             break
+           fi
+         done
+         if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+           echo
+           if test "$linkmode" = prog; then
+             $ECHO "*** Warning: Linking the executable $output against the loadable module"
+           else
+             $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+           fi
+           $ECHO "*** $linklib is not portable!"
+         fi
+         if test "$linkmode" = lib &&
+            test "$hardcode_into_libs" = yes; then
+           # Hardcode the library path.
+           # Skip directories that are in the system default run-time
+           # search path.
+           case " $sys_lib_dlsearch_path " in
+           *" $absdir "*) ;;
+           *)
+             case "$compile_rpath " in
+             *" $absdir "*) ;;
+             *) func_append compile_rpath " $absdir" ;;
+             esac
+             ;;
+           esac
+           case " $sys_lib_dlsearch_path " in
+           *" $libdir "*) ;;
+           *)
+             case "$finalize_rpath " in
+             *" $libdir "*) ;;
+             *) func_append finalize_rpath " $libdir" ;;
+             esac
+             ;;
+           esac
+         fi
+
+         if test -n "$old_archive_from_expsyms_cmds"; then
+           # figure out the soname
+           set dummy $library_names
+           shift
+           realname="$1"
+           shift
+           libname=`eval "\\$ECHO \"$libname_spec\""`
+           # use dlname if we got it. it's perfectly good, no?
+           if test -n "$dlname"; then
+             soname="$dlname"
+           elif test -n "$soname_spec"; then
+             # bleh windows
+             case $host in
+             *cygwin* | mingw* | *cegcc*)
+               func_arith $current - $age
+               major=$func_arith_result
+               versuffix="-$major"
+               ;;
+             esac
+             eval soname=\"$soname_spec\"
+           else
+             soname="$realname"
+           fi
+
+           # Make a new name for the extract_expsyms_cmds to use
+           soroot="$soname"
+           func_basename "$soroot"
+           soname="$func_basename_result"
+           func_stripname 'lib' '.dll' "$soname"
+           newlib=libimp-$func_stripname_result.a
+
+           # If the library has no export list, then create one now
+           if test -f "$output_objdir/$soname-def"; then :
+           else
+             func_verbose "extracting exported symbol list from \`$soname'"
+             func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+           fi
+
+           # Create $newlib
+           if test -f "$output_objdir/$newlib"; then :; else
+             func_verbose "generating import library for \`$soname'"
+             func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+           fi
+           # make sure the library variables are pointing to the new library
+           dir=$output_objdir
+           linklib=$newlib
+         fi # test -n "$old_archive_from_expsyms_cmds"
+
+         if test "$linkmode" = prog || test "$opt_mode" != relink; then
+           add_shlibpath=
+           add_dir=
+           add=
+           lib_linked=yes
+           case $hardcode_action in
+           immediate | unsupported)
+             if test "$hardcode_direct" = no; then
+               add="$dir/$linklib"
+               case $host in
+                 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+                 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+                 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+                   *-*-unixware7*) add_dir="-L$dir" ;;
+                 *-*-darwin* )
+                   # if the lib is a (non-dlopened) module then we can not
+                   # link against it, someone is ignoring the earlier warnings
+                   if /usr/bin/file -L $add 2> /dev/null |
+                        $GREP ": [^:]* bundle" >/dev/null ; then
+                     if test "X$dlopenmodule" != "X$lib"; then
+                       $ECHO "*** Warning: lib $linklib is a module, not a shared library"
+                       if test -z "$old_library" ; then
+                         echo
+                         echo "*** And there doesn't seem to be a static archive available"
+                         echo "*** The link will probably fail, sorry"
+                       else
+                         add="$dir/$old_library"
+                       fi
+                     elif test -n "$old_library"; then
+                       add="$dir/$old_library"
+                     fi
+                   fi
+               esac
+             elif test "$hardcode_minus_L" = no; then
+               case $host in
+               *-*-sunos*) add_shlibpath="$dir" ;;
+               esac
+               add_dir="-L$dir"
+               add="-l$name"
+             elif test "$hardcode_shlibpath_var" = no; then
+               add_shlibpath="$dir"
+               add="-l$name"
+             else
+               lib_linked=no
+             fi
+             ;;
+           relink)
+             if test "$hardcode_direct" = yes &&
+                test "$hardcode_direct_absolute" = no; then
+               add="$dir/$linklib"
+             elif test "$hardcode_minus_L" = yes; then
+               add_dir="-L$absdir"
+               # Try looking first in the location we're being installed to.
+               if test -n "$inst_prefix_dir"; then
+                 case $libdir in
+                   [\\/]*)
+                     func_append add_dir " -L$inst_prefix_dir$libdir"
+                     ;;
+                 esac
+               fi
+               add="-l$name"
+             elif test "$hardcode_shlibpath_var" = yes; then
+               add_shlibpath="$dir"
+               add="-l$name"
+             else
+               lib_linked=no
+             fi
+             ;;
+           *) lib_linked=no ;;
+           esac
+
+           if test "$lib_linked" != yes; then
+             func_fatal_configuration "unsupported hardcode properties"
+           fi
+
+           if test -n "$add_shlibpath"; then
+             case :$compile_shlibpath: in
+             *":$add_shlibpath:"*) ;;
+             *) func_append compile_shlibpath "$add_shlibpath:" ;;
+             esac
+           fi
+           if test "$linkmode" = prog; then
+             test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+             test -n "$add" && compile_deplibs="$add $compile_deplibs"
+           else
+             test -n "$add_dir" && deplibs="$add_dir $deplibs"
+             test -n "$add" && deplibs="$add $deplibs"
+             if test "$hardcode_direct" != yes &&
+                test "$hardcode_minus_L" != yes &&
+                test "$hardcode_shlibpath_var" = yes; then
+               case :$finalize_shlibpath: in
+               *":$libdir:"*) ;;
+               *) func_append finalize_shlibpath "$libdir:" ;;
+               esac
+             fi
+           fi
+         fi
+
+         if test "$linkmode" = prog || test "$opt_mode" = relink; then
+           add_shlibpath=
+           add_dir=
+           add=
+           # Finalize command for both is simple: just hardcode it.
+           if test "$hardcode_direct" = yes &&
+              test "$hardcode_direct_absolute" = no; then
+             add="$libdir/$linklib"
+           elif test "$hardcode_minus_L" = yes; then
+             add_dir="-L$libdir"
+             add="-l$name"
+           elif test "$hardcode_shlibpath_var" = yes; then
+             case :$finalize_shlibpath: in
+             *":$libdir:"*) ;;
+             *) func_append finalize_shlibpath "$libdir:" ;;
+             esac
+             add="-l$name"
+           elif test "$hardcode_automatic" = yes; then
+             if test -n "$inst_prefix_dir" &&
+                test -f "$inst_prefix_dir$libdir/$linklib" ; then
+               add="$inst_prefix_dir$libdir/$linklib"
+             else
+               add="$libdir/$linklib"
+             fi
+           else
+             # We cannot seem to hardcode it, guess we'll fake it.
+             add_dir="-L$libdir"
+             # Try looking first in the location we're being installed to.
+             if test -n "$inst_prefix_dir"; then
+               case $libdir in
+                 [\\/]*)
+                   func_append add_dir " -L$inst_prefix_dir$libdir"
+                   ;;
+               esac
+             fi
+             add="-l$name"
+           fi
+
+           if test "$linkmode" = prog; then
+             test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+             test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+           else
+             test -n "$add_dir" && deplibs="$add_dir $deplibs"
+             test -n "$add" && deplibs="$add $deplibs"
+           fi
+         fi
+       elif test "$linkmode" = prog; then
+         # Here we assume that one of hardcode_direct or hardcode_minus_L
+         # is not unsupported.  This is valid on all known static and
+         # shared platforms.
+         if test "$hardcode_direct" != unsupported; then
+           test -n "$old_library" && linklib="$old_library"
+           compile_deplibs="$dir/$linklib $compile_deplibs"
+           finalize_deplibs="$dir/$linklib $finalize_deplibs"
+         else
+           compile_deplibs="-l$name -L$dir $compile_deplibs"
+           finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+         fi
+       elif test "$build_libtool_libs" = yes; then
+         # Not a shared library
+         if test "$deplibs_check_method" != pass_all; then
+           # We're trying link a shared library against a static one
+           # but the system doesn't support it.
+
+           # Just print a warning and add the library to dependency_libs so
+           # that the program can be linked against the static library.
+           echo
+           $ECHO "*** Warning: This system can not link to static lib archive $lib."
+           echo "*** I have the capability to make that library automatically link in when"
+           echo "*** you link to this library.  But I can only do this if you have a"
+           echo "*** shared version of the library, which you do not appear to have."
+           if test "$module" = yes; then
+             echo "*** But as you try to build a module library, libtool will still create "
+             echo "*** a static module, that should work as long as the dlopening application"
+             echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+             if test -z "$global_symbol_pipe"; then
+               echo
+               echo "*** However, this would only work if libtool was able to extract symbol"
+               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+               echo "*** not find such a program.  So, this module is probably useless."
+               echo "*** \`nm' from GNU binutils and a full rebuild may help."
+             fi
+             if test "$build_old_libs" = no; then
+               build_libtool_libs=module
+               build_old_libs=yes
+             else
+               build_libtool_libs=no
+             fi
+           fi
+         else
+           deplibs="$dir/$old_library $deplibs"
+           link_static=yes
+         fi
+       fi # link shared/static library?
+
+       if test "$linkmode" = lib; then
+         if test -n "$dependency_libs" &&
+            { test "$hardcode_into_libs" != yes ||
+              test "$build_old_libs" = yes ||
+              test "$link_static" = yes; }; then
+           # Extract -R from dependency_libs
+           temp_deplibs=
+           for libdir in $dependency_libs; do
+             case $libdir in
+             -R*) func_stripname '-R' '' "$libdir"
+                  temp_xrpath=$func_stripname_result
+                  case " $xrpath " in
+                  *" $temp_xrpath "*) ;;
+                  *) func_append xrpath " $temp_xrpath";;
+                  esac;;
+             *) func_append temp_deplibs " $libdir";;
+             esac
+           done
+           dependency_libs="$temp_deplibs"
+         fi
+
+         func_append newlib_search_path " $absdir"
+         # Link against this library
+         test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+         # ... and its dependency_libs
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           newdependency_libs="$deplib $newdependency_libs"
+           case $deplib in
+              -L*) func_stripname '-L' '' "$deplib"
+                   func_resolve_sysroot "$func_stripname_result";;
+              *) func_resolve_sysroot "$deplib" ;;
+            esac
+           if $opt_preserve_dup_deps ; then
+             case "$tmp_libs " in
+             *" $func_resolve_sysroot_result "*)
+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
+             esac
+           fi
+           func_append tmp_libs " $func_resolve_sysroot_result"
+         done
+
+         if test "$link_all_deplibs" != no; then
+           # Add the search paths of all dependency libraries
+           for deplib in $dependency_libs; do
+             path=
+             case $deplib in
+             -L*) path="$deplib" ;;
+             *.la)
+               func_resolve_sysroot "$deplib"
+               deplib=$func_resolve_sysroot_result
+               func_dirname "$deplib" "" "."
+               dir=$func_dirname_result
+               # We need an absolute path.
+               case $dir in
+               [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+               *)
+                 absdir=`cd "$dir" && pwd`
+                 if test -z "$absdir"; then
+                   func_warning "cannot determine absolute directory name of \`$dir'"
+                   absdir="$dir"
+                 fi
+                 ;;
+               esac
+               if $GREP "^installed=no" $deplib > /dev/null; then
+               case $host in
+               *-*-darwin*)
+                 depdepl=
+                 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+                 if test -n "$deplibrary_names" ; then
+                   for tmp in $deplibrary_names ; do
+                     depdepl=$tmp
+                   done
+                   if test -f "$absdir/$objdir/$depdepl" ; then
+                     depdepl="$absdir/$objdir/$depdepl"
+                     darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                      if test -z "$darwin_install_name"; then
+                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                      fi
+                     func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+                     func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
+                     path=
+                   fi
+                 fi
+                 ;;
+               *)
+                 path="-L$absdir/$objdir"
+                 ;;
+               esac
+               else
+                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+                 test -z "$libdir" && \
+                   func_fatal_error "\`$deplib' is not a valid libtool archive"
+                 test "$absdir" != "$libdir" && \
+                   func_warning "\`$deplib' seems to be moved"
+
+                 path="-L$absdir"
+               fi
+               ;;
+             esac
+             case " $deplibs " in
+             *" $path "*) ;;
+             *) deplibs="$path $deplibs" ;;
+             esac
+           done
+         fi # link_all_deplibs != no
+       fi # linkmode = lib
+      done # for deplib in $libs
+      if test "$pass" = link; then
+       if test "$linkmode" = "prog"; then
+         compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+         finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+       else
+         compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+       fi
+      fi
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+       # Link the dlpreopened libraries before other libraries
+       for deplib in $save_deplibs; do
+         deplibs="$deplib $deplibs"
+       done
+      fi
+      if test "$pass" != dlopen; then
+       if test "$pass" != conv; then
+         # Make sure lib_search_path contains only unique directories.
+         lib_search_path=
+         for dir in $newlib_search_path; do
+           case "$lib_search_path " in
+           *" $dir "*) ;;
+           *) func_append lib_search_path " $dir" ;;
+           esac
+         done
+         newlib_search_path=
+       fi
+
+       if test "$linkmode,$pass" != "prog,link"; then
+         vars="deplibs"
+       else
+         vars="compile_deplibs finalize_deplibs"
+       fi
+       for var in $vars dependency_libs; do
+         # Add libraries to $var in reverse order
+         eval tmp_libs=\"\$$var\"
+         new_libs=
+         for deplib in $tmp_libs; do
+           # FIXME: Pedantically, this is the right thing to do, so
+           #        that some nasty dependency loop isn't accidentally
+           #        broken:
+           #new_libs="$deplib $new_libs"
+           # Pragmatically, this seems to cause very few problems in
+           # practice:
+           case $deplib in
+           -L*) new_libs="$deplib $new_libs" ;;
+           -R*) ;;
+           *)
+             # And here is the reason: when a library appears more
+             # than once as an explicit dependence of a library, or
+             # is implicitly linked in more than once by the
+             # compiler, it is considered special, and multiple
+             # occurrences thereof are not removed.  Compare this
+             # with having the same library being listed as a
+             # dependency of multiple other libraries: in this case,
+             # we know (pedantically, we assume) the library does not
+             # need to be listed more than once, so we keep only the
+             # last copy.  This is not always right, but it is rare
+             # enough that we require users that really mean to play
+             # such unportable linking tricks to link the library
+             # using -Wl,-lname, so that libtool does not consider it
+             # for duplicate removal.
+             case " $specialdeplibs " in
+             *" $deplib "*) new_libs="$deplib $new_libs" ;;
+             *)
+               case " $new_libs " in
+               *" $deplib "*) ;;
+               *) new_libs="$deplib $new_libs" ;;
+               esac
+               ;;
+             esac
+             ;;
+           esac
+         done
+         tmp_libs=
+         for deplib in $new_libs; do
+           case $deplib in
+           -L*)
+             case " $tmp_libs " in
+             *" $deplib "*) ;;
+             *) func_append tmp_libs " $deplib" ;;
+             esac
+             ;;
+           *) func_append tmp_libs " $deplib" ;;
+           esac
+         done
+         eval $var=\"$tmp_libs\"
+       done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+       case " $predeps $postdeps $compiler_lib_search_path " in
+       *" $i "*)
+         i=""
+         ;;
+       esac
+       if test -n "$i" ; then
+         func_append tmp_libs " $i"
+       fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+    fi
+    if test "$linkmode" = prog || test "$linkmode" = lib; then
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+       func_warning "\`-dlopen' is ignored for archives"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+       func_warning "\`-l' and \`-L' are ignored for archives" ;;
+      esac
+
+      test -n "$rpath" && \
+       func_warning "\`-rpath' is ignored for archives"
+
+      test -n "$xrpath" && \
+       func_warning "\`-R' is ignored for archives"
+
+      test -n "$vinfo" && \
+       func_warning "\`-version-info/-version-number' is ignored for archives"
+
+      test -n "$release" && \
+       func_warning "\`-release' is ignored for archives"
+
+      test -n "$export_symbols$export_symbols_regex" && \
+       func_warning "\`-export-symbols' is ignored for archives"
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      func_append objs "$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+       func_stripname 'lib' '.la' "$outputname"
+       name=$func_stripname_result
+       eval shared_ext=\"$shrext_cmds\"
+       eval libname=\"$libname_spec\"
+       ;;
+      *)
+       test "$module" = no && \
+         func_fatal_help "libtool library \`$output' must begin with \`lib'"
+
+       if test "$need_lib_prefix" != no; then
+         # Add the "lib" prefix for modules if required
+         func_stripname '' '.la' "$outputname"
+         name=$func_stripname_result
+         eval shared_ext=\"$shrext_cmds\"
+         eval libname=\"$libname_spec\"
+       else
+         func_stripname '' '.la' "$outputname"
+         libname=$func_stripname_result
+       fi
+       ;;
+      esac
+
+      if test -n "$objs"; then
+       if test "$deplibs_check_method" != pass_all; then
+         func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
+       else
+         echo
+         $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+         $ECHO "*** objects $objs is not portable!"
+         func_append libobjs " $objs"
+       fi
+      fi
+
+      test "$dlself" != no && \
+       func_warning "\`-dlopen self' is ignored for libtool libraries"
+
+      set dummy $rpath
+      shift
+      test "$#" -gt 1 && \
+       func_warning "ignoring multiple \`-rpath's for a libtool library"
+
+      install_libdir="$1"
+
+      oldlibs=
+      if test -z "$rpath"; then
+       if test "$build_libtool_libs" = yes; then
+         # Building a libtool convenience library.
+         # Some compilers have problems with a `.al' extension so
+         # convenience libraries should have the same extension an
+         # archive normally would.
+         oldlibs="$output_objdir/$libname.$libext $oldlibs"
+         build_libtool_libs=convenience
+         build_old_libs=yes
+       fi
+
+       test -n "$vinfo" && \
+         func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
+
+       test -n "$release" && \
+         func_warning "\`-release' is ignored for convenience libraries"
+      else
+
+       # Parse the version information argument.
+       save_ifs="$IFS"; IFS=':'
+       set dummy $vinfo 0 0 0
+       shift
+       IFS="$save_ifs"
+
+       test -n "$7" && \
+         func_fatal_help "too many parameters to \`-version-info'"
+
+       # convert absolute version numbers to libtool ages
+       # this retains compatibility with .la files and attempts
+       # to make the code below a bit more comprehensible
+
+       case $vinfo_number in
+       yes)
+         number_major="$1"
+         number_minor="$2"
+         number_revision="$3"
+         #
+         # There are really only two kinds -- those that
+         # use the current revision as the major version
+         # and those that subtract age and use age as
+         # a minor version.  But, then there is irix
+         # which has an extra 1 added just for fun
+         #
+         case $version_type in
+         # correct linux to gnu/linux during the next big refactor
+         darwin|linux|osf|windows|none)
+           func_arith $number_major + $number_minor
+           current=$func_arith_result
+           age="$number_minor"
+           revision="$number_revision"
+           ;;
+         freebsd-aout|freebsd-elf|qnx|sunos)
+           current="$number_major"
+           revision="$number_minor"
+           age="0"
+           ;;
+         irix|nonstopux)
+           func_arith $number_major + $number_minor
+           current=$func_arith_result
+           age="$number_minor"
+           revision="$number_minor"
+           lt_irix_increment=no
+           ;;
+         esac
+         ;;
+       no)
+         current="$1"
+         revision="$2"
+         age="$3"
+         ;;
+       esac
+
+       # Check that each of the things are valid numbers.
+       case $current in
+       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+       *)
+         func_error "CURRENT \`$current' must be a nonnegative integer"
+         func_fatal_error "\`$vinfo' is not valid version information"
+         ;;
+       esac
+
+       case $revision in
+       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+       *)
+         func_error "REVISION \`$revision' must be a nonnegative integer"
+         func_fatal_error "\`$vinfo' is not valid version information"
+         ;;
+       esac
+
+       case $age in
+       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+       *)
+         func_error "AGE \`$age' must be a nonnegative integer"
+         func_fatal_error "\`$vinfo' is not valid version information"
+         ;;
+       esac
+
+       if test "$age" -gt "$current"; then
+         func_error "AGE \`$age' is greater than the current interface number \`$current'"
+         func_fatal_error "\`$vinfo' is not valid version information"
+       fi
+
+       # Calculate the version variables.
+       major=
+       versuffix=
+       verstring=
+       case $version_type in
+       none) ;;
+
+       darwin)
+         # Like Linux, but with the current version available in
+         # verstring for coding it into the library header
+         func_arith $current - $age
+         major=.$func_arith_result
+         versuffix="$major.$age.$revision"
+         # Darwin ld doesn't like 0 for these options...
+         func_arith $current + 1
+         minor_current=$func_arith_result
+         xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+         verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+         ;;
+
+       freebsd-aout)
+         major=".$current"
+         versuffix=".$current.$revision";
+         ;;
+
+       freebsd-elf)
+         major=".$current"
+         versuffix=".$current"
+         ;;
+
+       irix | nonstopux)
+         if test "X$lt_irix_increment" = "Xno"; then
+           func_arith $current - $age
+         else
+           func_arith $current - $age + 1
+         fi
+         major=$func_arith_result
+
+         case $version_type in
+           nonstopux) verstring_prefix=nonstopux ;;
+           *)         verstring_prefix=sgi ;;
+         esac
+         verstring="$verstring_prefix$major.$revision"
+
+         # Add in all the interfaces that we are compatible with.
+         loop=$revision
+         while test "$loop" -ne 0; do
+           func_arith $revision - $loop
+           iface=$func_arith_result
+           func_arith $loop - 1
+           loop=$func_arith_result
+           verstring="$verstring_prefix$major.$iface:$verstring"
+         done
+
+         # Before this point, $major must not contain `.'.
+         major=.$major
+         versuffix="$major.$revision"
+         ;;
+
+       linux) # correct to gnu/linux during the next big refactor
+         func_arith $current - $age
+         major=.$func_arith_result
+         versuffix="$major.$age.$revision"
+         ;;
+
+       osf)
+         func_arith $current - $age
+         major=.$func_arith_result
+         versuffix=".$current.$age.$revision"
+         verstring="$current.$age.$revision"
+
+         # Add in all the interfaces that we are compatible with.
+         loop=$age
+         while test "$loop" -ne 0; do
+           func_arith $current - $loop
+           iface=$func_arith_result
+           func_arith $loop - 1
+           loop=$func_arith_result
+           verstring="$verstring:${iface}.0"
+         done
+
+         # Make executables depend on our current version.
+         func_append verstring ":${current}.0"
+         ;;
+
+       qnx)
+         major=".$current"
+         versuffix=".$current"
+         ;;
+
+       sunos)
+         major=".$current"
+         versuffix=".$current.$revision"
+         ;;
+
+       windows)
+         # Use '-' rather than '.', since we only want one
+         # extension on DOS 8.3 filesystems.
+         func_arith $current - $age
+         major=$func_arith_result
+         versuffix="-$major"
+         ;;
+
+       *)
+         func_fatal_configuration "unknown library version type \`$version_type'"
+         ;;
+       esac
+
+       # Clear the version info if we defaulted, and they specified a release.
+       if test -z "$vinfo" && test -n "$release"; then
+         major=
+         case $version_type in
+         darwin)
+           # we can't check for "0.0" in archive_cmds due to quoting
+           # problems, so we reset it completely
+           verstring=
+           ;;
+         *)
+           verstring="0.0"
+           ;;
+         esac
+         if test "$need_version" = no; then
+           versuffix=
+         else
+           versuffix=".0.0"
+         fi
+       fi
+
+       # Remove version info from name if versioning should be avoided
+       if test "$avoid_version" = yes && test "$need_version" = no; then
+         major=
+         versuffix=
+         verstring=""
+       fi
+
+       # Check to see if the archive will have undefined symbols.
+       if test "$allow_undefined" = yes; then
+         if test "$allow_undefined_flag" = unsupported; then
+           func_warning "undefined symbols not allowed in $host shared libraries"
+           build_libtool_libs=no
+           build_old_libs=yes
+         fi
+       else
+         # Don't allow undefined symbols.
+         allow_undefined_flag="$no_undefined_flag"
+       fi
+
+      fi
+
+      func_generate_dlsyms "$libname" "$libname" "yes"
+      func_append libobjs " $symfileobj"
+      test "X$libobjs" = "X " && libobjs=
+
+      if test "$opt_mode" != relink; then
+       # Remove our outputs, but don't remove object files since they
+       # may have been created when compiling PIC objects.
+       removelist=
+       tempremovelist=`$ECHO "$output_objdir/*"`
+       for p in $tempremovelist; do
+         case $p in
+           *.$objext | *.gcno)
+              ;;
+           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+              if test "X$precious_files_regex" != "X"; then
+                if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+                then
+                  continue
+                fi
+              fi
+              func_append removelist " $p"
+              ;;
+           *) ;;
+         esac
+       done
+       test -n "$removelist" && \
+         func_show_eval "${RM}r \$removelist"
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+       func_append oldlibs " $output_objdir/$libname.$libext"
+
+       # Transform .lo files to .o files.
+       oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #        lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+      #        deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+      #        dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
+      #done
+
+      if test -n "$xrpath"; then
+       # If the user specified any rpath flags, then add them.
+       temp_xrpath=
+       for libdir in $xrpath; do
+         func_replace_sysroot "$libdir"
+         func_append temp_xrpath " -R$func_replace_sysroot_result"
+         case "$finalize_rpath " in
+         *" $libdir "*) ;;
+         *) func_append finalize_rpath " $libdir" ;;
+         esac
+       done
+       if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+         dependency_libs="$temp_xrpath $dependency_libs"
+       fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+       case " $dlprefiles $dlfiles " in
+       *" $lib "*) ;;
+       *) func_append dlfiles " $lib" ;;
+       esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+       case "$dlprefiles " in
+       *" $lib "*) ;;
+       *) func_append dlprefiles " $lib" ;;
+       esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+       if test -n "$rpath"; then
+         case $host in
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+           # these systems don't actually have a c library (as such)!
+           ;;
+         *-*-rhapsody* | *-*-darwin1.[012])
+           # Rhapsody C library is in the System framework
+           func_append deplibs " System.ltframework"
+           ;;
+         *-*-netbsd*)
+           # Don't link with libc until the a.out ld.so is fixed.
+           ;;
+         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+           # Do not include libc due to us having libc/libc_r.
+           ;;
+         *-*-sco3.2v5* | *-*-sco5v6*)
+           # Causes problems with __ctype
+           ;;
+         *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+           # Compiler inserts libc in the correct place for threads to work
+           ;;
+         *)
+           # Add libc to deplibs on all other systems if necessary.
+           if test "$build_libtool_need_lc" = "yes"; then
+             func_append deplibs " -lc"
+           fi
+           ;;
+         esac
+       fi
+
+       # Transform deplibs into only deplibs that can be linked in shared.
+       name_save=$name
+       libname_save=$libname
+       release_save=$release
+       versuffix_save=$versuffix
+       major_save=$major
+       # I'm not sure if I'm treating the release correctly.  I think
+       # release should show up in the -l (ie -lgmp5) so we don't want to
+       # add it in twice.  Is that correct?
+       release=""
+       versuffix=""
+       major=""
+       newdeplibs=
+       droppeddeps=no
+       case $deplibs_check_method in
+       pass_all)
+         # Don't check for shared/static.  Everything works.
+         # This might be a little naive.  We might want to check
+         # whether the library exists or not.  But this is on
+         # osf3 & osf4 and I'm not really sure... Just
+         # implementing what was already the behavior.
+         newdeplibs=$deplibs
+         ;;
+       test_compile)
+         # This code stresses the "libraries are programs" paradigm to its
+         # limits. Maybe even breaks it.  We compile a program, linking it
+         # against the deplibs as a proxy for the library.  Then we can check
+         # whether they linked in statically or dynamically with ldd.
+         $opt_dry_run || $RM conftest.c
+         cat > conftest.c <<EOF
+         int main() { return 0; }
+EOF
+         $opt_dry_run || $RM conftest
+         if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+           ldd_output=`ldd conftest`
+           for i in $deplibs; do
+             case $i in
+             -l*)
+               func_stripname -l '' "$i"
+               name=$func_stripname_result
+               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+                 case " $predeps $postdeps " in
+                 *" $i "*)
+                   func_append newdeplibs " $i"
+                   i=""
+                   ;;
+                 esac
+               fi
+               if test -n "$i" ; then
+                 libname=`eval "\\$ECHO \"$libname_spec\""`
+                 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+                 set dummy $deplib_matches; shift
+                 deplib_match=$1
+                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                   func_append newdeplibs " $i"
+                 else
+                   droppeddeps=yes
+                   echo
+                   $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+                   echo "*** I have the capability to make that library automatically link in when"
+                   echo "*** you link to this library.  But I can only do this if you have a"
+                   echo "*** shared version of the library, which I believe you do not have"
+                   echo "*** because a test_compile did reveal that the linker did not use it for"
+                   echo "*** its dynamic dependency list that programs get resolved with at runtime."
+                 fi
+               fi
+               ;;
+             *)
+               func_append newdeplibs " $i"
+               ;;
+             esac
+           done
+         else
+           # Error occurred in the first compile.  Let's try to salvage
+           # the situation: Compile a separate program for each library.
+           for i in $deplibs; do
+             case $i in
+             -l*)
+               func_stripname -l '' "$i"
+               name=$func_stripname_result
+               $opt_dry_run || $RM conftest
+               if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+                 ldd_output=`ldd conftest`
+                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+                   case " $predeps $postdeps " in
+                   *" $i "*)
+                     func_append newdeplibs " $i"
+                     i=""
+                     ;;
+                   esac
+                 fi
+                 if test -n "$i" ; then
+                   libname=`eval "\\$ECHO \"$libname_spec\""`
+                   deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+                   set dummy $deplib_matches; shift
+                   deplib_match=$1
+                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                     func_append newdeplibs " $i"
+                   else
+                     droppeddeps=yes
+                     echo
+                     $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+                     echo "*** I have the capability to make that library automatically link in when"
+                     echo "*** you link to this library.  But I can only do this if you have a"
+                     echo "*** shared version of the library, which you do not appear to have"
+                     echo "*** because a test_compile did reveal that the linker did not use this one"
+                     echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+                   fi
+                 fi
+               else
+                 droppeddeps=yes
+                 echo
+                 $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
+                 echo "*** make it link in!  You will probably need to install it or some"
+                 echo "*** library that it depends on before this library will be fully"
+                 echo "*** functional.  Installing it before continuing would be even better."
+               fi
+               ;;
+             *)
+               func_append newdeplibs " $i"
+               ;;
+             esac
+           done
+         fi
+         ;;
+       file_magic*)
+         set dummy $deplibs_check_method; shift
+         file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+         for a_deplib in $deplibs; do
+           case $a_deplib in
+           -l*)
+             func_stripname -l '' "$a_deplib"
+             name=$func_stripname_result
+             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+               case " $predeps $postdeps " in
+               *" $a_deplib "*)
+                 func_append newdeplibs " $a_deplib"
+                 a_deplib=""
+                 ;;
+               esac
+             fi
+             if test -n "$a_deplib" ; then
+               libname=`eval "\\$ECHO \"$libname_spec\""`
+               if test -n "$file_magic_glob"; then
+                 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+               else
+                 libnameglob=$libname
+               fi
+               test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
+               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+                 if test "$want_nocaseglob" = yes; then
+                   shopt -s nocaseglob
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                   $nocaseglob
+                 else
+                   potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+                 fi
+                 for potent_lib in $potential_libs; do
+                     # Follow soft links.
+                     if ls -lLd "$potent_lib" 2>/dev/null |
+                        $GREP " -> " >/dev/null; then
+                       continue
+                     fi
+                     # The statement above tries to avoid entering an
+                     # endless loop below, in case of cyclic links.
+                     # We might still enter an endless loop, since a link
+                     # loop can be closed while we follow links,
+                     # but so what?
+                     potlib="$potent_lib"
+                     while test -h "$potlib" 2>/dev/null; do
+                       potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+                       case $potliblink in
+                       [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+                       *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
+                       esac
+                     done
+                     if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+                        $SED -e 10q |
+                        $EGREP "$file_magic_regex" > /dev/null; then
+                       func_append newdeplibs " $a_deplib"
+                       a_deplib=""
+                       break 2
+                     fi
+                 done
+               done
+             fi
+             if test -n "$a_deplib" ; then
+               droppeddeps=yes
+               echo
+               $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because I did check the linker path looking for a file starting"
+               if test -z "$potlib" ; then
+                 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+               else
+                 $ECHO "*** with $libname and none of the candidates passed a file format test"
+                 $ECHO "*** using a file magic. Last file checked: $potlib"
+               fi
+             fi
+             ;;
+           *)
+             # Add a -L argument.
+             func_append newdeplibs " $a_deplib"
+             ;;
+           esac
+         done # Gone through all deplibs.
+         ;;
+       match_pattern*)
+         set dummy $deplibs_check_method; shift
+         match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+         for a_deplib in $deplibs; do
+           case $a_deplib in
+           -l*)
+             func_stripname -l '' "$a_deplib"
+             name=$func_stripname_result
+             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+               case " $predeps $postdeps " in
+               *" $a_deplib "*)
+                 func_append newdeplibs " $a_deplib"
+                 a_deplib=""
+                 ;;
+               esac
+             fi
+             if test -n "$a_deplib" ; then
+               libname=`eval "\\$ECHO \"$libname_spec\""`
+               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+                 for potent_lib in $potential_libs; do
+                   potlib="$potent_lib" # see symlink-check above in file_magic test
+                   if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
+                      $EGREP "$match_pattern_regex" > /dev/null; then
+                     func_append newdeplibs " $a_deplib"
+                     a_deplib=""
+                     break 2
+                   fi
+                 done
+               done
+             fi
+             if test -n "$a_deplib" ; then
+               droppeddeps=yes
+               echo
+               $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+               echo "*** I have the capability to make that library automatically link in when"
+               echo "*** you link to this library.  But I can only do this if you have a"
+               echo "*** shared version of the library, which you do not appear to have"
+               echo "*** because I did check the linker path looking for a file starting"
+               if test -z "$potlib" ; then
+                 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+               else
+                 $ECHO "*** with $libname and none of the candidates passed a file format test"
+                 $ECHO "*** using a regex pattern. Last file checked: $potlib"
+               fi
+             fi
+             ;;
+           *)
+             # Add a -L argument.
+             func_append newdeplibs " $a_deplib"
+             ;;
+           esac
+         done # Gone through all deplibs.
+         ;;
+       none | unknown | *)
+         newdeplibs=""
+         tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
+         if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+           for i in $predeps $postdeps ; do
+             # can't use Xsed below, because $i might contain '/'
+             tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
+           done
+         fi
+         case $tmp_deplibs in
+         *[!\  \ ]*)
+           echo
+           if test "X$deplibs_check_method" = "Xnone"; then
+             echo "*** Warning: inter-library dependencies are not supported in this platform."
+           else
+             echo "*** Warning: inter-library dependencies are not known to be supported."
+           fi
+           echo "*** All declared inter-library dependencies are being dropped."
+           droppeddeps=yes
+           ;;
+         esac
+         ;;
+       esac
+       versuffix=$versuffix_save
+       major=$major_save
+       release=$release_save
+       libname=$libname_save
+       name=$name_save
+
+       case $host in
+       *-*-rhapsody* | *-*-darwin1.[012])
+         # On Rhapsody replace the C library with the System framework
+         newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
+         ;;
+       esac
+
+       if test "$droppeddeps" = yes; then
+         if test "$module" = yes; then
+           echo
+           echo "*** Warning: libtool could not satisfy all declared inter-library"
+           $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
+           echo "*** a static module, that should work as long as the dlopening"
+           echo "*** application is linked with the -dlopen flag."
+           if test -z "$global_symbol_pipe"; then
+             echo
+             echo "*** However, this would only work if libtool was able to extract symbol"
+             echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+             echo "*** not find such a program.  So, this module is probably useless."
+             echo "*** \`nm' from GNU binutils and a full rebuild may help."
+           fi
+           if test "$build_old_libs" = no; then
+             oldlibs="$output_objdir/$libname.$libext"
+             build_libtool_libs=module
+             build_old_libs=yes
+           else
+             build_libtool_libs=no
+           fi
+         else
+           echo "*** The inter-library dependencies that have been dropped here will be"
+           echo "*** automatically added whenever a program is linked with this library"
+           echo "*** or is declared to -dlopen it."
+
+           if test "$allow_undefined" = no; then
+             echo
+             echo "*** Since this library must not contain undefined symbols,"
+             echo "*** because either the platform does not support them or"
+             echo "*** it was explicitly requested with -no-undefined,"
+             echo "*** libtool will only create a static version of it."
+             if test "$build_old_libs" = no; then
+               oldlibs="$output_objdir/$libname.$libext"
+               build_libtool_libs=module
+               build_old_libs=yes
+             else
+               build_libtool_libs=no
+             fi
+           fi
+         fi
+       fi
+       # Done checking deplibs!
+       deplibs=$newdeplibs
+      fi
+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+      case $host in
+       *-*-darwin*)
+         newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+         new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+         deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+         ;;
+      esac
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+       case " $new_libs " in
+       *" -L$path/$objdir "*) ;;
+       *)
+         case " $deplibs " in
+         *" -L$path/$objdir "*)
+           func_append new_libs " -L$path/$objdir" ;;
+         esac
+         ;;
+       esac
+      done
+      for deplib in $deplibs; do
+       case $deplib in
+       -L*)
+         case " $new_libs " in
+         *" $deplib "*) ;;
+         *) func_append new_libs " $deplib" ;;
+         esac
+         ;;
+       *) func_append new_libs " $deplib" ;;
+       esac
+      done
+      deplibs="$new_libs"
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+       # Remove ${wl} instances when linking with ld.
+       # FIXME: should test the right _cmds variable.
+       case $archive_cmds in
+         *\$LD\ *) wl= ;;
+        esac
+       if test "$hardcode_into_libs" = yes; then
+         # Hardcode the library paths
+         hardcode_libdirs=
+         dep_rpath=
+         rpath="$finalize_rpath"
+         test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
+         for libdir in $rpath; do
+           if test -n "$hardcode_libdir_flag_spec"; then
+             if test -n "$hardcode_libdir_separator"; then
+               func_replace_sysroot "$libdir"
+               libdir=$func_replace_sysroot_result
+               if test -z "$hardcode_libdirs"; then
+                 hardcode_libdirs="$libdir"
+               else
+                 # Just accumulate the unique libdirs.
+                 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+                 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+                   ;;
+                 *)
+                   func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+                   ;;
+                 esac
+               fi
+             else
+               eval flag=\"$hardcode_libdir_flag_spec\"
+               func_append dep_rpath " $flag"
+             fi
+           elif test -n "$runpath_var"; then
+             case "$perm_rpath " in
+             *" $libdir "*) ;;
+             *) func_append perm_rpath " $libdir" ;;
+             esac
+           fi
+         done
+         # Substitute the hardcoded libdirs into the rpath.
+         if test -n "$hardcode_libdir_separator" &&
+            test -n "$hardcode_libdirs"; then
+           libdir="$hardcode_libdirs"
+           eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
+         fi
+         if test -n "$runpath_var" && test -n "$perm_rpath"; then
+           # We should set the runpath_var.
+           rpath=
+           for dir in $perm_rpath; do
+             func_append rpath "$dir:"
+           done
+           eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+         fi
+         test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+       fi
+
+       shlibpath="$finalize_shlibpath"
+       test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+       if test -n "$shlibpath"; then
+         eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+       fi
+
+       # Get the real and link names of the library.
+       eval shared_ext=\"$shrext_cmds\"
+       eval library_names=\"$library_names_spec\"
+       set dummy $library_names
+       shift
+       realname="$1"
+       shift
+
+       if test -n "$soname_spec"; then
+         eval soname=\"$soname_spec\"
+       else
+         soname="$realname"
+       fi
+       if test -z "$dlname"; then
+         dlname=$soname
+       fi
+
+       lib="$output_objdir/$realname"
+       linknames=
+       for link
+       do
+         func_append linknames " $link"
+       done
+
+       # Use standard objects if they are pic
+       test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+       test "X$libobjs" = "X " && libobjs=
+
+       delfiles=
+       if test -n "$export_symbols" && test -n "$include_expsyms"; then
+         $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+         export_symbols="$output_objdir/$libname.uexp"
+         func_append delfiles " $export_symbols"
+       fi
+
+       orig_export_symbols=
+       case $host_os in
+       cygwin* | mingw* | cegcc*)
+         if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+           # exporting using user supplied symfile
+           if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+             # and it's NOT already a .def file. Must figure out
+             # which of the given symbols are data symbols and tag
+             # them as such. So, trigger use of export_symbols_cmds.
+             # export_symbols gets reassigned inside the "prepare
+             # the list of exported symbols" if statement, so the
+             # include_expsyms logic still works.
+             orig_export_symbols="$export_symbols"
+             export_symbols=
+             always_export_symbols=yes
+           fi
+         fi
+         ;;
+       esac
+
+       # Prepare the list of exported symbols
+       if test -z "$export_symbols"; then
+         if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+           func_verbose "generating symbol list for \`$libname.la'"
+           export_symbols="$output_objdir/$libname.exp"
+           $opt_dry_run || $RM $export_symbols
+           cmds=$export_symbols_cmds
+           save_ifs="$IFS"; IFS='~'
+           for cmd1 in $cmds; do
+             IFS="$save_ifs"
+             # Take the normal branch if the nm_file_list_spec branch
+             # doesn't work or if tool conversion is not needed.
+             case $nm_file_list_spec~$to_tool_file_cmd in
+               *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+                 try_normal_branch=yes
+                 eval cmd=\"$cmd1\"
+                 func_len " $cmd"
+                 len=$func_len_result
+                 ;;
+               *)
+                 try_normal_branch=no
+                 ;;
+             esac
+             if test "$try_normal_branch" = yes \
+                && { test "$len" -lt "$max_cmd_len" \
+                     || test "$max_cmd_len" -le -1; }
+             then
+               func_show_eval "$cmd" 'exit $?'
+               skipped_export=false
+             elif test -n "$nm_file_list_spec"; then
+               func_basename "$output"
+               output_la=$func_basename_result
+               save_libobjs=$libobjs
+               save_output=$output
+               output=${output_objdir}/${output_la}.nm
+               func_to_tool_file "$output"
+               libobjs=$nm_file_list_spec$func_to_tool_file_result
+               func_append delfiles " $output"
+               func_verbose "creating $NM input file list: $output"
+               for obj in $save_libobjs; do
+                 func_to_tool_file "$obj"
+                 $ECHO "$func_to_tool_file_result"
+               done > "$output"
+               eval cmd=\"$cmd1\"
+               func_show_eval "$cmd" 'exit $?'
+               output=$save_output
+               libobjs=$save_libobjs
+               skipped_export=false
+             else
+               # The command line is too long to execute in one step.
+               func_verbose "using reloadable object file for export list..."
+               skipped_export=:
+               # Break out early, otherwise skipped_export may be
+               # set to false by a later but shorter cmd.
+               break
+             fi
+           done
+           IFS="$save_ifs"
+           if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+             func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+             func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+           fi
+         fi
+       fi
+
+       if test -n "$export_symbols" && test -n "$include_expsyms"; then
+         tmp_export_symbols="$export_symbols"
+         test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+         $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+       fi
+
+       if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+         # The given exports_symbols file has to be filtered, so filter it.
+         func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+         # FIXME: $output_objdir/$libname.filter potentially contains lots of
+         # 's' commands which not all seds can handle. GNU sed should be fine
+         # though. Also, the filter scales superlinearly with the number of
+         # global variables. join(1) would be nice here, but unfortunately
+         # isn't a blessed tool.
+         $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+         func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+         export_symbols=$output_objdir/$libname.def
+         $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+       fi
+
+       tmp_deplibs=
+       for test_deplib in $deplibs; do
+         case " $convenience " in
+         *" $test_deplib "*) ;;
+         *)
+           func_append tmp_deplibs " $test_deplib"
+           ;;
+         esac
+       done
+       deplibs="$tmp_deplibs"
+
+       if test -n "$convenience"; then
+         if test -n "$whole_archive_flag_spec" &&
+           test "$compiler_needs_object" = yes &&
+           test -z "$libobjs"; then
+           # extract the archives, so we have objects to list.
+           # TODO: could optimize this to just extract one archive.
+           whole_archive_flag_spec=
+         fi
+         if test -n "$whole_archive_flag_spec"; then
+           save_libobjs=$libobjs
+           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+           test "X$libobjs" = "X " && libobjs=
+         else
+           gentop="$output_objdir/${outputname}x"
+           func_append generated " $gentop"
+
+           func_extract_archives $gentop $convenience
+           func_append libobjs " $func_extract_archives_result"
+           test "X$libobjs" = "X " && libobjs=
+         fi
+       fi
+
+       if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+         eval flag=\"$thread_safe_flag_spec\"
+         func_append linker_flags " $flag"
+       fi
+
+       # Make a backup of the uninstalled library when relinking
+       if test "$opt_mode" = relink; then
+         $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+       fi
+
+       # Do each of the archive commands.
+       if test "$module" = yes && test -n "$module_cmds" ; then
+         if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+           eval test_cmds=\"$module_expsym_cmds\"
+           cmds=$module_expsym_cmds
+         else
+           eval test_cmds=\"$module_cmds\"
+           cmds=$module_cmds
+         fi
+       else
+         if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+           eval test_cmds=\"$archive_expsym_cmds\"
+           cmds=$archive_expsym_cmds
+         else
+           eval test_cmds=\"$archive_cmds\"
+           cmds=$archive_cmds
+         fi
+       fi
+
+       if test "X$skipped_export" != "X:" &&
+          func_len " $test_cmds" &&
+          len=$func_len_result &&
+          test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+         :
+       else
+         # The command line is too long to link in one step, link piecewise
+         # or, if using GNU ld and skipped_export is not :, use a linker
+         # script.
+
+         # Save the value of $output and $libobjs because we want to
+         # use them later.  If we have whole_archive_flag_spec, we
+         # want to use save_libobjs as it was before
+         # whole_archive_flag_spec was expanded, because we can't
+         # assume the linker understands whole_archive_flag_spec.
+         # This may have to be revisited, in case too many
+         # convenience libraries get linked in and end up exceeding
+         # the spec.
+         if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+           save_libobjs=$libobjs
+         fi
+         save_output=$output
+         func_basename "$output"
+         output_la=$func_basename_result
+
+         # Clear the reloadable object creation command queue and
+         # initialize k to one.
+         test_cmds=
+         concat_cmds=
+         objlist=
+         last_robj=
+         k=1
+
+         if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
+           output=${output_objdir}/${output_la}.lnkscript
+           func_verbose "creating GNU ld script: $output"
+           echo 'INPUT (' > $output
+           for obj in $save_libobjs
+           do
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
+           done
+           echo ')' >> $output
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$func_to_tool_file_result
+         elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+           output=${output_objdir}/${output_la}.lnk
+           func_verbose "creating linker input file list: $output"
+           : > $output
+           set x $save_libobjs
+           shift
+           firstobj=
+           if test "$compiler_needs_object" = yes; then
+             firstobj="$1 "
+             shift
+           fi
+           for obj
+           do
+             func_to_tool_file "$obj"
+             $ECHO "$func_to_tool_file_result" >> $output
+           done
+           func_append delfiles " $output"
+           func_to_tool_file "$output"
+           output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
+         else
+           if test -n "$save_libobjs"; then
+             func_verbose "creating reloadable object files..."
+             output=$output_objdir/$output_la-${k}.$objext
+             eval test_cmds=\"$reload_cmds\"
+             func_len " $test_cmds"
+             len0=$func_len_result
+             len=$len0
+
+             # Loop over the list of objects to be linked.
+             for obj in $save_libobjs
+             do
+               func_len " $obj"
+               func_arith $len + $func_len_result
+               len=$func_arith_result
+               if test "X$objlist" = X ||
+                  test "$len" -lt "$max_cmd_len"; then
+                 func_append objlist " $obj"
+               else
+                 # The command $test_cmds is almost too long, add a
+                 # command to the queue.
+                 if test "$k" -eq 1 ; then
+                   # The first file doesn't have a previous command to add.
+                   reload_objs=$objlist
+                   eval concat_cmds=\"$reload_cmds\"
+                 else
+                   # All subsequent reloadable object files will link in
+                   # the last one created.
+                   reload_objs="$objlist $last_robj"
+                   eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
+                 fi
+                 last_robj=$output_objdir/$output_la-${k}.$objext
+                 func_arith $k + 1
+                 k=$func_arith_result
+                 output=$output_objdir/$output_la-${k}.$objext
+                 objlist=" $obj"
+                 func_len " $last_robj"
+                 func_arith $len0 + $func_len_result
+                 len=$func_arith_result
+               fi
+             done
+             # Handle the remaining objects by creating one last
+             # reloadable object file.  All subsequent reloadable object
+             # files will link in the last one created.
+             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+             reload_objs="$objlist $last_robj"
+             eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
+             if test -n "$last_robj"; then
+               eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+             fi
+             func_append delfiles " $output"
+
+           else
+             output=
+           fi
+
+           if ${skipped_export-false}; then
+             func_verbose "generating symbol list for \`$libname.la'"
+             export_symbols="$output_objdir/$libname.exp"
+             $opt_dry_run || $RM $export_symbols
+             libobjs=$output
+             # Append the command to create the export file.
+             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+             eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+             if test -n "$last_robj"; then
+               eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+             fi
+           fi
+
+           test -n "$save_libobjs" &&
+             func_verbose "creating a temporary reloadable object file: $output"
+
+           # Loop through the commands generated above and execute them.
+           save_ifs="$IFS"; IFS='~'
+           for cmd in $concat_cmds; do
+             IFS="$save_ifs"
+             $opt_silent || {
+                 func_quote_for_expand "$cmd"
+                 eval "func_echo $func_quote_for_expand_result"
+             }
+             $opt_dry_run || eval "$cmd" || {
+               lt_exit=$?
+
+               # Restore the uninstalled library and exit
+               if test "$opt_mode" = relink; then
+                 ( cd "$output_objdir" && \
+                   $RM "${realname}T" && \
+                   $MV "${realname}U" "$realname" )
+               fi
+
+               exit $lt_exit
+             }
+           done
+           IFS="$save_ifs"
+
+           if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+             func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+             func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+           fi
+         fi
+
+          if ${skipped_export-false}; then
+           if test -n "$export_symbols" && test -n "$include_expsyms"; then
+             tmp_export_symbols="$export_symbols"
+             test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+             $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+           fi
+
+           if test -n "$orig_export_symbols"; then
+             # The given exports_symbols file has to be filtered, so filter it.
+             func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
+             # FIXME: $output_objdir/$libname.filter potentially contains lots of
+             # 's' commands which not all seds can handle. GNU sed should be fine
+             # though. Also, the filter scales superlinearly with the number of
+             # global variables. join(1) would be nice here, but unfortunately
+             # isn't a blessed tool.
+             $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+             func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+             export_symbols=$output_objdir/$libname.def
+             $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+           fi
+         fi
+
+         libobjs=$output
+         # Restore the value of output.
+         output=$save_output
+
+         if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+           test "X$libobjs" = "X " && libobjs=
+         fi
+         # Expand the library linking commands again to reset the
+         # value of $libobjs for piecewise linking.
+
+         # Do each of the archive commands.
+         if test "$module" = yes && test -n "$module_cmds" ; then
+           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+             cmds=$module_expsym_cmds
+           else
+             cmds=$module_cmds
+           fi
+         else
+           if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+             cmds=$archive_expsym_cmds
+           else
+             cmds=$archive_cmds
+           fi
+         fi
+       fi
+
+       if test -n "$delfiles"; then
+         # Append the command to remove temporary files to $cmds.
+         eval cmds=\"\$cmds~\$RM $delfiles\"
+       fi
+
+       # Add any objects from preloaded convenience libraries
+       if test -n "$dlprefiles"; then
+         gentop="$output_objdir/${outputname}x"
+         func_append generated " $gentop"
+
+         func_extract_archives $gentop $dlprefiles
+         func_append libobjs " $func_extract_archives_result"
+         test "X$libobjs" = "X " && libobjs=
+       fi
+
+       save_ifs="$IFS"; IFS='~'
+       for cmd in $cmds; do
+         IFS="$save_ifs"
+         eval cmd=\"$cmd\"
+         $opt_silent || {
+           func_quote_for_expand "$cmd"
+           eval "func_echo $func_quote_for_expand_result"
+         }
+         $opt_dry_run || eval "$cmd" || {
+           lt_exit=$?
+
+           # Restore the uninstalled library and exit
+           if test "$opt_mode" = relink; then
+             ( cd "$output_objdir" && \
+               $RM "${realname}T" && \
+               $MV "${realname}U" "$realname" )
+           fi
+
+           exit $lt_exit
+         }
+       done
+       IFS="$save_ifs"
+
+       # Restore the uninstalled library and exit
+       if test "$opt_mode" = relink; then
+         $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+         if test -n "$convenience"; then
+           if test -z "$whole_archive_flag_spec"; then
+             func_show_eval '${RM}r "$gentop"'
+           fi
+         fi
+
+         exit $EXIT_SUCCESS
+       fi
+
+       # Create links to the real library.
+       for linkname in $linknames; do
+         if test "$realname" != "$linkname"; then
+           func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+         fi
+       done
+
+       # If -module or -export-dynamic was specified, set the dlname.
+       if test "$module" = yes || test "$export_dynamic" = yes; then
+         # On all known operating systems, these are identical.
+         dlname="$soname"
+       fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+       func_warning "\`-dlopen' is ignored for objects"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+       func_warning "\`-l' and \`-L' are ignored for objects" ;;
+      esac
+
+      test -n "$rpath" && \
+       func_warning "\`-rpath' is ignored for objects"
+
+      test -n "$xrpath" && \
+       func_warning "\`-R' is ignored for objects"
+
+      test -n "$vinfo" && \
+       func_warning "\`-version-info' is ignored for objects"
+
+      test -n "$release" && \
+       func_warning "\`-release' is ignored for objects"
+
+      case $output in
+      *.lo)
+       test -n "$objs$old_deplibs" && \
+         func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+
+       libobj=$output
+       func_lo2o "$libobj"
+       obj=$func_lo2o_result
+       ;;
+      *)
+       libobj=
+       obj="$output"
+       ;;
+      esac
+
+      # Delete the old objects.
+      $opt_dry_run || $RM $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
+      wl=
+
+      if test -n "$convenience"; then
+       if test -n "$whole_archive_flag_spec"; then
+         eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+         reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+       else
+         gentop="$output_objdir/${obj}x"
+         func_append generated " $gentop"
+
+         func_extract_archives $gentop $convenience
+         reload_conv_objs="$reload_objs $func_extract_archives_result"
+       fi
+      fi
+
+      # If we're not building shared, we need to use non_pic_objs
+      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      func_execute_cmds "$reload_cmds" 'exit $?'
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+       if test -n "$gentop"; then
+         func_show_eval '${RM}r "$gentop"'
+       fi
+
+       exit $EXIT_SUCCESS
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+       if test -n "$gentop"; then
+         func_show_eval '${RM}r "$gentop"'
+       fi
+
+       # Create an invalid libtool object if no PIC, so that we don't
+       # accidentally link it into a program.
+       # $show "echo timestamp > $libobj"
+       # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+       exit $EXIT_SUCCESS
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+       # Only do commands if we really have different PIC objects.
+       reload_objs="$libobjs $reload_conv_objs"
+       output="$libobj"
+       func_execute_cmds "$reload_cmds" 'exit $?'
+      fi
+
+      if test -n "$gentop"; then
+       func_show_eval '${RM}r "$gentop"'
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+       *cygwin*) func_stripname '' '.exe' "$output"
+                 output=$func_stripname_result.exe;;
+      esac
+      test -n "$vinfo" && \
+       func_warning "\`-version-info' is ignored for programs"
+
+      test -n "$release" && \
+       func_warning "\`-release' is ignored for programs"
+
+      test "$preload" = yes \
+        && test "$dlopen_support" = unknown \
+       && test "$dlopen_self" = unknown \
+       && test "$dlopen_self_static" = unknown && \
+         func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+       # On Rhapsody replace the C library is the System framework
+       compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+       finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
+       ;;
+      esac
+
+      case $host in
+      *-*-darwin*)
+       # Don't allow lazy linking, it breaks C++ global constructors
+       # But is supposedly fixed on 10.4 or later (yay!).
+       if test "$tagname" = CXX ; then
+         case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+           10.[0123])
+             func_append compile_command " ${wl}-bind_at_load"
+             func_append finalize_command " ${wl}-bind_at_load"
+           ;;
+         esac
+       fi
+       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+       compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+       finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+       ;;
+      esac
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+       case " $new_libs " in
+       *" -L$path/$objdir "*) ;;
+       *)
+         case " $compile_deplibs " in
+         *" -L$path/$objdir "*)
+           func_append new_libs " -L$path/$objdir" ;;
+         esac
+         ;;
+       esac
+      done
+      for deplib in $compile_deplibs; do
+       case $deplib in
+       -L*)
+         case " $new_libs " in
+         *" $deplib "*) ;;
+         *) func_append new_libs " $deplib" ;;
+         esac
+         ;;
+       *) func_append new_libs " $deplib" ;;
+       esac
+      done
+      compile_deplibs="$new_libs"
+
+
+      func_append compile_command " $compile_deplibs"
+      func_append finalize_command " $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+       # If the user specified any rpath flags, then add them.
+       for libdir in $rpath $xrpath; do
+         # This is the magic to use -rpath.
+         case "$finalize_rpath " in
+         *" $libdir "*) ;;
+         *) func_append finalize_rpath " $libdir" ;;
+         esac
+       done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
+             hardcode_libdirs="$libdir"
+           else
+             # Just accumulate the unique libdirs.
+             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+               ;;
+             *)
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+               ;;
+             esac
+           fi
+         else
+           eval flag=\"$hardcode_libdir_flag_spec\"
+           func_append rpath " $flag"
+         fi
+       elif test -n "$runpath_var"; then
+         case "$perm_rpath " in
+         *" $libdir "*) ;;
+         *) func_append perm_rpath " $libdir" ;;
+         esac
+       fi
+       case $host in
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+         testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+         case :$dllsearchpath: in
+         *":$libdir:"*) ;;
+         ::) dllsearchpath=$libdir;;
+         *) func_append dllsearchpath ":$libdir";;
+         esac
+         case :$dllsearchpath: in
+         *":$testbindir:"*) ;;
+         ::) dllsearchpath=$testbindir;;
+         *) func_append dllsearchpath ":$testbindir";;
+         esac
+         ;;
+       esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+        test -n "$hardcode_libdirs"; then
+       libdir="$hardcode_libdirs"
+       eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
+             hardcode_libdirs="$libdir"
+           else
+             # Just accumulate the unique libdirs.
+             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+               ;;
+             *)
+               func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+               ;;
+             esac
+           fi
+         else
+           eval flag=\"$hardcode_libdir_flag_spec\"
+           func_append rpath " $flag"
+         fi
+       elif test -n "$runpath_var"; then
+         case "$finalize_perm_rpath " in
+         *" $libdir "*) ;;
+         *) func_append finalize_perm_rpath " $libdir" ;;
+         esac
+       fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+        test -n "$hardcode_libdirs"; then
+       libdir="$hardcode_libdirs"
+       eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+       # Transform all the library objects into standard objects.
+       compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+       finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+      fi
+
+      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+
+      # template prelinking step
+      if test -n "$prelink_cmds"; then
+       func_execute_cmds "$prelink_cmds" 'exit $?'
+      fi
+
+      wrappers_required=yes
+      case $host in
+      *cegcc* | *mingw32ce*)
+        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+        wrappers_required=no
+        ;;
+      *cygwin* | *mingw* )
+        if test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      *)
+        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      esac
+      if test "$wrappers_required" = no; then
+       # Replace the output file specification.
+       compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+       link_command="$compile_command$compile_rpath"
+
+       # We have no uninstalled library dependencies, so finalize right now.
+       exit_status=0
+       func_show_eval "$link_command" 'exit_status=$?'
+
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
+       # Delete the generated files.
+       if test -f "$output_objdir/${outputname}S.${objext}"; then
+         func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+       fi
+
+       exit $exit_status
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+       compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+       finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+       if test -n "$perm_rpath"; then
+         # We should set the runpath_var.
+         rpath=
+         for dir in $perm_rpath; do
+           func_append rpath "$dir:"
+         done
+         compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+       fi
+       if test -n "$finalize_perm_rpath"; then
+         # We should set the runpath_var.
+         rpath=
+         for dir in $finalize_perm_rpath; do
+           func_append rpath "$dir:"
+         done
+         finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+       fi
+      fi
+
+      if test "$no_install" = yes; then
+       # We don't need to create a wrapper script.
+       link_command="$compile_var$compile_command$compile_rpath"
+       # Replace the output file specification.
+       link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+       # Delete the old output file.
+       $opt_dry_run || $RM $output
+       # Link the executable and exit
+       func_show_eval "$link_command" 'exit $?'
+
+       if test -n "$postlink_cmds"; then
+         func_to_tool_file "$output"
+         postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+         func_execute_cmds "$postlink_cmds" 'exit $?'
+       fi
+
+       exit $EXIT_SUCCESS
+      fi
+
+      if test "$hardcode_action" = relink; then
+       # Fast installation is not supported
+       link_command="$compile_var$compile_command$compile_rpath"
+       relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+       func_warning "this platform does not like uninstalled shared libraries"
+       func_warning "\`$output' will be relinked during installation"
+      else
+       if test "$fast_install" != no; then
+         link_command="$finalize_var$compile_command$finalize_rpath"
+         if test "$fast_install" = yes; then
+           relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+         else
+           # fast_install is set to needless
+           relink_command=
+         fi
+       else
+         link_command="$compile_var$compile_command$compile_rpath"
+         relink_command="$finalize_var$finalize_command$finalize_rpath"
+       fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      func_show_eval "$link_command" 'exit $?'
+
+      if test -n "$postlink_cmds"; then
+       func_to_tool_file "$output_objdir/$outputname"
+       postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+       func_execute_cmds "$postlink_cmds" 'exit $?'
+      fi
+
+      # Now create the wrapper script.
+      func_verbose "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+       # Preserve any variables that may affect compiler behavior
+       for var in $variables_saved_for_relink; do
+         if eval test -z \"\${$var+set}\"; then
+           relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+         elif eval var_value=\$$var; test -z "$var_value"; then
+           relink_command="$var=; export $var; $relink_command"
+         else
+           func_quote_for_eval "$var_value"
+           relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+         fi
+       done
+       relink_command="(cd `pwd`; $relink_command)"
+       relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if not in dry run mode.
+      $opt_dry_run || {
+       # win32 will think the script is a binary if it has
+       # a .exe suffix, so we strip it off here.
+       case $output in
+         *.exe) func_stripname '' '.exe' "$output"
+                output=$func_stripname_result ;;
+       esac
+       # test for cygwin because mv fails w/o .exe extensions
+       case $host in
+         *cygwin*)
+           exeext=.exe
+           func_stripname '' '.exe' "$outputname"
+           outputname=$func_stripname_result ;;
+         *) exeext= ;;
+       esac
+       case $host in
+         *cygwin* | *mingw* )
+           func_dirname_and_basename "$output" "" "."
+           output_name=$func_basename_result
+           output_path=$func_dirname_result
+           cwrappersource="$output_path/$objdir/lt-$output_name.c"
+           cwrapper="$output_path/$output_name.exe"
+           $RM $cwrappersource $cwrapper
+           trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+           func_emit_cwrapperexe_src > $cwrappersource
+
+           # The wrapper executable is built using the $host compiler,
+           # because it contains $host paths and files. If cross-
+           # compiling, it, like the target executable, must be
+           # executed on the $host or under an emulation environment.
+           $opt_dry_run || {
+             $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+             $STRIP $cwrapper
+           }
+
+           # Now, create the wrapper script for func_source use:
+           func_ltwrapper_scriptname $cwrapper
+           $RM $func_ltwrapper_scriptname_result
+           trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+           $opt_dry_run || {
+             # note: this script will not be executed, so do not chmod.
+             if test "x$build" = "x$host" ; then
+               $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+             else
+               func_emit_wrapper no > $func_ltwrapper_scriptname_result
+             fi
+           }
+         ;;
+         * )
+           $RM $output
+           trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+           func_emit_wrapper no > $output
+           chmod +x $output
+         ;;
+       esac
+      }
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+       oldobjs="$libobjs_save $symfileobj"
+       addlibs="$convenience"
+       build_libtool_libs=no
+      else
+       if test "$build_libtool_libs" = module; then
+         oldobjs="$libobjs_save"
+         build_libtool_libs=no
+       else
+         oldobjs="$old_deplibs $non_pic_objects"
+         if test "$preload" = yes && test -f "$symfileobj"; then
+           func_append oldobjs " $symfileobj"
+         fi
+       fi
+       addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+       gentop="$output_objdir/${outputname}x"
+       func_append generated " $gentop"
+
+       func_extract_archives $gentop $addlibs
+       func_append oldobjs " $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+       cmds=$old_archive_from_new_cmds
+      else
+
+       # Add any objects from preloaded convenience libraries
+       if test -n "$dlprefiles"; then
+         gentop="$output_objdir/${outputname}x"
+         func_append generated " $gentop"
+
+         func_extract_archives $gentop $dlprefiles
+         func_append oldobjs " $func_extract_archives_result"
+       fi
+
+       # POSIX demands no paths to be encoded in archives.  We have
+       # to avoid creating archives with duplicate basenames if we
+       # might have to extract them afterwards, e.g., when creating a
+       # static archive out of a convenience library, or when linking
+       # the entirety of a libtool archive into another (currently
+       # not supported by libtool).
+       if (for obj in $oldobjs
+           do
+             func_basename "$obj"
+             $ECHO "$func_basename_result"
+           done | sort | sort -uc >/dev/null 2>&1); then
+         :
+       else
+         echo "copying selected object files to avoid basename conflicts..."
+         gentop="$output_objdir/${outputname}x"
+         func_append generated " $gentop"
+         func_mkdir_p "$gentop"
+         save_oldobjs=$oldobjs
+         oldobjs=
+         counter=1
+         for obj in $save_oldobjs
+         do
+           func_basename "$obj"
+           objbase="$func_basename_result"
+           case " $oldobjs " in
+           " ") oldobjs=$obj ;;
+           *[\ /]"$objbase "*)
+             while :; do
+               # Make sure we don't pick an alternate name that also
+               # overlaps.
+               newobj=lt$counter-$objbase
+               func_arith $counter + 1
+               counter=$func_arith_result
+               case " $oldobjs " in
+               *[\ /]"$newobj "*) ;;
+               *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+               esac
+             done
+             func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+             func_append oldobjs " $gentop/$newobj"
+             ;;
+           *) func_append oldobjs " $obj" ;;
+           esac
+         done
+       fi
+       func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+       tool_oldlib=$func_to_tool_file_result
+       eval cmds=\"$old_archive_cmds\"
+
+       func_len " $cmds"
+       len=$func_len_result
+       if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+         cmds=$old_archive_cmds
+       elif test -n "$archiver_list_spec"; then
+         func_verbose "using command file archive linking..."
+         for obj in $oldobjs
+         do
+           func_to_tool_file "$obj"
+           $ECHO "$func_to_tool_file_result"
+         done > $output_objdir/$libname.libcmd
+         func_to_tool_file "$output_objdir/$libname.libcmd"
+         oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+         cmds=$old_archive_cmds
+       else
+         # the command line is too long to link in one step, link in parts
+         func_verbose "using piecewise archive linking..."
+         save_RANLIB=$RANLIB
+         RANLIB=:
+         objlist=
+         concat_cmds=
+         save_oldobjs=$oldobjs
+         oldobjs=
+         # Is there a better way of finding the last object in the list?
+         for obj in $save_oldobjs
+         do
+           last_oldobj=$obj
+         done
+         eval test_cmds=\"$old_archive_cmds\"
+         func_len " $test_cmds"
+         len0=$func_len_result
+         len=$len0
+         for obj in $save_oldobjs
+         do
+           func_len " $obj"
+           func_arith $len + $func_len_result
+           len=$func_arith_result
+           func_append objlist " $obj"
+           if test "$len" -lt "$max_cmd_len"; then
+             :
+           else
+             # the above command should be used before it gets too long
+             oldobjs=$objlist
+             if test "$obj" = "$last_oldobj" ; then
+               RANLIB=$save_RANLIB
+             fi
+             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+             eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+             objlist=
+             len=$len0
+           fi
+         done
+         RANLIB=$save_RANLIB
+         oldobjs=$objlist
+         if test "X$oldobjs" = "X" ; then
+           eval cmds=\"\$concat_cmds\"
+         else
+           eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+         fi
+       fi
+      fi
+      func_execute_cmds "$cmds" 'exit $?'
+    done
+
+    test -n "$generated" && \
+      func_show_eval "${RM}r$generated"
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      func_verbose "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+       if eval test -z \"\${$var+set}\"; then
+         relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+       elif eval var_value=\$$var; test -z "$var_value"; then
+         relink_command="$var=; export $var; $relink_command"
+       else
+         func_quote_for_eval "$var_value"
+         relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+       fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+       relink_command=
+      fi
+
+      # Only create the output if not a dry run.
+      $opt_dry_run || {
+       for installed in no yes; do
+         if test "$installed" = yes; then
+           if test -z "$install_libdir"; then
+             break
+           fi
+           output="$output_objdir/$outputname"i
+           # Replace all uninstalled libtool libraries with the installed ones
+           newdependency_libs=
+           for deplib in $dependency_libs; do
+             case $deplib in
+             *.la)
+               func_basename "$deplib"
+               name="$func_basename_result"
+               func_resolve_sysroot "$deplib"
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+               test -z "$libdir" && \
+                 func_fatal_error "\`$deplib' is not a valid libtool archive"
+               func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+               ;;
+             -L*)
+               func_stripname -L '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -L$func_replace_sysroot_result"
+               ;;
+             -R*)
+               func_stripname -R '' "$deplib"
+               func_replace_sysroot "$func_stripname_result"
+               func_append newdependency_libs " -R$func_replace_sysroot_result"
+               ;;
+             *) func_append newdependency_libs " $deplib" ;;
+             esac
+           done
+           dependency_libs="$newdependency_libs"
+           newdlfiles=
+
+           for lib in $dlfiles; do
+             case $lib in
+             *.la)
+               func_basename "$lib"
+               name="$func_basename_result"
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+               test -z "$libdir" && \
+                 func_fatal_error "\`$lib' is not a valid libtool archive"
+               func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
+               ;;
+             *) func_append newdlfiles " $lib" ;;
+             esac
+           done
+           dlfiles="$newdlfiles"
+           newdlprefiles=
+           for lib in $dlprefiles; do
+             case $lib in
+             *.la)
+               # Only pass preopened files to the pseudo-archive (for
+               # eventual linking with the app. that links it) if we
+               # didn't already link the preopened objects directly into
+               # the library:
+               func_basename "$lib"
+               name="$func_basename_result"
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+               test -z "$libdir" && \
+                 func_fatal_error "\`$lib' is not a valid libtool archive"
+               func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
+               ;;
+             esac
+           done
+           dlprefiles="$newdlprefiles"
+         else
+           newdlfiles=
+           for lib in $dlfiles; do
+             case $lib in
+               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+               *) abs=`pwd`"/$lib" ;;
+             esac
+             func_append newdlfiles " $abs"
+           done
+           dlfiles="$newdlfiles"
+           newdlprefiles=
+           for lib in $dlprefiles; do
+             case $lib in
+               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+               *) abs=`pwd`"/$lib" ;;
+             esac
+             func_append newdlprefiles " $abs"
+           done
+           dlprefiles="$newdlprefiles"
+         fi
+         $RM $output
+         # place dlname in correct position for cygwin
+         # In fact, it would be nice if we could use this code for all target
+         # systems that can't hard-code library paths into their executables
+         # and that have no shared library path variable independent of PATH,
+         # but it turns out we can't easily determine that from inspecting
+         # libtool variables, so we have to hard-code the OSs to which it
+         # applies here; at the moment, that means platforms that use the PE
+         # object format with DLL files.  See the long comment at the top of
+         # tests/bindir.at for full details.
+         tdlname=$dlname
+         case $host,$output,$installed,$module,$dlname in
+           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+             # If a -bindir argument was supplied, place the dll there.
+             if test "x$bindir" != x ;
+             then
+               func_relative_path "$install_libdir" "$bindir"
+               tdlname=$func_relative_path_result$dlname
+             else
+               # Otherwise fall back on heuristic.
+               tdlname=../bin/$dlname
+             fi
+             ;;
+         esac
+         $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+         if test "$installed" = no && test "$need_relink" = yes; then
+           $ECHO >> $output "\
+relink_command=\"$relink_command\""
+         fi
+       done
+      }
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+}
+
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
+    func_mode_link ${1+"$@"}
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+    $opt_debug
+    RM="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) func_append RM " $arg"; rmforce=yes ;;
+      -*) func_append RM " $arg" ;;
+      *) func_append files " $arg" ;;
+      esac
+    done
+
+    test -z "$RM" && \
+      func_fatal_help "you must specify an RM program"
+
+    rmdirs=
+
+    for file in $files; do
+      func_dirname "$file" "" "."
+      dir="$func_dirname_result"
+      if test "X$dir" = X.; then
+       odir="$objdir"
+      else
+       odir="$dir/$objdir"
+      fi
+      func_basename "$file"
+      name="$func_basename_result"
+      test "$opt_mode" = uninstall && odir="$dir"
+
+      # Remember odir for removal later, being careful to avoid duplicates
+      if test "$opt_mode" = clean; then
+       case " $rmdirs " in
+         *" $odir "*) ;;
+         *) func_append rmdirs " $odir" ;;
+       esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if { test -L "$file"; } >/dev/null 2>&1 ||
+        { test -h "$file"; } >/dev/null 2>&1 ||
+        test -f "$file"; then
+       :
+      elif test -d "$file"; then
+       exit_status=1
+       continue
+      elif test "$rmforce" = yes; then
+       continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+       # Possibly a libtool archive, so verify it.
+       if func_lalib_p "$file"; then
+         func_source $dir/$name
+
+         # Delete the libtool libraries and symlinks.
+         for n in $library_names; do
+           func_append rmfiles " $odir/$n"
+         done
+         test -n "$old_library" && func_append rmfiles " $odir/$old_library"
+
+         case "$opt_mode" in
+         clean)
+           case " $library_names " in
+           *" $dlname "*) ;;
+           *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
+           esac
+           test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
+           ;;
+         uninstall)
+           if test -n "$library_names"; then
+             # Do each command in the postuninstall commands.
+             func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+           fi
+
+           if test -n "$old_library"; then
+             # Do each command in the old_postuninstall commands.
+             func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+           fi
+           # FIXME: should reinstall the best remaining shared library.
+           ;;
+         esac
+       fi
+       ;;
+
+      *.lo)
+       # Possibly a libtool object, so verify it.
+       if func_lalib_p "$file"; then
+
+         # Read the .lo file
+         func_source $dir/$name
+
+         # Add PIC object to the list of files to remove.
+         if test -n "$pic_object" &&
+            test "$pic_object" != none; then
+           func_append rmfiles " $dir/$pic_object"
+         fi
+
+         # Add non-PIC object to the list of files to remove.
+         if test -n "$non_pic_object" &&
+            test "$non_pic_object" != none; then
+           func_append rmfiles " $dir/$non_pic_object"
+         fi
+       fi
+       ;;
+
+      *)
+       if test "$opt_mode" = clean ; then
+         noexename=$name
+         case $file in
+         *.exe)
+           func_stripname '' '.exe' "$file"
+           file=$func_stripname_result
+           func_stripname '' '.exe' "$name"
+           noexename=$func_stripname_result
+           # $file with .exe has already been added to rmfiles,
+           # add $file without .exe
+           func_append rmfiles " $file"
+           ;;
+         esac
+         # Do a test to see if this is a libtool program.
+         if func_ltwrapper_p "$file"; then
+           if func_ltwrapper_executable_p "$file"; then
+             func_ltwrapper_scriptname "$file"
+             relink_command=
+             func_source $func_ltwrapper_scriptname_result
+             func_append rmfiles " $func_ltwrapper_scriptname_result"
+           else
+             relink_command=
+             func_source $dir/$noexename
+           fi
+
+           # note $name still contains .exe if it was in $file originally
+           # as does the version of $file that was added into $rmfiles
+           func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
+           if test "$fast_install" = yes && test -n "$relink_command"; then
+             func_append rmfiles " $odir/lt-$name"
+           fi
+           if test "X$noexename" != "X$name" ; then
+             func_append rmfiles " $odir/lt-${noexename}.c"
+           fi
+         fi
+       fi
+       ;;
+      esac
+      func_show_eval "$RM $rmfiles" 'exit_status=1'
+    done
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+       func_show_eval "rmdir $dir >/dev/null 2>&1"
+      fi
+    done
+
+    exit $exit_status
+}
+
+{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
+    func_mode_uninstall ${1+"$@"}
+
+test -z "$opt_mode" && {
+  help="$generic_help"
+  func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+  func_fatal_help "invalid operation mode \`$opt_mode'"
+
+if test -n "$exec_cmd"; then
+  eval exec "$exec_cmd"
+  exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
+# vi:sw=2
+
diff --git a/m4/Makefile.in b/m4/Makefile.in
new file mode 100644 (file)
index 0000000..366be93
--- /dev/null
@@ -0,0 +1,589 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = m4
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = \
+    as-version.m4 \
+    vapigen.m4 \
+    $(NULL)
+
+GITIGNOREFILES = \
+       gtk-doc.m4 \
+       intltool.m4 \
+       libtool.m4 \
+       lt*.m4 \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu m4/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4
new file mode 100644 (file)
index 0000000..ac2eccb
--- /dev/null
@@ -0,0 +1,71 @@
+dnl -*- mode: autoconf -*-
+
+# serial 1
+
+dnl Usage:
+dnl   GTK_DOC_CHECK([minimum-gtk-doc-version])
+AC_DEFUN([GTK_DOC_CHECK],
+[
+  AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+  AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+  AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+
+  dnl check for tools we added during development
+  AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+  AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
+  AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
+
+  dnl for overriding the documentation installation directory
+  AC_ARG_WITH([html-dir],
+    AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
+    [with_html_dir='${datadir}/gtk-doc/html'])
+  HTML_DIR="$with_html_dir"
+  AC_SUBST([HTML_DIR])
+
+  dnl enable/disable documentation building
+  AC_ARG_ENABLE([gtk-doc],
+    AS_HELP_STRING([--enable-gtk-doc],
+                   [use gtk-doc to build documentation [[default=no]]]),,
+    [enable_gtk_doc=no])
+
+  if test x$enable_gtk_doc = xyes; then
+    ifelse([$1],[],
+      [PKG_CHECK_EXISTS([gtk-doc],,
+                        AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
+      [PKG_CHECK_EXISTS([gtk-doc >= $1],,
+                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
+    dnl don't check for glib if we build glib
+    if test "x$PACKAGE_NAME" != "xglib"; then
+      dnl don't fail if someone does not have glib
+      PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0,,[:])
+    fi
+  fi
+
+  AC_MSG_CHECKING([whether to build gtk-doc documentation])
+  AC_MSG_RESULT($enable_gtk_doc)
+
+  dnl enable/disable output formats
+  AC_ARG_ENABLE([gtk-doc-html],
+    AS_HELP_STRING([--enable-gtk-doc-html],
+                   [build documentation in html format [[default=yes]]]),,
+    [enable_gtk_doc_html=yes])
+    AC_ARG_ENABLE([gtk-doc-pdf],
+      AS_HELP_STRING([--enable-gtk-doc-pdf],
+                     [build documentation in pdf format [[default=no]]]),,
+      [enable_gtk_doc_pdf=no])
+
+  if test -z "$GTKDOC_MKPDF"; then
+    enable_gtk_doc_pdf=no
+  fi
+
+  if test -z "$AM_DEFAULT_VERBOSITY"; then
+    AM_DEFAULT_VERBOSITY=1
+  fi
+  AC_SUBST([AM_DEFAULT_VERBOSITY])
+
+  AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
+  AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
+  AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
+  AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
+  AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
+])
diff --git a/m4/intltool.m4 b/m4/intltool.m4
new file mode 100644 (file)
index 0000000..33353ed
--- /dev/null
@@ -0,0 +1,237 @@
+## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*-
+## Copyright (C) 2001 Eazel, Inc.
+## Author: Maciej Stachowiak <mjs@noisehavoc.org>
+##         Kenneth Christiansen <kenneth@gnu.org>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+# serial 42 IT_PROG_INTLTOOL
+AC_DEFUN([IT_PROG_INTLTOOL], [
+AC_PREREQ([2.50])dnl
+AC_REQUIRE([AM_NLS])dnl
+
+case "$am__api_version" in
+    1.[01234])
+       AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
+    ;;
+    *)
+    ;;
+esac
+
+INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
+INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+if test -n "$1"; then
+    AC_MSG_CHECKING([for intltool >= $1])
+    AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
+    test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+       AC_MSG_ERROR([Your intltool is too old.  You need intltool $1 or later.])
+fi
+
+AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update])
+AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge])
+AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract])
+if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
+    AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.])
+fi
+
+if test -z "$AM_DEFAULT_VERBOSITY"; then
+  AM_DEFAULT_VERBOSITY=1
+fi
+AC_SUBST([AM_DEFAULT_VERBOSITY])
+
+INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))'
+INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))'
+INTLTOOL__v_MERGE_0='@echo "  ITMRG " [$]@;'
+AC_SUBST(INTLTOOL_V_MERGE)
+AC_SUBST(INTLTOOL__v_MERGE_)
+AC_SUBST(INTLTOOL__v_MERGE_0)
+
+INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))'
+intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))'
+intltool__v_merge_options_0='-q'
+AC_SUBST(INTLTOOL_V_MERGE_OPTIONS)
+AC_SUBST(intltool__v_merge_options_)
+AC_SUBST(intltool__v_merge_options_0)
+
+  INTLTOOL_DESKTOP_RULE='%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+     INTLTOOL_KEYS_RULE='%.keys:      %.keys.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+     INTLTOOL_PROP_RULE='%.prop:      %.prop.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_OAF_RULE='%.oaf:       %.oaf.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@'
+     INTLTOOL_PONG_RULE='%.pong:      %.pong.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+   INTLTOOL_SERVER_RULE='%.server:    %.server.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_SHEET_RULE='%.sheet:     %.sheet.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+       INTLTOOL_UI_RULE='%.ui:        %.ui.in        $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_XML_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then
+      INTLTOOL_XML_NOMERGE_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@'
+else
+      INTLTOOL_XML_NOMERGE_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir'
+fi
+      INTLTOOL_XAM_RULE='%.xam:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_KBD_RULE='%.kbd:       %.kbd.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_CAVES_RULE='%.caves:     %.caves.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+  INTLTOOL_SCHEMAS_RULE='%.schemas:   %.schemas.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_THEME_RULE='%.theme:     %.theme.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_SERVICE_RULE='%.service: %.service.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+   INTLTOOL_POLICY_RULE='%.policy:    %.policy.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+
+_IT_SUBST(INTLTOOL_DESKTOP_RULE)
+_IT_SUBST(INTLTOOL_DIRECTORY_RULE)
+_IT_SUBST(INTLTOOL_KEYS_RULE)
+_IT_SUBST(INTLTOOL_PROP_RULE)
+_IT_SUBST(INTLTOOL_OAF_RULE)
+_IT_SUBST(INTLTOOL_PONG_RULE)
+_IT_SUBST(INTLTOOL_SERVER_RULE)
+_IT_SUBST(INTLTOOL_SHEET_RULE)
+_IT_SUBST(INTLTOOL_SOUNDLIST_RULE)
+_IT_SUBST(INTLTOOL_UI_RULE)
+_IT_SUBST(INTLTOOL_XAM_RULE)
+_IT_SUBST(INTLTOOL_KBD_RULE)
+_IT_SUBST(INTLTOOL_XML_RULE)
+_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE)
+_IT_SUBST(INTLTOOL_CAVES_RULE)
+_IT_SUBST(INTLTOOL_SCHEMAS_RULE)
+_IT_SUBST(INTLTOOL_THEME_RULE)
+_IT_SUBST(INTLTOOL_SERVICE_RULE)
+_IT_SUBST(INTLTOOL_POLICY_RULE)
+
+# Check the gettext tools to make sure they are GNU
+AC_PATH_PROG(XGETTEXT, xgettext)
+AC_PATH_PROG(MSGMERGE, msgmerge)
+AC_PATH_PROG(MSGFMT, msgfmt)
+AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
+    AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+fi
+xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
+mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
+mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
+if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
+    AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+fi
+
+AC_PATH_PROG(INTLTOOL_PERL, perl)
+if test -z "$INTLTOOL_PERL"; then
+   AC_MSG_ERROR([perl not found])
+fi
+AC_MSG_CHECKING([for perl >= 5.8.1])
+$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
+if test $? -ne 0; then
+   AC_MSG_ERROR([perl 5.8.1 is required for intltool])
+else
+   IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"`
+   AC_MSG_RESULT([$IT_PERL_VERSION])
+fi
+if test "x$2" != "xno-xml"; then
+   AC_MSG_CHECKING([for XML::Parser])
+   if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+       AC_MSG_RESULT([ok])
+   else
+       AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+   fi
+fi
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+AC_SUBST(ALL_LINGUAS)
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+  AC_LINK_IFELSE(
+    [AC_LANG_PROGRAM([[]],
+                     [[extern int _nl_msg_cat_cntr;
+                       return _nl_msg_cat_cntr]])],
+    [DATADIRNAME=share],
+    [case $host in
+    *-*-solaris*)
+    dnl On Solaris, if bind_textdomain_codeset is in libc,
+    dnl GNU format message catalog is always supported,
+    dnl since both are added to the libc all together.
+    dnl Hence, we'd like to go with DATADIRNAME=share
+    dnl in this case.
+    AC_CHECK_FUNC(bind_textdomain_codeset,
+      [DATADIRNAME=share], [DATADIRNAME=lib])
+    ;;
+    *)
+    [DATADIRNAME=lib]
+    ;;
+    esac])
+fi
+AC_SUBST(DATADIRNAME)
+
+IT_PO_SUBDIR([po])
+
+])
+
+
+# IT_PO_SUBDIR(DIRNAME)
+# ---------------------
+# All po subdirs have to be declared with this macro; the subdir "po" is
+# declared by IT_PROG_INTLTOOL.
+#
+AC_DEFUN([IT_PO_SUBDIR],
+[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
+dnl
+dnl The following CONFIG_COMMANDS should be executed at the very end
+dnl of config.status.
+AC_CONFIG_COMMANDS_PRE([
+  AC_CONFIG_COMMANDS([$1/stamp-it], [
+    if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then
+       AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
+    fi
+    rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
+    >"$1/stamp-it.tmp"
+    [sed '/^#/d
+        s/^[[].*] *//
+        /^[    ]*$/d
+       '"s|^|  $ac_top_srcdir/|" \
+      "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
+    ]
+    [sed '/^POTFILES =/,/[^\\]$/ {
+               /^POTFILES =/!d
+               r $1/POTFILES
+         }
+        ' "$1/Makefile.in" >"$1/Makefile"]
+    rm -f "$1/Makefile.tmp"
+    mv "$1/stamp-it.tmp" "$1/stamp-it"
+  ])
+])dnl
+])
+
+# _IT_SUBST(VARIABLE)
+# -------------------
+# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
+#
+AC_DEFUN([_IT_SUBST],
+[
+AC_SUBST([$1])
+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
+]
+)
+
+# deprecated macros
+AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
+# A hint is needed for aclocal from Automake <= 1.9.4:
+# AC_DEFUN([AC_PROG_INTLTOOL], ...)
+
diff --git a/m4/libtool.m4 b/m4/libtool.m4
new file mode 100644 (file)
index 0000000..56666f0
--- /dev/null
@@ -0,0 +1,7986 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+])
+
+# serial 57 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+                  [m4_fatal([Libtool version $1 or higher is required],
+                            63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\    *)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+m4_defun([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain="$ac_aux_dir/ltmain.sh"
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+       [m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+       [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+       [tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+          m4_quote(lt_decl_varnames),
+       m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+                       lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags="_LT_TAGS"dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+                                          [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+       dnl If the libtool generation code has been placed in $CONFIG_LT,
+       dnl instead of duplicating it all over again into config.status,
+       dnl then we will have config.status run $CONFIG_LT later, so it
+       dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+  _LT_PROG_REPLACE_SHELLFNS
+
+   mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],                 [_LT_LANG(C)],
+  [C++],               [_LT_LANG(CXX)],
+  [Go],                        [_LT_LANG(GO)],
+  [Java],              [_LT_LANG(GCJ)],
+  [Fortran 77],                [_LT_LANG(F77)],
+  [Fortran],           [_LT_LANG(FC)],
+  [Windows Resource],  [_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+       [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+       [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+       [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+       # By default we will add the -single_module flag. You can override
+       # by either setting the environment variable LT_MULTI_MODULE
+       # non-empty at configure time, or by adding -multi_module to the
+       # link flags.
+       rm -rf libconftest.dylib*
+       echo "int foo(void){return 1;}" > conftest.c
+       echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+       $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+         -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&AS_MESSAGE_LOG_FD
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+         lt_cv_apple_cc_single_mod=yes
+       else
+         cat conftest.err >&AS_MESSAGE_LOG_FD
+       fi
+       rm -rf libconftest.dylib*
+       rm -f conftest.*
+      fi])
+
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+       [lt_cv_ld_exported_symbols_list=yes],
+       [lt_cv_ld_exported_symbols_list=no])
+       LDFLAGS="$save_LDFLAGS"
+    ])
+
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+       10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+       10.[[012]]*)
+         _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+       10.*)
+         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=func_echo_all
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    m4_if([$1], [CXX],
+[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
+
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+       HPUX_IA64_MODE="32"
+       ;;
+      *ELF-64*)
+       HPUX_IA64_MODE="64"
+       ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+       *32-bit*)
+         LD="${LD-ld} -melf32bsmip"
+         ;;
+       *N32*)
+         LD="${LD-ld} -melf32bmipn32"
+         ;;
+       *64-bit*)
+         LD="${LD-ld} -melf64bmip"
+       ;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+       *32-bit*)
+         LD="${LD-ld} -32"
+         ;;
+       *N32*)
+         LD="${LD-ld} -n32"
+         ;;
+       *64-bit*)
+         LD="${LD-ld} -64"
+         ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+       case $host in
+         x86_64-*kfreebsd*-gnu)
+           LD="${LD-ld} -m elf_i386_fbsd"
+           ;;
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_i386"
+           ;;
+         ppc64-*linux*|powerpc64-*linux*)
+           LD="${LD-ld} -m elf32ppclinux"
+           ;;
+         s390x-*linux*)
+           LD="${LD-ld} -m elf_s390"
+           ;;
+         sparc64-*linux*)
+           LD="${LD-ld} -m elf32_sparc"
+           ;;
+       esac
+       ;;
+      *64-bit*)
+       case $host in
+         x86_64-*kfreebsd*-gnu)
+           LD="${LD-ld} -m elf_x86_64_fbsd"
+           ;;
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_x86_64"
+           ;;
+         ppc*-*linux*|powerpc*-*linux*)
+           LD="${LD-ld} -m elf64ppc"
+           ;;
+         s390*-*linux*|s390*-*tpf*)
+           LD="${LD-ld} -m elf64_s390"
+           ;;
+         sparc*-*linux*)
+           LD="${LD-ld} -m elf64_sparc"
+           ;;
+       esac
+       ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
+      *)
+       if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+         LD="${LD-ld} -64"
+       fi
+       ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+])# _LT_ENABLE_LOCK
+
+
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       AC_TRY_EVAL([lt_ar_try])
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[_LT_PROG_AR
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#              [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536      # usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[        ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+             test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL          RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL                DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL                0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW         DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW       RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW     DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW     0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+         [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+           [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+       [AC_CHECK_FUNC([dlopen],
+             [lt_cv_dlopen="dlopen"],
+         [AC_CHECK_LIB([dl], [dlopen],
+               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+           [AC_CHECK_LIB([svld], [dlopen],
+                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+             [AC_CHECK_LIB([dld], [dld_link],
+                   [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+             ])
+           ])
+         ])
+       ])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+         lt_cv_dlopen_self, [dnl
+         _LT_TRY_DLOPEN_SELF(
+           lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+           lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+         lt_cv_dlopen_self_static, [dnl
+         _LT_TRY_DLOPEN_SELF(
+           lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+           lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+        [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+        [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+        [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+       [Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links="nottested"
+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+       [], [
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+       lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+          echo ' yes '
+          echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+       :
+      else
+       can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
+    ;;
+
+  *)
+    # Assume MSVC wrapper
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
+    ;;
+  esac
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[23]].*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2.*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+       if test "$lt_cv_prog_gnu_ld" = yes; then
+               version_type=linux # correct to gnu/linux during the next big refactor
+       else
+               version_type=irix
+       fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+        LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+        [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Add ABI-specific directories to the system library path.
+  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+       shlibpath_overrides_runpath=no
+       ;;
+      *)
+       shlibpath_overrides_runpath=yes
+       ;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux # correct to gnu/linux during the next big refactor
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+       ;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+    [Run-time system search path for libraries])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+       case $deplibs_check_method in
+       "file_magic "*)
+         file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+           $EGREP "$file_magic_regex" > /dev/null; then
+           :
+         else
+           cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+         fi ;;
+       esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+        [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+       [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+       ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+       test "$with_gnu_ld" != no && break
+       ;;
+      *)
+       test "$with_gnu_ld" != yes && break
+       ;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc*)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+       # Check to see if the nm accepts a BSD-compat flag.
+       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+       #   nm: unknown option "B" ignored
+       # Tru64's nm complains that /dev/null is an invalid object file
+       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+       */dev/null* | *'Invalid file or object type'*)
+         lt_cv_path_NM="$tmp_nm -B"
+         break
+         ;;
+       *)
+         case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+         */dev/null*)
+           lt_cv_path_NM="$tmp_nm -p"
+           break
+           ;;
+         *)
+           lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+           continue # so that we can try to find one that supports BSD flags
+           ;;
+         esac
+         ;;
+       esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+  AC_SUBST([DUMPBIN])
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+       [Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[    ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+       mv -f "$nlist"T "$nlist"
+      else
+       rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+       if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+         cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t@_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+         # Now generate the symbol file.
+         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+         cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+LT@&t@_DLSYM_CONST struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+         cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+         # Now try linking the two files.
+         mv conftest.$ac_objext conftstm.$ac_objext
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
+         LIBS="conftstm.$ac_objext"
+         CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+         if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+           pipe_works=yes
+         fi
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
+       else
+         echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+       fi
+      else
+       echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+       [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+       ;;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       ;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+       # All AIX code is PIC.
+       if test "$host_cpu" = ia64; then
+         # AIX 5 now supports IA64 processor
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+       else
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+       fi
+       ;;
+      chorus*)
+       case $cc_basename in
+       cxch68*)
+         # Green Hills C++ Compiler
+         # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+         ;;
+       esac
+       ;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+       m4_if([$1], [GCJ], [],
+         [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+       ;;
+      dgux*)
+       case $cc_basename in
+         ec++*)
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           ;;
+         ghcx*)
+           # Green Hills C++ Compiler
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      freebsd* | dragonfly*)
+       # FreeBSD uses GNU C++
+       ;;
+      hpux9* | hpux10* | hpux11*)
+       case $cc_basename in
+         CC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+           if test "$host_cpu" != ia64; then
+             _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+           fi
+           ;;
+         aCC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+           case $host_cpu in
+           hppa*64*|ia64*)
+             # +Z the default
+             ;;
+           *)
+             _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+             ;;
+           esac
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      interix*)
+       # This is c89, which is MS Visual C++ (no shared libs)
+       # Anyone wants to do a port?
+       ;;
+      irix5* | irix6* | nonstopux*)
+       case $cc_basename in
+         CC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+           # CC pic flag -KPIC is the default.
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+       case $cc_basename in
+         KCC*)
+           # KAI C++ Compiler
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+           ;;
+         ecpc* )
+           # old Intel C++ for x86_64 which still supported -KPIC.
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+           ;;
+         icpc* )
+           # Intel C++, used to be incompatible with GCC.
+           # ICC 10 doesn't accept -KPIC any more.
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+           ;;
+         pgCC* | pgcpp*)
+           # Portland Group C++ compiler
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           ;;
+         cxx*)
+           # Compaq C++
+           # Make sure the PIC flag is empty.  It appears that all Alpha
+           # Linux and Compaq Tru64 Unix objects are PIC.
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+           ;;
+         xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+           # IBM XL 8.0, 9.0 on PPC and BlueGene
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+           ;;
+         *)
+           case `$CC -V 2>&1 | sed 5q` in
+           *Sun\ C*)
+             # Sun C++ 5.9
+             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+             _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+             ;;
+           esac
+           ;;
+       esac
+       ;;
+      lynxos*)
+       ;;
+      m88k*)
+       ;;
+      mvs*)
+       case $cc_basename in
+         cxx*)
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      netbsd*)
+       ;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+       case $cc_basename in
+         KCC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+           ;;
+         RCC*)
+           # Rational C++ 2.4.1
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           ;;
+         cxx*)
+           # Digital/Compaq C++
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           # Make sure the PIC flag is empty.  It appears that all Alpha
+           # Linux and Compaq Tru64 Unix objects are PIC.
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      psos*)
+       ;;
+      solaris*)
+       case $cc_basename in
+         CC* | sunCC*)
+           # Sun C++ 4.2, 5.x and Centerline C++
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+           ;;
+         gcx*)
+           # Green Hills C++ Compiler
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      sunos4*)
+       case $cc_basename in
+         CC*)
+           # Sun C++ 4.x
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           ;;
+         lcc*)
+           # Lucid
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+       case $cc_basename in
+         CC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           ;;
+       esac
+       ;;
+      tandem*)
+       case $cc_basename in
+         NCC*)
+           # NonStop-UX NCC 3.20
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      vxworks*)
+       ;;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+       ;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+       [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+       # +Z the default
+       ;;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       ;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+       [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+       # +Z the default
+       ;;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+       ;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+       ;;
+      nagfor*)
+       # NAG Fortran compiler
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+       ;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+       # which looks to be a dead project)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+       # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+       ;;
+      *)
+       case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+         # Sun Fortran 8.3 passes all unrecognized flags to the linker
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+         ;;
+       *Sun\ F* | *Sun*Fortran*)
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+         ;;
+       *Sun\ C*)
+         # Sun C 5.9
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         ;;
+        *Intel*\ [[CF]]*Compiler*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+         ;;
+       *Portland\ Group*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         ;;
+       esac
+       ;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+       [Additional compiler flags for building library objects])
+
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+       [How to pass a linker flag through the compiler])
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+       [Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+    ;;
+  cygwin* | mingw* | cegcc*)
+    case $cc_basename in
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+    ;;
+  esac
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+       # The AIX port of GNU ld has always aspired to compatibility
+       # with the native linker.  However, as the warning in the GNU ld
+       # block says, versions before 2.19.5* couldn't really create working
+       # shared libraries, regardless of the interface used.
+       case `$LD -v 2>&1` in
+         *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+         *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+         *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+         *)
+           lt_use_gnu_ld_interface=yes
+           ;;
+       esac
+       ;;
+      *)
+       lt_use_gnu_ld_interface=yes
+       ;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+       # support --undefined.  This deserves some investigation.  FIXME
+       _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+       # If the export-symbols file already is a .def file (1st line
+       # is EXPORTS), use it as is; otherwise, prepend...
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+         cp $export_symbols $output_objdir/$soname.def;
+       else
+         echo EXPORTS > $output_objdir/$soname.def;
+         cat $export_symbols >> $output_objdir/$soname.def;
+       fi~
+       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+       case $cc_basename in
+         diet\ *) tmp_diet=yes;;       # linux-dietlibc with static linking (!diet-dyn)
+       esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+        && test "$tmp_diet" = no
+      then
+       tmp_addflag=' $pic_flag'
+       tmp_sharedflag='-shared'
+       case $cc_basename,$host_cpu in
+        pgcc*)                         # Portland Group C compiler
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         tmp_addflag=' $pic_flag'
+         ;;
+       pgf77* | pgf90* | pgf95* | pgfortran*)
+                                       # Portland Group f77 and f90 compilers
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         tmp_addflag=' $pic_flag -Mnomain' ;;
+       ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
+         tmp_addflag=' -i_dynamic' ;;
+       efc*,ia64* | ifort*,ia64*)      # Intel Fortran compiler on ia64
+         tmp_addflag=' -i_dynamic -nofor_main' ;;
+       ifc* | ifort*)                  # Intel Fortran compiler
+         tmp_addflag=' -nofor_main' ;;
+       lf95*)                          # Lahey Fortran 8.1
+         _LT_TAGVAR(whole_archive_flag_spec, $1)=
+         tmp_sharedflag='--shared' ;;
+       xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+         tmp_sharedflag='-qmkshrobj'
+         tmp_addflag= ;;
+       nvcc*)  # Cuda Compiler Driver 2.2
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(compiler_needs_object, $1)=yes
+         ;;
+       esac
+       case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ C*)                       # Sun C 5.9
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(compiler_needs_object, $1)=yes
+         tmp_sharedflag='-G' ;;
+       *Sun\ F*)                       # Sun Fortran 8.3
+         tmp_sharedflag='-G' ;;
+       esac
+       _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+           cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+           echo "local: *; };" >> $output_objdir/$libname.ver~
+           $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+       case $cc_basename in
+       xlf* | bgf* | bgxlf* | mpixlf*)
+         # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+         _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+         if test "x$supports_anon_versioning" = xyes; then
+           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+             cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+             echo "local: *; };" >> $output_objdir/$libname.ver~
+             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+         fi
+         ;;
+       esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+       wlarc=
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+       ;;
+       *)
+         # For security reasons, it is highly recommended that you always
+         # use absolute paths for naming shared libraries, and exclude the
+         # DT_RUNPATH tag from executables and libraries.  But doing so
+         # requires that you compile everything twice, which is a pain.
+         if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+         else
+           _LT_TAGVAR(ld_shlibs, $1)=no
+         fi
+       ;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+       # Neither direct hardcoding nor static linking is supported with a
+       # broken collect2.
+       _LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test "$host_cpu" = ia64; then
+       # On IA64, the linker does run time linking by default, so we don't
+       # have to do anything special.
+       aix_use_runtimelinking=no
+       exp_sym_flag='-Bexport'
+       no_entry_flag=""
+      else
+       # If we're using GNU nm, then we don't want the "-C" option.
+       # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       # Also, AIX nm treats weak defined symbols like other global
+       # defined symbols, whereas GNU nm marks them as "W".
+       if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+       else
+         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+       fi
+       aix_use_runtimelinking=no
+
+       # Test if we are trying to use run time linking or normal
+       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+       # need to do runtime linking.
+       case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+         for ld_flag in $LDFLAGS; do
+         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+           aix_use_runtimelinking=yes
+           break
+         fi
+         done
+         ;;
+       esac
+
+       exp_sym_flag='-bexport'
+       no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+      if test "$GCC" = yes; then
+       case $host_os in aix4.[[012]]|aix4.[[012]].*)
+       # We only want to do this on AIX 4.2 and lower, the check
+       # below for broken collect2 doesn't work under 4.3+
+         collect2name=`${CC} -print-prog-name=collect2`
+         if test -f "$collect2name" &&
+          strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+         then
+         # We have reworked collect2
+         :
+         else
+         # We have old collect2
+         _LT_TAGVAR(hardcode_direct, $1)=unsupported
+         # It fails to find uninstalled libraries when the uninstalled
+         # path is not listed in the libpath.  Setting hardcode_minus_L
+         # to unsupported forces relinking
+         _LT_TAGVAR(hardcode_minus_L, $1)=yes
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_TAGVAR(hardcode_libdir_separator, $1)=
+         fi
+         ;;
+       esac
+       shared_flag='-shared'
+       if test "$aix_use_runtimelinking" = yes; then
+         shared_flag="$shared_flag "'${wl}-G'
+       fi
+      else
+       # not using gcc
+       if test "$host_cpu" = ia64; then
+       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+       # chokes on -Wl,-G. The following line is correct:
+         shared_flag='-G'
+       else
+         if test "$aix_use_runtimelinking" = yes; then
+           shared_flag='${wl}-G'
+         else
+           shared_flag='${wl}-bM:SRE'
+         fi
+       fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+       # Warning - without using the other runtime loading flags (-brtl),
+       # -berok will link without error, but may produce a broken library.
+       _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX([$1])
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+       if test "$host_cpu" = ia64; then
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+         _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+       else
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX([$1])
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+         # Warning - without using the other run time loading flags,
+         # -berok will link without error, but may produce a broken library.
+         _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+         _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         fi
+         _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+         # This is similar to how AIX traditionally builds its shared libraries.
+         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+       fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       _LT_TAGVAR(always_export_symbols, $1)=yes
+       _LT_TAGVAR(file_list_spec, $1)='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+       _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       # FIXME: Should let the user specify the lib program.
+       _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       ;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2.*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+       _LT_TAGVAR(hardcode_direct, $1)=yes
+       _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       # hardcode_minus_L: Not really in the search PATH,
+       # but as the default location of the library.
+       _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       case $host_cpu in
+       hppa*64*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       ia64*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       *)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       esac
+      else
+       case $host_cpu in
+       hppa*64*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       ia64*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       *)
+       m4_if($1, [], [
+         # Older versions of the 11.00 compiler do not understand -b yet
+         # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+         _LT_LINKER_OPTION([if $CC understands -b],
+           _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+           [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+           [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+         [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+         ;;
+       esac
+      fi
+      if test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+       case $host_cpu in
+       hppa*64*|ia64*)
+         _LT_TAGVAR(hardcode_direct, $1)=no
+         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+         ;;
+       *)
+         _LT_TAGVAR(hardcode_direct, $1)=yes
+         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+         # hardcode_minus_L: Not really in the search PATH,
+         # but as the default location of the library.
+         _LT_TAGVAR(hardcode_minus_L, $1)=yes
+         ;;
+       esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       # Try to use the -exported_symbol ld option, if it does not
+       # work, assume that -exports_file does not work either and
+       # implicitly export all symbols.
+       # This should be the same for all languages, so no per-tag cache variable.
+       AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+         [lt_cv_irix_exported_symbol],
+         [save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          AC_LINK_IFELSE(
+            [AC_LANG_SOURCE(
+               [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+                             [C++], [[int foo (void) { return 0; }]],
+                             [Fortran 77], [[
+      subroutine foo
+      end]],
+                             [Fortran], [[
+      subroutine foo
+      end]])])],
+             [lt_cv_irix_exported_symbol=yes],
+             [lt_cv_irix_exported_symbol=no])
+           LDFLAGS="$save_LDFLAGS"])
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+       _LT_TAGVAR(hardcode_direct, $1)=yes
+       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       else
+         case $host_os in
+          openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+            _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+            ;;
+          *)
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+            ;;
+         esac
+       fi
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+       _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)     # as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+       _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+       # Both c and cxx compiler support -rpath directly
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test "$GCC" = yes; then
+       wlarc='${wl}'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+       case `$CC -V 2>&1` in
+       *"Compilers 5.0"*)
+         wlarc=''
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+         $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+         ;;
+       *)
+         wlarc='${wl}'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+         $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         ;;
+       esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+       # The compiler driver will combine and reorder linker options,
+       # but understands `-z linker_flag'.  GCC discards it without `$wl',
+       # but is careful enough not to reorder.
+       # Supported since Solaris 2.6 (maybe 2.5.1?)
+       if test "$GCC" = yes; then
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+       else
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+       fi
+       ;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+       # Use $CC to link under sequent, because it throws in some extra .o
+       # files that make .init and .fini sections work.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+       sni)
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+       ;;
+       siemens)
+         ## LD is ld it makes a PLAMLIB
+         ## CC just makes a GrossModule.
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+         _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+       motorola)
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+       ;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       runpath_var=LD_RUN_PATH
+       hardcode_runpath_var=yes
+       _LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+       ;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+       [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+       [$RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+       if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+         pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+         _LT_TAGVAR(allow_undefined_flag, $1)=
+         if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+         then
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+         else
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+         fi
+         _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+       ])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report which library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC="$lt_save_CC"
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test "$GXX" = yes; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test "$GXX" = yes; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test "$with_gnu_ld" = yes; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='${wl}'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+         $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test "$host_cpu" = ia64; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=""
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # need to do runtime linking.
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+           for ld_flag in $LDFLAGS; do
+             case $ld_flag in
+             *-brtl*)
+               aix_use_runtimelinking=yes
+               break
+               ;;
+             esac
+           done
+           ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+        if test "$GXX" = yes; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+         collect2name=`${CC} -print-prog-name=collect2`
+         if test -f "$collect2name" &&
+            strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+         then
+           # We have reworked collect2
+           :
+         else
+           # We have old collect2
+           _LT_TAGVAR(hardcode_direct, $1)=unsupported
+           # It fails to find uninstalled libraries when the uninstalled
+           # path is not listed in the libpath.  Setting hardcode_minus_L
+           # to unsupported forces relinking
+           _LT_TAGVAR(hardcode_minus_L, $1)=yes
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+           _LT_TAGVAR(hardcode_libdir_separator, $1)=
+         fi
+          esac
+          shared_flag='-shared'
+         if test "$aix_use_runtimelinking" = yes; then
+           shared_flag="$shared_flag "'${wl}-G'
+         fi
+        else
+          # not using gcc
+          if test "$host_cpu" = ia64; then
+         # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+         # chokes on -Wl,-G. The following line is correct:
+         shared_flag='-G'
+          else
+           if test "$aix_use_runtimelinking" = yes; then
+             shared_flag='${wl}-G'
+           else
+             shared_flag='${wl}-bM:SRE'
+           fi
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+       # export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+        if test "$aix_use_runtimelinking" = yes; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX([$1])
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        else
+          if test "$host_cpu" = ia64; then
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+           _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+          else
+           # Determine the default libpath from the value encoded in an
+           # empty executable.
+           _LT_SYS_MODULE_PATH_AIX([$1])
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+           # Warning - without using the other run time loading flags,
+           # -berok will link without error, but may produce a broken library.
+           _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+           _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+           if test "$with_gnu_ld" = yes; then
+             # We only use this code for GNU lds that support --whole-archive.
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           else
+             # Exported symbols can be pulled into shared objects from archives
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+           fi
+           _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+           # This is similar to how AIX traditionally builds its shared
+           # libraries.
+           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+          fi
+        fi
+        ;;
+
+      beos*)
+       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+         # support --undefined.  This deserves some investigation.  FIXME
+         _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       else
+         _LT_TAGVAR(ld_shlibs, $1)=no
+       fi
+       ;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+         # FIXME: insert proper C++ library support
+         _LT_TAGVAR(ld_shlibs, $1)=no
+         ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+       case $GXX,$cc_basename in
+       ,cl* | no,cl*)
+         # Native MSVC
+         # hardcode_libdir_flag_spec is actually meaningless, as there is
+         # no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=yes
+         _LT_TAGVAR(file_list_spec, $1)='@'
+         # Tell ltmain to make .lib files, not .a files.
+         libext=lib
+         # Tell ltmain to make .dll files, not .so files.
+         shrext_cmds=".dll"
+         # FIXME: Setting linknames here is a bad hack.
+         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+           else
+             $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+           fi~
+           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+           linknames='
+         # The linker will not automatically build a static lib if we build a DLL.
+         # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+         # Don't use ranlib
+         _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+         _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+           lt_tool_outputfile="@TOOL_OUTPUT@"~
+           case $lt_outputfile in
+             *.exe|*.EXE) ;;
+             *)
+               lt_outputfile="$lt_outputfile.exe"
+               lt_tool_outputfile="$lt_tool_outputfile.exe"
+               ;;
+           esac~
+           func_to_tool_file "$lt_outputfile"~
+           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+             $RM "$lt_outputfile.manifest";
+           fi'
+         ;;
+       *)
+         # g++
+         # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+         # as there is no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=no
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+         if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           # If the export-symbols file already is a .def file (1st line
+           # is EXPORTS), use it as is; otherwise, prepend...
+           _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             cp $export_symbols $output_objdir/$soname.def;
+           else
+             echo EXPORTS > $output_objdir/$soname.def;
+             cat $export_symbols >> $output_objdir/$soname.def;
+           fi~
+           $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+         else
+           _LT_TAGVAR(ld_shlibs, $1)=no
+         fi
+         ;;
+       esac
+       ;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+       ;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          ghcx*)
+           # Green Hills C++ Compiler
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          *)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+        esac
+        ;;
+
+      freebsd2.*)
+        # C++ shared libraries reported to be fairly broken before
+       # switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      gnu*)
+        ;;
+
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+                                            # but as the default
+                                            # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            ;;
+          *)
+            if test "$GXX" = yes; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test $with_gnu_ld = no; then
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+             _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+                                                # but as the default
+                                                # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          aCC*)
+           case $host_cpu in
+             hppa*64*)
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               ;;
+             ia64*)
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               ;;
+             *)
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               ;;
+           esac
+           # Commands to make compiler produce verbose output that lists
+           # what "hidden" libraries, object files and flags are used when
+           # linking a shared library.
+           #
+           # There doesn't appear to be a way to prevent this compiler from
+           # explicitly linking system object files so we need to strip them
+           # from the output so that they don't get included in the library
+           # dependencies.
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           ;;
+          *)
+           if test "$GXX" = yes; then
+             if test $with_gnu_ld = no; then
+               case $host_cpu in
+                 hppa*64*)
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   ;;
+                 ia64*)
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   ;;
+                 *)
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   ;;
+               esac
+             fi
+           else
+             # FIXME: insert proper C++ library support
+             _LT_TAGVAR(ld_shlibs, $1)=no
+           fi
+           ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+       _LT_TAGVAR(hardcode_direct, $1)=no
+       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+       # Instead, shared libraries are loaded at an image base (0x10000000 by
+       # default) and relocated if they conflict, which is a slow very memory
+       # consuming and fragmenting process.  To avoid this, we pick a random,
+       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       ;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+           # SGI C++
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+
+           # Archives containing C++ object files must be created using
+           # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+           # necessary to make sure instantiated templates are included
+           # in the archive.
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+           ;;
+          *)
+           if test "$GXX" = yes; then
+             if test "$with_gnu_ld" = no; then
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+             else
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+             fi
+           fi
+           _LT_TAGVAR(link_all_deplibs, $1)=yes
+           ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+        case $cc_basename in
+          KCC*)
+           # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+           # KCC will only create a shared library if the output file
+           # ends with ".so" (or ".sl" for HP-UX), so rename the library
+           # to its proper name (with version) after linking.
+           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+           # Commands to make compiler produce verbose output that lists
+           # what "hidden" libraries, object files and flags are used when
+           # linking a shared library.
+           #
+           # There doesn't appear to be a way to prevent this compiler from
+           # explicitly linking system object files so we need to strip them
+           # from the output so that they don't get included in the library
+           # dependencies.
+           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+           # Archives containing C++ object files must be created using
+           # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+           ;;
+         icpc* | ecpc* )
+           # Intel C++
+           with_gnu_ld=yes
+           # version 8.0 and above of icpc choke on multiply defined symbols
+           # if we add $predep_objects and $postdep_objects, however 7.1 and
+           # earlier do not add the objects themselves.
+           case `$CC -V 2>&1` in
+             *"Version 7."*)
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+               ;;
+             *)  # Version 8.0 or newer
+               tmp_idyn=
+               case $host_cpu in
+                 ia64*) tmp_idyn=' -i_dynamic';;
+               esac
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+               ;;
+           esac
+           _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+           case `$CC -V` in
+           *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
+             _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+             _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+               $RANLIB $oldlib'
+             _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+             ;;
+           *) # Version 6 and above use weak symbols
+             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+             ;;
+           esac
+
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+            ;;
+         cxx*)
+           # Compaq C++
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+           runpath_var=LD_RUN_PATH
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+           _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+           # Commands to make compiler produce verbose output that lists
+           # what "hidden" libraries, object files and flags are used when
+           # linking a shared library.
+           #
+           # There doesn't appear to be a way to prevent this compiler from
+           # explicitly linking system object files so we need to strip them
+           # from the output so that they don't get included in the library
+           # dependencies.
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+           ;;
+         xl* | mpixl* | bgxl*)
+           # IBM XL 8.0 on PPC, with GNU ld
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+           if test "x$supports_anon_versioning" = xyes; then
+             _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+               cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+               echo "local: *; };" >> $output_objdir/$libname.ver~
+               $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+           fi
+           ;;
+         *)
+           case `$CC -V 2>&1 | sed 5q` in
+           *Sun\ C*)
+             # Sun C++ 5.9
+             _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+             _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+             _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+             # Not sure whether something based on
+             # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+             # would be better.
+             output_verbose_link_cmd='func_echo_all'
+
+             # Archives containing C++ object files must be created using
+             # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+             # necessary to make sure instantiated templates are included
+             # in the archive.
+             _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+             ;;
+           esac
+           ;;
+       esac
+       ;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       ;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+       ;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+         *)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+       esac
+       ;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+         _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+         wlarc=
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+         _LT_TAGVAR(hardcode_direct, $1)=yes
+         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       fi
+       # Workaround some broken pre-1.5 toolchains
+       output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+       ;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+       ;;
+
+      openbsd2*)
+        # C++ shared libraries are fairly broken
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       ;;
+
+      openbsd*)
+       if test -f /usr/libexec/ld.so; then
+         _LT_TAGVAR(hardcode_direct, $1)=yes
+         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+         if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+         fi
+         output_verbose_link_cmd=func_echo_all
+       else
+         _LT_TAGVAR(ld_shlibs, $1)=no
+       fi
+       ;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+           # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+           # KCC will only create a shared library if the output file
+           # ends with ".so" (or ".sl" for HP-UX), so rename the library
+           # to its proper name (with version) after linking.
+           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+           _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+           # Archives containing C++ object files must be created using
+           # the KAI C++ compiler.
+           case $host in
+             osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+             *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+           esac
+           ;;
+          RCC*)
+           # Rational C++ 2.4.1
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          cxx*)
+           case $host in
+             osf3*)
+               _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+               ;;
+             *)
+               _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+                 echo "-hidden">> $lib.exp~
+                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
+                 $RM $lib.exp'
+               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+               ;;
+           esac
+
+           _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+           # Commands to make compiler produce verbose output that lists
+           # what "hidden" libraries, object files and flags are used when
+           # linking a shared library.
+           #
+           # There doesn't appear to be a way to prevent this compiler from
+           # explicitly linking system object files so we need to strip them
+           # from the output so that they don't get included in the library
+           # dependencies.
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           ;;
+         *)
+           if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+             _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+             case $host in
+               osf3*)
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 ;;
+               *)
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 ;;
+             esac
+
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+             _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+             # Commands to make compiler produce verbose output that lists
+             # what "hidden" libraries, object files and flags are used when
+             # linking a shared library.
+             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+           else
+             # FIXME: insert proper C++ library support
+             _LT_TAGVAR(ld_shlibs, $1)=no
+           fi
+           ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+           # Sun C++ 4.x
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          lcc*)
+           # Lucid
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          *)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC* | sunCC*)
+           # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+           _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+             $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+           _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+           case $host_os in
+             solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+             *)
+               # The compiler driver will combine and reorder linker options,
+               # but understands `-z linker_flag'.
+               # Supported since Solaris 2.6 (maybe 2.5.1?)
+               _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+               ;;
+           esac
+           _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+           output_verbose_link_cmd='func_echo_all'
+
+           # Archives containing C++ object files must be created using
+           # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+           # necessary to make sure instantiated templates are included
+           # in the archive.
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+           ;;
+          gcx*)
+           # Green Hills C++ Compiler
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+           # The C++ compiler must be used to create the archive.
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+           ;;
+          *)
+           # GNU C++ compiler with Solaris linker
+           if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+             _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+             if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+               # Commands to make compiler produce verbose output that lists
+               # what "hidden" libraries, object files and flags are used when
+               # linking a shared library.
+               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+             else
+               # g++ 2.7 appears to require `-G' NOT `-shared' on this
+               # platform.
+               _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                 $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+               # Commands to make compiler produce verbose output that lists
+               # what "hidden" libraries, object files and flags are used when
+               # linking a shared library.
+               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+             fi
+
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+             case $host_os in
+               solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+               *)
+                 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+                 ;;
+             esac
+           fi
+           ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       *)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+       # Note: We can NOT use -z defs as we might desire, because we do not
+       # link with -lc, and that would cause any symbols used from libc to
+       # always be unresolved, which means just about no library would
+       # ever link correctly.  If we're not using GNU ld we use -z text
+       # though, which does catch some bad symbols but isn't as heavy-handed
+       # as -z defs.
+       _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+       _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+       _LT_TAGVAR(link_all_deplibs, $1)=yes
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+       runpath_var='LD_RUN_PATH'
+
+       case $cc_basename in
+          CC*)
+           _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+             '"$_LT_TAGVAR(old_archive_cmds, $1)"
+           _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+             '"$_LT_TAGVAR(reload_cmds, $1)"
+           ;;
+         *)
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           ;;
+       esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+           # NonStop-UX NCC 3.20
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          *)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)="$GXX"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
+])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case ${prev}${p} in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" ||
+          test $p = "-R"; then
+        prev=$p
+        continue
+       fi
+
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
+       if test "$pre_test_object_deps_done" = no; then
+        case ${prev} in
+        -L | -R)
+          # Internal compiler library paths should come after those
+          # provided the user.  The postdeps already come after the
+          # user supplied libs so there is no need to process them.
+          if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+            _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+          else
+            _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+          fi
+          ;;
+        # The "-l" case would never come before the object being
+        # linked, so don't bother handling this case.
+        esac
+       else
+        if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+          _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+        else
+          _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+        fi
+       fi
+       prev=
+       ;;
+
+    *.lto.$objext) ;; # Ignore GCC LTO objects
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+        pre_test_object_deps_done=yes
+        continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+        if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+          _LT_TAGVAR(predep_objects, $1)="$p"
+        else
+          _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+        fi
+       else
+        if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+          _LT_TAGVAR(postdep_objects, $1)="$p"
+        else
+          _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+        fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC* | sunCC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_F77" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
+  CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+       if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+         test "$enable_shared" = yes && enable_static=no
+       fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$G77"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+  CFLAGS="$lt_save_CFLAGS"
+fi # test "$_lt_disable_F77" != yes
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
+  CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+       if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+         test "$enable_shared" = yes && enable_static=no
+       fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test "$_lt_disable_FC" != yes
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+CFLAGS=
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+AC_MSG_RESULT([$xsi_shell])
+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+
+AC_MSG_CHECKING([whether the shell understands "+="])
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+AC_MSG_RESULT([$lt_shell_append])
+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
+# ------------------------------------------------------
+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
+m4_defun([_LT_PROG_FUNCTION_REPLACE],
+[dnl {
+sed -e '/^$1 ()$/,/^} # $1 /c\
+$1 ()\
+{\
+m4_bpatsubsts([$2], [$], [\\], [^\([    ]\)], [\\\1])
+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+])
+
+
+# _LT_PROG_REPLACE_SHELLFNS
+# -------------------------
+# Replace existing portable implementations of several shell functions with
+# equivalent extended shell implementations where those features are available..
+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
+[if test x"$xsi_shell" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary parameter first.
+    func_stripname_result=${3}
+    func_stripname_result=${func_stripname_result#"${1}"}
+    func_stripname_result=${func_stripname_result%"${2}"}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
+    func_split_long_opt_name=${1%%=*}
+    func_split_long_opt_arg=${1#*=}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
+    func_split_short_opt_arg=${1#??}
+    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
+    case ${1} in
+      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+      *)    func_lo2o_result=${1} ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
+
+  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
+
+  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
+    func_quote_for_eval "${2}"
+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
+    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
+fi
+])
+
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine which file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
new file mode 100644 (file)
index 0000000..5d9acd8
--- /dev/null
@@ -0,0 +1,384 @@
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 7 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+           [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+                     [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+                  [_LT_ENABLE_FAST_INSTALL])
+  ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+       [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_shared=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+       [Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+       [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_static=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+       [Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_fast_install=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+        [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
+       [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+       IFS="$lt_save_ifs"
+       if test "X$lt_pkg" = "X$lt_p"; then
+         pic_mode=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+                [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+                [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+                [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+                [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+                [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
new file mode 100644 (file)
index 0000000..9000a05
--- /dev/null
@@ -0,0 +1,123 @@
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+          m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+            [m4_foreach([_Lt_suffix],
+               ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+       [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+         [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+                [lt_append([$1], [$2], [$3])$4],
+                [$5])],
+         [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+       m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+       [$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+                     [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
new file mode 100644 (file)
index 0000000..07a8602
--- /dev/null
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers                      -*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# @configure_input@
+
+# serial 3337 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.4.2])
+m4_define([LT_PACKAGE_REVISION], [1.3337])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.4.2'
+macro_revision='1.3337'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
new file mode 100644 (file)
index 0000000..c573da9
--- /dev/null
@@ -0,0 +1,98 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 5 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],  [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],             [AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],        [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],         [AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],    [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],           [AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],             [AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],    [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],           [AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],       [AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],               [AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],        [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],    [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],    [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],         [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],            [AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],  [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],             [AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],            [AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],    [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],   [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],          [AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],            [AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],           [AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],  [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],    [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],          [AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],          [AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],                [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],     [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],          [AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],   [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],           [AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],           [AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],           [AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],  [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],      [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],    [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],    [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],    [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],     [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],         [AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],       [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],        [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],                [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],        [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],   [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],              [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],               [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],              [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/missing b/missing
new file mode 100755 (executable)
index 0000000..cdea514
--- /dev/null
+++ b/missing
@@ -0,0 +1,215 @@
+#! /bin/sh
+# Common wrapper for a few potentially missing GNU programs.
+
+scriptversion=2012-06-26.16; # UTC
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try '$0 --help' for more information"
+  exit 1
+fi
+
+case $1 in
+
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
+
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+
+Supported PROGRAM values:
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+    exit $?
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
+    ;;
+
+  -*)
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
+
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'automa4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
+    ;;
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
new file mode 100644 (file)
index 0000000..06a8cfe
--- /dev/null
@@ -0,0 +1,222 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
+#
+# This file may be copied and used freely without restrictions.  It may
+# be used in projects which are not available under a GNU Public License,
+# but which still want to provide support for the GNU gettext functionality.
+#
+# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
+#   instead of PACKAGE and to look for po2tbl in ./ not in intl/
+#
+# - Modified by jacob berkman <jacob@ximian.com> to install
+#   Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
+
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_builddir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+datarootdir = @datarootdir@
+libdir = @libdir@
+DATADIRNAME = @DATADIRNAME@
+itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+subdir = po
+install_sh = @install_sh@
+# Automake >= 1.8 provides @mkdir_p@.
+# Until it can be supposed, use the safe fallback:
+mkdir_p = $(install_sh) -d
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+MSGMERGE = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT   = INTLTOOL_EXTRACT="$(INTLTOOL_EXTRACT)" XGETTEXT="$(XGETTEXT)" srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+
+ALL_LINGUAS = @ALL_LINGUAS@
+
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
+
+USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
+
+USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
+
+POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
+
+DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
+
+POTFILES = \
+# This comment gets stripped out
+
+CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
+
+.SUFFIXES:
+.SUFFIXES: .po .pox .gmo .mo .msg .cat
+
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+INTLTOOL_V_MSGFMT = $(INTLTOOL__v_MSGFMT_$(V))
+INTLTOOL__v_MSGFMT_= $(INTLTOOL__v_MSGFMT_$(AM_DEFAULT_VERBOSITY))
+INTLTOOL__v_MSGFMT_0 = @echo "  MSGFMT" $@;
+
+.po.pox:
+       $(MAKE) $(GETTEXT_PACKAGE).pot
+       $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
+
+.po.mo:
+       $(INTLTOOL_V_MSGFMT)$(MSGFMT) -o $@ $<
+
+.po.gmo:
+       $(INTLTOOL_V_MSGFMT)file=`echo $* | sed 's,.*/,,'`.gmo \
+         && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+       sed -f ../intl/po2msg.sed < $< > $*.msg \
+         && rm -f $@ && gencat $@ $*.msg
+
+
+all: all-@USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
+       $(GENPOT)
+
+install: install-data
+install-data: install-data-@USE_NLS@
+install-data-no: all
+install-data-yes: all
+       linguas="$(USE_LINGUAS)"; \
+       for lang in $$linguas; do \
+         dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+         $(mkdir_p) $$dir; \
+         if test -r $$lang.gmo; then \
+           $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+           echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
+         else \
+           $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
+           echo "installing $(srcdir)/$$lang.gmo as" \
+                "$$dir/$(GETTEXT_PACKAGE).mo"; \
+         fi; \
+         if test -r $$lang.gmo.m; then \
+           $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
+           echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
+         else \
+           if test -r $(srcdir)/$$lang.gmo.m ; then \
+             $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
+               $$dir/$(GETTEXT_PACKAGE).mo.m; \
+             echo "installing $(srcdir)/$$lang.gmo.m as" \
+                  "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
+           else \
+             true; \
+           fi; \
+         fi; \
+       done
+
+# Empty stubs to satisfy archaic automake needs
+dvi info ctags tags CTAGS TAGS ID:
+
+# Define this as empty until I found a useful application.
+install-exec installcheck:
+
+uninstall:
+       linguas="$(USE_LINGUAS)"; \
+       for lang in $$linguas; do \
+         rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+         rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+       done
+
+check: all $(GETTEXT_PACKAGE).pot
+       rm -f missing notexist
+       srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
+       if [ -r missing -o -r notexist ]; then \
+         exit 1; \
+       fi
+
+mostlyclean:
+       rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
+       rm -f .intltool-merge-cache
+
+clean: mostlyclean
+
+distclean: clean
+       rm -f Makefile Makefile.in POTFILES stamp-it
+       rm -f *.mo *.msg *.cat *.cat.m *.gmo
+
+maintainer-clean: distclean
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+       rm -f Makefile.in.in
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: $(DISTFILES)
+       dists="$(DISTFILES)"; \
+       extra_dists="$(EXTRA_DISTFILES)"; \
+       for file in $$extra_dists; do \
+         test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
+       done; \
+       for file in $$dists; do \
+         test -f $$file || file="$(srcdir)/$$file"; \
+         ln $$file $(distdir) 2> /dev/null \
+           || cp -p $$file $(distdir); \
+       done
+
+update-po: Makefile
+       $(MAKE) $(GETTEXT_PACKAGE).pot
+       tmpdir=`pwd`; \
+       linguas="$(USE_LINGUAS)"; \
+       for lang in $$linguas; do \
+         echo "$$lang:"; \
+         result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+         if $$result; then \
+           if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+             rm -f $$tmpdir/$$lang.new.po; \
+            else \
+             if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+               :; \
+             else \
+               echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+               rm -f $$tmpdir/$$lang.new.po; \
+               exit 1; \
+             fi; \
+           fi; \
+         else \
+           echo "msgmerge for $$lang.gmo failed!"; \
+           rm -f $$tmpdir/$$lang.new.po; \
+         fi; \
+       done
+
+Makefile POTFILES: stamp-it
+       @if test ! -f $@; then \
+         rm -f stamp-it; \
+         $(MAKE) stamp-it; \
+       fi
+
+stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
+              $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/py-compile b/py-compile
new file mode 100755 (executable)
index 0000000..46ea866
--- /dev/null
@@ -0,0 +1,170 @@
+#!/bin/sh
+# py-compile - Compile a Python program
+
+scriptversion=2011-06-08.12; # UTC
+
+# Copyright (C) 2000-2013 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+if [ -z "$PYTHON" ]; then
+  PYTHON=python
+fi
+
+me=py-compile
+
+usage_error ()
+{
+  echo "$me: $*" >&2
+  echo "Try '$me --help' for more information." >&2
+  exit 1
+}
+
+basedir=
+destdir=
+while test $# -ne 0; do
+  case "$1" in
+    --basedir)
+      if test $# -lt 2; then
+        usage_error "option '--basedir' requires an argument"
+      else
+        basedir=$2
+      fi
+      shift
+      ;;
+    --destdir)
+      if test $# -lt 2; then
+        usage_error "option '--destdir' requires an argument"
+      else
+        destdir=$2
+      fi
+      shift
+      ;;
+    -h|--help)
+      cat <<\EOF
+Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] FILES..."
+
+Byte compile some python scripts FILES.  Use --destdir to specify any
+leading directory path to the FILES that you don't want to include in the
+byte compiled file.  Specify --basedir for any additional path information you
+do want to be shown in the byte compiled file.
+
+Example:
+  py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+      exit $?
+      ;;
+    -v|--version)
+      echo "$me $scriptversion"
+      exit $?
+      ;;
+    --)
+      shift
+      break
+      ;;
+    -*)
+      usage_error "unrecognized option '$1'"
+      ;;
+    *)
+      break
+      ;;
+  esac
+  shift
+done
+
+files=$*
+if test -z "$files"; then
+    usage_error "no files given"
+fi
+
+# if basedir was given, then it should be prepended to filenames before
+# byte compilation.
+if [ -z "$basedir" ]; then
+    pathtrans="path = file"
+else
+    pathtrans="path = os.path.join('$basedir', file)"
+fi
+
+# if destdir was given, then it needs to be prepended to the filename to
+# byte compile but not go into the compiled file.
+if [ -z "$destdir" ]; then
+    filetrans="filepath = path"
+else
+    filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)"
+fi
+
+$PYTHON -c "
+import sys, os, py_compile, imp
+
+files = '''$files'''
+
+sys.stdout.write('Byte-compiling python modules...\n')
+for file in files.split():
+    $pathtrans
+    $filetrans
+    if not os.path.exists(filepath) or not (len(filepath) >= 3
+                                            and filepath[-3:] == '.py'):
+           continue
+    sys.stdout.write(file)
+    sys.stdout.flush()
+    if hasattr(imp, 'get_tag'):
+        py_compile.compile(filepath, imp.cache_from_source(filepath), path)
+    else:
+        py_compile.compile(filepath, filepath + 'c', path)
+sys.stdout.write('\n')" || exit $?
+
+# this will fail for python < 1.5, but that doesn't matter ...
+$PYTHON -O -c "
+import sys, os, py_compile, imp
+
+# pypy does not use .pyo optimization
+if hasattr(sys, 'pypy_translation_info'):
+    sys.exit(0)
+
+files = '''$files'''
+sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n')
+for file in files.split():
+    $pathtrans
+    $filetrans
+    if not os.path.exists(filepath) or not (len(filepath) >= 3
+                                            and filepath[-3:] == '.py'):
+           continue
+    sys.stdout.write(file)
+    sys.stdout.flush()
+    if hasattr(imp, 'get_tag'):
+        py_compile.compile(filepath, imp.cache_from_source(filepath, False), path)
+    else:
+        py_compile.compile(filepath, filepath + 'o', path)
+sys.stdout.write('\n')" 2>/dev/null || :
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/setup/Makefile.in b/setup/Makefile.in
new file mode 100644 (file)
index 0000000..83d8a55
--- /dev/null
@@ -0,0 +1,833 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2013 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-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
+# 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
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = setup
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(srcdir)/ibus-setup.in $(ibussetup_PYTHON) \
+       $(top_srcdir)/py-compile
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = ibus-setup
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(ibussetupdir)" \
+       "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(ibussetupdir)" \
+       "$(DESTDIR)$(man_onedir)"
+SCRIPTS = $(bin_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile)
+am__pep3147_tweak = \
+  sed -e 's|\.py$$||' -e 's|[^/]*$$|__pycache__/&.*.py|'
+py_compile = $(top_srcdir)/py-compile
+DATA = $(desktop_DATA) $(ibussetup_DATA) $(man_one_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ibussetup_PYTHON = \
+       main.py \
+       i18n.py \
+       icon.py \
+       enginecombobox.py \
+       enginetreeview.py \
+       engineabout.py \
+       keyboardshortcut.py \
+       $(NULL)
+
+ibussetup_DATA = \
+       setup.ui \
+       $(NULL)
+
+bin_SCRIPTS = ibus-setup
+ibussetupdir = $(pkgdatadir)/setup
+desktop_in_files = ibus-setup.desktop.in
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+desktopdir = $(datadir)/applications
+man_one_in_files = ibus-setup.1.in
+man_one_files = $(man_one_in_files:.1.in=.1)
+man_one_DATA = $(man_one_files:.1=.1.gz) 
+man_onedir = $(datadir)/man/man1
+CLEANFILES = \
+       $(man_one_DATA) \
+       $(man_one_files) \
+       *.pyc \
+       ibus-setup \
+       $(NULL)
+
+EXTRA_DIST = \
+       $(man_one_in_files) \
+       ibus-setup.in \
+       setup.ui \
+       ibus-setup.desktop.in \
+       $(NULL)
+
+DISTCLEANFILES = \
+       $(desktop_DATA) \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu setup/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu setup/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+ibus-setup: $(top_builddir)/config.status $(srcdir)/ibus-setup.in
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-binSCRIPTS: $(bin_SCRIPTS)
+       @$(NORMAL_INSTALL)
+       @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n' \
+           -e 'h;s|.*|.|' \
+           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+             if (++n[d] == $(am__install_max)) { \
+               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+           else { print "f", d "/" $$4, $$1 } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+            test -z "$$files" || { \
+              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+            } \
+       ; done
+
+uninstall-binSCRIPTS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+       files=`for p in $$list; do echo "$$p"; done | \
+              sed -e 's,.*/,,;$(transform)'`; \
+       dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-ibussetupPYTHON: $(ibussetup_PYTHON)
+       @$(NORMAL_INSTALL)
+       @list='$(ibussetup_PYTHON)'; dlist=; list2=; test -n "$(ibussetupdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(ibussetupdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(ibussetupdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
+         if test -f $$b$$p; then \
+           $(am__strip_dir) \
+           dlist="$$dlist $$f"; \
+           list2="$$list2 $$b$$p"; \
+         else :; fi; \
+       done; \
+       for file in $$list2; do echo $$file; done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ibussetupdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(ibussetupdir)" || exit $$?; \
+       done || exit $$?; \
+       if test -n "$$dlist"; then \
+         $(am__py_compile) --destdir "$(DESTDIR)" \
+                           --basedir "$(ibussetupdir)" $$dlist; \
+       else :; fi
+
+uninstall-ibussetupPYTHON:
+       @$(NORMAL_UNINSTALL)
+       @list='$(ibussetup_PYTHON)'; test -n "$(ibussetupdir)" || list=; \
+       py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$py_files" || exit 0; \
+       dir='$(DESTDIR)$(ibussetupdir)'; \
+       pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \
+       pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \
+       py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \
+       echo "$$py_files_pep3147";\
+       pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \
+       pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \
+       st=0; \
+       for files in \
+         "$$py_files" \
+         "$$pyc_files" \
+         "$$pyo_files" \
+         "$$pyc_files_pep3147" \
+         "$$pyo_files_pep3147" \
+       ; do \
+         $(am__uninstall_files_from_dir) || st=$$?; \
+       done; \
+       exit $$st
+install-desktopDATA: $(desktop_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+       done
+
+uninstall-desktopDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-ibussetupDATA: $(ibussetup_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(ibussetup_DATA)'; test -n "$(ibussetupdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(ibussetupdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(ibussetupdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(ibussetupdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(ibussetupdir)" || exit $$?; \
+       done
+
+uninstall-ibussetupDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(ibussetup_DATA)'; test -n "$(ibussetupdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(ibussetupdir)'; $(am__uninstall_files_from_dir)
+install-man_oneDATA: $(man_one_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(man_one_DATA)'; test -n "$(man_onedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(man_onedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(man_onedir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man_onedir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(man_onedir)" || exit $$?; \
+       done
+
+uninstall-man_oneDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(man_one_DATA)'; test -n "$(man_onedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(man_onedir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(ibussetupdir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(ibussetupdir)" "$(DESTDIR)$(man_onedir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-ibussetupDATA \
+       install-ibussetupPYTHON install-man_oneDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binSCRIPTS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binSCRIPTS uninstall-desktopDATA \
+       uninstall-ibussetupDATA uninstall-ibussetupPYTHON \
+       uninstall-man_oneDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-binSCRIPTS install-data \
+       install-data-am install-desktopDATA install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-ibussetupDATA install-ibussetupPYTHON install-info \
+       install-info-am install-man install-man_oneDATA install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+       uninstall-am uninstall-binSCRIPTS uninstall-desktopDATA \
+       uninstall-ibussetupDATA uninstall-ibussetupPYTHON \
+       uninstall-man_oneDATA
+
+@INTLTOOL_DESKTOP_RULE@
+%.1: %.1.in
+       $(AM_V_GEN) sed \
+               -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \
+               mv $@.tmp $@
+%.1.gz: %.1
+       $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@
+
+test:
+       $(ENV_IBUS_TEST) \
+               PYTHONPATH=$(top_srcdir) \
+               IBUS_PREFIX="@prefix@" \
+               IBUS_LOCALEDIR="@localedir@" \
+               $(PYTHON) \
+               $(srcdir)/main.py
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
deleted file mode 120000 (symlink)
index 307d56266142af69d59be8281648d6a518b18f07..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../ui/gtk2/i18n.py
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..5a73eeed85d205b42ff7a3b3956470378138256b
--- /dev/null
@@ -0,0 +1,43 @@
+# vim:set et sts=4 sw=4:
+#
+# ibus - The Input Bus
+#
+# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright(c) 2007-2010 Google, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+import locale
+import gettext
+import os
+
+DOMAINNAME = "ibus10"
+
+_ = lambda a: gettext.dgettext(DOMAINNAME, a)
+N_ = lambda a: a
+
+def init():
+    localedir = os.getenv("IBUS_LOCALEDIR")
+    # Python's locale module doesn't provide all methods on some
+    # operating systems like FreeBSD
+    try:
+        # for non-standard localedir
+        locale.bindtextdomain(DOMAINNAME, localedir)
+        locale.bind_textdomain_codeset(DOMAINNAME, "UTF-8")
+    except AttributeError:
+        pass
+    gettext.bindtextdomain(DOMAINNAME, localedir)
+    gettext.bind_textdomain_codeset(DOMAINNAME, "UTF-8")
diff --git a/src/IBus-1.0.gir b/src/IBus-1.0.gir
new file mode 100644 (file)
index 0000000..7ce3cf0
--- /dev/null
@@ -0,0 +1,26813 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations.  -->
+<repository version="1.2"
+            xmlns="http://www.gtk.org/introspection/core/1.0"
+            xmlns:c="http://www.gtk.org/introspection/c/1.0"
+            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+  <include name="GLib" version="2.0"/>
+  <include name="GObject" version="2.0"/>
+  <include name="Gio" version="2.0"/>
+  <package name="ibus-1.0"/>
+  <namespace name="IBus"
+             version="1.0"
+             shared-library="libibus-1.0.so.5"
+             c:identifier-prefixes="IBus"
+             c:symbol-prefixes="ibus">
+    <constant name="0" value="48" c:type="IBUS_0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="1" value="49" c:type="IBUS_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="2" value="50" c:type="IBUS_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3" value="51" c:type="IBUS_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_AltCursor" value="64784" c:type="IBUS_3270_AltCursor">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Attn" value="64782" c:type="IBUS_3270_Attn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_BackTab" value="64773" c:type="IBUS_3270_BackTab">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_ChangeScreen"
+              value="64793"
+              c:type="IBUS_3270_ChangeScreen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Copy" value="64789" c:type="IBUS_3270_Copy">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_CursorBlink"
+              value="64783"
+              c:type="IBUS_3270_CursorBlink">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_CursorSelect"
+              value="64796"
+              c:type="IBUS_3270_CursorSelect">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_DeleteWord"
+              value="64794"
+              c:type="IBUS_3270_DeleteWord">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Duplicate" value="64769" c:type="IBUS_3270_Duplicate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Enter" value="64798" c:type="IBUS_3270_Enter">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_EraseEOF" value="64774" c:type="IBUS_3270_EraseEOF">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_EraseInput"
+              value="64775"
+              c:type="IBUS_3270_EraseInput">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_ExSelect" value="64795" c:type="IBUS_3270_ExSelect">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_FieldMark" value="64770" c:type="IBUS_3270_FieldMark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Ident" value="64787" c:type="IBUS_3270_Ident">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Jump" value="64786" c:type="IBUS_3270_Jump">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_KeyClick" value="64785" c:type="IBUS_3270_KeyClick">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Left2" value="64772" c:type="IBUS_3270_Left2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_PA1" value="64778" c:type="IBUS_3270_PA1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_PA2" value="64779" c:type="IBUS_3270_PA2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_PA3" value="64780" c:type="IBUS_3270_PA3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Play" value="64790" c:type="IBUS_3270_Play">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_PrintScreen"
+              value="64797"
+              c:type="IBUS_3270_PrintScreen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Quit" value="64777" c:type="IBUS_3270_Quit">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Record" value="64792" c:type="IBUS_3270_Record">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Reset" value="64776" c:type="IBUS_3270_Reset">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Right2" value="64771" c:type="IBUS_3270_Right2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Rule" value="64788" c:type="IBUS_3270_Rule">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Setup" value="64791" c:type="IBUS_3270_Setup">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="3270_Test" value="64781" c:type="IBUS_3270_Test">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="4" value="52" c:type="IBUS_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="5" value="53" c:type="IBUS_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="6" value="54" c:type="IBUS_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="7" value="55" c:type="IBUS_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="8" value="56" c:type="IBUS_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="9" value="57" c:type="IBUS_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="A" value="65" c:type="IBUS_A">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AE" value="198" c:type="IBUS_AE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Aacute" value="193" c:type="IBUS_Aacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abelowdot" value="16785056" c:type="IBUS_Abelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abreve" value="451" c:type="IBUS_Abreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abreveacute" value="16785070" c:type="IBUS_Abreveacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abrevebelowdot"
+              value="16785078"
+              c:type="IBUS_Abrevebelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abrevegrave" value="16785072" c:type="IBUS_Abrevegrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abrevehook" value="16785074" c:type="IBUS_Abrevehook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Abrevetilde" value="16785076" c:type="IBUS_Abrevetilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AccessX_Enable" value="65136" c:type="IBUS_AccessX_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="AccessX_Feedback_Enable"
+              value="65137"
+              c:type="IBUS_AccessX_Feedback_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflex" value="194" c:type="IBUS_Acircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflexacute"
+              value="16785060"
+              c:type="IBUS_Acircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflexbelowdot"
+              value="16785068"
+              c:type="IBUS_Acircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflexgrave"
+              value="16785062"
+              c:type="IBUS_Acircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflexhook"
+              value="16785064"
+              c:type="IBUS_Acircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Acircumflextilde"
+              value="16785066"
+              c:type="IBUS_Acircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Adiaeresis" value="196" c:type="IBUS_Adiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Agrave" value="192" c:type="IBUS_Agrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ahook" value="16785058" c:type="IBUS_Ahook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Alt_L" value="65513" c:type="IBUS_Alt_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Alt_R" value="65514" c:type="IBUS_Alt_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Amacron" value="960" c:type="IBUS_Amacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Aogonek" value="417" c:type="IBUS_Aogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_0" value="16778848" c:type="IBUS_Arabic_0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_1" value="16778849" c:type="IBUS_Arabic_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_2" value="16778850" c:type="IBUS_Arabic_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_3" value="16778851" c:type="IBUS_Arabic_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_4" value="16778852" c:type="IBUS_Arabic_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_5" value="16778853" c:type="IBUS_Arabic_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_6" value="16778854" c:type="IBUS_Arabic_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_7" value="16778855" c:type="IBUS_Arabic_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_8" value="16778856" c:type="IBUS_Arabic_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_9" value="16778857" c:type="IBUS_Arabic_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ain" value="1497" c:type="IBUS_Arabic_ain">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_alef" value="1479" c:type="IBUS_Arabic_alef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_alefmaksura"
+              value="1513"
+              c:type="IBUS_Arabic_alefmaksura">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_beh" value="1480" c:type="IBUS_Arabic_beh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_comma" value="1452" c:type="IBUS_Arabic_comma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_dad" value="1494" c:type="IBUS_Arabic_dad">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_dal" value="1487" c:type="IBUS_Arabic_dal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_damma" value="1519" c:type="IBUS_Arabic_damma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_dammatan"
+              value="1516"
+              c:type="IBUS_Arabic_dammatan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ddal" value="16778888" c:type="IBUS_Arabic_ddal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_farsi_yeh"
+              value="16778956"
+              c:type="IBUS_Arabic_farsi_yeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_fatha" value="1518" c:type="IBUS_Arabic_fatha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_fathatan"
+              value="1515"
+              c:type="IBUS_Arabic_fathatan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_feh" value="1505" c:type="IBUS_Arabic_feh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_fullstop"
+              value="16778964"
+              c:type="IBUS_Arabic_fullstop">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_gaf" value="16778927" c:type="IBUS_Arabic_gaf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ghain" value="1498" c:type="IBUS_Arabic_ghain">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ha" value="1511" c:type="IBUS_Arabic_ha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hah" value="1485" c:type="IBUS_Arabic_hah">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamza" value="1473" c:type="IBUS_Arabic_hamza">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamza_above"
+              value="16778836"
+              c:type="IBUS_Arabic_hamza_above">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamza_below"
+              value="16778837"
+              c:type="IBUS_Arabic_hamza_below">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamzaonalef"
+              value="1475"
+              c:type="IBUS_Arabic_hamzaonalef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamzaonwaw"
+              value="1476"
+              c:type="IBUS_Arabic_hamzaonwaw">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamzaonyeh"
+              value="1478"
+              c:type="IBUS_Arabic_hamzaonyeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_hamzaunderalef"
+              value="1477"
+              c:type="IBUS_Arabic_hamzaunderalef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_heh" value="1511" c:type="IBUS_Arabic_heh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_heh_doachashmee"
+              value="16778942"
+              c:type="IBUS_Arabic_heh_doachashmee">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_heh_goal"
+              value="16778945"
+              c:type="IBUS_Arabic_heh_goal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_jeem" value="1484" c:type="IBUS_Arabic_jeem">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_jeh" value="16778904" c:type="IBUS_Arabic_jeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_kaf" value="1507" c:type="IBUS_Arabic_kaf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_kasra" value="1520" c:type="IBUS_Arabic_kasra">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_kasratan"
+              value="1517"
+              c:type="IBUS_Arabic_kasratan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_keheh" value="16778921" c:type="IBUS_Arabic_keheh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_khah" value="1486" c:type="IBUS_Arabic_khah">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_lam" value="1508" c:type="IBUS_Arabic_lam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_madda_above"
+              value="16778835"
+              c:type="IBUS_Arabic_madda_above">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_maddaonalef"
+              value="1474"
+              c:type="IBUS_Arabic_maddaonalef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_meem" value="1509" c:type="IBUS_Arabic_meem">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_noon" value="1510" c:type="IBUS_Arabic_noon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_noon_ghunna"
+              value="16778938"
+              c:type="IBUS_Arabic_noon_ghunna">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_peh" value="16778878" c:type="IBUS_Arabic_peh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_percent"
+              value="16778858"
+              c:type="IBUS_Arabic_percent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_qaf" value="1506" c:type="IBUS_Arabic_qaf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_question_mark"
+              value="1471"
+              c:type="IBUS_Arabic_question_mark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_ra" value="1489" c:type="IBUS_Arabic_ra">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_rreh" value="16778897" c:type="IBUS_Arabic_rreh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_sad" value="1493" c:type="IBUS_Arabic_sad">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_seen" value="1491" c:type="IBUS_Arabic_seen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_semicolon"
+              value="1467"
+              c:type="IBUS_Arabic_semicolon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_shadda" value="1521" c:type="IBUS_Arabic_shadda">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_sheen" value="1492" c:type="IBUS_Arabic_sheen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_sukun" value="1522" c:type="IBUS_Arabic_sukun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_superscript_alef"
+              value="16778864"
+              c:type="IBUS_Arabic_superscript_alef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_switch" value="65406" c:type="IBUS_Arabic_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tah" value="1495" c:type="IBUS_Arabic_tah">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tatweel" value="1504" c:type="IBUS_Arabic_tatweel">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tcheh" value="16778886" c:type="IBUS_Arabic_tcheh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_teh" value="1482" c:type="IBUS_Arabic_teh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tehmarbuta"
+              value="1481"
+              c:type="IBUS_Arabic_tehmarbuta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_thal" value="1488" c:type="IBUS_Arabic_thal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_theh" value="1483" c:type="IBUS_Arabic_theh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_tteh" value="16778873" c:type="IBUS_Arabic_tteh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_veh" value="16778916" c:type="IBUS_Arabic_veh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_waw" value="1512" c:type="IBUS_Arabic_waw">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_yeh" value="1514" c:type="IBUS_Arabic_yeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_yeh_baree"
+              value="16778962"
+              c:type="IBUS_Arabic_yeh_baree">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_zah" value="1496" c:type="IBUS_Arabic_zah">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Arabic_zain" value="1490" c:type="IBUS_Arabic_zain">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Aring" value="197" c:type="IBUS_Aring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_AT" value="16778552" c:type="IBUS_Armenian_AT">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_AYB" value="16778545" c:type="IBUS_Armenian_AYB">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_BEN" value="16778546" c:type="IBUS_Armenian_BEN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_CHA" value="16778569" c:type="IBUS_Armenian_CHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_DA" value="16778548" c:type="IBUS_Armenian_DA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_DZA" value="16778561" c:type="IBUS_Armenian_DZA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_E" value="16778551" c:type="IBUS_Armenian_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_FE" value="16778582" c:type="IBUS_Armenian_FE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_GHAT"
+              value="16778562"
+              c:type="IBUS_Armenian_GHAT">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_GIM" value="16778547" c:type="IBUS_Armenian_GIM">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_HI" value="16778565" c:type="IBUS_Armenian_HI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_HO" value="16778560" c:type="IBUS_Armenian_HO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_INI" value="16778555" c:type="IBUS_Armenian_INI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_JE" value="16778571" c:type="IBUS_Armenian_JE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_KE" value="16778580" c:type="IBUS_Armenian_KE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_KEN" value="16778559" c:type="IBUS_Armenian_KEN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_KHE" value="16778557" c:type="IBUS_Armenian_KHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_LYUN"
+              value="16778556"
+              c:type="IBUS_Armenian_LYUN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_MEN" value="16778564" c:type="IBUS_Armenian_MEN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_NU" value="16778566" c:type="IBUS_Armenian_NU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_O" value="16778581" c:type="IBUS_Armenian_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_PE" value="16778570" c:type="IBUS_Armenian_PE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_PYUR"
+              value="16778579"
+              c:type="IBUS_Armenian_PYUR">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_RA" value="16778572" c:type="IBUS_Armenian_RA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_RE" value="16778576" c:type="IBUS_Armenian_RE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_SE" value="16778573" c:type="IBUS_Armenian_SE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_SHA" value="16778567" c:type="IBUS_Armenian_SHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TCHE"
+              value="16778563"
+              c:type="IBUS_Armenian_TCHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TO" value="16778553" c:type="IBUS_Armenian_TO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TSA" value="16778558" c:type="IBUS_Armenian_TSA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TSO" value="16778577" c:type="IBUS_Armenian_TSO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_TYUN"
+              value="16778575"
+              c:type="IBUS_Armenian_TYUN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_VEV" value="16778574" c:type="IBUS_Armenian_VEV">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_VO" value="16778568" c:type="IBUS_Armenian_VO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_VYUN"
+              value="16778578"
+              c:type="IBUS_Armenian_VYUN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_YECH"
+              value="16778549"
+              c:type="IBUS_Armenian_YECH">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ZA" value="16778550" c:type="IBUS_Armenian_ZA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ZHE" value="16778554" c:type="IBUS_Armenian_ZHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_accent"
+              value="16778587"
+              c:type="IBUS_Armenian_accent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_amanak"
+              value="16778588"
+              c:type="IBUS_Armenian_amanak">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_apostrophe"
+              value="16778586"
+              c:type="IBUS_Armenian_apostrophe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_at" value="16778600" c:type="IBUS_Armenian_at">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ayb" value="16778593" c:type="IBUS_Armenian_ayb">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ben" value="16778594" c:type="IBUS_Armenian_ben">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_but" value="16778589" c:type="IBUS_Armenian_but">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_cha" value="16778617" c:type="IBUS_Armenian_cha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_da" value="16778596" c:type="IBUS_Armenian_da">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_dza" value="16778609" c:type="IBUS_Armenian_dza">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_e" value="16778599" c:type="IBUS_Armenian_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_exclam"
+              value="16778588"
+              c:type="IBUS_Armenian_exclam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_fe" value="16778630" c:type="IBUS_Armenian_fe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_full_stop"
+              value="16778633"
+              c:type="IBUS_Armenian_full_stop">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ghat"
+              value="16778610"
+              c:type="IBUS_Armenian_ghat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_gim" value="16778595" c:type="IBUS_Armenian_gim">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_hi" value="16778613" c:type="IBUS_Armenian_hi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ho" value="16778608" c:type="IBUS_Armenian_ho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_hyphen"
+              value="16778634"
+              c:type="IBUS_Armenian_hyphen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ini" value="16778603" c:type="IBUS_Armenian_ini">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_je" value="16778619" c:type="IBUS_Armenian_je">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ke" value="16778628" c:type="IBUS_Armenian_ke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ken" value="16778607" c:type="IBUS_Armenian_ken">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_khe" value="16778605" c:type="IBUS_Armenian_khe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ligature_ew"
+              value="16778631"
+              c:type="IBUS_Armenian_ligature_ew">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_lyun"
+              value="16778604"
+              c:type="IBUS_Armenian_lyun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_men" value="16778612" c:type="IBUS_Armenian_men">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_nu" value="16778614" c:type="IBUS_Armenian_nu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_o" value="16778629" c:type="IBUS_Armenian_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_paruyk"
+              value="16778590"
+              c:type="IBUS_Armenian_paruyk">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_pe" value="16778618" c:type="IBUS_Armenian_pe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_pyur"
+              value="16778627"
+              c:type="IBUS_Armenian_pyur">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_question"
+              value="16778590"
+              c:type="IBUS_Armenian_question">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_ra" value="16778620" c:type="IBUS_Armenian_ra">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_re" value="16778624" c:type="IBUS_Armenian_re">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_se" value="16778621" c:type="IBUS_Armenian_se">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_separation_mark"
+              value="16778589"
+              c:type="IBUS_Armenian_separation_mark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_sha" value="16778615" c:type="IBUS_Armenian_sha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_shesht"
+              value="16778587"
+              c:type="IBUS_Armenian_shesht">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_tche"
+              value="16778611"
+              c:type="IBUS_Armenian_tche">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_to" value="16778601" c:type="IBUS_Armenian_to">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_tsa" value="16778606" c:type="IBUS_Armenian_tsa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_tso" value="16778625" c:type="IBUS_Armenian_tso">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_tyun"
+              value="16778623"
+              c:type="IBUS_Armenian_tyun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_verjaket"
+              value="16778633"
+              c:type="IBUS_Armenian_verjaket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_vev" value="16778622" c:type="IBUS_Armenian_vev">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_vo" value="16778616" c:type="IBUS_Armenian_vo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_vyun"
+              value="16778626"
+              c:type="IBUS_Armenian_vyun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_yech"
+              value="16778597"
+              c:type="IBUS_Armenian_yech">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_yentamna"
+              value="16778634"
+              c:type="IBUS_Armenian_yentamna">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_za" value="16778598" c:type="IBUS_Armenian_za">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Armenian_zhe" value="16778602" c:type="IBUS_Armenian_zhe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Atilde" value="195" c:type="IBUS_Atilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="AttrList"
+           c:symbol-prefix="attr_list"
+           c:type="IBusAttrList"
+           parent="Serializable"
+           glib:type-name="IBusAttrList"
+           glib:get-type="ibus_attr_list_get_type"
+           glib:type-struct="AttrListClass">
+      <constructor name="new" c:identifier="ibus_attr_list_new">
+        <doc xml:whitespace="preserve">New an IBusAttrList.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusAttrList.</doc>
+          <type name="AttrList" c:type="IBusAttrList*"/>
+        </return-value>
+      </constructor>
+      <method name="append" c:identifier="ibus_attr_list_append">
+        <doc xml:whitespace="preserve">Append an IBusAttribute to IBusAttrList, and increase reference.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="attr_list" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusAttrList instance.</doc>
+            <type name="AttrList" c:type="IBusAttrList*"/>
+          </instance-parameter>
+          <parameter name="attr" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The IBusAttribute instance to be appended.</doc>
+            <type name="Attribute" c:type="IBusAttribute*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get" c:identifier="ibus_attr_list_get">
+        <doc xml:whitespace="preserve">Returns IBusAttribute at given index. Borrowed reference.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">IBusAttribute at given index, NULL if no such IBusAttribute.</doc>
+          <type name="Attribute" c:type="IBusAttribute*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="attr_list" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusAttrList instance.</doc>
+            <type name="AttrList" c:type="IBusAttrList*"/>
+          </instance-parameter>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Index of the @attr_list.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="attributes">
+        <array name="GLib.Array" c:type="GArray*">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </class>
+    <record name="AttrListClass"
+            c:type="IBusAttrListClass"
+            glib:is-gtype-struct-for="AttrList">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <enumeration name="AttrType"
+                 glib:type-name="IBusAttrType"
+                 glib:get-type="ibus_attr_type_get_type"
+                 c:type="IBusAttrType">
+      <doc xml:whitespace="preserve">Type enumeration of IBusText attribute.</doc>
+      <member name="underline"
+              value="1"
+              c:identifier="IBUS_ATTR_TYPE_UNDERLINE"
+              glib:nick="underline">
+        <doc xml:whitespace="preserve">Decorate with underline.</doc>
+      </member>
+      <member name="foreground"
+              value="2"
+              c:identifier="IBUS_ATTR_TYPE_FOREGROUND"
+              glib:nick="foreground">
+        <doc xml:whitespace="preserve">Foreground color.</doc>
+      </member>
+      <member name="background"
+              value="3"
+              c:identifier="IBUS_ATTR_TYPE_BACKGROUND"
+              glib:nick="background">
+        <doc xml:whitespace="preserve">Background color.</doc>
+      </member>
+    </enumeration>
+    <enumeration name="AttrUnderline"
+                 glib:type-name="IBusAttrUnderline"
+                 glib:get-type="ibus_attr_underline_get_type"
+                 c:type="IBusAttrUnderline">
+      <doc xml:whitespace="preserve">Type of IBusText attribute.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="IBUS_ATTR_UNDERLINE_NONE"
+              glib:nick="none">
+        <doc xml:whitespace="preserve">No underline.</doc>
+      </member>
+      <member name="single"
+              value="1"
+              c:identifier="IBUS_ATTR_UNDERLINE_SINGLE"
+              glib:nick="single">
+        <doc xml:whitespace="preserve">Single underline.</doc>
+      </member>
+      <member name="double"
+              value="2"
+              c:identifier="IBUS_ATTR_UNDERLINE_DOUBLE"
+              glib:nick="double">
+        <doc xml:whitespace="preserve">Double underline.</doc>
+      </member>
+      <member name="low"
+              value="3"
+              c:identifier="IBUS_ATTR_UNDERLINE_LOW"
+              glib:nick="low">
+        <doc xml:whitespace="preserve">Low underline ? %FIXME</doc>
+      </member>
+      <member name="error"
+              value="4"
+              c:identifier="IBUS_ATTR_UNDERLINE_ERROR"
+              glib:nick="error">
+        <doc xml:whitespace="preserve">Error underline</doc>
+      </member>
+      <function name="new" c:identifier="ibus_attr_underline_new">
+        <doc xml:whitespace="preserve">New an underline #IBusAttribute.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated #IBusAttribute.</doc>
+          <type name="Attribute" c:type="IBusAttribute*"/>
+        </return-value>
+        <parameters>
+          <parameter name="underline_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Type of underline.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="start_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Where attribute starts.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="end_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Where attribute ends.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </function>
+    </enumeration>
+    <class name="Attribute"
+           c:symbol-prefix="attribute"
+           c:type="IBusAttribute"
+           parent="Serializable"
+           glib:type-name="IBusAttribute"
+           glib:get-type="ibus_attribute_get_type"
+           glib:type-struct="AttributeClass">
+      <doc xml:whitespace="preserve">An IBusAttribute represents an attribute that associate to IBusText.
+It decorates preedit buffer and auxiliary text with underline, foreground and background colors.</doc>
+      <constructor name="new" c:identifier="ibus_attribute_new">
+        <doc xml:whitespace="preserve">New an IBusAttribute.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusAttribute.</doc>
+          <type name="Attribute" c:type="IBusAttribute*"/>
+        </return-value>
+        <parameters>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Type of the attribute.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Value of the attribute.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="start_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Where attribute starts.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="end_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Where attribute ends.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_attr_type" c:identifier="ibus_attribute_get_attr_type">
+        <doc xml:whitespace="preserve">Returns an enum of #IBusAttrType.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">An enum of #IBusAttrType.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="attr" transfer-ownership="none">
+            <type name="Attribute" c:type="IBusAttribute*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_end_index" c:identifier="ibus_attribute_get_end_index">
+        <doc xml:whitespace="preserve">Returns a end unsigned index</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A end unsigned index</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="attr" transfer-ownership="none">
+            <type name="Attribute" c:type="IBusAttribute*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_start_index"
+              c:identifier="ibus_attribute_get_start_index">
+        <doc xml:whitespace="preserve">Returns a start unsigned index</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A start unsigned index</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="attr" transfer-ownership="none">
+            <type name="Attribute" c:type="IBusAttribute*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_value" c:identifier="ibus_attribute_get_value">
+        <doc xml:whitespace="preserve">Returns an unsigned int value relative with #IBusAttrType.
+If the type is %IBUS_ATTR_TYPE_UNDERLINE, the return value is
+#IBusAttrUnderline. If the type is %IBUS_ATTR_TYPE_FOREGROUND,
+the return value is the color RGB.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">An unsigned int value relative with #IBusAttrType.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="attr" transfer-ownership="none">
+            <type name="Attribute" c:type="IBusAttribute*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="type">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="value">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="start_index">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="end_index">
+        <type name="guint" c:type="guint"/>
+      </field>
+    </class>
+    <record name="AttributeClass"
+            c:type="IBusAttributeClass"
+            glib:is-gtype-struct-for="Attribute">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <constant name="AudibleBell_Enable"
+              value="65146"
+              c:type="IBUS_AudibleBell_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="B" value="66" c:type="IBUS_B">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Babovedot" value="16784898" c:type="IBUS_Babovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="BackSpace" value="65288" c:type="IBUS_BackSpace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Begin" value="65368" c:type="IBUS_Begin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="BounceKeys_Enable"
+              value="65140"
+              c:type="IBUS_BounceKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Break" value="65387" c:type="IBUS_Break">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Bus"
+           c:symbol-prefix="bus"
+           c:type="IBusBus"
+           parent="Object"
+           glib:type-name="IBusBus"
+           glib:get-type="ibus_bus_get_type"
+           glib:type-struct="BusClass">
+      <doc xml:whitespace="preserve">An IBusBus connects with IBus daemon.</doc>
+      <constructor name="new" c:identifier="ibus_bus_new">
+        <doc xml:whitespace="preserve">New an #IBusBus instance.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated #IBusBus instance, and the instance is not floating.</doc>
+          <type name="Bus" c:type="IBusBus*"/>
+        </return-value>
+      </constructor>
+      <constructor name="new_async" c:identifier="ibus_bus_new_async">
+        <doc xml:whitespace="preserve">New an #IBusBus instance. The instance will asynchronously connect to the IBus
+daemon.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated #IBusBus instance, and the instance is not floating.</doc>
+          <type name="Bus" c:type="IBusBus*"/>
+        </return-value>
+      </constructor>
+      <method name="add_match" c:identifier="ibus_bus_add_match">
+        <doc xml:whitespace="preserve">Add a match rule to an #IBusBus synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the rule is added. %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="rule" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Match rule.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_match_async" c:identifier="ibus_bus_add_match_async">
+        <doc xml:whitespace="preserve">Add a match rule to an #IBusBus asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="rule" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Match rule.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_match_async_finish"
+              c:identifier="ibus_bus_add_match_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_add_match_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the rule is added. %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_add_match_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_input_context"
+              c:identifier="ibus_bus_create_input_context">
+        <doc xml:whitespace="preserve">Create an input context for client synchronously.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">An newly allocated #IBusInputContext if the "CreateInputContext" call is suceeded, %NULL otherwise.</doc>
+          <type name="InputContext" c:type="IBusInputContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="client_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of client.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_input_context_async"
+              c:identifier="ibus_bus_create_input_context_async">
+        <doc xml:whitespace="preserve">Create an input context for client asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="client_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of client.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied. It should not be %NULL.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_input_context_async_finish"
+              c:identifier="ibus_bus_create_input_context_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_create_input_context_async().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">An newly allocated #IBusInputContext if the "CreateInputContext" call is suceeded, %NULL otherwise.</doc>
+          <type name="InputContext" c:type="IBusInputContext*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_create_input_context_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="current_input_context"
+              c:identifier="ibus_bus_current_input_context">
+        <doc xml:whitespace="preserve">Get the current focused input context synchronously.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">The named of currently focued #IBusInputContext if the "CurrentInputContext" call suceeded, %NULL otherwise. The return value must be freed with g_free().</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="current_input_context_async"
+              c:identifier="ibus_bus_current_input_context_async">
+        <doc xml:whitespace="preserve">Get the current focused input context asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="current_input_context_async_finish"
+              c:identifier="ibus_bus_current_input_context_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_current_input_context_async().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">The named of currently focued IBusInputContext if the "CurrentInputContext" call suceeded, %NULL otherwise. The return value must be freed with g_free().</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_current_input_context_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="exit" c:identifier="ibus_bus_exit">
+        <doc xml:whitespace="preserve">Exit or restart ibus-daemon synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the "Exit" call is suceeded, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="restart" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether restarting the ibus.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="exit_async" c:identifier="ibus_bus_exit_async">
+        <doc xml:whitespace="preserve">Exit or restart ibus-daemon asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="restart" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether restarting the ibus.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="exit_async_finish"
+              c:identifier="ibus_bus_exit_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_exit_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the "Exit" call is suceeded, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_exit_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_config" c:identifier="ibus_bus_get_config">
+        <doc xml:whitespace="preserve">Get the config instance from #IBusBus.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">An #IBusConfig object which is configurable with @bus.</doc>
+          <type name="Config" c:type="IBusConfig*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_connection" c:identifier="ibus_bus_get_connection">
+        <doc xml:whitespace="preserve">Return #GDBusConnection of an #IBusBus instance.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #GDBusConnection of an #IBusBus instance.</doc>
+          <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_engines_by_names"
+              c:identifier="ibus_bus_get_engines_by_names">
+        <doc xml:whitespace="preserve">Get engines by given names synchronously. If some engine names do not exist, this function
+will simplly ignore them, and return rest of engines.
+TODO(penghuang): add asynchronous version</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A %NULL-terminated array of engines.</doc>
+          <array c:type="IBusEngineDesc**">
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </array>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="names" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A %NULL-terminated array of names.</doc>
+            <array c:type="gchar**">
+              <type name="utf8" c:type="gchar*"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_global_engine"
+              c:identifier="ibus_bus_get_global_engine">
+        <doc xml:whitespace="preserve">Get the description of current global engine synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The description of current global engine, or %NULL if there is no global engine.</doc>
+          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_global_engine_async"
+              c:identifier="ibus_bus_get_global_engine_async">
+        <doc xml:whitespace="preserve">Get the description of current global engine asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_global_engine_async_finish"
+              c:identifier="ibus_bus_get_global_engine_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_get_global_engine_async_finish().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The description of current global engine, or %NULL if there is no global engine.</doc>
+          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_get_global_engine_async_finish().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_ibus_property"
+              c:identifier="ibus_bus_get_ibus_property">
+        <doc xml:whitespace="preserve">Get org.freedesktop.DBus.Properties.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">The value in org.freedesktop.DBus.Properties.Get The returned value must be freed with g_variant_unref().</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">property name in org.freedesktop.DBus.Properties.Get</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_ibus_property_async"
+              c:identifier="ibus_bus_get_ibus_property_async">
+        <doc xml:whitespace="preserve">Get org.freedesktop.DBus.Properties asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">property name in org.freedesktop.DBus.Properties.Get</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_ibus_property_async_finish"
+              c:identifier="ibus_bus_get_ibus_property_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_get_ibus_property_async().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">The value in org.freedesktop.DBus.Properties.Get The returned value must be freed with g_variant_unref().</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_get_property_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_name_owner" c:identifier="ibus_bus_get_name_owner">
+        <doc xml:whitespace="preserve">Return the name owner synchronously.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">Owner of the name. The returned value must be freed with g_free().</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_name_owner_async"
+              c:identifier="ibus_bus_get_name_owner_async">
+        <doc xml:whitespace="preserve">Return the name owner asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_name_owner_async_finish"
+              c:identifier="ibus_bus_get_name_owner_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_get_name_owner_async().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">Owner of the name. The returned value must be freed with g_free().</doc>
+          <type name="utf8" c:type="gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_get_name_owner_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_use_global_engine"
+              c:identifier="ibus_bus_get_use_global_engine"
+              deprecated="Currently global engine is always used."
+              deprecated-version="1.5.3">
+        <doc xml:whitespace="preserve">Check if the bus's "use_global_engine" option is enabled or not synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if "use_global_engine" option is enabled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_use_global_engine_async"
+              c:identifier="ibus_bus_get_use_global_engine_async"
+              deprecated="Currently global engine is always used."
+              deprecated-version="1.5.3">
+        <doc xml:whitespace="preserve">Check if the bus's "use_global_engine" option is enabled or not asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_use_global_engine_async_finish"
+              c:identifier="ibus_bus_get_use_global_engine_async_finish"
+              deprecated="Currently global engine is always used."
+              deprecated-version="1.5.3"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_get_use_global_engine_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if "use_global_engine" option is enabled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_get_use_global_engine_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_use_sys_layout"
+              c:identifier="ibus_bus_get_use_sys_layout"
+              deprecated="Read dconf value /desktop/ibus/general/use_system_keyboard_layout instead."
+              deprecated-version="1.5.3">
+        <doc xml:whitespace="preserve">Check if the bus's "use_sys_layout" option is enabled or not synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if "use_sys_layout" option is enabled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_use_sys_layout_async"
+              c:identifier="ibus_bus_get_use_sys_layout_async"
+              deprecated="Read dconf value /desktop/ibus/general/use_system_keyboard_layout instead."
+              deprecated-version="1.5.3">
+        <doc xml:whitespace="preserve">Check if the bus's "use_sys_layout" option is enabled or not asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_use_sys_layout_async_finish"
+              c:identifier="ibus_bus_get_use_sys_layout_async_finish"
+              deprecated="Read dconf value /desktop/ibus/general/use_system_keyboard_layout instead."
+              deprecated-version="1.5.3"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_get_use_sys_layout_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if "use_sys_layout" option is enabled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_get_use_sys_layout_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="hello" c:identifier="ibus_bus_hello">
+        <doc xml:whitespace="preserve">This function sends a "HELLO" message to DBus daemon,
+which replies the unique name of current IBus process.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The unique name of IBus process in DBus.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_connected" c:identifier="ibus_bus_is_connected">
+        <doc xml:whitespace="preserve">Return %TRUE if @bus is connected to IBus daemon.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if @bus is connected, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_global_engine_enabled"
+              c:identifier="ibus_bus_is_global_engine_enabled"
+              deprecated="Probably this would be used for Chrome OS only. Currently global engine is always used and ibus_bus_get_global_engine() returns NULL until the first global engine is assigned. You can use ibus_set_log_handler() to disable a warning when ibus_bus_get_global_engine() returns NULL."
+              deprecated-version="1.5.3">
+        <doc xml:whitespace="preserve">Check if the current global engine is enabled or not synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the current global engine is enabled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_global_engine_enabled_async"
+              c:identifier="ibus_bus_is_global_engine_enabled_async"
+              deprecated="Probably this would be used for Chrome OS only. Currently global engine is always used and ibus_bus_get_global_engine() returns NULL until the first global engine is assigned. You can use ibus_set_log_handler() to disable a warning when ibus_bus_get_global_engine() returns NULL."
+              deprecated-version="1.5.3">
+        <doc xml:whitespace="preserve">Check if the current global engine is enabled or not asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="is_global_engine_enabled_async_finish"
+              c:identifier="ibus_bus_is_global_engine_enabled_async_finish"
+              deprecated="Probably this would be used for Chrome OS only. Currently global engine is always used and ibus_bus_get_global_engine() returns NULL until the first global engine is assigned. You can use ibus_set_log_handler() to disable a warning when ibus_bus_get_global_engine() returns NULL."
+              deprecated-version="1.5.3"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_is_global_engine_enabled_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the current global engine is enabled.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_is_global_engine_enabled_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="list_active_engines"
+              c:identifier="ibus_bus_list_active_engines"
+              deprecated="Read dconf value /desktop/ibus/general/preload-engines instead."
+              deprecated-version="1.5.3">
+        <doc xml:whitespace="preserve">List active engines synchronously.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">A List of active engines.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="EngineDesc"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="list_active_engines_async"
+              c:identifier="ibus_bus_list_active_engines_async"
+              deprecated="Read dconf value /desktop/ibus/general/preload-engines instead."
+              deprecated-version="1.5.3">
+        <doc xml:whitespace="preserve">List active engines asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="list_active_engines_async_finish"
+              c:identifier="ibus_bus_list_active_engines_async_finish"
+              deprecated="Read dconf value /desktop/ibus/general/preload-engines instead."
+              deprecated-version="1.5.3"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_list_active_engines_async().</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">A List of active engines.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="EngineDesc"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_list_active_engines_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="list_engines" c:identifier="ibus_bus_list_engines">
+        <doc xml:whitespace="preserve">List engines synchronously.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">A List of engines.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="EngineDesc"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="list_engines_async"
+              c:identifier="ibus_bus_list_engines_async">
+        <doc xml:whitespace="preserve">List engines asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="list_engines_async_finish"
+              c:identifier="ibus_bus_list_engines_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_list_engines_async().</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">A List of engines.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="EngineDesc"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_list_engines_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="list_names" c:identifier="ibus_bus_list_names">
+        <doc xml:whitespace="preserve">Return lists that attached to @bus.
+&lt;note&gt;&lt;para&gt;[FixMe] Not implemented yet, only return NULL.&lt;/para&gt;&lt;/note&gt;
+&lt;note&gt;&lt;para&gt;[FixMe] Add async version.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">Lists that attached to @bus.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="utf8"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="list_queued_owners"
+              c:identifier="ibus_bus_list_queued_owners">
+        <doc xml:whitespace="preserve">Lists the unique bus names of connections currently queued for a bus name.
+
+FIXME add an asynchronous version.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">The unique bus names of connections currently queued for @name.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="utf8"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name to be queried.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="name_has_owner" c:identifier="ibus_bus_name_has_owner">
+        <doc xml:whitespace="preserve">Checks whether the name has owner synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the name has owner, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name to be checked.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="name_has_owner_async"
+              c:identifier="ibus_bus_name_has_owner_async">
+        <doc xml:whitespace="preserve">Checks whether the name has owner asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name to be checked.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="name_has_owner_async_finish"
+              c:identifier="ibus_bus_name_has_owner_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_name_has_owner_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the name has owner, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_name_has_owner_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="preload_engines" c:identifier="ibus_bus_preload_engines">
+        <doc xml:whitespace="preserve">Start bus components by engine names synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if components start. %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="names" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A %NULL-terminated array of engine names.</doc>
+            <array c:type="gchar**">
+              <type name="utf8" c:type="gchar*"/>
+            </array>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="preload_engines_async"
+              c:identifier="ibus_bus_preload_engines_async">
+        <doc xml:whitespace="preserve">Start bus components by engine names asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="names" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A %NULL-terminated array of engine names.</doc>
+            <array c:type="gchar**">
+              <type name="utf8" c:type="gchar*"/>
+            </array>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="preload_engines_async_finish"
+              c:identifier="ibus_bus_preload_engines_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_preload_engines_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if component starts. %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_preload_engines_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="register_component"
+              c:identifier="ibus_bus_register_component">
+        <doc xml:whitespace="preserve">Register a componet to an #IBusBus synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the "RegisterComponent" call is suceeded, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A input engine component.</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="register_component_async"
+              c:identifier="ibus_bus_register_component_async">
+        <doc xml:whitespace="preserve">Register a componet to an #IBusBus asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A input engine component.</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="register_component_async_finish"
+              c:identifier="ibus_bus_register_component_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_register_component_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the "RegisterComponent" call is suceeded, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_register_component_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="release_name" c:identifier="ibus_bus_release_name">
+        <doc xml:whitespace="preserve">Release a name to IBus daemon synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">0 if failed; positive number otherwise.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name to be released.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="release_name_async"
+              c:identifier="ibus_bus_release_name_async">
+        <doc xml:whitespace="preserve">Release a name to IBus daemon asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name to be released.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="release_name_async_finish"
+              c:identifier="ibus_bus_release_name_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_release_name_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">0 if failed; positive number otherwise.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_release_name_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_match" c:identifier="ibus_bus_remove_match">
+        <doc xml:whitespace="preserve">Remove a match rule to an #IBusBus synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the rule is removed. %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="rule" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Match rule.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_match_async"
+              c:identifier="ibus_bus_remove_match_async">
+        <doc xml:whitespace="preserve">Remove a match rule to an IBusBus asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="rule" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Match rule.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_match_async_finish"
+              c:identifier="ibus_bus_remove_match_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_remove_match_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the rule is removed. %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_remove_match_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="request_name" c:identifier="ibus_bus_request_name">
+        <doc xml:whitespace="preserve">Request a name from IBus daemon synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">0 if failed; IBusBusRequestNameReply otherwise.</doc>
+          <type name="guint32" c:type="guint32"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the IBusBus instance to be processed.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name to be requested.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">IBusBusNameFlag.</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="request_name_async"
+              c:identifier="ibus_bus_request_name_async">
+        <doc xml:whitespace="preserve">Request a name from IBus daemon asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name to be requested.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="flags" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Flags (FixMe).</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="5">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="request_name_async_finish"
+              c:identifier="ibus_bus_request_name_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_request_name_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">0 if failed; positive number otherwise.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_request_name_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_global_engine"
+              c:identifier="ibus_bus_set_global_engine">
+        <doc xml:whitespace="preserve">Set current global engine synchronously.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the global engine was set successfully.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="global_engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A new engine name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_global_engine_async"
+              c:identifier="ibus_bus_set_global_engine_async">
+        <doc xml:whitespace="preserve">Set current global engine asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="global_engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A new engine name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_global_engine_async_finish"
+              c:identifier="ibus_bus_set_global_engine_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_set_global_engine_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if no IPC errros. %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_set_global_engine_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_ibus_property"
+              c:identifier="ibus_bus_set_ibus_property">
+        <doc xml:whitespace="preserve">Set org.freedesktop.DBus.Properties.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">property name in org.freedesktop.DBus.Properties.Set</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value in org.freedesktop.DBus.Properties.Set</doc>
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_ibus_property_async"
+              c:identifier="ibus_bus_set_ibus_property_async">
+        <doc xml:whitespace="preserve">Set org.freedesktop.DBus.Properties asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">property name in org.freedesktop.DBus.Properties.Set</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">value in org.freedesktop.DBus.Properties.Set</doc>
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="5">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_ibus_property_async_finish"
+              c:identifier="ibus_bus_set_ibus_property_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_bus_set_ibus_property_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if property is set with async. %FALSE failed.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_bus_set_property_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_watch_dbus_signal"
+              c:identifier="ibus_bus_set_watch_dbus_signal">
+        <doc xml:whitespace="preserve">Start or stop watching the NameOwnerChanged DBus signal.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="watch" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if you want ibusbus to emit "name-owner-changed" signal when ibus-daemon emits the NameOwnerChanged DBus signal.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_watch_ibus_signal"
+              c:identifier="ibus_bus_set_watch_ibus_signal">
+        <doc xml:whitespace="preserve">Start or stop watching the GlobalEngineChanged IBus signal.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="bus" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusBus.</doc>
+            <type name="Bus" c:type="IBusBus*"/>
+          </instance-parameter>
+          <parameter name="watch" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if you want ibusbus to emit "global-engine-changed" signal when ibus-daemon emits the GlobalEngineChanged IBus signal.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="connect-async"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">Whether the #IBusBus object should connect asynchronously to the bus.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="parent">
+        <type name="Object" c:type="IBusObject"/>
+      </field>
+      <field name="priv">
+        <type name="BusPrivate" c:type="IBusBusPrivate*"/>
+      </field>
+      <glib:signal name="connected" when="last">
+        <doc xml:whitespace="preserve">Emitted when #IBusBus is connected to ibus-daemon.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="disconnected" when="last">
+        <doc xml:whitespace="preserve">Emitted when #IBusBus is disconnected from ibus-daemon.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="global-engine-changed" when="last">
+        <doc xml:whitespace="preserve">Emitted when global engine is changed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The name of the new global engine.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="name-owner-changed" when="last">
+        <doc xml:whitespace="preserve">Emitted when D-Bus name owner is changed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The name which ower is changed.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="old_owner" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The unique bus name of the old owner.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="new_owner" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The unique bus name of the new owner.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="BusClass"
+            c:type="IBusBusClass"
+            glib:is-gtype-struct-for="Bus">
+      <field name="parent">
+        <type name="ObjectClass" c:type="IBusObjectClass"/>
+      </field>
+    </record>
+    <bitfield name="BusNameFlag"
+              glib:type-name="IBusBusNameFlag"
+              glib:get-type="ibus_bus_name_flag_get_type"
+              c:type="IBusBusNameFlag">
+      <member name="allow_replacement"
+              value="1"
+              c:identifier="IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT"
+              glib:nick="allow-replacement">
+        <doc xml:whitespace="preserve">same as DBUS_NAME_FLAG_ALLOW_REPLACEMENT</doc>
+      </member>
+      <member name="replace_existing"
+              value="2"
+              c:identifier="IBUS_BUS_NAME_FLAG_REPLACE_EXISTING"
+              glib:nick="replace-existing">
+        <doc xml:whitespace="preserve">same as DBUS_NAME_FLAG_REPLACE_EXISTING</doc>
+      </member>
+      <member name="do_not_queue"
+              value="4"
+              c:identifier="IBUS_BUS_NAME_FLAG_DO_NOT_QUEUE"
+              glib:nick="do-not-queue">
+        <doc xml:whitespace="preserve">same as DBUS_NAME_FLAG_DO_NOT_QUEUE</doc>
+      </member>
+    </bitfield>
+    <record name="BusPrivate" c:type="IBusBusPrivate" disguised="1">
+    </record>
+    <enumeration name="BusRequestNameReply"
+                 glib:type-name="IBusBusRequestNameReply"
+                 glib:get-type="ibus_bus_request_name_reply_get_type"
+                 c:type="IBusBusRequestNameReply">
+      <member name="primary_owner"
+              value="1"
+              c:identifier="IBUS_BUS_REQUEST_NAME_REPLY_PRIMARY_OWNER"
+              glib:nick="primary-owner">
+        <doc xml:whitespace="preserve">same as DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER</doc>
+      </member>
+      <member name="in_queue"
+              value="2"
+              c:identifier="IBUS_BUS_REQUEST_NAME_REPLY_IN_QUEUE"
+              glib:nick="in-queue">
+        <doc xml:whitespace="preserve">same as DBUS_REQUEST_NAME_REPLY_IN_QUEUE</doc>
+      </member>
+      <member name="exists"
+              value="3"
+              c:identifier="IBUS_BUS_REQUEST_NAME_REPLY_EXISTS"
+              glib:nick="exists">
+        <doc xml:whitespace="preserve">same as DBUS_REQUEST_NAME_REPLY_EXISTS</doc>
+      </member>
+      <member name="already_owner"
+              value="4"
+              c:identifier="IBUS_BUS_REQUEST_NAME_REPLY_ALREADY_OWNER"
+              glib:nick="already-owner">
+        <doc xml:whitespace="preserve">same as DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER</doc>
+      </member>
+    </enumeration>
+    <enumeration name="BusStartServiceByNameReply"
+                 glib:type-name="IBusBusStartServiceByNameReply"
+                 glib:get-type="ibus_bus_start_service_by_name_reply_get_type"
+                 c:type="IBusBusStartServiceByNameReply">
+      <member name="success"
+              value="1"
+              c:identifier="IBUS_BUS_START_REPLY_SUCCESS"
+              glib:nick="success">
+        <doc xml:whitespace="preserve">same as DBUS_START_REPLY_SUCCESS</doc>
+      </member>
+      <member name="already_running"
+              value="2"
+              c:identifier="IBUS_BUS_START_REPLY_ALREADY_RUNNING"
+              glib:nick="already-running">
+        <doc xml:whitespace="preserve">same as DBUS_START_REPLY_ALREADY_RUNNING</doc>
+      </member>
+    </enumeration>
+    <constant name="Byelorussian_SHORTU"
+              value="1726"
+              c:type="IBUS_Byelorussian_SHORTU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Byelorussian_shortu"
+              value="1710"
+              c:type="IBUS_Byelorussian_shortu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="C" value="67" c:type="IBUS_C">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cabovedot" value="709" c:type="IBUS_Cabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cacute" value="454" c:type="IBUS_Cacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cancel" value="65385" c:type="IBUS_Cancel">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="Capabilite"
+              glib:type-name="IBusCapabilite"
+              glib:get-type="ibus_capabilite_get_type"
+              c:type="IBusCapabilite">
+      <doc xml:whitespace="preserve">Capability flags of UI.</doc>
+      <member name="preedit_text"
+              value="1"
+              c:identifier="IBUS_CAP_PREEDIT_TEXT"
+              glib:nick="preedit-text">
+        <doc xml:whitespace="preserve">UI is capable to show pre-edit text.</doc>
+      </member>
+      <member name="auxiliary_text"
+              value="2"
+              c:identifier="IBUS_CAP_AUXILIARY_TEXT"
+              glib:nick="auxiliary-text">
+        <doc xml:whitespace="preserve">UI is capable to show auxiliary text.</doc>
+      </member>
+      <member name="lookup_table"
+              value="4"
+              c:identifier="IBUS_CAP_LOOKUP_TABLE"
+              glib:nick="lookup-table">
+        <doc xml:whitespace="preserve">UI is capable to show the lookup table.</doc>
+      </member>
+      <member name="focus"
+              value="8"
+              c:identifier="IBUS_CAP_FOCUS"
+              glib:nick="focus">
+        <doc xml:whitespace="preserve">UI is capable to get focus.</doc>
+      </member>
+      <member name="property"
+              value="16"
+              c:identifier="IBUS_CAP_PROPERTY"
+              glib:nick="property">
+        <doc xml:whitespace="preserve">UI is capable to have property.</doc>
+      </member>
+      <member name="surrounding_text"
+              value="32"
+              c:identifier="IBUS_CAP_SURROUNDING_TEXT"
+              glib:nick="surrounding-text">
+        <doc xml:whitespace="preserve">Client can provide surround text, or IME can handle surround text.</doc>
+      </member>
+    </bitfield>
+    <constant name="Caps_Lock" value="65509" c:type="IBUS_Caps_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ccaron" value="456" c:type="IBUS_Ccaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ccedilla" value="199" c:type="IBUS_Ccedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ccircumflex" value="710" c:type="IBUS_Ccircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Clear" value="65291" c:type="IBUS_Clear">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Codeinput" value="65335" c:type="IBUS_Codeinput">
+      <doc xml:whitespace="preserve">International and multi-key character composition.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ColonSign" value="16785569" c:type="IBUS_ColonSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Component"
+           c:symbol-prefix="component"
+           c:type="IBusComponent"
+           parent="Serializable"
+           glib:type-name="IBusComponent"
+           glib:get-type="ibus_component_get_type"
+           glib:type-struct="ComponentClass">
+      <doc xml:whitespace="preserve">An IBusComponent is an executable program.
+It provides services such as user interface, configuration,
+and input method engine (IME).
+
+It is recommended that IME developers provide
+a component XML file and
+load the XML file by ibus_component_new_from_file().
+
+The format of a component XML file is described  at
+&lt;ulink url="http://code.google.com/p/ibus/wiki/DevXML"&gt;http://code.google.com/p/ibus/wiki/DevXML&lt;/ulink&gt;</doc>
+      <constructor name="new" c:identifier="ibus_component_new">
+        <doc xml:whitespace="preserve">New an IBusComponent.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusComponent.</doc>
+          <type name="Component" c:type="IBusComponent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the component.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Detailed description of component.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="version" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Component version.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="license" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Distribution license of this component.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="author" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Author(s) of the component.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="homepage" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Homepage of the component.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="command_line" transfer-ownership="none">
+            <doc xml:whitespace="preserve">path to component executable.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="textdomain" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Domain name for dgettext()</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_file"
+                   c:identifier="ibus_component_new_from_file">
+        <doc xml:whitespace="preserve">New an IBusComponent from an XML file.
+Note that a component file usually contains engine descriptions,
+if it does, ibus_engine_desc_new_from_xml_node() will be called
+to load the engine descriptions.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusComponent.</doc>
+          <type name="Component" c:type="IBusComponent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An XML file that contains component information.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_xml_node"
+                   c:identifier="ibus_component_new_from_xml_node"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">New an IBusComponent from an XML tree.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusComponent.</doc>
+          <type name="Component" c:type="IBusComponent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Root node of component XML tree.</doc>
+            <type c:type="XMLNode*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_varargs"
+                   c:identifier="ibus_component_new_varargs"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">New an IBusComponent.
+ibus_component_new_varargs() supports the va_list format.
+name property is required. e.g.
+IBusComponent *component = ibus_component_new_varargs ("name", "ibus-foo",
+                                                       "command_line", "/usr/libexec/ibus-engine-foo --ibus",
+                                                    NULL)</doc>
+        <return-value transfer-ownership="none">
+          <type name="Component" c:type="IBusComponent*"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the first property.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg1" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add_engine" c:identifier="ibus_component_add_engine">
+        <doc xml:whitespace="preserve">Add an engine to IBusComponent according to the description in @engine.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+          <parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A description of an engine.</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_observed_path"
+              c:identifier="ibus_component_add_observed_path">
+        <doc xml:whitespace="preserve">Add an observed path to IBusComponent.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Observed path to be added.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="access_fs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE for filling the file status; FALSE otherwise.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="check_modification"
+              c:identifier="ibus_component_check_modification">
+        <doc xml:whitespace="preserve">Check whether the observed paths of component is modified.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if at least one of the observed paths is modified; FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent.</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_author" c:identifier="ibus_component_get_author">
+        <doc xml:whitespace="preserve">Return the author property in IBusComponent. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">author property in IBusComponent</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_description"
+              c:identifier="ibus_component_get_description">
+        <doc xml:whitespace="preserve">Return the description property in IBusComponent. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">description property in IBusComponent</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_engines" c:identifier="ibus_component_get_engines">
+        <doc xml:whitespace="preserve">Get the engines of this component.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">A newly allocated GList that contains engines.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="EngineDesc"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent.</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_exec" c:identifier="ibus_component_get_exec">
+        <doc xml:whitespace="preserve">Return the exec property in IBusComponent. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">exec property in IBusComponent</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_homepage" c:identifier="ibus_component_get_homepage">
+        <doc xml:whitespace="preserve">Return the homepage property in IBusComponent. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">homepage property in IBusComponent</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_license" c:identifier="ibus_component_get_license">
+        <doc xml:whitespace="preserve">Return the license property in IBusComponent. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">license property in IBusComponent</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="ibus_component_get_name">
+        <doc xml:whitespace="preserve">Return the name property in IBusComponent. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">name property in IBusComponent</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_observed_paths"
+              c:identifier="ibus_component_get_observed_paths">
+        <doc xml:whitespace="preserve">Get the observed paths of this component.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">A newly allocated GList that contains observed paths.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="ObservedPath"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent.</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_textdomain"
+              c:identifier="ibus_component_get_textdomain">
+        <doc xml:whitespace="preserve">Return the textdomain property in IBusComponent. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">textdomain property in IBusComponent</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_version" c:identifier="ibus_component_get_version">
+        <doc xml:whitespace="preserve">Return the version property in IBusComponent. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">version property in IBusComponent</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="output" c:identifier="ibus_component_output">
+        <doc xml:whitespace="preserve">Output IBusComponent as an XML-formatted string.
+The output string can be then shown on the screen or written to file.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent.</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+          <parameter name="output" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GString that holds the result.</doc>
+            <type name="GLib.String" c:type="GString*"/>
+          </parameter>
+          <parameter name="indent" transfer-ownership="none">
+            <doc xml:whitespace="preserve">level of indent.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="output_engines"
+              c:identifier="ibus_component_output_engines">
+        <doc xml:whitespace="preserve">Output engine description  as an XML-formatted string.
+The output string can be then shown on the screen or written to file.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="component" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusComponent.</doc>
+            <type name="Component" c:type="IBusComponent*"/>
+          </instance-parameter>
+          <parameter name="output" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GString that holds the result.</doc>
+            <type name="GLib.String" c:type="GString*"/>
+          </parameter>
+          <parameter name="indent" transfer-ownership="none">
+            <doc xml:whitespace="preserve">level of indent.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="author"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The author of component</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="command-line"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The exec path of component</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="description"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The description of component</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="homepage"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The homepage of component</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="license"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The license of component</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="name"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The name of component</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="textdomain"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The textdomain of component</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="version"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The version of component</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="parent" readable="0" private="1">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ComponentPrivate" c:type="IBusComponentPrivate*"/>
+      </field>
+      <field name="pdummy">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </class>
+    <record name="ComponentClass"
+            c:type="IBusComponentClass"
+            glib:is-gtype-struct-for="Component">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <record name="ComponentPrivate"
+            c:type="IBusComponentPrivate"
+            disguised="1">
+    </record>
+    <class name="Config"
+           c:symbol-prefix="config"
+           c:type="IBusConfig"
+           parent="Proxy"
+           glib:type-name="IBusConfig"
+           glib:get-type="ibus_config_get_type"
+           glib:type-struct="ConfigClass">
+      <doc xml:whitespace="preserve">An IBusConfig provides engine configuration methods
+such as get and set the configure settings to configuration file.
+
+Currently, IBusConfig supports gconf.</doc>
+      <implements name="Gio.AsyncInitable"/>
+      <implements name="Gio.DBusInterface"/>
+      <implements name="Gio.Initable"/>
+      <constructor name="new" c:identifier="ibus_config_new" throws="1">
+        <doc xml:whitespace="preserve">New an #IBusConfig from existing #GDBusConnection.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">An newly allocated #IBusConfig corresponding to @connection.</doc>
+          <type name="Config" c:type="IBusConfig*"/>
+        </return-value>
+        <parameters>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_async_finish"
+                   c:identifier="ibus_config_new_async_finish"
+                   throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_config_new_async().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A newly allocated #IBusConfig.</doc>
+          <type name="Config" c:type="IBusConfig*"/>
+        </return-value>
+        <parameters>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback pass to ibus_config_new_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="new_async" c:identifier="ibus_config_new_async">
+        <doc xml:whitespace="preserve">New an #IBusConfig asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied. The callback should not be %NULL.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="get_value" c:identifier="ibus_config_get_value">
+        <doc xml:whitespace="preserve">Get the value of a configuration option synchronously.
+
+GConf stores configure options in a tree-like structure,
+and the IBus related setting is at /desktop/ibus,
+thus, @section here is a path from there,
+while @name is the key of that configuration option.
+
+ibus-chewing, for example, stores its setting in /desktop/ibus/engine/Chewing,
+so the section name for it is "engine/Chewing".
+See also: ibus_config_set_value().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A #GVariant or %NULL. Free with g_variant_unref().</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusConfig</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the configure option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_async"
+              c:identifier="ibus_config_get_value_async">
+        <doc xml:whitespace="preserve">Get the value of a configuration option asynchronously.
+
+See also: ibus_config_get_value().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusConfig</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the configure option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_ms" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="5">
+            <doc xml:whitespace="preserve">Callback function to invoke when the return value is ready.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_value_async_finish"
+              c:identifier="ibus_config_get_value_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finish get value of a configuration option.
+
+See also: ibus_config_get_value_async().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A #GVariant or %NULL if error is set. Free with g_variant_unref().</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #IBusConfig.</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="result" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult.</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_values" c:identifier="ibus_config_get_values">
+        <doc xml:whitespace="preserve">Get all values in a section synchronously.
+
+See also: ibus_config_set_value().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A #GVariant or %NULL. Free with g_variant_unref().</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusConfig</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_values_async"
+              c:identifier="ibus_config_get_values_async">
+        <doc xml:whitespace="preserve">Get all values in a section asynchronously.
+
+See also: ibus_config_get_values().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusConfig</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="timeout_ms" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">Callback function to invoke when the return value is ready.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_values_async_finish"
+              c:identifier="ibus_config_get_values_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finish get values in a section.
+
+See also: ibus_config_get_values_async().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A #GVariant or %NULL if error is set. Free with g_variant_unref().</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #IBusConfig.</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="result" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult.</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value" c:identifier="ibus_config_set_value">
+        <doc xml:whitespace="preserve">Set the value of a configuration option synchronously.
+See also: ibus_config_get_value().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if succeed; %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusConfig</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the configure option its self.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GVariant that holds the value. If the value is floating, the function takes ownership of it.</doc>
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value_async"
+              c:identifier="ibus_config_set_value_async">
+        <doc xml:whitespace="preserve">Set the value of a configuration option asynchronously.
+
+See also: ibus_config_set_value().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusConfig</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the configure option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GVariant that holds the value. If the value is floating, the function takes ownership of it.</doc>
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+          <parameter name="timeout_ms" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="6">
+            <doc xml:whitespace="preserve">Callback function to invoke when the return value is ready.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_value_async_finish"
+              c:identifier="ibus_config_set_value_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finish set value of a configuration option.
+
+See also: ibus_config_set_value_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE or %FALSE if error is set.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #IBusConfig.</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="result" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult.</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unset" c:identifier="ibus_config_unset">
+        <doc xml:whitespace="preserve">Remove an entry of a configuration option.
+See also: ibus_config_get_value().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if succeed; %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusConfig</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the configure option its self.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unwatch" c:identifier="ibus_config_unwatch">
+        <doc xml:whitespace="preserve">Unsubscribe from the configuration option change notification.
+
+See also: ibus_config_watch.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if succeed; %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusConfig</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">Name of the configure option its self.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="watch" c:identifier="ibus_config_watch">
+        <doc xml:whitespace="preserve">Subscribe to the configuration option change notification.
+
+Until this function is called, every change will be notified to the
+client through #IBusConfig::value-changed signal.  Clients should
+call ibus_config_watch() with the sections they are interested in,
+to reduce the number of D-Bus messages.
+
+See also: ibus_config_unwatch().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if succeed; %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusConfig</doc>
+            <type name="Config" c:type="IBusConfig*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">Name of the configure option its self.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent" readable="0" private="1">
+        <type name="Proxy" c:type="IBusProxy"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ConfigPrivate" c:type="IBusConfigPrivate*"/>
+      </field>
+      <glib:signal name="value-changed" when="last">
+        <doc xml:whitespace="preserve">Emitted when configuration value is changed.
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="section" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Section name.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the property.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Value.</doc>
+            <type name="GLib.Variant"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="ConfigClass"
+            c:type="IBusConfigClass"
+            glib:is-gtype-struct-for="Config">
+      <field name="parent" readable="0" private="1">
+        <type name="ProxyClass" c:type="IBusProxyClass"/>
+      </field>
+    </record>
+    <record name="ConfigPrivate" c:type="IBusConfigPrivate" disguised="1">
+    </record>
+    <class name="ConfigService"
+           c:symbol-prefix="config_service"
+           c:type="IBusConfigService"
+           parent="Service"
+           glib:type-name="IBusConfigService"
+           glib:get-type="ibus_config_service_get_type"
+           glib:type-struct="ConfigServiceClass">
+      <doc xml:whitespace="preserve">An IBusConfigService is a base class for other configuration services such as GConf.
+Currently, directly known sub class is IBusConfigGConf.
+
+IBusConfigServiceClass has following member functions:
+&lt;itemizedlist&gt;
+    &lt;listitem&gt;
+        &lt;para&gt;gboolean set_value(IBusConfigService *config, const gchar *section, const gchar *name,
+            const GValue *value, IBusError **error)
+        &lt;/para&gt;
+        &lt;variablelist&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;config:&lt;/term&gt;
+                &lt;listitem&gt;A configure service&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;section:&lt;/term&gt;
+                &lt;listitem&gt;Section name of the configuration option.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;name:&lt;/term&gt;
+                &lt;listitem&gt;Name of the configuration option.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;value:&lt;/term&gt;
+                &lt;listitem&gt;GValue that holds the value.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;error:&lt;/term&gt;
+                &lt;listitem&gt;Error outputs here.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;Returns:&lt;/term&gt;
+                &lt;listitem&gt;TRUE if succeed; FALSE otherwise.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+        &lt;/variablelist&gt;
+        &lt;para&gt;Set a value to a configuration option.
+        &lt;/para&gt;
+    &lt;/listitem&gt;
+    &lt;listitem&gt;
+        &lt;para&gt;gboolean get_value(IBusConfigService *config, const gchar *section, const gchar *name,
+            GValue *value, IBusError **error)
+        &lt;/para&gt;
+        &lt;variablelist&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;config:&lt;/term&gt;
+                &lt;listitem&gt;A configure service&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;section:&lt;/term&gt;
+                &lt;listitem&gt;Section name of the configuration option.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;name:&lt;/term&gt;
+                &lt;listitem&gt;Name of the configuration option.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;value:&lt;/term&gt;
+                &lt;listitem&gt;GValue that holds the value.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;error:&lt;/term&gt;
+                &lt;listitem&gt;Error outputs here.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;Returns:&lt;/term&gt;
+                &lt;listitem&gt;TRUE if succeed; FALSE otherwise.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+        &lt;/variablelist&gt;
+       &lt;para&gt;Get value of a configuration option.
+       &lt;/para&gt;
+    &lt;/listitem&gt;
+    &lt;listitem&gt;
+        &lt;para&gt;gboolean unset(IBusConfigService *config, const gchar *section, const gchar *name,
+            IBusError **error)
+        &lt;/para&gt;
+        &lt;variablelist&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;config:&lt;/term&gt;
+                &lt;listitem&gt;A configure service&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;section:&lt;/term&gt;
+                &lt;listitem&gt;Section name of the configuration option.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;name:&lt;/term&gt;
+                &lt;listitem&gt;Name of the configuration option.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;error:&lt;/term&gt;
+                &lt;listitem&gt;Error outputs here.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+            &lt;varlistentry&gt;
+                &lt;term&gt;Returns:&lt;/term&gt;
+                &lt;listitem&gt;TRUE if succeed; FALSE otherwise.&lt;/listitem&gt;
+            &lt;/varlistentry&gt;
+        &lt;/variablelist&gt;
+        &lt;para&gt;Remove an entry to a configuration option.
+        &lt;/para&gt;
+    &lt;/listitem&gt;
+&lt;/itemizedlist&gt;</doc>
+      <constructor name="new" c:identifier="ibus_config_service_new">
+        <doc xml:whitespace="preserve">New an IBusConfigService from an GDBusConnection.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusConfigServices.</doc>
+          <type name="ConfigService" c:type="IBusConfigService*"/>
+        </return-value>
+        <parameters>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="get_value" throws="1">
+        <return-value transfer-ownership="full">
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <type name="ConfigService" c:type="IBusConfigService*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="get_values" throws="1">
+        <return-value transfer-ownership="full">
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <type name="ConfigService" c:type="IBusConfigService*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_value" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <type name="ConfigService" c:type="IBusConfigService*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="unset_value" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <type name="ConfigService" c:type="IBusConfigService*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="value_changed"
+              c:identifier="ibus_config_service_value_changed">
+        <doc xml:whitespace="preserve">Change a value of a configuration option
+by sending a "ValueChanged" message to IBus service.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="config" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusConfigService.</doc>
+            <type name="ConfigService" c:type="IBusConfigService*"/>
+          </instance-parameter>
+          <parameter name="section" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Section name of the configuration option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the configure option.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GVariant that holds the value.</doc>
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent" readable="0" private="1">
+        <type name="Service" c:type="IBusService"/>
+      </field>
+    </class>
+    <record name="ConfigServiceClass"
+            c:type="IBusConfigServiceClass"
+            glib:is-gtype-struct-for="ConfigService">
+      <field name="parent" readable="0" private="1">
+        <type name="ServiceClass" c:type="IBusServiceClass"/>
+      </field>
+      <field name="set_value">
+        <callback name="set_value" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="config" transfer-ownership="none">
+              <type name="ConfigService" c:type="IBusConfigService*"/>
+            </parameter>
+            <parameter name="section" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="GLib.Variant" c:type="GVariant*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_value">
+        <callback name="get_value" throws="1">
+          <return-value transfer-ownership="full">
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </return-value>
+          <parameters>
+            <parameter name="config" transfer-ownership="none">
+              <type name="ConfigService" c:type="IBusConfigService*"/>
+            </parameter>
+            <parameter name="section" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="unset_value">
+        <callback name="unset_value" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="config" transfer-ownership="none">
+              <type name="ConfigService" c:type="IBusConfigService*"/>
+            </parameter>
+            <parameter name="section" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="get_values">
+        <callback name="get_values" throws="1">
+          <return-value transfer-ownership="full">
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </return-value>
+          <parameters>
+            <parameter name="config" transfer-ownership="none">
+              <type name="ConfigService" c:type="IBusConfigService*"/>
+            </parameter>
+            <parameter name="section" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="12">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <constant name="Control_L" value="65507" c:type="IBUS_Control_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Control_R" value="65508" c:type="IBUS_Control_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="CruzeiroSign" value="16785570" c:type="IBUS_CruzeiroSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_A" value="1761" c:type="IBUS_Cyrillic_A">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_BE" value="1762" c:type="IBUS_Cyrillic_BE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_CHE" value="1790" c:type="IBUS_Cyrillic_CHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_CHE_descender"
+              value="16778422"
+              c:type="IBUS_Cyrillic_CHE_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_CHE_vertstroke"
+              value="16778424"
+              c:type="IBUS_Cyrillic_CHE_vertstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_DE" value="1764" c:type="IBUS_Cyrillic_DE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_DZHE" value="1727" c:type="IBUS_Cyrillic_DZHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_E" value="1788" c:type="IBUS_Cyrillic_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EF" value="1766" c:type="IBUS_Cyrillic_EF">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EL" value="1772" c:type="IBUS_Cyrillic_EL">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EM" value="1773" c:type="IBUS_Cyrillic_EM">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EN" value="1774" c:type="IBUS_Cyrillic_EN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_EN_descender"
+              value="16778402"
+              c:type="IBUS_Cyrillic_EN_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ER" value="1778" c:type="IBUS_Cyrillic_ER">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ES" value="1779" c:type="IBUS_Cyrillic_ES">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_GHE" value="1767" c:type="IBUS_Cyrillic_GHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_GHE_bar"
+              value="16778386"
+              c:type="IBUS_Cyrillic_GHE_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_HA" value="1768" c:type="IBUS_Cyrillic_HA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_HARDSIGN"
+              value="1791"
+              c:type="IBUS_Cyrillic_HARDSIGN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_HA_descender"
+              value="16778418"
+              c:type="IBUS_Cyrillic_HA_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_I" value="1769" c:type="IBUS_Cyrillic_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_IE" value="1765" c:type="IBUS_Cyrillic_IE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_IO" value="1715" c:type="IBUS_Cyrillic_IO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_I_macron"
+              value="16778466"
+              c:type="IBUS_Cyrillic_I_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_JE" value="1720" c:type="IBUS_Cyrillic_JE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_KA" value="1771" c:type="IBUS_Cyrillic_KA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_KA_descender"
+              value="16778394"
+              c:type="IBUS_Cyrillic_KA_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_KA_vertstroke"
+              value="16778396"
+              c:type="IBUS_Cyrillic_KA_vertstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_LJE" value="1721" c:type="IBUS_Cyrillic_LJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_NJE" value="1722" c:type="IBUS_Cyrillic_NJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_O" value="1775" c:type="IBUS_Cyrillic_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_O_bar"
+              value="16778472"
+              c:type="IBUS_Cyrillic_O_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_PE" value="1776" c:type="IBUS_Cyrillic_PE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SCHWA"
+              value="16778456"
+              c:type="IBUS_Cyrillic_SCHWA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SHA" value="1787" c:type="IBUS_Cyrillic_SHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SHCHA" value="1789" c:type="IBUS_Cyrillic_SHCHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SHHA"
+              value="16778426"
+              c:type="IBUS_Cyrillic_SHHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SHORTI"
+              value="1770"
+              c:type="IBUS_Cyrillic_SHORTI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_SOFTSIGN"
+              value="1784"
+              c:type="IBUS_Cyrillic_SOFTSIGN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_TE" value="1780" c:type="IBUS_Cyrillic_TE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_TSE" value="1763" c:type="IBUS_Cyrillic_TSE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_U" value="1781" c:type="IBUS_Cyrillic_U">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_U_macron"
+              value="16778478"
+              c:type="IBUS_Cyrillic_U_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_U_straight"
+              value="16778414"
+              c:type="IBUS_Cyrillic_U_straight">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_U_straight_bar"
+              value="16778416"
+              c:type="IBUS_Cyrillic_U_straight_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_VE" value="1783" c:type="IBUS_Cyrillic_VE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_YA" value="1777" c:type="IBUS_Cyrillic_YA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_YERU" value="1785" c:type="IBUS_Cyrillic_YERU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_YU" value="1760" c:type="IBUS_Cyrillic_YU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ZE" value="1786" c:type="IBUS_Cyrillic_ZE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ZHE" value="1782" c:type="IBUS_Cyrillic_ZHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ZHE_descender"
+              value="16778390"
+              c:type="IBUS_Cyrillic_ZHE_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_a" value="1729" c:type="IBUS_Cyrillic_a">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_be" value="1730" c:type="IBUS_Cyrillic_be">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_che" value="1758" c:type="IBUS_Cyrillic_che">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_che_descender"
+              value="16778423"
+              c:type="IBUS_Cyrillic_che_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_che_vertstroke"
+              value="16778425"
+              c:type="IBUS_Cyrillic_che_vertstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_de" value="1732" c:type="IBUS_Cyrillic_de">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_dzhe" value="1711" c:type="IBUS_Cyrillic_dzhe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_e" value="1756" c:type="IBUS_Cyrillic_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ef" value="1734" c:type="IBUS_Cyrillic_ef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_el" value="1740" c:type="IBUS_Cyrillic_el">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_em" value="1741" c:type="IBUS_Cyrillic_em">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_en" value="1742" c:type="IBUS_Cyrillic_en">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_en_descender"
+              value="16778403"
+              c:type="IBUS_Cyrillic_en_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_er" value="1746" c:type="IBUS_Cyrillic_er">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_es" value="1747" c:type="IBUS_Cyrillic_es">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ghe" value="1735" c:type="IBUS_Cyrillic_ghe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ghe_bar"
+              value="16778387"
+              c:type="IBUS_Cyrillic_ghe_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ha" value="1736" c:type="IBUS_Cyrillic_ha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ha_descender"
+              value="16778419"
+              c:type="IBUS_Cyrillic_ha_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_hardsign"
+              value="1759"
+              c:type="IBUS_Cyrillic_hardsign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_i" value="1737" c:type="IBUS_Cyrillic_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_i_macron"
+              value="16778467"
+              c:type="IBUS_Cyrillic_i_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ie" value="1733" c:type="IBUS_Cyrillic_ie">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_io" value="1699" c:type="IBUS_Cyrillic_io">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_je" value="1704" c:type="IBUS_Cyrillic_je">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ka" value="1739" c:type="IBUS_Cyrillic_ka">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ka_descender"
+              value="16778395"
+              c:type="IBUS_Cyrillic_ka_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ka_vertstroke"
+              value="16778397"
+              c:type="IBUS_Cyrillic_ka_vertstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_lje" value="1705" c:type="IBUS_Cyrillic_lje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_nje" value="1706" c:type="IBUS_Cyrillic_nje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_o" value="1743" c:type="IBUS_Cyrillic_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_o_bar"
+              value="16778473"
+              c:type="IBUS_Cyrillic_o_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_pe" value="1744" c:type="IBUS_Cyrillic_pe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_schwa"
+              value="16778457"
+              c:type="IBUS_Cyrillic_schwa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_sha" value="1755" c:type="IBUS_Cyrillic_sha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_shcha" value="1757" c:type="IBUS_Cyrillic_shcha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_shha"
+              value="16778427"
+              c:type="IBUS_Cyrillic_shha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_shorti"
+              value="1738"
+              c:type="IBUS_Cyrillic_shorti">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_softsign"
+              value="1752"
+              c:type="IBUS_Cyrillic_softsign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_te" value="1748" c:type="IBUS_Cyrillic_te">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_tse" value="1731" c:type="IBUS_Cyrillic_tse">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_u" value="1749" c:type="IBUS_Cyrillic_u">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_u_macron"
+              value="16778479"
+              c:type="IBUS_Cyrillic_u_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_u_straight"
+              value="16778415"
+              c:type="IBUS_Cyrillic_u_straight">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_u_straight_bar"
+              value="16778417"
+              c:type="IBUS_Cyrillic_u_straight_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ve" value="1751" c:type="IBUS_Cyrillic_ve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ya" value="1745" c:type="IBUS_Cyrillic_ya">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_yeru" value="1753" c:type="IBUS_Cyrillic_yeru">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_yu" value="1728" c:type="IBUS_Cyrillic_yu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_ze" value="1754" c:type="IBUS_Cyrillic_ze">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_zhe" value="1750" c:type="IBUS_Cyrillic_zhe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Cyrillic_zhe_descender"
+              value="16778391"
+              c:type="IBUS_Cyrillic_zhe_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="D" value="68" c:type="IBUS_D">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Dabovedot" value="16784906" c:type="IBUS_Dabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Dcaron" value="463" c:type="IBUS_Dcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Delete" value="65535" c:type="IBUS_Delete">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="DongSign" value="16785579" c:type="IBUS_DongSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Down" value="65364" c:type="IBUS_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Dstroke" value="464" c:type="IBUS_Dstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="E" value="69" c:type="IBUS_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ENG" value="957" c:type="IBUS_ENG">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ETH" value="208" c:type="IBUS_ETH">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eabovedot" value="972" c:type="IBUS_Eabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eacute" value="201" c:type="IBUS_Eacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ebelowdot" value="16785080" c:type="IBUS_Ebelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecaron" value="460" c:type="IBUS_Ecaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflex" value="202" c:type="IBUS_Ecircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflexacute"
+              value="16785086"
+              c:type="IBUS_Ecircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflexbelowdot"
+              value="16785094"
+              c:type="IBUS_Ecircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflexgrave"
+              value="16785088"
+              c:type="IBUS_Ecircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflexhook"
+              value="16785090"
+              c:type="IBUS_Ecircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ecircumflextilde"
+              value="16785092"
+              c:type="IBUS_Ecircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="EcuSign" value="16785568" c:type="IBUS_EcuSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ediaeresis" value="203" c:type="IBUS_Ediaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Egrave" value="200" c:type="IBUS_Egrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ehook" value="16785082" c:type="IBUS_Ehook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eisu_Shift" value="65327" c:type="IBUS_Eisu_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eisu_toggle" value="65328" c:type="IBUS_Eisu_toggle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Emacron" value="938" c:type="IBUS_Emacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="End" value="65367" c:type="IBUS_End">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Engine"
+           c:symbol-prefix="engine"
+           c:type="IBusEngine"
+           parent="Service"
+           glib:type-name="IBusEngine"
+           glib:get-type="ibus_engine_get_type"
+           glib:type-struct="EngineClass">
+      <doc xml:whitespace="preserve">An IBusEngine provides infrastructure for input method engine.
+Developers can "extend" this class for input method engine development.
+
+see_also: #IBusComponent, #IBusEngineDesc</doc>
+      <constructor name="new" c:identifier="ibus_engine_new">
+        <doc xml:whitespace="preserve">New an IBusEngine.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusEngine.</doc>
+          <type name="Engine" c:type="IBusEngine*"/>
+        </return-value>
+        <parameters>
+          <parameter name="engine_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the IBusObject.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="object_path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Path for IBusService.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An opened GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_with_type"
+                   c:identifier="ibus_engine_new_with_type">
+        <doc xml:whitespace="preserve">New an IBusEngine.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusEngine.</doc>
+          <type name="Engine" c:type="IBusEngine*"/>
+        </return-value>
+        <parameters>
+          <parameter name="engine_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GType of #IBusEngine.</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+          <parameter name="engine_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the IBusObject.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="object_path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Path for IBusService.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An opened GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="cancel_hand_writing">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="n_strokes" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="candidate_clicked">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="index" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="button" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="cursor_down">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="cursor_up">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="disable">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="enable">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="focus_in">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="focus_out">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="page_down">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="page_up">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="process_hand_writing_event">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="coordinates" transfer-ownership="none">
+            <type name="gdouble" c:type="const gdouble*"/>
+          </parameter>
+          <parameter name="coordinates_len" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="process_key_event">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="keycode" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="property_activate">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="prop_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="prop_state" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="property_hide">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="prop_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="property_show">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="prop_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="reset">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_capabilities">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="caps" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_content_type">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="purpose" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="hints" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_cursor_location">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="w" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="h" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_surrounding_text">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+          <parameter name="cursor_index" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="anchor_pos" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="commit_text" c:identifier="ibus_engine_commit_text">
+        <doc xml:whitespace="preserve">Commit output of input method to IBus client.
+
+(Note: The text object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">String commit to IBusEngine.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="delete_surrounding_text"
+              c:identifier="ibus_engine_delete_surrounding_text">
+        <doc xml:whitespace="preserve">Delete surrounding text.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The offset of the first char.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="nchars" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Number of chars to be deleted.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="forward_key_event"
+              c:identifier="ibus_engine_forward_key_event">
+        <doc xml:whitespace="preserve">Forward the key event.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">KeySym.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="keycode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">keyboard scancode.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key modifier flags.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_content_type"
+              c:identifier="ibus_engine_get_content_type">
+        <doc xml:whitespace="preserve">Get content-type (primary purpose and hints) of the current input
+context.
+
+See also: #IBusEngine::set-content-type</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="purpose"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Primary purpose of the input context.</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="hints"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Hints that augument @purpose.</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="ibus_engine_get_name">
+        <doc xml:whitespace="preserve">Return the name of IBusEngine.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">Name of IBusEngine.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_surrounding_text"
+              c:identifier="ibus_engine_get_surrounding_text">
+        <doc xml:whitespace="preserve">Get surrounding text.
+
+It is also used to tell the input-context that the engine will
+utilize surrounding-text.  In that case, it must be called in
+#IBusEngine::enable handler, with both @text and @cursor set to
+%NULL.
+
+See also: #IBusEngine::set-surrounding-text</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="text"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Location to store surrounding text.</doc>
+            <type name="Text" c:type="IBusText**"/>
+          </parameter>
+          <parameter name="cursor_pos"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Cursor position in characters in @text.</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+          <parameter name="anchor_pos"
+                     direction="out"
+                     caller-allocates="0"
+                     transfer-ownership="full"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">Anchor position of selection in @text.</doc>
+            <type name="guint" c:type="guint*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="hide_auxiliary_text"
+              c:identifier="ibus_engine_hide_auxiliary_text">
+        <doc xml:whitespace="preserve">Hide the auxiliary bar.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="hide_lookup_table"
+              c:identifier="ibus_engine_hide_lookup_table">
+        <doc xml:whitespace="preserve">Hide the lookup table.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="hide_preedit_text"
+              c:identifier="ibus_engine_hide_preedit_text">
+        <doc xml:whitespace="preserve">Hide the pre-edit buffer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="register_properties"
+              c:identifier="ibus_engine_register_properties">
+        <doc xml:whitespace="preserve">Register and show properties in language bar.
+
+(Note: The prop_list object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="prop_list" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Property List.</doc>
+            <type name="PropList" c:type="IBusPropList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="show_auxiliary_text"
+              c:identifier="ibus_engine_show_auxiliary_text">
+        <doc xml:whitespace="preserve">Show the auxiliary bar.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="show_lookup_table"
+              c:identifier="ibus_engine_show_lookup_table">
+        <doc xml:whitespace="preserve">Show the lookup table.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="show_preedit_text"
+              c:identifier="ibus_engine_show_preedit_text">
+        <doc xml:whitespace="preserve">Show the pre-edit buffer.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="update_auxiliary_text"
+              c:identifier="ibus_engine_update_auxiliary_text">
+        <doc xml:whitespace="preserve">Update the auxiliary bar.
+
+(Note: The text object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Update content.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the auxiliary text bar is visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_lookup_table"
+              c:identifier="ibus_engine_update_lookup_table">
+        <doc xml:whitespace="preserve">Update the lookup table.
+
+(Note: The table object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="lookup_table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An lookup_table.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the lookup_table is visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_lookup_table_fast"
+              c:identifier="ibus_engine_update_lookup_table_fast">
+        <doc xml:whitespace="preserve">Fast update for big lookup table.
+
+If size of lookup table is not over table page size *4,
+then it calls ibus_engine_update_lookup_table().
+
+(Note: The table object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="lookup_table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An lookup_table.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the lookup_table is visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_preedit_text"
+              c:identifier="ibus_engine_update_preedit_text">
+        <doc xml:whitespace="preserve">Update the pre-edit buffer.
+
+(Note: The text object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Update content.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Current position of cursor</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the pre-edit buffer is visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_preedit_text_with_mode"
+              c:identifier="ibus_engine_update_preedit_text_with_mode">
+        <doc xml:whitespace="preserve">Update the pre-edit buffer with commit mode. Similar to
+ibus_engine_update_preedit_text(), this function allows users to specify
+the behavior on focus out when the pre-edit buffer is visible.
+
+If @mode is IBUS_ENGINE_PREEDIT_COMMIT, contents of the pre-edit buffer
+will be comitted and cleared.
+If @mode is IBUS_ENGINE_PREEDIT_CLEAR, contents of the pre-edit buffer
+will be cleared only.
+
+(Note: The text object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Update content.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Current position of cursor</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the pre-edit buffer is visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="mode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Pre-edit commit mode when the focus is lost.</doc>
+            <type name="PreeditFocusMode" c:type="IBusPreeditFocusMode"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_property"
+              c:identifier="ibus_engine_update_property">
+        <doc xml:whitespace="preserve">Update the state displayed in language bar.
+
+(Note: The prop object will be released, if it is floating.
+ If caller want to keep the object, caller should make the object
+ sink by g_object_ref_sink.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="engine" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngine.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </instance-parameter>
+          <parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">IBusProperty to be updated.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="engine-name"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="parent" readable="0" private="1">
+        <type name="Service" c:type="IBusService"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="EnginePrivate" c:type="IBusEnginePrivate*"/>
+      </field>
+      <field name="enabled">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="has_focus">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="cursor_area">
+        <type name="Rectangle" c:type="IBusRectangle"/>
+      </field>
+      <field name="client_capabilities">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <glib:signal name="cancel-hand-writing" when="last">
+        <doc xml:whitespace="preserve">Emitted when a hand writing operation is cancelled.
+Implement the member function cancel_hand_writing() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="n_strokes" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The number of strokes to be removed. 0 means "remove all".</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="candidate-clicked" when="last">
+        <doc xml:whitespace="preserve">Emitted when candidate on lookup table is clicked.
+Implement the member function candidate_clicked() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Index of candidate be clicked.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="button" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Mouse button.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Keyboard state.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="cursor-down" when="last">
+        <doc xml:whitespace="preserve">Emitted when the down cursor button is pressed.
+Implement the member function cursor_down() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="cursor-up" when="last">
+        <doc xml:whitespace="preserve">Emitted when the up cursor button is pressed.
+Implement the member function cursor_up() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="disable" when="last">
+        <doc xml:whitespace="preserve">Emitted when the IME is disabled.
+Implement the member function set_disable() in extended class to receive this signal.
+
+See also:  ibus_input_context_disable().
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="enable" when="last">
+        <doc xml:whitespace="preserve">Emitted when the IME is enabled.
+Implement the member function set_enable() in extended class to receive this signal.
+
+See also:  ibus_input_context_enable().
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="focus-in" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the focus.
+Implement the member function focus_in() in extended class to receive this signal.
+
+See also: ibus_input_context_focus_in()
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="focus-out" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application  lost the focus.
+Implement the member function focus_out() in extended class to receive this signal.
+
+See also: ibus_input_context_focus_out()
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="page-down" when="last">
+        <doc xml:whitespace="preserve">Emitted when the page-down button is pressed.
+Implement the member function page_down() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="page-up" when="last">
+        <doc xml:whitespace="preserve">Emitted when the page-up button is pressed.
+Implement the member function page_up() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="process-hand-writing-event" when="last">
+        <doc xml:whitespace="preserve">Emitted when a hand writing operation is cancelled.
+Implement the member function cancel_hand_writing() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="coordinates" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An array of double (0.0 to 1.0) which represents a stroke (i.e. [x1, y1, x2, y2, x3, y3, ...]).</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+          <parameter name="coordinates_len" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The number of elements in the array.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="process-key-event" when="last">
+        <doc xml:whitespace="preserve">Emitted when a key event is received.
+Implement the member function process_key_event() in extended class to receive this signal.
+Both the key symbol and keycode are passed to the member function.
+See ibus_input_context_process_key_event() for further explanation of
+key symbol, keycode and which to use.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE for successfully process the key; FALSE otherwise. See also:  ibus_input_context_process_key_event().  &lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key symbol of the key press.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="keycode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">KeyCode of the key press.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key modifier flags.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="property-activate" when="last">
+        <doc xml:whitespace="preserve">Emitted when a property is activated or change changed.
+Implement the member function property_activate() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Property name.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Property state.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="property-hide" when="last">
+        <doc xml:whitespace="preserve">Emitted when a property is hidden.
+Implement the member function property_hide() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Property name.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="property-show" when="last">
+        <doc xml:whitespace="preserve">Emitted when a property is shown.
+Implement the member function property_side() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Property name.</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="reset" when="last">
+        <doc xml:whitespace="preserve">Emitted when the IME is reset.
+Implement the member function reset() in extended class to receive this signal.
+
+See also:  ibus_input_context_reset().
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="set-capabilities" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application capabilities is set.
+Implement the member function set_capabilities() in extended class to receive this signal.
+
+See also:  ibus_input_context_set_capabilities().
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="caps" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Capabilities flags of IBusEngine, see #IBusCapabilite</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="set-content-type" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application content-type (primary
+purpose and hints) is set.  The engine could change the
+behavior according to the content-type.  Implement the member
+function set_content_type() in extended class to receive this
+signal.
+
+For example, if the client application wants to restrict input
+to numbers, this signal will be emitted with @purpose set to
+#IBUS_INPUT_PURPOSE_NUMBER, so the engine can switch the input
+mode to latin.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this
+function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="purpose" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Primary purpose of the input context, as an #IBusInputPurpose.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="hints" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Hints that augment @purpose, as an #IBusInputHints.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="set-cursor-location" when="last">
+        <doc xml:whitespace="preserve">Emitted when the location of IME is set.
+Implement the member function set_cursor_location() in extended class to receive this signal.
+
+See also:  ibus_input_context_set_cursor_location().
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of the cursor.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of the cursor.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="w" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Width of the cursor.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="h" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Height of the cursor.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="set-surrounding-text" when="last">
+        <doc xml:whitespace="preserve">Emitted when a surrounding text is set.
+Implement the member function set_surrounding_text() in extended class to receive this signal.
+If anchor_pos equals to cursor_pos, it means "there are no selection" or "does not support
+selection retrival".
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The surrounding text.</doc>
+            <type name="GObject.Object"/>
+          </parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The cursor position on surrounding text.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="anchor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The anchor position on selection area.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="EngineClass"
+            c:type="IBusEngineClass"
+            glib:is-gtype-struct-for="Engine">
+      <field name="parent" readable="0" private="1">
+        <type name="ServiceClass" c:type="IBusServiceClass"/>
+      </field>
+      <field name="process_key_event">
+        <callback name="process_key_event">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="keyval" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="keycode" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="state" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="focus_in">
+        <callback name="focus_in">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="focus_out">
+        <callback name="focus_out">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="reset">
+        <callback name="reset">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="enable">
+        <callback name="enable">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="disable">
+        <callback name="disable">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_cursor_location">
+        <callback name="set_cursor_location">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="w" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="h" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_capabilities">
+        <callback name="set_capabilities">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="caps" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="page_up">
+        <callback name="page_up">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="page_down">
+        <callback name="page_down">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cursor_up">
+        <callback name="cursor_up">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cursor_down">
+        <callback name="cursor_down">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="property_activate">
+        <callback name="property_activate">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="prop_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="prop_state" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="property_show">
+        <callback name="property_show">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="prop_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="property_hide">
+        <callback name="property_hide">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="prop_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="candidate_clicked">
+        <callback name="candidate_clicked">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="index" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="button" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="state" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_surrounding_text">
+        <callback name="set_surrounding_text">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="text" transfer-ownership="none">
+              <type name="Text" c:type="IBusText*"/>
+            </parameter>
+            <parameter name="cursor_index" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="anchor_pos" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="process_hand_writing_event">
+        <callback name="process_hand_writing_event">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="coordinates" transfer-ownership="none">
+              <type name="gdouble" c:type="const gdouble*"/>
+            </parameter>
+            <parameter name="coordinates_len" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cancel_hand_writing">
+        <callback name="cancel_hand_writing">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="n_strokes" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_content_type">
+        <callback name="set_content_type">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="engine" transfer-ownership="none">
+              <type name="Engine" c:type="IBusEngine*"/>
+            </parameter>
+            <parameter name="purpose" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="hints" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <class name="EngineDesc"
+           c:symbol-prefix="engine_desc"
+           c:type="IBusEngineDesc"
+           parent="Serializable"
+           glib:type-name="IBusEngineDesc"
+           glib:get-type="ibus_engine_desc_get_type"
+           glib:type-struct="EngineDescClass">
+      <doc xml:whitespace="preserve">An IBusEngineDesc stores description data of IBusEngine.
+The description data can either be passed to ibus_engine_desc_new(),
+or loaded from an XML node through ibus_engine_desc_new_from_xml_node()
+to construct IBusEngineDesc.
+
+However, the recommended way to load engine description data is
+using ibus_component_new_from_file() to load a component file,
+which also includes engine description data.</doc>
+      <constructor name="new" c:identifier="ibus_engine_desc_new">
+        <doc xml:whitespace="preserve">New a IBusEngineDesc.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusEngineDesc.</doc>
+          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="longname" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Long name of the input method engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="description" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Input method engine description.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="language" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Language (e.g. zh, jp) supported by this input method engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="license" transfer-ownership="none">
+            <doc xml:whitespace="preserve">License of the input method engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="author" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Author of the input method engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="icon" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Icon file of this engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="layout" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Keyboard layout</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_xml_node"
+                   c:identifier="ibus_engine_desc_new_from_xml_node"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">New a IBusEngineDesc from an XML node.
+&lt;note&gt;&lt;para&gt;This function is called by ibus_component_new_from_file(),
+ so developers normally do not need to call it directly.
+&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusEngineDesc that contains description from @node.</doc>
+          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+        </return-value>
+        <parameters>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An XML node</doc>
+            <type c:type="XMLNode*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_varargs"
+                   c:identifier="ibus_engine_desc_new_varargs"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">New a IBusEngineDesc.
+ibus_engine_desc_new_varargs() supports the va_list format.
+name property is required. e.g.
+ibus_engine_desc_new_varargs("name", "ibus-foo", "language", "us", NULL)</doc>
+        <return-value transfer-ownership="none">
+          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the first property.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg1" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_author" c:identifier="ibus_engine_desc_get_author">
+        <doc xml:whitespace="preserve">Return the author property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">author property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_description"
+              c:identifier="ibus_engine_desc_get_description">
+        <doc xml:whitespace="preserve">Return the description property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">description property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_hotkeys" c:identifier="ibus_engine_desc_get_hotkeys">
+        <doc xml:whitespace="preserve">Return the hotkeys property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">hotkeys property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_icon" c:identifier="ibus_engine_desc_get_icon">
+        <doc xml:whitespace="preserve">Return the icon property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">icon property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_language" c:identifier="ibus_engine_desc_get_language">
+        <doc xml:whitespace="preserve">Return the language property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">language property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layout" c:identifier="ibus_engine_desc_get_layout">
+        <doc xml:whitespace="preserve">Return the layout property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">layout property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layout_option"
+              c:identifier="ibus_engine_desc_get_layout_option">
+        <doc xml:whitespace="preserve">Return the keyboard option property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">keyboard option property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_layout_variant"
+              c:identifier="ibus_engine_desc_get_layout_variant">
+        <doc xml:whitespace="preserve">Return the keyboard variant property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">keyboard variant property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_license" c:identifier="ibus_engine_desc_get_license">
+        <doc xml:whitespace="preserve">Return the license property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">license property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_longname" c:identifier="ibus_engine_desc_get_longname">
+        <doc xml:whitespace="preserve">Return the longname property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">longname property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="ibus_engine_desc_get_name">
+        <doc xml:whitespace="preserve">Return the name property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">name property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_rank" c:identifier="ibus_engine_desc_get_rank">
+        <doc xml:whitespace="preserve">Return the rank property in IBusEngineDesc.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">rank property in IBusEngineDesc</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_setup" c:identifier="ibus_engine_desc_get_setup">
+        <doc xml:whitespace="preserve">Return the setup property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">setup property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_symbol" c:identifier="ibus_engine_desc_get_symbol">
+        <doc xml:whitespace="preserve">Return the symbol property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">symbol property in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_textdomain"
+              c:identifier="ibus_engine_desc_get_textdomain">
+        <doc xml:whitespace="preserve">Return the textdomain property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">textdomain in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_version" c:identifier="ibus_engine_desc_get_version">
+        <doc xml:whitespace="preserve">Return the version property in IBusEngineDesc. It should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">version in IBusEngineDesc</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="output" c:identifier="ibus_engine_desc_output">
+        <doc xml:whitespace="preserve">Output XML-formatted input method engine description.
+The result will be append to GString specified in @output.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="info" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineDesc</doc>
+            <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+          </instance-parameter>
+          <parameter name="output" transfer-ownership="none">
+            <doc xml:whitespace="preserve">XML-formatted Input method engine description.</doc>
+            <type name="GLib.String" c:type="GString*"/>
+          </parameter>
+          <parameter name="indent" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Number of indent (showed as 4 spaces).</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="author"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The author of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="description"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The description of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="hotkeys"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The hotkeys of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="icon"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The icon of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="language"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The language of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="layout"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The layout of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="layout-option"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The keyboard option of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="layout-variant"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The keyboard variant of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="license"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The license of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="longname"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The longname of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="name"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The name of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="rank"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The rank of engine description</doc>
+        <type name="guint" c:type="guint"/>
+      </property>
+      <property name="setup"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The exec lists of the engine setup command</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="symbol"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The symbol chars of engine description instead of icon image</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="textdomain"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The textdomain of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="version"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The version number of engine description</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="parent">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="EngineDescPrivate" c:type="IBusEngineDescPrivate*"/>
+      </field>
+    </class>
+    <record name="EngineDescClass"
+            c:type="IBusEngineDescClass"
+            glib:is-gtype-struct-for="EngineDesc">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <record name="EngineDescPrivate"
+            c:type="IBusEngineDescPrivate"
+            disguised="1">
+    </record>
+    <record name="EnginePrivate" c:type="IBusEnginePrivate" disguised="1">
+    </record>
+    <class name="EngineSimple"
+           c:symbol-prefix="engine_simple"
+           c:type="IBusEngineSimple"
+           parent="Engine"
+           glib:type-name="IBusEngineSimple"
+           glib:get-type="ibus_engine_simple_get_type"
+           glib:type-struct="EngineSimpleClass">
+      <doc xml:whitespace="preserve">IBusEngineSimple properties.</doc>
+      <method name="add_table" c:identifier="ibus_engine_simple_add_table">
+        <doc xml:whitespace="preserve">Adds an additional table to search to the engine. Each row of the table
+consists of max_seq_len key symbols followed by two guint16 interpreted as
+the high and low words of a gunicode value. Tables are searched starting from
+the last added.
+
+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.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="simple" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusEngineSimple.</doc>
+            <type name="EngineSimple" c:type="IBusEngineSimple*"/>
+          </instance-parameter>
+          <parameter name="data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The table which must be available during the whole life of the simple engine.</doc>
+            <array zero-terminated="0" c:type="guint16*">
+              <type name="guint16"/>
+            </array>
+          </parameter>
+          <parameter name="max_seq_len" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Maximum length of a swquence in the table (cannot be greater than %IBUS_MAX_COMPOSE_LEN)</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="n_seqs" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent" readable="0" private="1">
+        <type name="Engine" c:type="IBusEngine"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="EngineSimplePrivate" c:type="IBusEngineSimplePrivate*"/>
+      </field>
+    </class>
+    <record name="EngineSimpleClass"
+            c:type="IBusEngineSimpleClass"
+            glib:is-gtype-struct-for="EngineSimple">
+      <field name="parent" readable="0" private="1">
+        <type name="EngineClass" c:type="IBusEngineClass"/>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="EngineSimplePrivate"
+            c:type="IBusEngineSimplePrivate"
+            disguised="1">
+    </record>
+    <constant name="Eogonek" value="458" c:type="IBUS_Eogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="Error"
+                 glib:type-name="IBusError"
+                 glib:get-type="ibus_error_get_type"
+                 c:type="IBusError"
+                 glib:error-domain="ibus-error-quark">
+      <member name="no_engine"
+              value="0"
+              c:identifier="IBUS_ERROR_NO_ENGINE"
+              glib:nick="no-engine">
+        <doc xml:whitespace="preserve">There is no engine associated with input context.</doc>
+      </member>
+      <member name="no_config"
+              value="1"
+              c:identifier="IBUS_ERROR_NO_CONFIG"
+              glib:nick="no-config">
+        <doc xml:whitespace="preserve">There is no config module running.</doc>
+      </member>
+      <member name="failed"
+              value="2"
+              c:identifier="IBUS_ERROR_FAILED"
+              glib:nick="failed">
+        <doc xml:whitespace="preserve">General failure.</doc>
+      </member>
+      <function name="quark" c:identifier="ibus_error_quark">
+        <return-value transfer-ownership="none">
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+      </function>
+    </enumeration>
+    <constant name="Escape" value="65307" c:type="IBUS_Escape">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Eth" value="208" c:type="IBUS_Eth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Etilde" value="16785084" c:type="IBUS_Etilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="EuroSign" value="8364" c:type="IBUS_EuroSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Execute" value="65378" c:type="IBUS_Execute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F" value="70" c:type="IBUS_F">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F1" value="65470" c:type="IBUS_F1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F10" value="65479" c:type="IBUS_F10">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F11" value="65480" c:type="IBUS_F11">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F12" value="65481" c:type="IBUS_F12">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F13" value="65482" c:type="IBUS_F13">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F14" value="65483" c:type="IBUS_F14">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F15" value="65484" c:type="IBUS_F15">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F16" value="65485" c:type="IBUS_F16">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F17" value="65486" c:type="IBUS_F17">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F18" value="65487" c:type="IBUS_F18">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F19" value="65488" c:type="IBUS_F19">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F2" value="65471" c:type="IBUS_F2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F20" value="65489" c:type="IBUS_F20">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F21" value="65490" c:type="IBUS_F21">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F22" value="65491" c:type="IBUS_F22">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F23" value="65492" c:type="IBUS_F23">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F24" value="65493" c:type="IBUS_F24">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F25" value="65494" c:type="IBUS_F25">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F26" value="65495" c:type="IBUS_F26">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F27" value="65496" c:type="IBUS_F27">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F28" value="65497" c:type="IBUS_F28">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F29" value="65498" c:type="IBUS_F29">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F3" value="65472" c:type="IBUS_F3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F30" value="65499" c:type="IBUS_F30">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F31" value="65500" c:type="IBUS_F31">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F32" value="65501" c:type="IBUS_F32">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F33" value="65502" c:type="IBUS_F33">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F34" value="65503" c:type="IBUS_F34">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F35" value="65504" c:type="IBUS_F35">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F4" value="65473" c:type="IBUS_F4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F5" value="65474" c:type="IBUS_F5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F6" value="65475" c:type="IBUS_F6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F7" value="65476" c:type="IBUS_F7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F8" value="65477" c:type="IBUS_F8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="F9" value="65478" c:type="IBUS_F9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="FFrancSign" value="16785571" c:type="IBUS_FFrancSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Fabovedot" value="16784926" c:type="IBUS_Fabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Factory"
+           c:symbol-prefix="factory"
+           c:type="IBusFactory"
+           parent="Service"
+           glib:type-name="IBusFactory"
+           glib:get-type="ibus_factory_get_type"
+           glib:type-struct="FactoryClass">
+      <doc xml:whitespace="preserve">An IBusFactory is an #IBusService that creates input method engine (IME) instance.
+It provides CreateEngine remote method, which creates an IME instance by name,
+and returns the D-Bus object path to IBus daemon.</doc>
+      <constructor name="new" c:identifier="ibus_factory_new">
+        <doc xml:whitespace="preserve">New an IBusFactory.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusFactory.</doc>
+          <type name="Factory" c:type="IBusFactory*"/>
+        </return-value>
+        <parameters>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="create_engine" invoker="create_engine">
+        <doc xml:whitespace="preserve">Create an #IBusEngine with @engine_name.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">#IBusEngine with @engine_name.</doc>
+          <type name="Engine" c:type="IBusEngine*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <type name="Factory" c:type="IBusFactory*"/>
+          </instance-parameter>
+          <parameter name="engine_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of an engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_engine" c:identifier="ibus_factory_add_engine">
+        <doc xml:whitespace="preserve">Add an engine to the factory.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusFactory.</doc>
+            <type name="Factory" c:type="IBusFactory*"/>
+          </instance-parameter>
+          <parameter name="engine_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of an engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="engine_type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GType of an engine.</doc>
+            <type name="GType" c:type="GType"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="create_engine" c:identifier="ibus_factory_create_engine">
+        <doc xml:whitespace="preserve">Create an #IBusEngine with @engine_name.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">#IBusEngine with @engine_name.</doc>
+          <type name="Engine" c:type="IBusEngine*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="factory" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusFactory.</doc>
+            <type name="Factory" c:type="IBusFactory*"/>
+          </instance-parameter>
+          <parameter name="engine_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of an engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent" readable="0" private="1">
+        <type name="Service" c:type="IBusService"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="FactoryPrivate" c:type="IBusFactoryPrivate*"/>
+      </field>
+      <glib:signal name="create-engine" when="last">
+        <doc xml:whitespace="preserve">The ::create-engine signal is a signal to create IBusEngine
+with @engine_name, which gets emitted when IBusFactory
+received CreateEngine dbus method. The callback functions
+will be called until a callback returns a non-null object
+of IBusEngine.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">An IBusEngine</doc>
+          <type name="Engine"/>
+        </return-value>
+        <parameters>
+          <parameter name="engine_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the engine_name which received the signal</doc>
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="FactoryClass"
+            c:type="IBusFactoryClass"
+            glib:is-gtype-struct-for="Factory">
+      <field name="parent" readable="0" private="1">
+        <type name="ServiceClass" c:type="IBusServiceClass"/>
+      </field>
+      <field name="create_engine">
+        <callback name="create_engine">
+          <return-value transfer-ownership="full">
+            <doc xml:whitespace="preserve">#IBusEngine with @engine_name.</doc>
+            <type name="Engine" c:type="IBusEngine*"/>
+          </return-value>
+          <parameters>
+            <parameter name="factory" transfer-ownership="none">
+              <type name="Factory" c:type="IBusFactory*"/>
+            </parameter>
+            <parameter name="engine_name" transfer-ownership="none">
+              <doc xml:whitespace="preserve">Name of an engine.</doc>
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <record name="FactoryPrivate" c:type="IBusFactoryPrivate" disguised="1">
+    </record>
+    <constant name="Farsi_0" value="16778992" c:type="IBUS_Farsi_0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_1" value="16778993" c:type="IBUS_Farsi_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_2" value="16778994" c:type="IBUS_Farsi_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_3" value="16778995" c:type="IBUS_Farsi_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_4" value="16778996" c:type="IBUS_Farsi_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_5" value="16778997" c:type="IBUS_Farsi_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_6" value="16778998" c:type="IBUS_Farsi_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_7" value="16778999" c:type="IBUS_Farsi_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_8" value="16779000" c:type="IBUS_Farsi_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_9" value="16779001" c:type="IBUS_Farsi_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Farsi_yeh" value="16778956" c:type="IBUS_Farsi_yeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Find" value="65384" c:type="IBUS_Find">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="First_Virtual_Screen"
+              value="65232"
+              c:type="IBUS_First_Virtual_Screen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <callback name="FreeFunc" c:type="IBusFreeFunc">
+      <doc xml:whitespace="preserve">Free function prototype.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <doc xml:whitespace="preserve">object to be freed.</doc>
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <constant name="G" value="71" c:type="IBUS_G">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gabovedot" value="725" c:type="IBUS_Gabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gbreve" value="683" c:type="IBUS_Gbreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gcaron" value="16777702" c:type="IBUS_Gcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gcedilla" value="939" c:type="IBUS_Gcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Gcircumflex" value="728" c:type="IBUS_Gcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_an" value="16781520" c:type="IBUS_Georgian_an">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_ban" value="16781521" c:type="IBUS_Georgian_ban">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_can" value="16781546" c:type="IBUS_Georgian_can">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_char"
+              value="16781549"
+              c:type="IBUS_Georgian_char">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_chin"
+              value="16781545"
+              c:type="IBUS_Georgian_chin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_cil" value="16781548" c:type="IBUS_Georgian_cil">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_don" value="16781523" c:type="IBUS_Georgian_don">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_en" value="16781524" c:type="IBUS_Georgian_en">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_fi" value="16781558" c:type="IBUS_Georgian_fi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_gan" value="16781522" c:type="IBUS_Georgian_gan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_ghan"
+              value="16781542"
+              c:type="IBUS_Georgian_ghan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_hae" value="16781552" c:type="IBUS_Georgian_hae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_har" value="16781556" c:type="IBUS_Georgian_har">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_he" value="16781553" c:type="IBUS_Georgian_he">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_hie" value="16781554" c:type="IBUS_Georgian_hie">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_hoe" value="16781557" c:type="IBUS_Georgian_hoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_in" value="16781528" c:type="IBUS_Georgian_in">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_jhan"
+              value="16781551"
+              c:type="IBUS_Georgian_jhan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_jil" value="16781547" c:type="IBUS_Georgian_jil">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_kan" value="16781529" c:type="IBUS_Georgian_kan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_khar"
+              value="16781541"
+              c:type="IBUS_Georgian_khar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_las" value="16781530" c:type="IBUS_Georgian_las">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_man" value="16781531" c:type="IBUS_Georgian_man">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_nar" value="16781532" c:type="IBUS_Georgian_nar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_on" value="16781533" c:type="IBUS_Georgian_on">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_par" value="16781534" c:type="IBUS_Georgian_par">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_phar"
+              value="16781540"
+              c:type="IBUS_Georgian_phar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_qar" value="16781543" c:type="IBUS_Georgian_qar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_rae" value="16781536" c:type="IBUS_Georgian_rae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_san" value="16781537" c:type="IBUS_Georgian_san">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_shin"
+              value="16781544"
+              c:type="IBUS_Georgian_shin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_tan" value="16781527" c:type="IBUS_Georgian_tan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_tar" value="16781538" c:type="IBUS_Georgian_tar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_un" value="16781539" c:type="IBUS_Georgian_un">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_vin" value="16781525" c:type="IBUS_Georgian_vin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_we" value="16781555" c:type="IBUS_Georgian_we">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_xan" value="16781550" c:type="IBUS_Georgian_xan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_zen" value="16781526" c:type="IBUS_Georgian_zen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Georgian_zhar"
+              value="16781535"
+              c:type="IBUS_Georgian_zhar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_ALPHA" value="1985" c:type="IBUS_Greek_ALPHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_ALPHAaccent"
+              value="1953"
+              c:type="IBUS_Greek_ALPHAaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_BETA" value="1986" c:type="IBUS_Greek_BETA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_CHI" value="2007" c:type="IBUS_Greek_CHI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_DELTA" value="1988" c:type="IBUS_Greek_DELTA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_EPSILON" value="1989" c:type="IBUS_Greek_EPSILON">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_EPSILONaccent"
+              value="1954"
+              c:type="IBUS_Greek_EPSILONaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_ETA" value="1991" c:type="IBUS_Greek_ETA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_ETAaccent"
+              value="1955"
+              c:type="IBUS_Greek_ETAaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_GAMMA" value="1987" c:type="IBUS_Greek_GAMMA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_IOTA" value="1993" c:type="IBUS_Greek_IOTA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_IOTAaccent"
+              value="1956"
+              c:type="IBUS_Greek_IOTAaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_IOTAdiaeresis"
+              value="1957"
+              c:type="IBUS_Greek_IOTAdiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_IOTAdieresis"
+              value="1957"
+              c:type="IBUS_Greek_IOTAdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_KAPPA" value="1994" c:type="IBUS_Greek_KAPPA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_LAMBDA" value="1995" c:type="IBUS_Greek_LAMBDA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_LAMDA" value="1995" c:type="IBUS_Greek_LAMDA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_MU" value="1996" c:type="IBUS_Greek_MU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_NU" value="1997" c:type="IBUS_Greek_NU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_OMEGA" value="2009" c:type="IBUS_Greek_OMEGA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_OMEGAaccent"
+              value="1963"
+              c:type="IBUS_Greek_OMEGAaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_OMICRON" value="1999" c:type="IBUS_Greek_OMICRON">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_OMICRONaccent"
+              value="1959"
+              c:type="IBUS_Greek_OMICRONaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_PHI" value="2006" c:type="IBUS_Greek_PHI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_PI" value="2000" c:type="IBUS_Greek_PI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_PSI" value="2008" c:type="IBUS_Greek_PSI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_RHO" value="2001" c:type="IBUS_Greek_RHO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_SIGMA" value="2002" c:type="IBUS_Greek_SIGMA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_TAU" value="2004" c:type="IBUS_Greek_TAU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_THETA" value="1992" c:type="IBUS_Greek_THETA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_UPSILON" value="2005" c:type="IBUS_Greek_UPSILON">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_UPSILONaccent"
+              value="1960"
+              c:type="IBUS_Greek_UPSILONaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_UPSILONdieresis"
+              value="1961"
+              c:type="IBUS_Greek_UPSILONdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_XI" value="1998" c:type="IBUS_Greek_XI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_ZETA" value="1990" c:type="IBUS_Greek_ZETA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_accentdieresis"
+              value="1966"
+              c:type="IBUS_Greek_accentdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_alpha" value="2017" c:type="IBUS_Greek_alpha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_alphaaccent"
+              value="1969"
+              c:type="IBUS_Greek_alphaaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_beta" value="2018" c:type="IBUS_Greek_beta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_chi" value="2039" c:type="IBUS_Greek_chi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_delta" value="2020" c:type="IBUS_Greek_delta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_epsilon" value="2021" c:type="IBUS_Greek_epsilon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_epsilonaccent"
+              value="1970"
+              c:type="IBUS_Greek_epsilonaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_eta" value="2023" c:type="IBUS_Greek_eta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_etaaccent"
+              value="1971"
+              c:type="IBUS_Greek_etaaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_finalsmallsigma"
+              value="2035"
+              c:type="IBUS_Greek_finalsmallsigma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_gamma" value="2019" c:type="IBUS_Greek_gamma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_horizbar" value="1967" c:type="IBUS_Greek_horizbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_iota" value="2025" c:type="IBUS_Greek_iota">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_iotaaccent"
+              value="1972"
+              c:type="IBUS_Greek_iotaaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_iotaaccentdieresis"
+              value="1974"
+              c:type="IBUS_Greek_iotaaccentdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_iotadieresis"
+              value="1973"
+              c:type="IBUS_Greek_iotadieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_kappa" value="2026" c:type="IBUS_Greek_kappa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_lambda" value="2027" c:type="IBUS_Greek_lambda">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_lamda" value="2027" c:type="IBUS_Greek_lamda">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_mu" value="2028" c:type="IBUS_Greek_mu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_nu" value="2029" c:type="IBUS_Greek_nu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_omega" value="2041" c:type="IBUS_Greek_omega">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_omegaaccent"
+              value="1979"
+              c:type="IBUS_Greek_omegaaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_omicron" value="2031" c:type="IBUS_Greek_omicron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_omicronaccent"
+              value="1975"
+              c:type="IBUS_Greek_omicronaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_phi" value="2038" c:type="IBUS_Greek_phi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_pi" value="2032" c:type="IBUS_Greek_pi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_psi" value="2040" c:type="IBUS_Greek_psi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_rho" value="2033" c:type="IBUS_Greek_rho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_sigma" value="2034" c:type="IBUS_Greek_sigma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_switch" value="65406" c:type="IBUS_Greek_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_tau" value="2036" c:type="IBUS_Greek_tau">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_theta" value="2024" c:type="IBUS_Greek_theta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_upsilon" value="2037" c:type="IBUS_Greek_upsilon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_upsilonaccent"
+              value="1976"
+              c:type="IBUS_Greek_upsilonaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_upsilonaccentdieresis"
+              value="1978"
+              c:type="IBUS_Greek_upsilonaccentdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_upsilondieresis"
+              value="1977"
+              c:type="IBUS_Greek_upsilondieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_xi" value="2030" c:type="IBUS_Greek_xi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Greek_zeta" value="2022" c:type="IBUS_Greek_zeta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="H" value="72" c:type="IBUS_H">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul" value="65329" c:type="IBUS_Hangul">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_A" value="3775" c:type="IBUS_Hangul_A">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_AE" value="3776" c:type="IBUS_Hangul_AE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_AraeA" value="3830" c:type="IBUS_Hangul_AraeA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_AraeAE" value="3831" c:type="IBUS_Hangul_AraeAE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Banja" value="65337" c:type="IBUS_Hangul_Banja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Cieuc" value="3770" c:type="IBUS_Hangul_Cieuc">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Codeinput"
+              value="65335"
+              c:type="IBUS_Hangul_Codeinput">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Dikeud" value="3751" c:type="IBUS_Hangul_Dikeud">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_E" value="3780" c:type="IBUS_Hangul_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_EO" value="3779" c:type="IBUS_Hangul_EO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_EU" value="3793" c:type="IBUS_Hangul_EU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_End" value="65331" c:type="IBUS_Hangul_End">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Hanja" value="65332" c:type="IBUS_Hangul_Hanja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Hieuh" value="3774" c:type="IBUS_Hangul_Hieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_I" value="3795" c:type="IBUS_Hangul_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Ieung" value="3767" c:type="IBUS_Hangul_Ieung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Cieuc" value="3818" c:type="IBUS_Hangul_J_Cieuc">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Dikeud"
+              value="3802"
+              c:type="IBUS_Hangul_J_Dikeud">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Hieuh" value="3822" c:type="IBUS_Hangul_J_Hieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Ieung" value="3816" c:type="IBUS_Hangul_J_Ieung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Jieuj" value="3817" c:type="IBUS_Hangul_J_Jieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Khieuq"
+              value="3819"
+              c:type="IBUS_Hangul_J_Khieuq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Kiyeog"
+              value="3796"
+              c:type="IBUS_Hangul_J_Kiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_KiyeogSios"
+              value="3798"
+              c:type="IBUS_Hangul_J_KiyeogSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_KkogjiDalrinIeung"
+              value="3833"
+              c:type="IBUS_Hangul_J_KkogjiDalrinIeung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Mieum" value="3811" c:type="IBUS_Hangul_J_Mieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Nieun" value="3799" c:type="IBUS_Hangul_J_Nieun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_NieunHieuh"
+              value="3801"
+              c:type="IBUS_Hangul_J_NieunHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_NieunJieuj"
+              value="3800"
+              c:type="IBUS_Hangul_J_NieunJieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_PanSios"
+              value="3832"
+              c:type="IBUS_Hangul_J_PanSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Phieuf"
+              value="3821"
+              c:type="IBUS_Hangul_J_Phieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Pieub" value="3812" c:type="IBUS_Hangul_J_Pieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_PieubSios"
+              value="3813"
+              c:type="IBUS_Hangul_J_PieubSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Rieul" value="3803" c:type="IBUS_Hangul_J_Rieul">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulHieuh"
+              value="3810"
+              c:type="IBUS_Hangul_J_RieulHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulKiyeog"
+              value="3804"
+              c:type="IBUS_Hangul_J_RieulKiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulMieum"
+              value="3805"
+              c:type="IBUS_Hangul_J_RieulMieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulPhieuf"
+              value="3809"
+              c:type="IBUS_Hangul_J_RieulPhieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulPieub"
+              value="3806"
+              c:type="IBUS_Hangul_J_RieulPieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulSios"
+              value="3807"
+              c:type="IBUS_Hangul_J_RieulSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_RieulTieut"
+              value="3808"
+              c:type="IBUS_Hangul_J_RieulTieut">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Sios" value="3814" c:type="IBUS_Hangul_J_Sios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_SsangKiyeog"
+              value="3797"
+              c:type="IBUS_Hangul_J_SsangKiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_SsangSios"
+              value="3815"
+              c:type="IBUS_Hangul_J_SsangSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_Tieut" value="3820" c:type="IBUS_Hangul_J_Tieut">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_J_YeorinHieuh"
+              value="3834"
+              c:type="IBUS_Hangul_J_YeorinHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Jamo" value="65333" c:type="IBUS_Hangul_Jamo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Jeonja" value="65336" c:type="IBUS_Hangul_Jeonja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Jieuj" value="3768" c:type="IBUS_Hangul_Jieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Khieuq" value="3771" c:type="IBUS_Hangul_Khieuq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Kiyeog" value="3745" c:type="IBUS_Hangul_Kiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_KiyeogSios"
+              value="3747"
+              c:type="IBUS_Hangul_KiyeogSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_KkogjiDalrinIeung"
+              value="3827"
+              c:type="IBUS_Hangul_KkogjiDalrinIeung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Mieum" value="3761" c:type="IBUS_Hangul_Mieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_MultipleCandidate"
+              value="65341"
+              c:type="IBUS_Hangul_MultipleCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Nieun" value="3748" c:type="IBUS_Hangul_Nieun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_NieunHieuh"
+              value="3750"
+              c:type="IBUS_Hangul_NieunHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_NieunJieuj"
+              value="3749"
+              c:type="IBUS_Hangul_NieunJieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_O" value="3783" c:type="IBUS_Hangul_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_OE" value="3786" c:type="IBUS_Hangul_OE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PanSios" value="3826" c:type="IBUS_Hangul_PanSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Phieuf" value="3773" c:type="IBUS_Hangul_Phieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Pieub" value="3762" c:type="IBUS_Hangul_Pieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PieubSios"
+              value="3764"
+              c:type="IBUS_Hangul_PieubSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PostHanja"
+              value="65339"
+              c:type="IBUS_Hangul_PostHanja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PreHanja"
+              value="65338"
+              c:type="IBUS_Hangul_PreHanja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_PreviousCandidate"
+              value="65342"
+              c:type="IBUS_Hangul_PreviousCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Rieul" value="3753" c:type="IBUS_Hangul_Rieul">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulHieuh"
+              value="3760"
+              c:type="IBUS_Hangul_RieulHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulKiyeog"
+              value="3754"
+              c:type="IBUS_Hangul_RieulKiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulMieum"
+              value="3755"
+              c:type="IBUS_Hangul_RieulMieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulPhieuf"
+              value="3759"
+              c:type="IBUS_Hangul_RieulPhieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulPieub"
+              value="3756"
+              c:type="IBUS_Hangul_RieulPieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulSios"
+              value="3757"
+              c:type="IBUS_Hangul_RieulSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulTieut"
+              value="3758"
+              c:type="IBUS_Hangul_RieulTieut">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_RieulYeorinHieuh"
+              value="3823"
+              c:type="IBUS_Hangul_RieulYeorinHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Romaja" value="65334" c:type="IBUS_Hangul_Romaja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SingleCandidate"
+              value="65340"
+              c:type="IBUS_Hangul_SingleCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Sios" value="3765" c:type="IBUS_Hangul_Sios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Special" value="65343" c:type="IBUS_Hangul_Special">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangDikeud"
+              value="3752"
+              c:type="IBUS_Hangul_SsangDikeud">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangJieuj"
+              value="3769"
+              c:type="IBUS_Hangul_SsangJieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangKiyeog"
+              value="3746"
+              c:type="IBUS_Hangul_SsangKiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangPieub"
+              value="3763"
+              c:type="IBUS_Hangul_SsangPieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SsangSios"
+              value="3766"
+              c:type="IBUS_Hangul_SsangSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Start" value="65330" c:type="IBUS_Hangul_Start">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SunkyeongeumMieum"
+              value="3824"
+              c:type="IBUS_Hangul_SunkyeongeumMieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SunkyeongeumPhieuf"
+              value="3828"
+              c:type="IBUS_Hangul_SunkyeongeumPhieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_SunkyeongeumPieub"
+              value="3825"
+              c:type="IBUS_Hangul_SunkyeongeumPieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_Tieut" value="3772" c:type="IBUS_Hangul_Tieut">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_U" value="3788" c:type="IBUS_Hangul_U">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WA" value="3784" c:type="IBUS_Hangul_WA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WAE" value="3785" c:type="IBUS_Hangul_WAE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WE" value="3790" c:type="IBUS_Hangul_WE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WEO" value="3789" c:type="IBUS_Hangul_WEO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_WI" value="3791" c:type="IBUS_Hangul_WI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YA" value="3777" c:type="IBUS_Hangul_YA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YAE" value="3778" c:type="IBUS_Hangul_YAE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YE" value="3782" c:type="IBUS_Hangul_YE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YEO" value="3781" c:type="IBUS_Hangul_YEO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YI" value="3794" c:type="IBUS_Hangul_YI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YO" value="3787" c:type="IBUS_Hangul_YO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YU" value="3792" c:type="IBUS_Hangul_YU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_YeorinHieuh"
+              value="3829"
+              c:type="IBUS_Hangul_YeorinHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hangul_switch" value="65406" c:type="IBUS_Hangul_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hankaku" value="65321" c:type="IBUS_Hankaku">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hcircumflex" value="678" c:type="IBUS_Hcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hebrew_switch" value="65406" c:type="IBUS_Hebrew_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Help" value="65386" c:type="IBUS_Help">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Henkan" value="65315" c:type="IBUS_Henkan">
+      <doc xml:whitespace="preserve">Japanese keyboard support.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Henkan_Mode" value="65315" c:type="IBUS_Henkan_Mode">
+      <doc xml:whitespace="preserve">Japanese keyboard support.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hiragana" value="65317" c:type="IBUS_Hiragana">
+      <doc xml:whitespace="preserve">Japanese keyboard support.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hiragana_Katakana"
+              value="65319"
+              c:type="IBUS_Hiragana_Katakana">
+      <doc xml:whitespace="preserve">Japanese keyboard support.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Home" value="65360" c:type="IBUS_Home">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="HotkeyProfile"
+           c:symbol-prefix="hotkey_profile"
+           c:type="IBusHotkeyProfile"
+           parent="Serializable"
+           glib:type-name="IBusHotkeyProfile"
+           glib:get-type="ibus_hotkey_profile_get_type"
+           glib:type-struct="HotkeyProfileClass">
+      <doc xml:whitespace="preserve">An opaque data type representing an IBusHotkeyProfile.</doc>
+      <constructor name="new" c:identifier="ibus_hotkey_profile_new">
+        <doc xml:whitespace="preserve">New an IBusHotkeyProfile.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusHotkeyProfile.</doc>
+          <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="trigger">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="profile" transfer-ownership="none">
+            <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none" closure="1">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="add_hotkey" c:identifier="ibus_hotkey_profile_add_hotkey">
+        <doc xml:whitespace="preserve">Add a hotkey and its associated event to an IBusHotkeyProfile.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">Always TRUE.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="profile" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusHotkeyProfile.</doc>
+            <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
+          </instance-parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Keycode of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Modifiers of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The event to be associated.</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="add_hotkey_from_string"
+              c:identifier="ibus_hotkey_profile_add_hotkey_from_string">
+        <doc xml:whitespace="preserve">Add a hotkey and its associated event to an IBusHotkeyProfile.
+The hotkey is in string format, such like &lt;constant&gt;Control+Shift+A&lt;/constant&gt;.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">FALSE if @str contains invalid symbol; TRUE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="profile" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusHotkeyProfile.</doc>
+            <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
+          </instance-parameter>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key in string representation.  '+' is the separator.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The event to be associated.</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="filter_key_event"
+              c:identifier="ibus_hotkey_profile_filter_key_event">
+        <doc xml:whitespace="preserve">Emit a &lt;constant&gt;::trigger&lt;/constant&gt; signal when a hotkey is in a profile.
+
+See also: ::trigger</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">0 if releasing a hotkey and the hotkey is not in the profile ; an associated event otherwise.</doc>
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="profile" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusHotkeyProfile.</doc>
+            <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
+          </instance-parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Keycode of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Modifiers of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="prev_keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Keycode of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="prev_modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Modifiers of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">user data for signal "trigger".</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="lookup_hotkey"
+              c:identifier="ibus_hotkey_profile_lookup_hotkey">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The event associated to the hotkey or 0 if the hotkey is not in the profile.</doc>
+          <type name="GLib.Quark" c:type="GQuark"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="profile" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusHotkeyProfile.</doc>
+            <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
+          </instance-parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Keycode of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Modifiers of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_hotkey"
+              c:identifier="ibus_hotkey_profile_remove_hotkey">
+        <doc xml:whitespace="preserve">Remove the hotkey for an IBusHotkeyProfile.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">FALSE if the key is not in @profile, TRUE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="profile" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusHotkeyProfile.</doc>
+            <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
+          </instance-parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Keycode of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Modifiers of the hotkey.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_hotkey_by_event"
+              c:identifier="ibus_hotkey_profile_remove_hotkey_by_event">
+        <doc xml:whitespace="preserve">Remove the hotkey for an IBusHotkeyProfile by event.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">FALSE if no such event in @profile, TRUE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="profile" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusHotkeyProfile.</doc>
+            <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
+          </instance-parameter>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The associated event.</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <glib:signal name="trigger" when="last" detailed="1">
+        <doc xml:whitespace="preserve">Emitted when a hotkey is pressed and the hotkey is in profile.
+Implement the member function trigger() in extended class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;The last parameter, user_data is not actually a valid parameter. It is displayed because of GtkDoc bug.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="event" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An event in GQuark.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">User data for callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="HotkeyProfileClass"
+            c:type="IBusHotkeyProfileClass"
+            glib:is-gtype-struct-for="HotkeyProfile">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+      <field name="trigger">
+        <callback name="trigger">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="profile" transfer-ownership="none">
+              <type name="HotkeyProfile" c:type="IBusHotkeyProfile*"/>
+            </parameter>
+            <parameter name="event" transfer-ownership="none">
+              <type name="GLib.Quark" c:type="GQuark"/>
+            </parameter>
+            <parameter name="user_data" transfer-ownership="none" closure="2">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+    </record>
+    <constant name="Hstroke" value="673" c:type="IBUS_Hstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hyper_L" value="65517" c:type="IBUS_Hyper_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Hyper_R" value="65518" c:type="IBUS_Hyper_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="I" value="73" c:type="IBUS_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="INTERFACE_CONFIG"
+              value="org.freedesktop.IBus.Config"
+              c:type="IBUS_INTERFACE_CONFIG">
+      <doc xml:whitespace="preserve">D-Bus interface for IBus config.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="INTERFACE_ENGINE"
+              value="org.freedesktop.IBus.Engine"
+              c:type="IBUS_INTERFACE_ENGINE">
+      <doc xml:whitespace="preserve">D-Bus interface for IBus engine.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="INTERFACE_FACTORY"
+              value="org.freedesktop.IBus.Factory"
+              c:type="IBUS_INTERFACE_FACTORY">
+      <doc xml:whitespace="preserve">D-Bus interface for IBus factory.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="INTERFACE_IBUS"
+              value="org.freedesktop.IBus"
+              c:type="IBUS_INTERFACE_IBUS">
+      <doc xml:whitespace="preserve">D-Bus interface for IBus.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="INTERFACE_INPUT_CONTEXT"
+              value="org.freedesktop.IBus.InputContext"
+              c:type="IBUS_INTERFACE_INPUT_CONTEXT">
+      <doc xml:whitespace="preserve">D-Bus interface for IBus input context.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="INTERFACE_NOTIFICATIONS"
+              value="org.freedesktop.IBus.Notifications"
+              c:type="IBUS_INTERFACE_NOTIFICATIONS">
+      <doc xml:whitespace="preserve">D-Bus interface for IBus notifications.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="INTERFACE_PANEL"
+              value="org.freedesktop.IBus.Panel"
+              c:type="IBUS_INTERFACE_PANEL">
+      <doc xml:whitespace="preserve">D-Bus interface for IBus panel.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="ISO_Center_Object"
+              value="65075"
+              c:type="IBUS_ISO_Center_Object">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Continuous_Underline"
+              value="65072"
+              c:type="IBUS_ISO_Continuous_Underline">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Discontinuous_Underline"
+              value="65073"
+              c:type="IBUS_ISO_Discontinuous_Underline">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Emphasize" value="65074" c:type="IBUS_ISO_Emphasize">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Enter" value="65076" c:type="IBUS_ISO_Enter">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Fast_Cursor_Down"
+              value="65071"
+              c:type="IBUS_ISO_Fast_Cursor_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Fast_Cursor_Left"
+              value="65068"
+              c:type="IBUS_ISO_Fast_Cursor_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Fast_Cursor_Right"
+              value="65069"
+              c:type="IBUS_ISO_Fast_Cursor_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Fast_Cursor_Up"
+              value="65070"
+              c:type="IBUS_ISO_Fast_Cursor_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_First_Group"
+              value="65036"
+              c:type="IBUS_ISO_First_Group">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_First_Group_Lock"
+              value="65037"
+              c:type="IBUS_ISO_First_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Group_Latch"
+              value="65030"
+              c:type="IBUS_ISO_Group_Latch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Group_Lock" value="65031" c:type="IBUS_ISO_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Group_Shift"
+              value="65406"
+              c:type="IBUS_ISO_Group_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Last_Group" value="65038" c:type="IBUS_ISO_Last_Group">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Last_Group_Lock"
+              value="65039"
+              c:type="IBUS_ISO_Last_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Left_Tab" value="65056" c:type="IBUS_ISO_Left_Tab">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level2_Latch"
+              value="65026"
+              c:type="IBUS_ISO_Level2_Latch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level3_Latch"
+              value="65028"
+              c:type="IBUS_ISO_Level3_Latch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level3_Lock"
+              value="65029"
+              c:type="IBUS_ISO_Level3_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level3_Shift"
+              value="65027"
+              c:type="IBUS_ISO_Level3_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level5_Latch"
+              value="65042"
+              c:type="IBUS_ISO_Level5_Latch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level5_Lock"
+              value="65043"
+              c:type="IBUS_ISO_Level5_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Level5_Shift"
+              value="65041"
+              c:type="IBUS_ISO_Level5_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Lock" value="65025" c:type="IBUS_ISO_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Move_Line_Down"
+              value="65058"
+              c:type="IBUS_ISO_Move_Line_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Move_Line_Up"
+              value="65057"
+              c:type="IBUS_ISO_Move_Line_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Next_Group" value="65032" c:type="IBUS_ISO_Next_Group">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Next_Group_Lock"
+              value="65033"
+              c:type="IBUS_ISO_Next_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Partial_Line_Down"
+              value="65060"
+              c:type="IBUS_ISO_Partial_Line_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Partial_Line_Up"
+              value="65059"
+              c:type="IBUS_ISO_Partial_Line_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Partial_Space_Left"
+              value="65061"
+              c:type="IBUS_ISO_Partial_Space_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Partial_Space_Right"
+              value="65062"
+              c:type="IBUS_ISO_Partial_Space_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Prev_Group" value="65034" c:type="IBUS_ISO_Prev_Group">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Prev_Group_Lock"
+              value="65035"
+              c:type="IBUS_ISO_Prev_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Release_Both_Margins"
+              value="65067"
+              c:type="IBUS_ISO_Release_Both_Margins">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Release_Margin_Left"
+              value="65065"
+              c:type="IBUS_ISO_Release_Margin_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Release_Margin_Right"
+              value="65066"
+              c:type="IBUS_ISO_Release_Margin_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Set_Margin_Left"
+              value="65063"
+              c:type="IBUS_ISO_Set_Margin_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ISO_Set_Margin_Right"
+              value="65064"
+              c:type="IBUS_ISO_Set_Margin_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Iabovedot" value="681" c:type="IBUS_Iabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Iacute" value="205" c:type="IBUS_Iacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ibelowdot" value="16785098" c:type="IBUS_Ibelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ibreve" value="16777516" c:type="IBUS_Ibreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Icircumflex" value="206" c:type="IBUS_Icircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Idiaeresis" value="207" c:type="IBUS_Idiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Igrave" value="204" c:type="IBUS_Igrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ihook" value="16785096" c:type="IBUS_Ihook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Imacron" value="975" c:type="IBUS_Imacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="InputContext"
+           c:symbol-prefix="input_context"
+           c:type="IBusInputContext"
+           parent="Proxy"
+           glib:type-name="IBusInputContext"
+           glib:get-type="ibus_input_context_get_type"
+           glib:type-struct="InputContextClass">
+      <doc xml:whitespace="preserve">An IBusInputContext is a proxy object of BusInputContext,
+which manages the context for input methods that supports
+text input in various natural languages.
+
+Clients call the IBusInputContext to invoke BusInputContext,
+through which invokes IBusEngine.</doc>
+      <implements name="Gio.AsyncInitable"/>
+      <implements name="Gio.DBusInterface"/>
+      <implements name="Gio.Initable"/>
+      <constructor name="new" c:identifier="ibus_input_context_new" throws="1">
+        <doc xml:whitespace="preserve">New an IBusInputContext.</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A newly allocated IBusInputContext.</doc>
+          <type name="InputContext" c:type="IBusInputContext*"/>
+        </return-value>
+        <parameters>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The path to the object that emitting the signal.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_async_finish"
+                   c:identifier="ibus_input_context_new_async_finish"
+                   throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_input_context_new_async().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A newly allocated #IBusInputContext.</doc>
+          <type name="InputContext" c:type="IBusInputContext*"/>
+        </return-value>
+        <parameters>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback pass to ibus_input_context_new_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="get_input_context"
+                c:identifier="ibus_input_context_get_input_context">
+        <doc xml:whitespace="preserve">Gets an existing IBusInputContext.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">An existing #IBusInputContext.</doc>
+          <type name="InputContext" c:type="IBusInputContext*"/>
+        </return-value>
+        <parameters>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The path to the object that emitting the signal.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_input_context_async"
+                c:identifier="ibus_input_context_get_input_context_async">
+        <doc xml:whitespace="preserve">Get an existing #IBusInputContext asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The path to the object that emitting the signal.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied. The callback should not be %NULL.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="get_input_context_async_finish"
+                c:identifier="ibus_input_context_get_input_context_async_finish"
+                throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_input_contex_get_input_context_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">An existing #IBusInputContext.</doc>
+          <type name="InputContext" c:type="IBusInputContext*"/>
+        </return-value>
+        <parameters>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback pass to ibus_input_context_get_input_context_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <function name="new_async" c:identifier="ibus_input_context_new_async">
+        <doc xml:whitespace="preserve">New an #IBusInputContext asynchronously.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The path to the object that emitting the signal.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="4">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied. The callback should not be %NULL.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="cancel_hand_writing"
+              c:identifier="ibus_input_context_cancel_hand_writing">
+        <doc xml:whitespace="preserve">Clear handwriting stroke(s) in the current input method engine.
+
+see_also: #IBusEngine::cancel-hand-writing</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="n_strokes" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The number of strokes to be removed. Pass 0 to remove all.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="focus_in" c:identifier="ibus_input_context_focus_in">
+        <doc xml:whitespace="preserve">Invoked when the client application get focus. An asynchronous IPC will be performed.
+
+see_also: #IBusEngine::focus_in.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="focus_out" c:identifier="ibus_input_context_focus_out">
+        <doc xml:whitespace="preserve">Invoked when the client application get focus. An asynchronous IPC will be performed.
+
+see_also: #IBusEngine::focus_out.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_engine" c:identifier="ibus_input_context_get_engine">
+        <doc xml:whitespace="preserve">Returns an IME engine description for the context.
+A synchronous IPC will be performed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">An IME engine description for the context, or NULL.</doc>
+          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_engine_async"
+              c:identifier="ibus_input_context_get_engine_async">
+        <doc xml:whitespace="preserve">An asynchronous IPC will be performed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A #GCancellable or %NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="3">
+            <doc xml:whitespace="preserve">A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_engine_async_finish"
+              c:identifier="ibus_input_context_get_engine_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_input_context_get_engine_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">An IME engine description for the context, or %NULL.</doc>
+          <type name="EngineDesc" c:type="IBusEngineDesc*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GAsyncResult obtained from the #GAsyncReadyCallback passed to ibus_input_context_get_engine_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="needs_surrounding_text"
+              c:identifier="ibus_input_context_needs_surrounding_text">
+        <doc xml:whitespace="preserve">Check whether the current engine requires surrounding-text.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if surrounding-text is needed by the current engine; %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="process_hand_writing_event"
+              c:identifier="ibus_input_context_process_hand_writing_event">
+        <doc xml:whitespace="preserve">Pass a handwriting stroke to an input method engine.
+
+In this API, a coordinate (0.0, 0.0) represents the top-left corner of an area for
+handwriting, and (1.0, 1.0) does the bottom-right. Therefore, for example, if
+a user writes a character 'L', the array would be something like [0.0, 0.0, 0.0, 1.0, 1.0, 1.0]
+and coordinates_len would be 6.
+
+The function is usually called when a user releases the mouse button in a hand
+writing area.
+
+see_also: #IBusEngine::process-hand-writing-event</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="coordinates" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An array of gdouble (0.0 to 1.0) which represents a stroke (i.e. [x1, y1, x2, y2, x3, y3, ...]).</doc>
+            <type name="gdouble" c:type="const gdouble*"/>
+          </parameter>
+          <parameter name="coordinates_len" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The number of elements in the array. The number should be even and &gt;= 4.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="process_key_event"
+              c:identifier="ibus_input_context_process_key_event">
+        <doc xml:whitespace="preserve">Pass the key event to input method engine and wait for the reply from ibus (i.e. synchronous IPC).
+
+See also: ibus_input_context_process_key_event_async()</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE for successfully process the key; FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key symbol of a key event.</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="keycode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Keycode of a key event.</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key modifier flags.</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="process_key_event_async"
+              c:identifier="ibus_input_context_process_key_event_async">
+        <doc xml:whitespace="preserve">Pass the key event to input method engine.
+
+Key symbols are characters/symbols produced by key press, for example,
+pressing "s" generates key symbol "s"; pressing shift-"s" generates key symbol "S".
+Same key on keyboard may produce different key symbols on different keyboard layout.
+e.g., "s" key on QWERTY keyboard produces "o" in DVORAK layout.
+
+Unlike key symbol, keycode is only determined by the location of the key, and
+irrelevant of the keyboard layout.
+
+Briefly speaking, input methods that expect certain keyboard layout should use
+keycode; otherwise keyval is sufficient.
+For example, Chewing, Cangjie, Wubi expect an en-US QWERTY keyboard, these should
+use keycode; while pinyin can rely on keyval only, as it is less sensitive to
+the keyboard layout change, DVORAK users can still use DVORAK layout to input pinyin.
+
+Use ibus_keymap_lookup_keysym() to convert keycode to keysym in given keyboard layout.
+
+see_also: #IBusEngine::process-key-event</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key symbol of a key event.</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="keycode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Keycode of a key event.</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key modifier flags.</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="timeout_msec" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The timeout in milliseconds or -1 to use the default timeout.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="cancellable"
+                     transfer-ownership="none"
+                     allow-none="1">
+            <doc xml:whitespace="preserve">A GCancellable or NULL.</doc>
+            <type name="Gio.Cancellable" c:type="GCancellable*"/>
+          </parameter>
+          <parameter name="callback"
+                     transfer-ownership="none"
+                     allow-none="1"
+                     scope="async"
+                     closure="6">
+            <doc xml:whitespace="preserve">A GAsyncReadyCallback to call when the request is satisfied or NULL if you don't care about the result of the method invocation.</doc>
+            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+          </parameter>
+          <parameter name="user_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The data to pass to callback.</doc>
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="process_key_event_async_finish"
+              c:identifier="ibus_input_context_process_key_event_async_finish"
+              throws="1">
+        <doc xml:whitespace="preserve">Finishes an operation started with ibus_input_context_process_key_event_async().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the key event is processed; %FALSE otherwise or some errors happen and the @error will be set.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="res" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A GAsyncResult obtained from the GAsyncReadyCallback passed to ibus_input_context_process_key_event_async().</doc>
+            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="property_activate"
+              c:identifier="ibus_input_context_property_activate">
+        <doc xml:whitespace="preserve">Activate the property asynchronously.
+
+See also: #IBusEngine::property_activate</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="prop_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A property name (e.g. "InputMode.WideLatin")</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A status of the property (e.g. PROP_STATE_CHECKED)</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="reset" c:identifier="ibus_input_context_reset">
+        <doc xml:whitespace="preserve">Invoked when the IME is reset. An asynchronous IPC will be performed.
+
+see_also: #IBusEngine::reset</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_capabilities"
+              c:identifier="ibus_input_context_set_capabilities">
+        <doc xml:whitespace="preserve">Set the capabilities flags of client application asynchronously.
+When IBUS_CAP_FOCUS is not set, IBUS_CAP_PREEDIT_TEXT, IBUS_CAP_AUXILIARY_TEXT, IBUS_CAP_LOOKUP_TABLE, and IBUS_CAP_PROPERTY have to be all set.
+The panel component does nothing for an application that doesn't support focus.
+
+see_also: #IBusEngine::set-capabilities</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="capabilities" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Capabilities flags of IBusEngine, see #IBusCapabilite</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_content_type"
+              c:identifier="ibus_input_context_set_content_type">
+        <doc xml:whitespace="preserve">Set content-type (primary purpose and hints) of the context.  This
+information is particularly useful to implement intelligent
+behavior in engines, such as automatic input-mode switch and text
+prediction.  For example, to restrict input to numbers, the client
+can call this function with @purpose set to
+#IBUS_INPUT_PURPOSE_NUMBER.
+
+See also: #IBusEngine::set-content-type</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="purpose" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Primary purpose of the input context, as an #IBusInputPurpose.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="hints" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Hints that augment @purpose, as an #IBusInputHints.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_location"
+              c:identifier="ibus_input_context_set_cursor_location">
+        <doc xml:whitespace="preserve">Set the cursor location of IBus input context asynchronously.
+
+see_also: #IBusEngine::set-cursor-location</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <doc xml:whitespace="preserve">X coordinate of the cursor.</doc>
+            <type name="gint32" c:type="gint32"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Y coordinate of the cursor.</doc>
+            <type name="gint32" c:type="gint32"/>
+          </parameter>
+          <parameter name="w" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Width of the cursor.</doc>
+            <type name="gint32" c:type="gint32"/>
+          </parameter>
+          <parameter name="h" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Height of the cursor.</doc>
+            <type name="gint32" c:type="gint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_engine" c:identifier="ibus_input_context_set_engine">
+        <doc xml:whitespace="preserve">Invoked when the IME engine is changed.
+An asynchronous IPC will be performed.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A name of the engine.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_surrounding_text"
+              c:identifier="ibus_input_context_set_surrounding_text">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="context" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusInputContext.</doc>
+            <type name="InputContext" c:type="IBusInputContext*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusText surrounding the current cursor on the application.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Current cursor position in characters in @text.</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+          <parameter name="anchor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Anchor position of selection in @text.</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Proxy" c:type="IBusProxy"/>
+      </field>
+      <glib:signal name="commit-text" when="last">
+        <doc xml:whitespace="preserve">Emitted when the text is going to be committed.
+
+(Note: The text object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use g_object_ref_sink()
+ to get the ownership of the object.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Text to be committed.</doc>
+            <type name="Text"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="cursor-down-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted to select next candidate of lookup table.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="cursor-up-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted to select previous candidate of lookup table.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="delete-surrounding-text" when="last">
+        <doc xml:whitespace="preserve">Emitted to delete surrounding text event from IME to client of IME.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the character offset from the cursor position of the text to be deleted. A negative value indicates a position before the cursor.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="n_chars" transfer-ownership="none">
+            <doc xml:whitespace="preserve">the number of characters to be deleted.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="disabled" when="last">
+        <doc xml:whitespace="preserve">Emitted when an IME is disabled.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="enabled" when="last">
+        <doc xml:whitespace="preserve">Emitted when an IME is enabled.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="forward-key-event" when="last">
+        <doc xml:whitespace="preserve">Emitted to forward key event from IME to client of IME.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="keyval" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key symbol of the keyboard event.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="keycode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key symbol of the keyboard event.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="modifiers" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Key modifier flags.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="hide-auxiliary-text" when="last">
+        <doc xml:whitespace="preserve">Emitted to hide auxiliary text.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="hide-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted to hide lookup table.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="hide-preedit-text" when="last">
+        <doc xml:whitespace="preserve">Emitted to hide preedit text.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="page-down-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted to view the next page of lookup table.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="page-up-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted to view the previous page of lookup table.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="register-properties" when="last">
+        <doc xml:whitespace="preserve">Emitted to register the properties in @props.
+
+(Note: The props object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use g_object_ref_sink()
+ to get the ownership of the object.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="props" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPropList that contains properties.</doc>
+            <type name="PropList"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="show-auxiliary-text" when="last">
+        <doc xml:whitespace="preserve">Emitted to show auxiliary text.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="show-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted to show lookup table.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="show-preedit-text" when="last">
+        <doc xml:whitespace="preserve">Emitted to show preedit text.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="update-auxiliary-text" when="last">
+        <doc xml:whitespace="preserve">Emitted to hide auxilary text.
+
+(Note: The text object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use g_object_ref_sink()
+ to get the ownership of the object.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Text"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="update-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted to update lookup table.
+
+(Note: The table object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use g_object_ref_sink()
+ to get the ownership of the object.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable to be updated.</doc>
+            <type name="LookupTable"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the table should be visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="update-preedit-text" when="last">
+        <doc xml:whitespace="preserve">Emitted to update preedit text.
+
+(Note: The text object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use g_object_ref_sink()
+ to get the ownership of the object.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Text to be updated.</doc>
+            <type name="Text"/>
+          </parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Cursor position.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the update is visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="update-property" when="last">
+        <doc xml:whitespace="preserve">Emitted to update the property @prop.
+
+(Note: The prop object is floating, and it will be released after the signal.
+ If singal handler want to keep the object, the handler should use g_object_ref_sink()
+ to get the ownership of the object.)</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The IBusProperty to be updated.</doc>
+            <type name="Property"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="InputContextClass"
+            c:type="IBusInputContextClass"
+            glib:is-gtype-struct-for="InputContext">
+      <field name="parent">
+        <type name="ProxyClass" c:type="IBusProxyClass"/>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="24">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <bitfield name="InputHints"
+              glib:type-name="IBusInputHints"
+              glib:get-type="ibus_input_hints_get_type"
+              c:type="IBusInputHints">
+      <doc xml:whitespace="preserve">Describes hints that might be taken into account by engines.  Note
+that engines may already tailor their behaviour according to the
+#IBusInputPurpose of the entry.</doc>
+      <member name="none"
+              value="0"
+              c:identifier="IBUS_INPUT_HINT_NONE"
+              glib:nick="none">
+        <doc xml:whitespace="preserve">No special behaviour suggested</doc>
+      </member>
+      <member name="spellcheck"
+              value="1"
+              c:identifier="IBUS_INPUT_HINT_SPELLCHECK"
+              glib:nick="spellcheck">
+        <doc xml:whitespace="preserve">Suggest checking for typos</doc>
+      </member>
+      <member name="no_spellcheck"
+              value="2"
+              c:identifier="IBUS_INPUT_HINT_NO_SPELLCHECK"
+              glib:nick="no-spellcheck">
+        <doc xml:whitespace="preserve">Suggest not checking for typos</doc>
+      </member>
+      <member name="word_completion"
+              value="4"
+              c:identifier="IBUS_INPUT_HINT_WORD_COMPLETION"
+              glib:nick="word-completion">
+        <doc xml:whitespace="preserve">Suggest word completion</doc>
+      </member>
+      <member name="lowercase"
+              value="8"
+              c:identifier="IBUS_INPUT_HINT_LOWERCASE"
+              glib:nick="lowercase">
+        <doc xml:whitespace="preserve">Suggest to convert all text to lowercase</doc>
+      </member>
+      <member name="uppercase_chars"
+              value="16"
+              c:identifier="IBUS_INPUT_HINT_UPPERCASE_CHARS"
+              glib:nick="uppercase-chars">
+        <doc xml:whitespace="preserve">Suggest to capitalize all text</doc>
+      </member>
+      <member name="uppercase_words"
+              value="32"
+              c:identifier="IBUS_INPUT_HINT_UPPERCASE_WORDS"
+              glib:nick="uppercase-words">
+        <doc xml:whitespace="preserve">Suggest to capitalize the first character of each word</doc>
+      </member>
+      <member name="uppercase_sentences"
+              value="64"
+              c:identifier="IBUS_INPUT_HINT_UPPERCASE_SENTENCES"
+              glib:nick="uppercase-sentences">
+        <doc xml:whitespace="preserve">Suggest to capitalize the first word of each sentence</doc>
+      </member>
+      <member name="inhibit_osk"
+              value="128"
+              c:identifier="IBUS_INPUT_HINT_INHIBIT_OSK"
+              glib:nick="inhibit-osk">
+        <doc xml:whitespace="preserve">Suggest to not show an onscreen keyboard (e.g for a calculator that already has all the keys).</doc>
+      </member>
+    </bitfield>
+    <enumeration name="InputPurpose"
+                 glib:type-name="IBusInputPurpose"
+                 glib:get-type="ibus_input_purpose_get_type"
+                 c:type="IBusInputPurpose">
+      <doc xml:whitespace="preserve">Describes primary purpose of the input context.  This information
+is particularly useful to implement intelligent behavior in
+engines, such as automatic input-mode switch and text prediction.
+
+This enumeration may be extended in the future; engines should
+interpret unknown values as 'free form'.</doc>
+      <member name="free_form"
+              value="0"
+              c:identifier="IBUS_INPUT_PURPOSE_FREE_FORM"
+              glib:nick="free-form">
+        <doc xml:whitespace="preserve">Allow any character</doc>
+      </member>
+      <member name="alpha"
+              value="1"
+              c:identifier="IBUS_INPUT_PURPOSE_ALPHA"
+              glib:nick="alpha">
+        <doc xml:whitespace="preserve">Allow only alphabetic characters</doc>
+      </member>
+      <member name="digits"
+              value="2"
+              c:identifier="IBUS_INPUT_PURPOSE_DIGITS"
+              glib:nick="digits">
+        <doc xml:whitespace="preserve">Allow only digits</doc>
+      </member>
+      <member name="number"
+              value="3"
+              c:identifier="IBUS_INPUT_PURPOSE_NUMBER"
+              glib:nick="number">
+        <doc xml:whitespace="preserve">Edited field expects numbers</doc>
+      </member>
+      <member name="phone"
+              value="4"
+              c:identifier="IBUS_INPUT_PURPOSE_PHONE"
+              glib:nick="phone">
+        <doc xml:whitespace="preserve">Edited field expects phone number</doc>
+      </member>
+      <member name="url"
+              value="5"
+              c:identifier="IBUS_INPUT_PURPOSE_URL"
+              glib:nick="url">
+        <doc xml:whitespace="preserve">Edited field expects URL</doc>
+      </member>
+      <member name="email"
+              value="6"
+              c:identifier="IBUS_INPUT_PURPOSE_EMAIL"
+              glib:nick="email">
+        <doc xml:whitespace="preserve">Edited field expects email address</doc>
+      </member>
+      <member name="name"
+              value="7"
+              c:identifier="IBUS_INPUT_PURPOSE_NAME"
+              glib:nick="name">
+        <doc xml:whitespace="preserve">Edited field expects the name of a person</doc>
+      </member>
+      <member name="password"
+              value="8"
+              c:identifier="IBUS_INPUT_PURPOSE_PASSWORD"
+              glib:nick="password">
+        <doc xml:whitespace="preserve">Like @IBUS_INPUT_PURPOSE_FREE_FORM, but characters are hidden</doc>
+      </member>
+      <member name="pin"
+              value="9"
+              c:identifier="IBUS_INPUT_PURPOSE_PIN"
+              glib:nick="pin">
+        <doc xml:whitespace="preserve">Like @IBUS_INPUT_PURPOSE_DIGITS, but characters are hidden</doc>
+      </member>
+    </enumeration>
+    <constant name="Insert" value="65379" c:type="IBUS_Insert">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Iogonek" value="967" c:type="IBUS_Iogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Itilde" value="933" c:type="IBUS_Itilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="J" value="74" c:type="IBUS_J">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Jcircumflex" value="684" c:type="IBUS_Jcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="K" value="75" c:type="IBUS_K">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_0" value="48" c:type="IBUS_KEY_0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_1" value="49" c:type="IBUS_KEY_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_2" value="50" c:type="IBUS_KEY_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3" value="51" c:type="IBUS_KEY_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_AltCursor"
+              value="64784"
+              c:type="IBUS_KEY_3270_AltCursor">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Attn" value="64782" c:type="IBUS_KEY_3270_Attn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_BackTab"
+              value="64773"
+              c:type="IBUS_KEY_3270_BackTab">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_ChangeScreen"
+              value="64793"
+              c:type="IBUS_KEY_3270_ChangeScreen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Copy" value="64789" c:type="IBUS_KEY_3270_Copy">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_CursorBlink"
+              value="64783"
+              c:type="IBUS_KEY_3270_CursorBlink">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_CursorSelect"
+              value="64796"
+              c:type="IBUS_KEY_3270_CursorSelect">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_DeleteWord"
+              value="64794"
+              c:type="IBUS_KEY_3270_DeleteWord">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Duplicate"
+              value="64769"
+              c:type="IBUS_KEY_3270_Duplicate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Enter" value="64798" c:type="IBUS_KEY_3270_Enter">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_EraseEOF"
+              value="64774"
+              c:type="IBUS_KEY_3270_EraseEOF">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_EraseInput"
+              value="64775"
+              c:type="IBUS_KEY_3270_EraseInput">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_ExSelect"
+              value="64795"
+              c:type="IBUS_KEY_3270_ExSelect">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_FieldMark"
+              value="64770"
+              c:type="IBUS_KEY_3270_FieldMark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Ident" value="64787" c:type="IBUS_KEY_3270_Ident">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Jump" value="64786" c:type="IBUS_KEY_3270_Jump">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_KeyClick"
+              value="64785"
+              c:type="IBUS_KEY_3270_KeyClick">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Left2" value="64772" c:type="IBUS_KEY_3270_Left2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PA1" value="64778" c:type="IBUS_KEY_3270_PA1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PA2" value="64779" c:type="IBUS_KEY_3270_PA2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PA3" value="64780" c:type="IBUS_KEY_3270_PA3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Play" value="64790" c:type="IBUS_KEY_3270_Play">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_PrintScreen"
+              value="64797"
+              c:type="IBUS_KEY_3270_PrintScreen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Quit" value="64777" c:type="IBUS_KEY_3270_Quit">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Record"
+              value="64792"
+              c:type="IBUS_KEY_3270_Record">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Reset" value="64776" c:type="IBUS_KEY_3270_Reset">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Right2"
+              value="64771"
+              c:type="IBUS_KEY_3270_Right2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Rule" value="64788" c:type="IBUS_KEY_3270_Rule">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Setup" value="64791" c:type="IBUS_KEY_3270_Setup">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_3270_Test" value="64781" c:type="IBUS_KEY_3270_Test">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_4" value="52" c:type="IBUS_KEY_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_5" value="53" c:type="IBUS_KEY_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_6" value="54" c:type="IBUS_KEY_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_7" value="55" c:type="IBUS_KEY_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_8" value="56" c:type="IBUS_KEY_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_9" value="57" c:type="IBUS_KEY_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_A" value="65" c:type="IBUS_KEY_A">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AE" value="198" c:type="IBUS_KEY_AE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Aacute" value="193" c:type="IBUS_KEY_Aacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abelowdot"
+              value="16785056"
+              c:type="IBUS_KEY_Abelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abreve" value="451" c:type="IBUS_KEY_Abreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abreveacute"
+              value="16785070"
+              c:type="IBUS_KEY_Abreveacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevebelowdot"
+              value="16785078"
+              c:type="IBUS_KEY_Abrevebelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevegrave"
+              value="16785072"
+              c:type="IBUS_KEY_Abrevegrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevehook"
+              value="16785074"
+              c:type="IBUS_KEY_Abrevehook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Abrevetilde"
+              value="16785076"
+              c:type="IBUS_KEY_Abrevetilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AccessX_Enable"
+              value="65136"
+              c:type="IBUS_KEY_AccessX_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AccessX_Feedback_Enable"
+              value="65137"
+              c:type="IBUS_KEY_AccessX_Feedback_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflex" value="194" c:type="IBUS_KEY_Acircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexacute"
+              value="16785060"
+              c:type="IBUS_KEY_Acircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexbelowdot"
+              value="16785068"
+              c:type="IBUS_KEY_Acircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexgrave"
+              value="16785062"
+              c:type="IBUS_KEY_Acircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflexhook"
+              value="16785064"
+              c:type="IBUS_KEY_Acircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Acircumflextilde"
+              value="16785066"
+              c:type="IBUS_KEY_Acircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Adiaeresis" value="196" c:type="IBUS_KEY_Adiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Agrave" value="192" c:type="IBUS_KEY_Agrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ahook" value="16785058" c:type="IBUS_KEY_Ahook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Alt_L" value="65513" c:type="IBUS_KEY_Alt_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Alt_R" value="65514" c:type="IBUS_KEY_Alt_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Amacron" value="960" c:type="IBUS_KEY_Amacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Aogonek" value="417" c:type="IBUS_KEY_Aogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_0" value="16778848" c:type="IBUS_KEY_Arabic_0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_1" value="16778849" c:type="IBUS_KEY_Arabic_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_2" value="16778850" c:type="IBUS_KEY_Arabic_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_3" value="16778851" c:type="IBUS_KEY_Arabic_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_4" value="16778852" c:type="IBUS_KEY_Arabic_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_5" value="16778853" c:type="IBUS_KEY_Arabic_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_6" value="16778854" c:type="IBUS_KEY_Arabic_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_7" value="16778855" c:type="IBUS_KEY_Arabic_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_8" value="16778856" c:type="IBUS_KEY_Arabic_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_9" value="16778857" c:type="IBUS_KEY_Arabic_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ain" value="1497" c:type="IBUS_KEY_Arabic_ain">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_alef"
+              value="1479"
+              c:type="IBUS_KEY_Arabic_alef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_alefmaksura"
+              value="1513"
+              c:type="IBUS_KEY_Arabic_alefmaksura">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_beh" value="1480" c:type="IBUS_KEY_Arabic_beh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_comma"
+              value="1452"
+              c:type="IBUS_KEY_Arabic_comma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_dad" value="1494" c:type="IBUS_KEY_Arabic_dad">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_dal" value="1487" c:type="IBUS_KEY_Arabic_dal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_damma"
+              value="1519"
+              c:type="IBUS_KEY_Arabic_damma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_dammatan"
+              value="1516"
+              c:type="IBUS_KEY_Arabic_dammatan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ddal"
+              value="16778888"
+              c:type="IBUS_KEY_Arabic_ddal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_farsi_yeh"
+              value="16778956"
+              c:type="IBUS_KEY_Arabic_farsi_yeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_fatha"
+              value="1518"
+              c:type="IBUS_KEY_Arabic_fatha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_fathatan"
+              value="1515"
+              c:type="IBUS_KEY_Arabic_fathatan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_feh" value="1505" c:type="IBUS_KEY_Arabic_feh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_fullstop"
+              value="16778964"
+              c:type="IBUS_KEY_Arabic_fullstop">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_gaf"
+              value="16778927"
+              c:type="IBUS_KEY_Arabic_gaf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ghain"
+              value="1498"
+              c:type="IBUS_KEY_Arabic_ghain">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ha" value="1511" c:type="IBUS_KEY_Arabic_ha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hah" value="1485" c:type="IBUS_KEY_Arabic_hah">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamza"
+              value="1473"
+              c:type="IBUS_KEY_Arabic_hamza">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamza_above"
+              value="16778836"
+              c:type="IBUS_KEY_Arabic_hamza_above">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamza_below"
+              value="16778837"
+              c:type="IBUS_KEY_Arabic_hamza_below">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaonalef"
+              value="1475"
+              c:type="IBUS_KEY_Arabic_hamzaonalef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaonwaw"
+              value="1476"
+              c:type="IBUS_KEY_Arabic_hamzaonwaw">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaonyeh"
+              value="1478"
+              c:type="IBUS_KEY_Arabic_hamzaonyeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_hamzaunderalef"
+              value="1477"
+              c:type="IBUS_KEY_Arabic_hamzaunderalef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_heh" value="1511" c:type="IBUS_KEY_Arabic_heh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_heh_doachashmee"
+              value="16778942"
+              c:type="IBUS_KEY_Arabic_heh_doachashmee">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_heh_goal"
+              value="16778945"
+              c:type="IBUS_KEY_Arabic_heh_goal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_jeem"
+              value="1484"
+              c:type="IBUS_KEY_Arabic_jeem">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_jeh"
+              value="16778904"
+              c:type="IBUS_KEY_Arabic_jeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_kaf" value="1507" c:type="IBUS_KEY_Arabic_kaf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_kasra"
+              value="1520"
+              c:type="IBUS_KEY_Arabic_kasra">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_kasratan"
+              value="1517"
+              c:type="IBUS_KEY_Arabic_kasratan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_keheh"
+              value="16778921"
+              c:type="IBUS_KEY_Arabic_keheh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_khah"
+              value="1486"
+              c:type="IBUS_KEY_Arabic_khah">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_lam" value="1508" c:type="IBUS_KEY_Arabic_lam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_madda_above"
+              value="16778835"
+              c:type="IBUS_KEY_Arabic_madda_above">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_maddaonalef"
+              value="1474"
+              c:type="IBUS_KEY_Arabic_maddaonalef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_meem"
+              value="1509"
+              c:type="IBUS_KEY_Arabic_meem">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_noon"
+              value="1510"
+              c:type="IBUS_KEY_Arabic_noon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_noon_ghunna"
+              value="16778938"
+              c:type="IBUS_KEY_Arabic_noon_ghunna">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_peh"
+              value="16778878"
+              c:type="IBUS_KEY_Arabic_peh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_percent"
+              value="16778858"
+              c:type="IBUS_KEY_Arabic_percent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_qaf" value="1506" c:type="IBUS_KEY_Arabic_qaf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_question_mark"
+              value="1471"
+              c:type="IBUS_KEY_Arabic_question_mark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_ra" value="1489" c:type="IBUS_KEY_Arabic_ra">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_rreh"
+              value="16778897"
+              c:type="IBUS_KEY_Arabic_rreh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_sad" value="1493" c:type="IBUS_KEY_Arabic_sad">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_seen"
+              value="1491"
+              c:type="IBUS_KEY_Arabic_seen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_semicolon"
+              value="1467"
+              c:type="IBUS_KEY_Arabic_semicolon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_shadda"
+              value="1521"
+              c:type="IBUS_KEY_Arabic_shadda">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_sheen"
+              value="1492"
+              c:type="IBUS_KEY_Arabic_sheen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_sukun"
+              value="1522"
+              c:type="IBUS_KEY_Arabic_sukun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_superscript_alef"
+              value="16778864"
+              c:type="IBUS_KEY_Arabic_superscript_alef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_switch"
+              value="65406"
+              c:type="IBUS_KEY_Arabic_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tah" value="1495" c:type="IBUS_KEY_Arabic_tah">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tatweel"
+              value="1504"
+              c:type="IBUS_KEY_Arabic_tatweel">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tcheh"
+              value="16778886"
+              c:type="IBUS_KEY_Arabic_tcheh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_teh" value="1482" c:type="IBUS_KEY_Arabic_teh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tehmarbuta"
+              value="1481"
+              c:type="IBUS_KEY_Arabic_tehmarbuta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_thal"
+              value="1488"
+              c:type="IBUS_KEY_Arabic_thal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_theh"
+              value="1483"
+              c:type="IBUS_KEY_Arabic_theh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_tteh"
+              value="16778873"
+              c:type="IBUS_KEY_Arabic_tteh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_veh"
+              value="16778916"
+              c:type="IBUS_KEY_Arabic_veh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_waw" value="1512" c:type="IBUS_KEY_Arabic_waw">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_yeh" value="1514" c:type="IBUS_KEY_Arabic_yeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_yeh_baree"
+              value="16778962"
+              c:type="IBUS_KEY_Arabic_yeh_baree">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_zah" value="1496" c:type="IBUS_KEY_Arabic_zah">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Arabic_zain"
+              value="1490"
+              c:type="IBUS_KEY_Arabic_zain">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Aring" value="197" c:type="IBUS_KEY_Aring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_AT"
+              value="16778552"
+              c:type="IBUS_KEY_Armenian_AT">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_AYB"
+              value="16778545"
+              c:type="IBUS_KEY_Armenian_AYB">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_BEN"
+              value="16778546"
+              c:type="IBUS_KEY_Armenian_BEN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_CHA"
+              value="16778569"
+              c:type="IBUS_KEY_Armenian_CHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_DA"
+              value="16778548"
+              c:type="IBUS_KEY_Armenian_DA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_DZA"
+              value="16778561"
+              c:type="IBUS_KEY_Armenian_DZA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_E"
+              value="16778551"
+              c:type="IBUS_KEY_Armenian_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_FE"
+              value="16778582"
+              c:type="IBUS_KEY_Armenian_FE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_GHAT"
+              value="16778562"
+              c:type="IBUS_KEY_Armenian_GHAT">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_GIM"
+              value="16778547"
+              c:type="IBUS_KEY_Armenian_GIM">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_HI"
+              value="16778565"
+              c:type="IBUS_KEY_Armenian_HI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_HO"
+              value="16778560"
+              c:type="IBUS_KEY_Armenian_HO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_INI"
+              value="16778555"
+              c:type="IBUS_KEY_Armenian_INI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_JE"
+              value="16778571"
+              c:type="IBUS_KEY_Armenian_JE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_KE"
+              value="16778580"
+              c:type="IBUS_KEY_Armenian_KE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_KEN"
+              value="16778559"
+              c:type="IBUS_KEY_Armenian_KEN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_KHE"
+              value="16778557"
+              c:type="IBUS_KEY_Armenian_KHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_LYUN"
+              value="16778556"
+              c:type="IBUS_KEY_Armenian_LYUN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_MEN"
+              value="16778564"
+              c:type="IBUS_KEY_Armenian_MEN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_NU"
+              value="16778566"
+              c:type="IBUS_KEY_Armenian_NU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_O"
+              value="16778581"
+              c:type="IBUS_KEY_Armenian_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_PE"
+              value="16778570"
+              c:type="IBUS_KEY_Armenian_PE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_PYUR"
+              value="16778579"
+              c:type="IBUS_KEY_Armenian_PYUR">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_RA"
+              value="16778572"
+              c:type="IBUS_KEY_Armenian_RA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_RE"
+              value="16778576"
+              c:type="IBUS_KEY_Armenian_RE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_SE"
+              value="16778573"
+              c:type="IBUS_KEY_Armenian_SE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_SHA"
+              value="16778567"
+              c:type="IBUS_KEY_Armenian_SHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TCHE"
+              value="16778563"
+              c:type="IBUS_KEY_Armenian_TCHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TO"
+              value="16778553"
+              c:type="IBUS_KEY_Armenian_TO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TSA"
+              value="16778558"
+              c:type="IBUS_KEY_Armenian_TSA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TSO"
+              value="16778577"
+              c:type="IBUS_KEY_Armenian_TSO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_TYUN"
+              value="16778575"
+              c:type="IBUS_KEY_Armenian_TYUN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_VEV"
+              value="16778574"
+              c:type="IBUS_KEY_Armenian_VEV">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_VO"
+              value="16778568"
+              c:type="IBUS_KEY_Armenian_VO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_VYUN"
+              value="16778578"
+              c:type="IBUS_KEY_Armenian_VYUN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_YECH"
+              value="16778549"
+              c:type="IBUS_KEY_Armenian_YECH">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ZA"
+              value="16778550"
+              c:type="IBUS_KEY_Armenian_ZA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ZHE"
+              value="16778554"
+              c:type="IBUS_KEY_Armenian_ZHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_accent"
+              value="16778587"
+              c:type="IBUS_KEY_Armenian_accent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_amanak"
+              value="16778588"
+              c:type="IBUS_KEY_Armenian_amanak">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_apostrophe"
+              value="16778586"
+              c:type="IBUS_KEY_Armenian_apostrophe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_at"
+              value="16778600"
+              c:type="IBUS_KEY_Armenian_at">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ayb"
+              value="16778593"
+              c:type="IBUS_KEY_Armenian_ayb">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ben"
+              value="16778594"
+              c:type="IBUS_KEY_Armenian_ben">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_but"
+              value="16778589"
+              c:type="IBUS_KEY_Armenian_but">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_cha"
+              value="16778617"
+              c:type="IBUS_KEY_Armenian_cha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_da"
+              value="16778596"
+              c:type="IBUS_KEY_Armenian_da">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_dza"
+              value="16778609"
+              c:type="IBUS_KEY_Armenian_dza">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_e"
+              value="16778599"
+              c:type="IBUS_KEY_Armenian_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_exclam"
+              value="16778588"
+              c:type="IBUS_KEY_Armenian_exclam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_fe"
+              value="16778630"
+              c:type="IBUS_KEY_Armenian_fe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_full_stop"
+              value="16778633"
+              c:type="IBUS_KEY_Armenian_full_stop">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ghat"
+              value="16778610"
+              c:type="IBUS_KEY_Armenian_ghat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_gim"
+              value="16778595"
+              c:type="IBUS_KEY_Armenian_gim">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_hi"
+              value="16778613"
+              c:type="IBUS_KEY_Armenian_hi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ho"
+              value="16778608"
+              c:type="IBUS_KEY_Armenian_ho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_hyphen"
+              value="16778634"
+              c:type="IBUS_KEY_Armenian_hyphen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ini"
+              value="16778603"
+              c:type="IBUS_KEY_Armenian_ini">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_je"
+              value="16778619"
+              c:type="IBUS_KEY_Armenian_je">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ke"
+              value="16778628"
+              c:type="IBUS_KEY_Armenian_ke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ken"
+              value="16778607"
+              c:type="IBUS_KEY_Armenian_ken">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_khe"
+              value="16778605"
+              c:type="IBUS_KEY_Armenian_khe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ligature_ew"
+              value="16778631"
+              c:type="IBUS_KEY_Armenian_ligature_ew">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_lyun"
+              value="16778604"
+              c:type="IBUS_KEY_Armenian_lyun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_men"
+              value="16778612"
+              c:type="IBUS_KEY_Armenian_men">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_nu"
+              value="16778614"
+              c:type="IBUS_KEY_Armenian_nu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_o"
+              value="16778629"
+              c:type="IBUS_KEY_Armenian_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_paruyk"
+              value="16778590"
+              c:type="IBUS_KEY_Armenian_paruyk">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_pe"
+              value="16778618"
+              c:type="IBUS_KEY_Armenian_pe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_pyur"
+              value="16778627"
+              c:type="IBUS_KEY_Armenian_pyur">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_question"
+              value="16778590"
+              c:type="IBUS_KEY_Armenian_question">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_ra"
+              value="16778620"
+              c:type="IBUS_KEY_Armenian_ra">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_re"
+              value="16778624"
+              c:type="IBUS_KEY_Armenian_re">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_se"
+              value="16778621"
+              c:type="IBUS_KEY_Armenian_se">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_separation_mark"
+              value="16778589"
+              c:type="IBUS_KEY_Armenian_separation_mark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_sha"
+              value="16778615"
+              c:type="IBUS_KEY_Armenian_sha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_shesht"
+              value="16778587"
+              c:type="IBUS_KEY_Armenian_shesht">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tche"
+              value="16778611"
+              c:type="IBUS_KEY_Armenian_tche">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_to"
+              value="16778601"
+              c:type="IBUS_KEY_Armenian_to">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tsa"
+              value="16778606"
+              c:type="IBUS_KEY_Armenian_tsa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tso"
+              value="16778625"
+              c:type="IBUS_KEY_Armenian_tso">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_tyun"
+              value="16778623"
+              c:type="IBUS_KEY_Armenian_tyun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_verjaket"
+              value="16778633"
+              c:type="IBUS_KEY_Armenian_verjaket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_vev"
+              value="16778622"
+              c:type="IBUS_KEY_Armenian_vev">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_vo"
+              value="16778616"
+              c:type="IBUS_KEY_Armenian_vo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_vyun"
+              value="16778626"
+              c:type="IBUS_KEY_Armenian_vyun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_yech"
+              value="16778597"
+              c:type="IBUS_KEY_Armenian_yech">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_yentamna"
+              value="16778634"
+              c:type="IBUS_KEY_Armenian_yentamna">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_za"
+              value="16778598"
+              c:type="IBUS_KEY_Armenian_za">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Armenian_zhe"
+              value="16778602"
+              c:type="IBUS_KEY_Armenian_zhe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Atilde" value="195" c:type="IBUS_KEY_Atilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_AudibleBell_Enable"
+              value="65146"
+              c:type="IBUS_KEY_AudibleBell_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_B" value="66" c:type="IBUS_KEY_B">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Babovedot"
+              value="16784898"
+              c:type="IBUS_KEY_Babovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BackSpace" value="65288" c:type="IBUS_KEY_BackSpace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Begin" value="65368" c:type="IBUS_KEY_Begin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_BounceKeys_Enable"
+              value="65140"
+              c:type="IBUS_KEY_BounceKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Break" value="65387" c:type="IBUS_KEY_Break">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Byelorussian_SHORTU"
+              value="1726"
+              c:type="IBUS_KEY_Byelorussian_SHORTU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Byelorussian_shortu"
+              value="1710"
+              c:type="IBUS_KEY_Byelorussian_shortu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_C" value="67" c:type="IBUS_KEY_C">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_CH" value="65186" c:type="IBUS_KEY_CH">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_C_H" value="65189" c:type="IBUS_KEY_C_H">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_C_h" value="65188" c:type="IBUS_KEY_C_h">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cabovedot" value="709" c:type="IBUS_KEY_Cabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cacute" value="454" c:type="IBUS_KEY_Cacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cancel" value="65385" c:type="IBUS_KEY_Cancel">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Caps_Lock" value="65509" c:type="IBUS_KEY_Caps_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ccaron" value="456" c:type="IBUS_KEY_Ccaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ccedilla" value="199" c:type="IBUS_KEY_Ccedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ccircumflex" value="710" c:type="IBUS_KEY_Ccircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ch" value="65185" c:type="IBUS_KEY_Ch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Clear" value="65291" c:type="IBUS_KEY_Clear">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Codeinput" value="65335" c:type="IBUS_KEY_Codeinput">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ColonSign"
+              value="16785569"
+              c:type="IBUS_KEY_ColonSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Control_L" value="65507" c:type="IBUS_KEY_Control_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Control_R" value="65508" c:type="IBUS_KEY_Control_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_CruzeiroSign"
+              value="16785570"
+              c:type="IBUS_KEY_CruzeiroSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_A" value="1761" c:type="IBUS_KEY_Cyrillic_A">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_BE"
+              value="1762"
+              c:type="IBUS_KEY_Cyrillic_BE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_CHE"
+              value="1790"
+              c:type="IBUS_KEY_Cyrillic_CHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_CHE_descender"
+              value="16778422"
+              c:type="IBUS_KEY_Cyrillic_CHE_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_CHE_vertstroke"
+              value="16778424"
+              c:type="IBUS_KEY_Cyrillic_CHE_vertstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_DE"
+              value="1764"
+              c:type="IBUS_KEY_Cyrillic_DE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_DZHE"
+              value="1727"
+              c:type="IBUS_KEY_Cyrillic_DZHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_E" value="1788" c:type="IBUS_KEY_Cyrillic_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EF"
+              value="1766"
+              c:type="IBUS_KEY_Cyrillic_EF">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EL"
+              value="1772"
+              c:type="IBUS_KEY_Cyrillic_EL">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EM"
+              value="1773"
+              c:type="IBUS_KEY_Cyrillic_EM">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EN"
+              value="1774"
+              c:type="IBUS_KEY_Cyrillic_EN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_EN_descender"
+              value="16778402"
+              c:type="IBUS_KEY_Cyrillic_EN_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ER"
+              value="1778"
+              c:type="IBUS_KEY_Cyrillic_ER">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ES"
+              value="1779"
+              c:type="IBUS_KEY_Cyrillic_ES">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_GHE"
+              value="1767"
+              c:type="IBUS_KEY_Cyrillic_GHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_GHE_bar"
+              value="16778386"
+              c:type="IBUS_KEY_Cyrillic_GHE_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_HA"
+              value="1768"
+              c:type="IBUS_KEY_Cyrillic_HA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_HARDSIGN"
+              value="1791"
+              c:type="IBUS_KEY_Cyrillic_HARDSIGN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_HA_descender"
+              value="16778418"
+              c:type="IBUS_KEY_Cyrillic_HA_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_I" value="1769" c:type="IBUS_KEY_Cyrillic_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_IE"
+              value="1765"
+              c:type="IBUS_KEY_Cyrillic_IE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_IO"
+              value="1715"
+              c:type="IBUS_KEY_Cyrillic_IO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_I_macron"
+              value="16778466"
+              c:type="IBUS_KEY_Cyrillic_I_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_JE"
+              value="1720"
+              c:type="IBUS_KEY_Cyrillic_JE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_KA"
+              value="1771"
+              c:type="IBUS_KEY_Cyrillic_KA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_KA_descender"
+              value="16778394"
+              c:type="IBUS_KEY_Cyrillic_KA_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_KA_vertstroke"
+              value="16778396"
+              c:type="IBUS_KEY_Cyrillic_KA_vertstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_LJE"
+              value="1721"
+              c:type="IBUS_KEY_Cyrillic_LJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_NJE"
+              value="1722"
+              c:type="IBUS_KEY_Cyrillic_NJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_O" value="1775" c:type="IBUS_KEY_Cyrillic_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_O_bar"
+              value="16778472"
+              c:type="IBUS_KEY_Cyrillic_O_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_PE"
+              value="1776"
+              c:type="IBUS_KEY_Cyrillic_PE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SCHWA"
+              value="16778456"
+              c:type="IBUS_KEY_Cyrillic_SCHWA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHA"
+              value="1787"
+              c:type="IBUS_KEY_Cyrillic_SHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHCHA"
+              value="1789"
+              c:type="IBUS_KEY_Cyrillic_SHCHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHHA"
+              value="16778426"
+              c:type="IBUS_KEY_Cyrillic_SHHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SHORTI"
+              value="1770"
+              c:type="IBUS_KEY_Cyrillic_SHORTI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_SOFTSIGN"
+              value="1784"
+              c:type="IBUS_KEY_Cyrillic_SOFTSIGN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_TE"
+              value="1780"
+              c:type="IBUS_KEY_Cyrillic_TE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_TSE"
+              value="1763"
+              c:type="IBUS_KEY_Cyrillic_TSE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U" value="1781" c:type="IBUS_KEY_Cyrillic_U">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U_macron"
+              value="16778478"
+              c:type="IBUS_KEY_Cyrillic_U_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U_straight"
+              value="16778414"
+              c:type="IBUS_KEY_Cyrillic_U_straight">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_U_straight_bar"
+              value="16778416"
+              c:type="IBUS_KEY_Cyrillic_U_straight_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_VE"
+              value="1783"
+              c:type="IBUS_KEY_Cyrillic_VE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_YA"
+              value="1777"
+              c:type="IBUS_KEY_Cyrillic_YA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_YERU"
+              value="1785"
+              c:type="IBUS_KEY_Cyrillic_YERU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_YU"
+              value="1760"
+              c:type="IBUS_KEY_Cyrillic_YU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ZE"
+              value="1786"
+              c:type="IBUS_KEY_Cyrillic_ZE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ZHE"
+              value="1782"
+              c:type="IBUS_KEY_Cyrillic_ZHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ZHE_descender"
+              value="16778390"
+              c:type="IBUS_KEY_Cyrillic_ZHE_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_a" value="1729" c:type="IBUS_KEY_Cyrillic_a">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_be"
+              value="1730"
+              c:type="IBUS_KEY_Cyrillic_be">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_che"
+              value="1758"
+              c:type="IBUS_KEY_Cyrillic_che">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_che_descender"
+              value="16778423"
+              c:type="IBUS_KEY_Cyrillic_che_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_che_vertstroke"
+              value="16778425"
+              c:type="IBUS_KEY_Cyrillic_che_vertstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_de"
+              value="1732"
+              c:type="IBUS_KEY_Cyrillic_de">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_dzhe"
+              value="1711"
+              c:type="IBUS_KEY_Cyrillic_dzhe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_e" value="1756" c:type="IBUS_KEY_Cyrillic_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ef"
+              value="1734"
+              c:type="IBUS_KEY_Cyrillic_ef">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_el"
+              value="1740"
+              c:type="IBUS_KEY_Cyrillic_el">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_em"
+              value="1741"
+              c:type="IBUS_KEY_Cyrillic_em">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_en"
+              value="1742"
+              c:type="IBUS_KEY_Cyrillic_en">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_en_descender"
+              value="16778403"
+              c:type="IBUS_KEY_Cyrillic_en_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_er"
+              value="1746"
+              c:type="IBUS_KEY_Cyrillic_er">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_es"
+              value="1747"
+              c:type="IBUS_KEY_Cyrillic_es">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ghe"
+              value="1735"
+              c:type="IBUS_KEY_Cyrillic_ghe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ghe_bar"
+              value="16778387"
+              c:type="IBUS_KEY_Cyrillic_ghe_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ha"
+              value="1736"
+              c:type="IBUS_KEY_Cyrillic_ha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ha_descender"
+              value="16778419"
+              c:type="IBUS_KEY_Cyrillic_ha_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_hardsign"
+              value="1759"
+              c:type="IBUS_KEY_Cyrillic_hardsign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_i" value="1737" c:type="IBUS_KEY_Cyrillic_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_i_macron"
+              value="16778467"
+              c:type="IBUS_KEY_Cyrillic_i_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ie"
+              value="1733"
+              c:type="IBUS_KEY_Cyrillic_ie">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_io"
+              value="1699"
+              c:type="IBUS_KEY_Cyrillic_io">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_je"
+              value="1704"
+              c:type="IBUS_KEY_Cyrillic_je">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ka"
+              value="1739"
+              c:type="IBUS_KEY_Cyrillic_ka">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ka_descender"
+              value="16778395"
+              c:type="IBUS_KEY_Cyrillic_ka_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ka_vertstroke"
+              value="16778397"
+              c:type="IBUS_KEY_Cyrillic_ka_vertstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_lje"
+              value="1705"
+              c:type="IBUS_KEY_Cyrillic_lje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_nje"
+              value="1706"
+              c:type="IBUS_KEY_Cyrillic_nje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_o" value="1743" c:type="IBUS_KEY_Cyrillic_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_o_bar"
+              value="16778473"
+              c:type="IBUS_KEY_Cyrillic_o_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_pe"
+              value="1744"
+              c:type="IBUS_KEY_Cyrillic_pe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_schwa"
+              value="16778457"
+              c:type="IBUS_KEY_Cyrillic_schwa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_sha"
+              value="1755"
+              c:type="IBUS_KEY_Cyrillic_sha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_shcha"
+              value="1757"
+              c:type="IBUS_KEY_Cyrillic_shcha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_shha"
+              value="16778427"
+              c:type="IBUS_KEY_Cyrillic_shha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_shorti"
+              value="1738"
+              c:type="IBUS_KEY_Cyrillic_shorti">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_softsign"
+              value="1752"
+              c:type="IBUS_KEY_Cyrillic_softsign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_te"
+              value="1748"
+              c:type="IBUS_KEY_Cyrillic_te">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_tse"
+              value="1731"
+              c:type="IBUS_KEY_Cyrillic_tse">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u" value="1749" c:type="IBUS_KEY_Cyrillic_u">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u_macron"
+              value="16778479"
+              c:type="IBUS_KEY_Cyrillic_u_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u_straight"
+              value="16778415"
+              c:type="IBUS_KEY_Cyrillic_u_straight">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_u_straight_bar"
+              value="16778417"
+              c:type="IBUS_KEY_Cyrillic_u_straight_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ve"
+              value="1751"
+              c:type="IBUS_KEY_Cyrillic_ve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ya"
+              value="1745"
+              c:type="IBUS_KEY_Cyrillic_ya">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_yeru"
+              value="1753"
+              c:type="IBUS_KEY_Cyrillic_yeru">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_yu"
+              value="1728"
+              c:type="IBUS_KEY_Cyrillic_yu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_ze"
+              value="1754"
+              c:type="IBUS_KEY_Cyrillic_ze">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_zhe"
+              value="1750"
+              c:type="IBUS_KEY_Cyrillic_zhe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Cyrillic_zhe_descender"
+              value="16778391"
+              c:type="IBUS_KEY_Cyrillic_zhe_descender">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_D" value="68" c:type="IBUS_KEY_D">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Dabovedot"
+              value="16784906"
+              c:type="IBUS_KEY_Dabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Dcaron" value="463" c:type="IBUS_KEY_Dcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Delete" value="65535" c:type="IBUS_KEY_Delete">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_DongSign" value="16785579" c:type="IBUS_KEY_DongSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Down" value="65364" c:type="IBUS_KEY_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Dstroke" value="464" c:type="IBUS_KEY_Dstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_E" value="69" c:type="IBUS_KEY_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ENG" value="957" c:type="IBUS_KEY_ENG">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ETH" value="208" c:type="IBUS_KEY_ETH">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eabovedot" value="972" c:type="IBUS_KEY_Eabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eacute" value="201" c:type="IBUS_KEY_Eacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ebelowdot"
+              value="16785080"
+              c:type="IBUS_KEY_Ebelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecaron" value="460" c:type="IBUS_KEY_Ecaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflex" value="202" c:type="IBUS_KEY_Ecircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexacute"
+              value="16785086"
+              c:type="IBUS_KEY_Ecircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexbelowdot"
+              value="16785094"
+              c:type="IBUS_KEY_Ecircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexgrave"
+              value="16785088"
+              c:type="IBUS_KEY_Ecircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflexhook"
+              value="16785090"
+              c:type="IBUS_KEY_Ecircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ecircumflextilde"
+              value="16785092"
+              c:type="IBUS_KEY_Ecircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_EcuSign" value="16785568" c:type="IBUS_KEY_EcuSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ediaeresis" value="203" c:type="IBUS_KEY_Ediaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Egrave" value="200" c:type="IBUS_KEY_Egrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ehook" value="16785082" c:type="IBUS_KEY_Ehook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eisu_Shift" value="65327" c:type="IBUS_KEY_Eisu_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eisu_toggle"
+              value="65328"
+              c:type="IBUS_KEY_Eisu_toggle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Emacron" value="938" c:type="IBUS_KEY_Emacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_End" value="65367" c:type="IBUS_KEY_End">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eogonek" value="458" c:type="IBUS_KEY_Eogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Escape" value="65307" c:type="IBUS_KEY_Escape">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Eth" value="208" c:type="IBUS_KEY_Eth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Etilde" value="16785084" c:type="IBUS_KEY_Etilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_EuroSign" value="8364" c:type="IBUS_KEY_EuroSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Execute" value="65378" c:type="IBUS_KEY_Execute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F" value="70" c:type="IBUS_KEY_F">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F1" value="65470" c:type="IBUS_KEY_F1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F10" value="65479" c:type="IBUS_KEY_F10">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F11" value="65480" c:type="IBUS_KEY_F11">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F12" value="65481" c:type="IBUS_KEY_F12">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F13" value="65482" c:type="IBUS_KEY_F13">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F14" value="65483" c:type="IBUS_KEY_F14">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F15" value="65484" c:type="IBUS_KEY_F15">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F16" value="65485" c:type="IBUS_KEY_F16">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F17" value="65486" c:type="IBUS_KEY_F17">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F18" value="65487" c:type="IBUS_KEY_F18">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F19" value="65488" c:type="IBUS_KEY_F19">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F2" value="65471" c:type="IBUS_KEY_F2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F20" value="65489" c:type="IBUS_KEY_F20">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F21" value="65490" c:type="IBUS_KEY_F21">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F22" value="65491" c:type="IBUS_KEY_F22">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F23" value="65492" c:type="IBUS_KEY_F23">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F24" value="65493" c:type="IBUS_KEY_F24">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F25" value="65494" c:type="IBUS_KEY_F25">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F26" value="65495" c:type="IBUS_KEY_F26">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F27" value="65496" c:type="IBUS_KEY_F27">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F28" value="65497" c:type="IBUS_KEY_F28">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F29" value="65498" c:type="IBUS_KEY_F29">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F3" value="65472" c:type="IBUS_KEY_F3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F30" value="65499" c:type="IBUS_KEY_F30">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F31" value="65500" c:type="IBUS_KEY_F31">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F32" value="65501" c:type="IBUS_KEY_F32">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F33" value="65502" c:type="IBUS_KEY_F33">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F34" value="65503" c:type="IBUS_KEY_F34">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F35" value="65504" c:type="IBUS_KEY_F35">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F4" value="65473" c:type="IBUS_KEY_F4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F5" value="65474" c:type="IBUS_KEY_F5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F6" value="65475" c:type="IBUS_KEY_F6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F7" value="65476" c:type="IBUS_KEY_F7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F8" value="65477" c:type="IBUS_KEY_F8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_F9" value="65478" c:type="IBUS_KEY_F9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_FFrancSign"
+              value="16785571"
+              c:type="IBUS_KEY_FFrancSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Fabovedot"
+              value="16784926"
+              c:type="IBUS_KEY_Fabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_0" value="16778992" c:type="IBUS_KEY_Farsi_0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_1" value="16778993" c:type="IBUS_KEY_Farsi_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_2" value="16778994" c:type="IBUS_KEY_Farsi_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_3" value="16778995" c:type="IBUS_KEY_Farsi_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_4" value="16778996" c:type="IBUS_KEY_Farsi_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_5" value="16778997" c:type="IBUS_KEY_Farsi_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_6" value="16778998" c:type="IBUS_KEY_Farsi_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_7" value="16778999" c:type="IBUS_KEY_Farsi_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_8" value="16779000" c:type="IBUS_KEY_Farsi_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_9" value="16779001" c:type="IBUS_KEY_Farsi_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Farsi_yeh"
+              value="16778956"
+              c:type="IBUS_KEY_Farsi_yeh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Find" value="65384" c:type="IBUS_KEY_Find">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_First_Virtual_Screen"
+              value="65232"
+              c:type="IBUS_KEY_First_Virtual_Screen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_G" value="71" c:type="IBUS_KEY_G">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gabovedot" value="725" c:type="IBUS_KEY_Gabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gbreve" value="683" c:type="IBUS_KEY_Gbreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gcaron" value="16777702" c:type="IBUS_KEY_Gcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gcedilla" value="939" c:type="IBUS_KEY_Gcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Gcircumflex" value="728" c:type="IBUS_KEY_Gcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_an"
+              value="16781520"
+              c:type="IBUS_KEY_Georgian_an">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_ban"
+              value="16781521"
+              c:type="IBUS_KEY_Georgian_ban">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_can"
+              value="16781546"
+              c:type="IBUS_KEY_Georgian_can">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_char"
+              value="16781549"
+              c:type="IBUS_KEY_Georgian_char">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_chin"
+              value="16781545"
+              c:type="IBUS_KEY_Georgian_chin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_cil"
+              value="16781548"
+              c:type="IBUS_KEY_Georgian_cil">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_don"
+              value="16781523"
+              c:type="IBUS_KEY_Georgian_don">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_en"
+              value="16781524"
+              c:type="IBUS_KEY_Georgian_en">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_fi"
+              value="16781558"
+              c:type="IBUS_KEY_Georgian_fi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_gan"
+              value="16781522"
+              c:type="IBUS_KEY_Georgian_gan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_ghan"
+              value="16781542"
+              c:type="IBUS_KEY_Georgian_ghan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_hae"
+              value="16781552"
+              c:type="IBUS_KEY_Georgian_hae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_har"
+              value="16781556"
+              c:type="IBUS_KEY_Georgian_har">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_he"
+              value="16781553"
+              c:type="IBUS_KEY_Georgian_he">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_hie"
+              value="16781554"
+              c:type="IBUS_KEY_Georgian_hie">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_hoe"
+              value="16781557"
+              c:type="IBUS_KEY_Georgian_hoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_in"
+              value="16781528"
+              c:type="IBUS_KEY_Georgian_in">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_jhan"
+              value="16781551"
+              c:type="IBUS_KEY_Georgian_jhan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_jil"
+              value="16781547"
+              c:type="IBUS_KEY_Georgian_jil">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_kan"
+              value="16781529"
+              c:type="IBUS_KEY_Georgian_kan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_khar"
+              value="16781541"
+              c:type="IBUS_KEY_Georgian_khar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_las"
+              value="16781530"
+              c:type="IBUS_KEY_Georgian_las">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_man"
+              value="16781531"
+              c:type="IBUS_KEY_Georgian_man">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_nar"
+              value="16781532"
+              c:type="IBUS_KEY_Georgian_nar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_on"
+              value="16781533"
+              c:type="IBUS_KEY_Georgian_on">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_par"
+              value="16781534"
+              c:type="IBUS_KEY_Georgian_par">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_phar"
+              value="16781540"
+              c:type="IBUS_KEY_Georgian_phar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_qar"
+              value="16781543"
+              c:type="IBUS_KEY_Georgian_qar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_rae"
+              value="16781536"
+              c:type="IBUS_KEY_Georgian_rae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_san"
+              value="16781537"
+              c:type="IBUS_KEY_Georgian_san">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_shin"
+              value="16781544"
+              c:type="IBUS_KEY_Georgian_shin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_tan"
+              value="16781527"
+              c:type="IBUS_KEY_Georgian_tan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_tar"
+              value="16781538"
+              c:type="IBUS_KEY_Georgian_tar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_un"
+              value="16781539"
+              c:type="IBUS_KEY_Georgian_un">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_vin"
+              value="16781525"
+              c:type="IBUS_KEY_Georgian_vin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_we"
+              value="16781555"
+              c:type="IBUS_KEY_Georgian_we">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_xan"
+              value="16781550"
+              c:type="IBUS_KEY_Georgian_xan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_zen"
+              value="16781526"
+              c:type="IBUS_KEY_Georgian_zen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Georgian_zhar"
+              value="16781535"
+              c:type="IBUS_KEY_Georgian_zhar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ALPHA"
+              value="1985"
+              c:type="IBUS_KEY_Greek_ALPHA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ALPHAaccent"
+              value="1953"
+              c:type="IBUS_KEY_Greek_ALPHAaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_BETA" value="1986" c:type="IBUS_KEY_Greek_BETA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_CHI" value="2007" c:type="IBUS_KEY_Greek_CHI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_DELTA"
+              value="1988"
+              c:type="IBUS_KEY_Greek_DELTA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_EPSILON"
+              value="1989"
+              c:type="IBUS_KEY_Greek_EPSILON">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_EPSILONaccent"
+              value="1954"
+              c:type="IBUS_KEY_Greek_EPSILONaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ETA" value="1991" c:type="IBUS_KEY_Greek_ETA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ETAaccent"
+              value="1955"
+              c:type="IBUS_KEY_Greek_ETAaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_GAMMA"
+              value="1987"
+              c:type="IBUS_KEY_Greek_GAMMA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTA" value="1993" c:type="IBUS_KEY_Greek_IOTA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTAaccent"
+              value="1956"
+              c:type="IBUS_KEY_Greek_IOTAaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTAdiaeresis"
+              value="1957"
+              c:type="IBUS_KEY_Greek_IOTAdiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_IOTAdieresis"
+              value="1957"
+              c:type="IBUS_KEY_Greek_IOTAdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_KAPPA"
+              value="1994"
+              c:type="IBUS_KEY_Greek_KAPPA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_LAMBDA"
+              value="1995"
+              c:type="IBUS_KEY_Greek_LAMBDA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_LAMDA"
+              value="1995"
+              c:type="IBUS_KEY_Greek_LAMDA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_MU" value="1996" c:type="IBUS_KEY_Greek_MU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_NU" value="1997" c:type="IBUS_KEY_Greek_NU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMEGA"
+              value="2009"
+              c:type="IBUS_KEY_Greek_OMEGA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMEGAaccent"
+              value="1963"
+              c:type="IBUS_KEY_Greek_OMEGAaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMICRON"
+              value="1999"
+              c:type="IBUS_KEY_Greek_OMICRON">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_OMICRONaccent"
+              value="1959"
+              c:type="IBUS_KEY_Greek_OMICRONaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_PHI" value="2006" c:type="IBUS_KEY_Greek_PHI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_PI" value="2000" c:type="IBUS_KEY_Greek_PI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_PSI" value="2008" c:type="IBUS_KEY_Greek_PSI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_RHO" value="2001" c:type="IBUS_KEY_Greek_RHO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_SIGMA"
+              value="2002"
+              c:type="IBUS_KEY_Greek_SIGMA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_TAU" value="2004" c:type="IBUS_KEY_Greek_TAU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_THETA"
+              value="1992"
+              c:type="IBUS_KEY_Greek_THETA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_UPSILON"
+              value="2005"
+              c:type="IBUS_KEY_Greek_UPSILON">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_UPSILONaccent"
+              value="1960"
+              c:type="IBUS_KEY_Greek_UPSILONaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_UPSILONdieresis"
+              value="1961"
+              c:type="IBUS_KEY_Greek_UPSILONdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_XI" value="1998" c:type="IBUS_KEY_Greek_XI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_ZETA" value="1990" c:type="IBUS_KEY_Greek_ZETA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_accentdieresis"
+              value="1966"
+              c:type="IBUS_KEY_Greek_accentdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_alpha"
+              value="2017"
+              c:type="IBUS_KEY_Greek_alpha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_alphaaccent"
+              value="1969"
+              c:type="IBUS_KEY_Greek_alphaaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_beta" value="2018" c:type="IBUS_KEY_Greek_beta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_chi" value="2039" c:type="IBUS_KEY_Greek_chi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_delta"
+              value="2020"
+              c:type="IBUS_KEY_Greek_delta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_epsilon"
+              value="2021"
+              c:type="IBUS_KEY_Greek_epsilon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_epsilonaccent"
+              value="1970"
+              c:type="IBUS_KEY_Greek_epsilonaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_eta" value="2023" c:type="IBUS_KEY_Greek_eta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_etaaccent"
+              value="1971"
+              c:type="IBUS_KEY_Greek_etaaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_finalsmallsigma"
+              value="2035"
+              c:type="IBUS_KEY_Greek_finalsmallsigma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_gamma"
+              value="2019"
+              c:type="IBUS_KEY_Greek_gamma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_horizbar"
+              value="1967"
+              c:type="IBUS_KEY_Greek_horizbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iota" value="2025" c:type="IBUS_KEY_Greek_iota">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iotaaccent"
+              value="1972"
+              c:type="IBUS_KEY_Greek_iotaaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iotaaccentdieresis"
+              value="1974"
+              c:type="IBUS_KEY_Greek_iotaaccentdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_iotadieresis"
+              value="1973"
+              c:type="IBUS_KEY_Greek_iotadieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_kappa"
+              value="2026"
+              c:type="IBUS_KEY_Greek_kappa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_lambda"
+              value="2027"
+              c:type="IBUS_KEY_Greek_lambda">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_lamda"
+              value="2027"
+              c:type="IBUS_KEY_Greek_lamda">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_mu" value="2028" c:type="IBUS_KEY_Greek_mu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_nu" value="2029" c:type="IBUS_KEY_Greek_nu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omega"
+              value="2041"
+              c:type="IBUS_KEY_Greek_omega">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omegaaccent"
+              value="1979"
+              c:type="IBUS_KEY_Greek_omegaaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omicron"
+              value="2031"
+              c:type="IBUS_KEY_Greek_omicron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_omicronaccent"
+              value="1975"
+              c:type="IBUS_KEY_Greek_omicronaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_phi" value="2038" c:type="IBUS_KEY_Greek_phi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_pi" value="2032" c:type="IBUS_KEY_Greek_pi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_psi" value="2040" c:type="IBUS_KEY_Greek_psi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_rho" value="2033" c:type="IBUS_KEY_Greek_rho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_sigma"
+              value="2034"
+              c:type="IBUS_KEY_Greek_sigma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_switch"
+              value="65406"
+              c:type="IBUS_KEY_Greek_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_tau" value="2036" c:type="IBUS_KEY_Greek_tau">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_theta"
+              value="2024"
+              c:type="IBUS_KEY_Greek_theta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilon"
+              value="2037"
+              c:type="IBUS_KEY_Greek_upsilon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilonaccent"
+              value="1976"
+              c:type="IBUS_KEY_Greek_upsilonaccent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilonaccentdieresis"
+              value="1978"
+              c:type="IBUS_KEY_Greek_upsilonaccentdieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_upsilondieresis"
+              value="1977"
+              c:type="IBUS_KEY_Greek_upsilondieresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_xi" value="2030" c:type="IBUS_KEY_Greek_xi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Greek_zeta" value="2022" c:type="IBUS_KEY_Greek_zeta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_H" value="72" c:type="IBUS_KEY_H">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul" value="65329" c:type="IBUS_KEY_Hangul">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_A" value="3775" c:type="IBUS_KEY_Hangul_A">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_AE" value="3776" c:type="IBUS_KEY_Hangul_AE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_AraeA"
+              value="3830"
+              c:type="IBUS_KEY_Hangul_AraeA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_AraeAE"
+              value="3831"
+              c:type="IBUS_KEY_Hangul_AraeAE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Banja"
+              value="65337"
+              c:type="IBUS_KEY_Hangul_Banja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Cieuc"
+              value="3770"
+              c:type="IBUS_KEY_Hangul_Cieuc">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Codeinput"
+              value="65335"
+              c:type="IBUS_KEY_Hangul_Codeinput">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Dikeud"
+              value="3751"
+              c:type="IBUS_KEY_Hangul_Dikeud">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_E" value="3780" c:type="IBUS_KEY_Hangul_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_EO" value="3779" c:type="IBUS_KEY_Hangul_EO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_EU" value="3793" c:type="IBUS_KEY_Hangul_EU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_End" value="65331" c:type="IBUS_KEY_Hangul_End">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Hanja"
+              value="65332"
+              c:type="IBUS_KEY_Hangul_Hanja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Hieuh"
+              value="3774"
+              c:type="IBUS_KEY_Hangul_Hieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_I" value="3795" c:type="IBUS_KEY_Hangul_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Ieung"
+              value="3767"
+              c:type="IBUS_KEY_Hangul_Ieung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Cieuc"
+              value="3818"
+              c:type="IBUS_KEY_Hangul_J_Cieuc">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Dikeud"
+              value="3802"
+              c:type="IBUS_KEY_Hangul_J_Dikeud">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Hieuh"
+              value="3822"
+              c:type="IBUS_KEY_Hangul_J_Hieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Ieung"
+              value="3816"
+              c:type="IBUS_KEY_Hangul_J_Ieung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Jieuj"
+              value="3817"
+              c:type="IBUS_KEY_Hangul_J_Jieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Khieuq"
+              value="3819"
+              c:type="IBUS_KEY_Hangul_J_Khieuq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Kiyeog"
+              value="3796"
+              c:type="IBUS_KEY_Hangul_J_Kiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_KiyeogSios"
+              value="3798"
+              c:type="IBUS_KEY_Hangul_J_KiyeogSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_KkogjiDalrinIeung"
+              value="3833"
+              c:type="IBUS_KEY_Hangul_J_KkogjiDalrinIeung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Mieum"
+              value="3811"
+              c:type="IBUS_KEY_Hangul_J_Mieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Nieun"
+              value="3799"
+              c:type="IBUS_KEY_Hangul_J_Nieun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_NieunHieuh"
+              value="3801"
+              c:type="IBUS_KEY_Hangul_J_NieunHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_NieunJieuj"
+              value="3800"
+              c:type="IBUS_KEY_Hangul_J_NieunJieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_PanSios"
+              value="3832"
+              c:type="IBUS_KEY_Hangul_J_PanSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Phieuf"
+              value="3821"
+              c:type="IBUS_KEY_Hangul_J_Phieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Pieub"
+              value="3812"
+              c:type="IBUS_KEY_Hangul_J_Pieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_PieubSios"
+              value="3813"
+              c:type="IBUS_KEY_Hangul_J_PieubSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Rieul"
+              value="3803"
+              c:type="IBUS_KEY_Hangul_J_Rieul">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulHieuh"
+              value="3810"
+              c:type="IBUS_KEY_Hangul_J_RieulHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulKiyeog"
+              value="3804"
+              c:type="IBUS_KEY_Hangul_J_RieulKiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulMieum"
+              value="3805"
+              c:type="IBUS_KEY_Hangul_J_RieulMieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulPhieuf"
+              value="3809"
+              c:type="IBUS_KEY_Hangul_J_RieulPhieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulPieub"
+              value="3806"
+              c:type="IBUS_KEY_Hangul_J_RieulPieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulSios"
+              value="3807"
+              c:type="IBUS_KEY_Hangul_J_RieulSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_RieulTieut"
+              value="3808"
+              c:type="IBUS_KEY_Hangul_J_RieulTieut">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Sios"
+              value="3814"
+              c:type="IBUS_KEY_Hangul_J_Sios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_SsangKiyeog"
+              value="3797"
+              c:type="IBUS_KEY_Hangul_J_SsangKiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_SsangSios"
+              value="3815"
+              c:type="IBUS_KEY_Hangul_J_SsangSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_Tieut"
+              value="3820"
+              c:type="IBUS_KEY_Hangul_J_Tieut">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_J_YeorinHieuh"
+              value="3834"
+              c:type="IBUS_KEY_Hangul_J_YeorinHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Jamo"
+              value="65333"
+              c:type="IBUS_KEY_Hangul_Jamo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Jeonja"
+              value="65336"
+              c:type="IBUS_KEY_Hangul_Jeonja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Jieuj"
+              value="3768"
+              c:type="IBUS_KEY_Hangul_Jieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Khieuq"
+              value="3771"
+              c:type="IBUS_KEY_Hangul_Khieuq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Kiyeog"
+              value="3745"
+              c:type="IBUS_KEY_Hangul_Kiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_KiyeogSios"
+              value="3747"
+              c:type="IBUS_KEY_Hangul_KiyeogSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_KkogjiDalrinIeung"
+              value="3827"
+              c:type="IBUS_KEY_Hangul_KkogjiDalrinIeung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Mieum"
+              value="3761"
+              c:type="IBUS_KEY_Hangul_Mieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_MultipleCandidate"
+              value="65341"
+              c:type="IBUS_KEY_Hangul_MultipleCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Nieun"
+              value="3748"
+              c:type="IBUS_KEY_Hangul_Nieun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_NieunHieuh"
+              value="3750"
+              c:type="IBUS_KEY_Hangul_NieunHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_NieunJieuj"
+              value="3749"
+              c:type="IBUS_KEY_Hangul_NieunJieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_O" value="3783" c:type="IBUS_KEY_Hangul_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_OE" value="3786" c:type="IBUS_KEY_Hangul_OE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PanSios"
+              value="3826"
+              c:type="IBUS_KEY_Hangul_PanSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Phieuf"
+              value="3773"
+              c:type="IBUS_KEY_Hangul_Phieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Pieub"
+              value="3762"
+              c:type="IBUS_KEY_Hangul_Pieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PieubSios"
+              value="3764"
+              c:type="IBUS_KEY_Hangul_PieubSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PostHanja"
+              value="65339"
+              c:type="IBUS_KEY_Hangul_PostHanja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PreHanja"
+              value="65338"
+              c:type="IBUS_KEY_Hangul_PreHanja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_PreviousCandidate"
+              value="65342"
+              c:type="IBUS_KEY_Hangul_PreviousCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Rieul"
+              value="3753"
+              c:type="IBUS_KEY_Hangul_Rieul">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulHieuh"
+              value="3760"
+              c:type="IBUS_KEY_Hangul_RieulHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulKiyeog"
+              value="3754"
+              c:type="IBUS_KEY_Hangul_RieulKiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulMieum"
+              value="3755"
+              c:type="IBUS_KEY_Hangul_RieulMieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulPhieuf"
+              value="3759"
+              c:type="IBUS_KEY_Hangul_RieulPhieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulPieub"
+              value="3756"
+              c:type="IBUS_KEY_Hangul_RieulPieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulSios"
+              value="3757"
+              c:type="IBUS_KEY_Hangul_RieulSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulTieut"
+              value="3758"
+              c:type="IBUS_KEY_Hangul_RieulTieut">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_RieulYeorinHieuh"
+              value="3823"
+              c:type="IBUS_KEY_Hangul_RieulYeorinHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Romaja"
+              value="65334"
+              c:type="IBUS_KEY_Hangul_Romaja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SingleCandidate"
+              value="65340"
+              c:type="IBUS_KEY_Hangul_SingleCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Sios"
+              value="3765"
+              c:type="IBUS_KEY_Hangul_Sios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Special"
+              value="65343"
+              c:type="IBUS_KEY_Hangul_Special">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangDikeud"
+              value="3752"
+              c:type="IBUS_KEY_Hangul_SsangDikeud">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangJieuj"
+              value="3769"
+              c:type="IBUS_KEY_Hangul_SsangJieuj">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangKiyeog"
+              value="3746"
+              c:type="IBUS_KEY_Hangul_SsangKiyeog">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangPieub"
+              value="3763"
+              c:type="IBUS_KEY_Hangul_SsangPieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SsangSios"
+              value="3766"
+              c:type="IBUS_KEY_Hangul_SsangSios">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Start"
+              value="65330"
+              c:type="IBUS_KEY_Hangul_Start">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SunkyeongeumMieum"
+              value="3824"
+              c:type="IBUS_KEY_Hangul_SunkyeongeumMieum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SunkyeongeumPhieuf"
+              value="3828"
+              c:type="IBUS_KEY_Hangul_SunkyeongeumPhieuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_SunkyeongeumPieub"
+              value="3825"
+              c:type="IBUS_KEY_Hangul_SunkyeongeumPieub">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_Tieut"
+              value="3772"
+              c:type="IBUS_KEY_Hangul_Tieut">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_U" value="3788" c:type="IBUS_KEY_Hangul_U">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WA" value="3784" c:type="IBUS_KEY_Hangul_WA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WAE" value="3785" c:type="IBUS_KEY_Hangul_WAE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WE" value="3790" c:type="IBUS_KEY_Hangul_WE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WEO" value="3789" c:type="IBUS_KEY_Hangul_WEO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_WI" value="3791" c:type="IBUS_KEY_Hangul_WI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YA" value="3777" c:type="IBUS_KEY_Hangul_YA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YAE" value="3778" c:type="IBUS_KEY_Hangul_YAE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YE" value="3782" c:type="IBUS_KEY_Hangul_YE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YEO" value="3781" c:type="IBUS_KEY_Hangul_YEO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YI" value="3794" c:type="IBUS_KEY_Hangul_YI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YO" value="3787" c:type="IBUS_KEY_Hangul_YO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YU" value="3792" c:type="IBUS_KEY_Hangul_YU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_YeorinHieuh"
+              value="3829"
+              c:type="IBUS_KEY_Hangul_YeorinHieuh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hangul_switch"
+              value="65406"
+              c:type="IBUS_KEY_Hangul_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hankaku" value="65321" c:type="IBUS_KEY_Hankaku">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hcircumflex" value="678" c:type="IBUS_KEY_Hcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hebrew_switch"
+              value="65406"
+              c:type="IBUS_KEY_Hebrew_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Help" value="65386" c:type="IBUS_KEY_Help">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Henkan" value="65315" c:type="IBUS_KEY_Henkan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Henkan_Mode"
+              value="65315"
+              c:type="IBUS_KEY_Henkan_Mode">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hiragana" value="65317" c:type="IBUS_KEY_Hiragana">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hiragana_Katakana"
+              value="65319"
+              c:type="IBUS_KEY_Hiragana_Katakana">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Home" value="65360" c:type="IBUS_KEY_Home">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hstroke" value="673" c:type="IBUS_KEY_Hstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hyper_L" value="65517" c:type="IBUS_KEY_Hyper_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Hyper_R" value="65518" c:type="IBUS_KEY_Hyper_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_I" value="73" c:type="IBUS_KEY_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Center_Object"
+              value="65075"
+              c:type="IBUS_KEY_ISO_Center_Object">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Continuous_Underline"
+              value="65072"
+              c:type="IBUS_KEY_ISO_Continuous_Underline">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Discontinuous_Underline"
+              value="65073"
+              c:type="IBUS_KEY_ISO_Discontinuous_Underline">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Emphasize"
+              value="65074"
+              c:type="IBUS_KEY_ISO_Emphasize">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Enter" value="65076" c:type="IBUS_KEY_ISO_Enter">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Down"
+              value="65071"
+              c:type="IBUS_KEY_ISO_Fast_Cursor_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Left"
+              value="65068"
+              c:type="IBUS_KEY_ISO_Fast_Cursor_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Right"
+              value="65069"
+              c:type="IBUS_KEY_ISO_Fast_Cursor_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Fast_Cursor_Up"
+              value="65070"
+              c:type="IBUS_KEY_ISO_Fast_Cursor_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_First_Group"
+              value="65036"
+              c:type="IBUS_KEY_ISO_First_Group">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_First_Group_Lock"
+              value="65037"
+              c:type="IBUS_KEY_ISO_First_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Group_Latch"
+              value="65030"
+              c:type="IBUS_KEY_ISO_Group_Latch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Group_Lock"
+              value="65031"
+              c:type="IBUS_KEY_ISO_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Group_Shift"
+              value="65406"
+              c:type="IBUS_KEY_ISO_Group_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Last_Group"
+              value="65038"
+              c:type="IBUS_KEY_ISO_Last_Group">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Last_Group_Lock"
+              value="65039"
+              c:type="IBUS_KEY_ISO_Last_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Left_Tab"
+              value="65056"
+              c:type="IBUS_KEY_ISO_Left_Tab">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level2_Latch"
+              value="65026"
+              c:type="IBUS_KEY_ISO_Level2_Latch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level3_Latch"
+              value="65028"
+              c:type="IBUS_KEY_ISO_Level3_Latch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level3_Lock"
+              value="65029"
+              c:type="IBUS_KEY_ISO_Level3_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level3_Shift"
+              value="65027"
+              c:type="IBUS_KEY_ISO_Level3_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level5_Latch"
+              value="65042"
+              c:type="IBUS_KEY_ISO_Level5_Latch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level5_Lock"
+              value="65043"
+              c:type="IBUS_KEY_ISO_Level5_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Level5_Shift"
+              value="65041"
+              c:type="IBUS_KEY_ISO_Level5_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Lock" value="65025" c:type="IBUS_KEY_ISO_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Move_Line_Down"
+              value="65058"
+              c:type="IBUS_KEY_ISO_Move_Line_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Move_Line_Up"
+              value="65057"
+              c:type="IBUS_KEY_ISO_Move_Line_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Next_Group"
+              value="65032"
+              c:type="IBUS_KEY_ISO_Next_Group">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Next_Group_Lock"
+              value="65033"
+              c:type="IBUS_KEY_ISO_Next_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Line_Down"
+              value="65060"
+              c:type="IBUS_KEY_ISO_Partial_Line_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Line_Up"
+              value="65059"
+              c:type="IBUS_KEY_ISO_Partial_Line_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Space_Left"
+              value="65061"
+              c:type="IBUS_KEY_ISO_Partial_Space_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Partial_Space_Right"
+              value="65062"
+              c:type="IBUS_KEY_ISO_Partial_Space_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Prev_Group"
+              value="65034"
+              c:type="IBUS_KEY_ISO_Prev_Group">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Prev_Group_Lock"
+              value="65035"
+              c:type="IBUS_KEY_ISO_Prev_Group_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Release_Both_Margins"
+              value="65067"
+              c:type="IBUS_KEY_ISO_Release_Both_Margins">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Release_Margin_Left"
+              value="65065"
+              c:type="IBUS_KEY_ISO_Release_Margin_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Release_Margin_Right"
+              value="65066"
+              c:type="IBUS_KEY_ISO_Release_Margin_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Set_Margin_Left"
+              value="65063"
+              c:type="IBUS_KEY_ISO_Set_Margin_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ISO_Set_Margin_Right"
+              value="65064"
+              c:type="IBUS_KEY_ISO_Set_Margin_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Iabovedot" value="681" c:type="IBUS_KEY_Iabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Iacute" value="205" c:type="IBUS_KEY_Iacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ibelowdot"
+              value="16785098"
+              c:type="IBUS_KEY_Ibelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ibreve" value="16777516" c:type="IBUS_KEY_Ibreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Icircumflex" value="206" c:type="IBUS_KEY_Icircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Idiaeresis" value="207" c:type="IBUS_KEY_Idiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Igrave" value="204" c:type="IBUS_KEY_Igrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ihook" value="16785096" c:type="IBUS_KEY_Ihook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Imacron" value="975" c:type="IBUS_KEY_Imacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Insert" value="65379" c:type="IBUS_KEY_Insert">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Iogonek" value="967" c:type="IBUS_KEY_Iogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Itilde" value="933" c:type="IBUS_KEY_Itilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_J" value="74" c:type="IBUS_KEY_J">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Jcircumflex" value="684" c:type="IBUS_KEY_Jcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_K" value="75" c:type="IBUS_KEY_K">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_0" value="65456" c:type="IBUS_KEY_KP_0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_1" value="65457" c:type="IBUS_KEY_KP_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_2" value="65458" c:type="IBUS_KEY_KP_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_3" value="65459" c:type="IBUS_KEY_KP_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_4" value="65460" c:type="IBUS_KEY_KP_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_5" value="65461" c:type="IBUS_KEY_KP_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_6" value="65462" c:type="IBUS_KEY_KP_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_7" value="65463" c:type="IBUS_KEY_KP_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_8" value="65464" c:type="IBUS_KEY_KP_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_9" value="65465" c:type="IBUS_KEY_KP_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Add" value="65451" c:type="IBUS_KEY_KP_Add">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Begin" value="65437" c:type="IBUS_KEY_KP_Begin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Decimal" value="65454" c:type="IBUS_KEY_KP_Decimal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Delete" value="65439" c:type="IBUS_KEY_KP_Delete">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Divide" value="65455" c:type="IBUS_KEY_KP_Divide">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Down" value="65433" c:type="IBUS_KEY_KP_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_End" value="65436" c:type="IBUS_KEY_KP_End">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Enter" value="65421" c:type="IBUS_KEY_KP_Enter">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Equal" value="65469" c:type="IBUS_KEY_KP_Equal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F1" value="65425" c:type="IBUS_KEY_KP_F1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F2" value="65426" c:type="IBUS_KEY_KP_F2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F3" value="65427" c:type="IBUS_KEY_KP_F3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_F4" value="65428" c:type="IBUS_KEY_KP_F4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Home" value="65429" c:type="IBUS_KEY_KP_Home">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Insert" value="65438" c:type="IBUS_KEY_KP_Insert">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Left" value="65430" c:type="IBUS_KEY_KP_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Multiply"
+              value="65450"
+              c:type="IBUS_KEY_KP_Multiply">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Next" value="65435" c:type="IBUS_KEY_KP_Next">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Page_Down"
+              value="65435"
+              c:type="IBUS_KEY_KP_Page_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Page_Up" value="65434" c:type="IBUS_KEY_KP_Page_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Prior" value="65434" c:type="IBUS_KEY_KP_Prior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Right" value="65432" c:type="IBUS_KEY_KP_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Separator"
+              value="65452"
+              c:type="IBUS_KEY_KP_Separator">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Space" value="65408" c:type="IBUS_KEY_KP_Space">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Subtract"
+              value="65453"
+              c:type="IBUS_KEY_KP_Subtract">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Tab" value="65417" c:type="IBUS_KEY_KP_Tab">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_KP_Up" value="65431" c:type="IBUS_KEY_KP_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kana_Lock" value="65325" c:type="IBUS_KEY_Kana_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kana_Shift" value="65326" c:type="IBUS_KEY_Kana_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kanji" value="65313" c:type="IBUS_KEY_Kanji">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kanji_Bangou"
+              value="65335"
+              c:type="IBUS_KEY_Kanji_Bangou">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Katakana" value="65318" c:type="IBUS_KEY_Katakana">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Kcedilla" value="979" c:type="IBUS_KEY_Kcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Korean_Won" value="3839" c:type="IBUS_KEY_Korean_Won">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L" value="76" c:type="IBUS_KEY_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L1" value="65480" c:type="IBUS_KEY_L1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L10" value="65489" c:type="IBUS_KEY_L10">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L2" value="65481" c:type="IBUS_KEY_L2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L3" value="65482" c:type="IBUS_KEY_L3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L4" value="65483" c:type="IBUS_KEY_L4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L5" value="65484" c:type="IBUS_KEY_L5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L6" value="65485" c:type="IBUS_KEY_L6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L7" value="65486" c:type="IBUS_KEY_L7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L8" value="65487" c:type="IBUS_KEY_L8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_L9" value="65488" c:type="IBUS_KEY_L9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lacute" value="453" c:type="IBUS_KEY_Lacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Last_Virtual_Screen"
+              value="65236"
+              c:type="IBUS_KEY_Last_Virtual_Screen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lbelowdot"
+              value="16784950"
+              c:type="IBUS_KEY_Lbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lcaron" value="421" c:type="IBUS_KEY_Lcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lcedilla" value="934" c:type="IBUS_KEY_Lcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Left" value="65361" c:type="IBUS_KEY_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Linefeed" value="65290" c:type="IBUS_KEY_Linefeed">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_LiraSign" value="16785572" c:type="IBUS_KEY_LiraSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Lstroke" value="419" c:type="IBUS_KEY_Lstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_M" value="77" c:type="IBUS_KEY_M">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mabovedot"
+              value="16784960"
+              c:type="IBUS_KEY_Mabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_DSE"
+              value="1717"
+              c:type="IBUS_KEY_Macedonia_DSE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_GJE"
+              value="1714"
+              c:type="IBUS_KEY_Macedonia_GJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_KJE"
+              value="1724"
+              c:type="IBUS_KEY_Macedonia_KJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_dse"
+              value="1701"
+              c:type="IBUS_KEY_Macedonia_dse">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_gje"
+              value="1698"
+              c:type="IBUS_KEY_Macedonia_gje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Macedonia_kje"
+              value="1708"
+              c:type="IBUS_KEY_Macedonia_kje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mae_Koho" value="65342" c:type="IBUS_KEY_Mae_Koho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Massyo" value="65324" c:type="IBUS_KEY_Massyo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Menu" value="65383" c:type="IBUS_KEY_Menu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Meta_L" value="65511" c:type="IBUS_KEY_Meta_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Meta_R" value="65512" c:type="IBUS_KEY_Meta_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MillSign" value="16785573" c:type="IBUS_KEY_MillSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Mode_switch"
+              value="65406"
+              c:type="IBUS_KEY_Mode_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MouseKeys_Accel_Enable"
+              value="65143"
+              c:type="IBUS_KEY_MouseKeys_Accel_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MouseKeys_Enable"
+              value="65142"
+              c:type="IBUS_KEY_MouseKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Muhenkan" value="65314" c:type="IBUS_KEY_Muhenkan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Multi_key" value="65312" c:type="IBUS_KEY_Multi_key">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_MultipleCandidate"
+              value="65341"
+              c:type="IBUS_KEY_MultipleCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_N" value="78" c:type="IBUS_KEY_N">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Nacute" value="465" c:type="IBUS_KEY_Nacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_NairaSign"
+              value="16785574"
+              c:type="IBUS_KEY_NairaSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ncaron" value="466" c:type="IBUS_KEY_Ncaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ncedilla" value="977" c:type="IBUS_KEY_Ncedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_NewSheqelSign"
+              value="16785578"
+              c:type="IBUS_KEY_NewSheqelSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Next" value="65366" c:type="IBUS_KEY_Next">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Next_Virtual_Screen"
+              value="65234"
+              c:type="IBUS_KEY_Next_Virtual_Screen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ntilde" value="209" c:type="IBUS_KEY_Ntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Num_Lock" value="65407" c:type="IBUS_KEY_Num_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_O" value="79" c:type="IBUS_KEY_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_OE" value="5052" c:type="IBUS_KEY_OE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Oacute" value="211" c:type="IBUS_KEY_Oacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Obarred" value="16777631" c:type="IBUS_KEY_Obarred">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Obelowdot"
+              value="16785100"
+              c:type="IBUS_KEY_Obelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocaron" value="16777681" c:type="IBUS_KEY_Ocaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflex" value="212" c:type="IBUS_KEY_Ocircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexacute"
+              value="16785104"
+              c:type="IBUS_KEY_Ocircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexbelowdot"
+              value="16785112"
+              c:type="IBUS_KEY_Ocircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexgrave"
+              value="16785106"
+              c:type="IBUS_KEY_Ocircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflexhook"
+              value="16785108"
+              c:type="IBUS_KEY_Ocircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ocircumflextilde"
+              value="16785110"
+              c:type="IBUS_KEY_Ocircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Odiaeresis" value="214" c:type="IBUS_KEY_Odiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Odoubleacute"
+              value="469"
+              c:type="IBUS_KEY_Odoubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ograve" value="210" c:type="IBUS_KEY_Ograve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohook" value="16785102" c:type="IBUS_KEY_Ohook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohorn" value="16777632" c:type="IBUS_KEY_Ohorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohornacute"
+              value="16785114"
+              c:type="IBUS_KEY_Ohornacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohornbelowdot"
+              value="16785122"
+              c:type="IBUS_KEY_Ohornbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohorngrave"
+              value="16785116"
+              c:type="IBUS_KEY_Ohorngrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohornhook"
+              value="16785118"
+              c:type="IBUS_KEY_Ohornhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ohorntilde"
+              value="16785120"
+              c:type="IBUS_KEY_Ohorntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Omacron" value="978" c:type="IBUS_KEY_Omacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ooblique" value="216" c:type="IBUS_KEY_Ooblique">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Oslash" value="216" c:type="IBUS_KEY_Oslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Otilde" value="213" c:type="IBUS_KEY_Otilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Overlay1_Enable"
+              value="65144"
+              c:type="IBUS_KEY_Overlay1_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Overlay2_Enable"
+              value="65145"
+              c:type="IBUS_KEY_Overlay2_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_P" value="80" c:type="IBUS_KEY_P">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pabovedot"
+              value="16784982"
+              c:type="IBUS_KEY_Pabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Page_Down" value="65366" c:type="IBUS_KEY_Page_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Page_Up" value="65365" c:type="IBUS_KEY_Page_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pause" value="65299" c:type="IBUS_KEY_Pause">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PesetaSign"
+              value="16785575"
+              c:type="IBUS_KEY_PesetaSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Accelerate"
+              value="65274"
+              c:type="IBUS_KEY_Pointer_Accelerate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button1"
+              value="65257"
+              c:type="IBUS_KEY_Pointer_Button1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button2"
+              value="65258"
+              c:type="IBUS_KEY_Pointer_Button2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button3"
+              value="65259"
+              c:type="IBUS_KEY_Pointer_Button3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button4"
+              value="65260"
+              c:type="IBUS_KEY_Pointer_Button4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button5"
+              value="65261"
+              c:type="IBUS_KEY_Pointer_Button5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Button_Dflt"
+              value="65256"
+              c:type="IBUS_KEY_Pointer_Button_Dflt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick1"
+              value="65263"
+              c:type="IBUS_KEY_Pointer_DblClick1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick2"
+              value="65264"
+              c:type="IBUS_KEY_Pointer_DblClick2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick3"
+              value="65265"
+              c:type="IBUS_KEY_Pointer_DblClick3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick4"
+              value="65266"
+              c:type="IBUS_KEY_Pointer_DblClick4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick5"
+              value="65267"
+              c:type="IBUS_KEY_Pointer_DblClick5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DblClick_Dflt"
+              value="65262"
+              c:type="IBUS_KEY_Pointer_DblClick_Dflt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DfltBtnNext"
+              value="65275"
+              c:type="IBUS_KEY_Pointer_DfltBtnNext">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DfltBtnPrev"
+              value="65276"
+              c:type="IBUS_KEY_Pointer_DfltBtnPrev">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Down"
+              value="65251"
+              c:type="IBUS_KEY_Pointer_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DownLeft"
+              value="65254"
+              c:type="IBUS_KEY_Pointer_DownLeft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_DownRight"
+              value="65255"
+              c:type="IBUS_KEY_Pointer_DownRight">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag1"
+              value="65269"
+              c:type="IBUS_KEY_Pointer_Drag1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag2"
+              value="65270"
+              c:type="IBUS_KEY_Pointer_Drag2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag3"
+              value="65271"
+              c:type="IBUS_KEY_Pointer_Drag3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag4"
+              value="65272"
+              c:type="IBUS_KEY_Pointer_Drag4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag5"
+              value="65277"
+              c:type="IBUS_KEY_Pointer_Drag5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Drag_Dflt"
+              value="65268"
+              c:type="IBUS_KEY_Pointer_Drag_Dflt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_EnableKeys"
+              value="65273"
+              c:type="IBUS_KEY_Pointer_EnableKeys">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Left"
+              value="65248"
+              c:type="IBUS_KEY_Pointer_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Right"
+              value="65249"
+              c:type="IBUS_KEY_Pointer_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_Up" value="65250" c:type="IBUS_KEY_Pointer_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_UpLeft"
+              value="65252"
+              c:type="IBUS_KEY_Pointer_UpLeft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Pointer_UpRight"
+              value="65253"
+              c:type="IBUS_KEY_Pointer_UpRight">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Prev_Virtual_Screen"
+              value="65233"
+              c:type="IBUS_KEY_Prev_Virtual_Screen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_PreviousCandidate"
+              value="65342"
+              c:type="IBUS_KEY_PreviousCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Print" value="65377" c:type="IBUS_KEY_Print">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Prior" value="65365" c:type="IBUS_KEY_Prior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Q" value="81" c:type="IBUS_KEY_Q">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R" value="82" c:type="IBUS_KEY_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R1" value="65490" c:type="IBUS_KEY_R1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R10" value="65499" c:type="IBUS_KEY_R10">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R11" value="65500" c:type="IBUS_KEY_R11">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R12" value="65501" c:type="IBUS_KEY_R12">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R13" value="65502" c:type="IBUS_KEY_R13">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R14" value="65503" c:type="IBUS_KEY_R14">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R15" value="65504" c:type="IBUS_KEY_R15">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R2" value="65491" c:type="IBUS_KEY_R2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R3" value="65492" c:type="IBUS_KEY_R3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R4" value="65493" c:type="IBUS_KEY_R4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R5" value="65494" c:type="IBUS_KEY_R5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R6" value="65495" c:type="IBUS_KEY_R6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R7" value="65496" c:type="IBUS_KEY_R7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R8" value="65497" c:type="IBUS_KEY_R8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_R9" value="65498" c:type="IBUS_KEY_R9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Racute" value="448" c:type="IBUS_KEY_Racute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Rcaron" value="472" c:type="IBUS_KEY_Rcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Rcedilla" value="931" c:type="IBUS_KEY_Rcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Redo" value="65382" c:type="IBUS_KEY_Redo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RepeatKeys_Enable"
+              value="65138"
+              c:type="IBUS_KEY_RepeatKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Return" value="65293" c:type="IBUS_KEY_Return">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Right" value="65363" c:type="IBUS_KEY_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Romaji" value="65316" c:type="IBUS_KEY_Romaji">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_RupeeSign"
+              value="16785576"
+              c:type="IBUS_KEY_RupeeSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_S" value="83" c:type="IBUS_KEY_S">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SCHWA" value="16777615" c:type="IBUS_KEY_SCHWA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sabovedot"
+              value="16784992"
+              c:type="IBUS_KEY_Sabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sacute" value="422" c:type="IBUS_KEY_Sacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scaron" value="425" c:type="IBUS_KEY_Scaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scedilla" value="426" c:type="IBUS_KEY_Scedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scircumflex" value="734" c:type="IBUS_KEY_Scircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Scroll_Lock"
+              value="65300"
+              c:type="IBUS_KEY_Scroll_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Select" value="65376" c:type="IBUS_KEY_Select">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_DJE"
+              value="1713"
+              c:type="IBUS_KEY_Serbian_DJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_DZE"
+              value="1727"
+              c:type="IBUS_KEY_Serbian_DZE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_JE" value="1720" c:type="IBUS_KEY_Serbian_JE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_LJE"
+              value="1721"
+              c:type="IBUS_KEY_Serbian_LJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_NJE"
+              value="1722"
+              c:type="IBUS_KEY_Serbian_NJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_TSHE"
+              value="1723"
+              c:type="IBUS_KEY_Serbian_TSHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_dje"
+              value="1697"
+              c:type="IBUS_KEY_Serbian_dje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_dze"
+              value="1711"
+              c:type="IBUS_KEY_Serbian_dze">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_je" value="1704" c:type="IBUS_KEY_Serbian_je">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_lje"
+              value="1705"
+              c:type="IBUS_KEY_Serbian_lje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_nje"
+              value="1706"
+              c:type="IBUS_KEY_Serbian_nje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Serbian_tshe"
+              value="1707"
+              c:type="IBUS_KEY_Serbian_tshe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shift_L" value="65505" c:type="IBUS_KEY_Shift_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shift_Lock" value="65510" c:type="IBUS_KEY_Shift_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Shift_R" value="65506" c:type="IBUS_KEY_Shift_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SingleCandidate"
+              value="65340"
+              c:type="IBUS_KEY_SingleCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_a" value="16780677" c:type="IBUS_KEY_Sinh_a">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_aa" value="16780678" c:type="IBUS_KEY_Sinh_aa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_aa2" value="16780751" c:type="IBUS_KEY_Sinh_aa2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ae" value="16780679" c:type="IBUS_KEY_Sinh_ae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ae2" value="16780752" c:type="IBUS_KEY_Sinh_ae2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_aee" value="16780680" c:type="IBUS_KEY_Sinh_aee">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_aee2"
+              value="16780753"
+              c:type="IBUS_KEY_Sinh_aee2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ai" value="16780691" c:type="IBUS_KEY_Sinh_ai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ai2" value="16780763" c:type="IBUS_KEY_Sinh_ai2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_al" value="16780746" c:type="IBUS_KEY_Sinh_al">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_au" value="16780694" c:type="IBUS_KEY_Sinh_au">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_au2" value="16780766" c:type="IBUS_KEY_Sinh_au2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ba" value="16780726" c:type="IBUS_KEY_Sinh_ba">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_bha" value="16780727" c:type="IBUS_KEY_Sinh_bha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ca" value="16780704" c:type="IBUS_KEY_Sinh_ca">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_cha" value="16780705" c:type="IBUS_KEY_Sinh_cha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_dda" value="16780713" c:type="IBUS_KEY_Sinh_dda">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ddha"
+              value="16780714"
+              c:type="IBUS_KEY_Sinh_ddha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_dha" value="16780719" c:type="IBUS_KEY_Sinh_dha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_dhha"
+              value="16780720"
+              c:type="IBUS_KEY_Sinh_dhha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_e" value="16780689" c:type="IBUS_KEY_Sinh_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_e2" value="16780761" c:type="IBUS_KEY_Sinh_e2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ee" value="16780690" c:type="IBUS_KEY_Sinh_ee">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ee2" value="16780762" c:type="IBUS_KEY_Sinh_ee2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_fa" value="16780742" c:type="IBUS_KEY_Sinh_fa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ga" value="16780700" c:type="IBUS_KEY_Sinh_ga">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_gha" value="16780701" c:type="IBUS_KEY_Sinh_gha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_h2" value="16780675" c:type="IBUS_KEY_Sinh_h2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ha" value="16780740" c:type="IBUS_KEY_Sinh_ha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_i" value="16780681" c:type="IBUS_KEY_Sinh_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_i2" value="16780754" c:type="IBUS_KEY_Sinh_i2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ii" value="16780682" c:type="IBUS_KEY_Sinh_ii">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ii2" value="16780755" c:type="IBUS_KEY_Sinh_ii2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ja" value="16780706" c:type="IBUS_KEY_Sinh_ja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_jha" value="16780707" c:type="IBUS_KEY_Sinh_jha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_jnya"
+              value="16780709"
+              c:type="IBUS_KEY_Sinh_jnya">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ka" value="16780698" c:type="IBUS_KEY_Sinh_ka">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_kha" value="16780699" c:type="IBUS_KEY_Sinh_kha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_kunddaliya"
+              value="16780788"
+              c:type="IBUS_KEY_Sinh_kunddaliya">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_la" value="16780733" c:type="IBUS_KEY_Sinh_la">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_lla" value="16780741" c:type="IBUS_KEY_Sinh_lla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_lu" value="16780687" c:type="IBUS_KEY_Sinh_lu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_lu2" value="16780767" c:type="IBUS_KEY_Sinh_lu2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_luu" value="16780688" c:type="IBUS_KEY_Sinh_luu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_luu2"
+              value="16780787"
+              c:type="IBUS_KEY_Sinh_luu2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ma" value="16780728" c:type="IBUS_KEY_Sinh_ma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_mba" value="16780729" c:type="IBUS_KEY_Sinh_mba">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_na" value="16780721" c:type="IBUS_KEY_Sinh_na">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ndda"
+              value="16780716"
+              c:type="IBUS_KEY_Sinh_ndda">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ndha"
+              value="16780723"
+              c:type="IBUS_KEY_Sinh_ndha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ng" value="16780674" c:type="IBUS_KEY_Sinh_ng">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ng2" value="16780702" c:type="IBUS_KEY_Sinh_ng2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_nga" value="16780703" c:type="IBUS_KEY_Sinh_nga">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_nja" value="16780710" c:type="IBUS_KEY_Sinh_nja">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_nna" value="16780715" c:type="IBUS_KEY_Sinh_nna">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_nya" value="16780708" c:type="IBUS_KEY_Sinh_nya">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_o" value="16780692" c:type="IBUS_KEY_Sinh_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_o2" value="16780764" c:type="IBUS_KEY_Sinh_o2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_oo" value="16780693" c:type="IBUS_KEY_Sinh_oo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_oo2" value="16780765" c:type="IBUS_KEY_Sinh_oo2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_pa" value="16780724" c:type="IBUS_KEY_Sinh_pa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_pha" value="16780725" c:type="IBUS_KEY_Sinh_pha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ra" value="16780731" c:type="IBUS_KEY_Sinh_ra">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ri" value="16780685" c:type="IBUS_KEY_Sinh_ri">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_rii" value="16780686" c:type="IBUS_KEY_Sinh_rii">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ru2" value="16780760" c:type="IBUS_KEY_Sinh_ru2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ruu2"
+              value="16780786"
+              c:type="IBUS_KEY_Sinh_ruu2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_sa" value="16780739" c:type="IBUS_KEY_Sinh_sa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_sha" value="16780737" c:type="IBUS_KEY_Sinh_sha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ssha"
+              value="16780738"
+              c:type="IBUS_KEY_Sinh_ssha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_tha" value="16780717" c:type="IBUS_KEY_Sinh_tha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_thha"
+              value="16780718"
+              c:type="IBUS_KEY_Sinh_thha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_tta" value="16780711" c:type="IBUS_KEY_Sinh_tta">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ttha"
+              value="16780712"
+              c:type="IBUS_KEY_Sinh_ttha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_u" value="16780683" c:type="IBUS_KEY_Sinh_u">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_u2" value="16780756" c:type="IBUS_KEY_Sinh_u2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_uu" value="16780684" c:type="IBUS_KEY_Sinh_uu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_uu2" value="16780758" c:type="IBUS_KEY_Sinh_uu2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_va" value="16780736" c:type="IBUS_KEY_Sinh_va">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sinh_ya" value="16780730" c:type="IBUS_KEY_Sinh_ya">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_SlowKeys_Enable"
+              value="65139"
+              c:type="IBUS_KEY_SlowKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_StickyKeys_Enable"
+              value="65141"
+              c:type="IBUS_KEY_StickyKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Super_L" value="65515" c:type="IBUS_KEY_Super_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Super_R" value="65516" c:type="IBUS_KEY_Super_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Sys_Req" value="65301" c:type="IBUS_KEY_Sys_Req">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_T" value="84" c:type="IBUS_KEY_T">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_THORN" value="222" c:type="IBUS_KEY_THORN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tab" value="65289" c:type="IBUS_KEY_Tab">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tabovedot"
+              value="16785002"
+              c:type="IBUS_KEY_Tabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tcaron" value="427" c:type="IBUS_KEY_Tcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tcedilla" value="478" c:type="IBUS_KEY_Tcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Terminate_Server"
+              value="65237"
+              c:type="IBUS_KEY_Terminate_Server">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_baht" value="3551" c:type="IBUS_KEY_Thai_baht">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_bobaimai"
+              value="3514"
+              c:type="IBUS_KEY_Thai_bobaimai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_chochan"
+              value="3496"
+              c:type="IBUS_KEY_Thai_chochan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_chochang"
+              value="3498"
+              c:type="IBUS_KEY_Thai_chochang">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_choching"
+              value="3497"
+              c:type="IBUS_KEY_Thai_choching">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_chochoe"
+              value="3500"
+              c:type="IBUS_KEY_Thai_chochoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_dochada"
+              value="3502"
+              c:type="IBUS_KEY_Thai_dochada">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_dodek" value="3508" c:type="IBUS_KEY_Thai_dodek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_fofa" value="3517" c:type="IBUS_KEY_Thai_fofa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_fofan" value="3519" c:type="IBUS_KEY_Thai_fofan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_hohip" value="3531" c:type="IBUS_KEY_Thai_hohip">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_honokhuk"
+              value="3534"
+              c:type="IBUS_KEY_Thai_honokhuk">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhai"
+              value="3490"
+              c:type="IBUS_KEY_Thai_khokhai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhon"
+              value="3493"
+              c:type="IBUS_KEY_Thai_khokhon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhuat"
+              value="3491"
+              c:type="IBUS_KEY_Thai_khokhuat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khokhwai"
+              value="3492"
+              c:type="IBUS_KEY_Thai_khokhwai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_khorakhang"
+              value="3494"
+              c:type="IBUS_KEY_Thai_khorakhang">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_kokai" value="3489" c:type="IBUS_KEY_Thai_kokai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lakkhangyao"
+              value="3557"
+              c:type="IBUS_KEY_Thai_lakkhangyao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekchet"
+              value="3575"
+              c:type="IBUS_KEY_Thai_lekchet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekha" value="3573" c:type="IBUS_KEY_Thai_lekha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekhok"
+              value="3574"
+              c:type="IBUS_KEY_Thai_lekhok">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekkao"
+              value="3577"
+              c:type="IBUS_KEY_Thai_lekkao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leknung"
+              value="3569"
+              c:type="IBUS_KEY_Thai_leknung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lekpaet"
+              value="3576"
+              c:type="IBUS_KEY_Thai_lekpaet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksam"
+              value="3571"
+              c:type="IBUS_KEY_Thai_leksam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksi" value="3572" c:type="IBUS_KEY_Thai_leksi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksong"
+              value="3570"
+              c:type="IBUS_KEY_Thai_leksong">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_leksun"
+              value="3568"
+              c:type="IBUS_KEY_Thai_leksun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lochula"
+              value="3532"
+              c:type="IBUS_KEY_Thai_lochula">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_loling"
+              value="3525"
+              c:type="IBUS_KEY_Thai_loling">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_lu" value="3526" c:type="IBUS_KEY_Thai_lu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maichattawa"
+              value="3563"
+              c:type="IBUS_KEY_Thai_maichattawa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maiek" value="3560" c:type="IBUS_KEY_Thai_maiek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maihanakat"
+              value="3537"
+              c:type="IBUS_KEY_Thai_maihanakat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maihanakat_maitho"
+              value="3550"
+              c:type="IBUS_KEY_Thai_maihanakat_maitho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maitaikhu"
+              value="3559"
+              c:type="IBUS_KEY_Thai_maitaikhu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maitho"
+              value="3561"
+              c:type="IBUS_KEY_Thai_maitho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maitri"
+              value="3562"
+              c:type="IBUS_KEY_Thai_maitri">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_maiyamok"
+              value="3558"
+              c:type="IBUS_KEY_Thai_maiyamok">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_moma" value="3521" c:type="IBUS_KEY_Thai_moma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_ngongu"
+              value="3495"
+              c:type="IBUS_KEY_Thai_ngongu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_nikhahit"
+              value="3565"
+              c:type="IBUS_KEY_Thai_nikhahit">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_nonen" value="3507" c:type="IBUS_KEY_Thai_nonen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_nonu" value="3513" c:type="IBUS_KEY_Thai_nonu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_oang" value="3533" c:type="IBUS_KEY_Thai_oang">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_paiyannoi"
+              value="3535"
+              c:type="IBUS_KEY_Thai_paiyannoi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phinthu"
+              value="3546"
+              c:type="IBUS_KEY_Thai_phinthu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phophan"
+              value="3518"
+              c:type="IBUS_KEY_Thai_phophan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phophung"
+              value="3516"
+              c:type="IBUS_KEY_Thai_phophung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_phosamphao"
+              value="3520"
+              c:type="IBUS_KEY_Thai_phosamphao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_popla" value="3515" c:type="IBUS_KEY_Thai_popla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_rorua" value="3523" c:type="IBUS_KEY_Thai_rorua">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_ru" value="3524" c:type="IBUS_KEY_Thai_ru">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraa" value="3536" c:type="IBUS_KEY_Thai_saraa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraaa"
+              value="3538"
+              c:type="IBUS_KEY_Thai_saraaa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraae"
+              value="3553"
+              c:type="IBUS_KEY_Thai_saraae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraaimaimalai"
+              value="3556"
+              c:type="IBUS_KEY_Thai_saraaimaimalai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraaimaimuan"
+              value="3555"
+              c:type="IBUS_KEY_Thai_saraaimaimuan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraam"
+              value="3539"
+              c:type="IBUS_KEY_Thai_saraam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarae" value="3552" c:type="IBUS_KEY_Thai_sarae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarai" value="3540" c:type="IBUS_KEY_Thai_sarai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraii"
+              value="3541"
+              c:type="IBUS_KEY_Thai_saraii">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarao" value="3554" c:type="IBUS_KEY_Thai_sarao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarau" value="3544" c:type="IBUS_KEY_Thai_sarau">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_saraue"
+              value="3542"
+              c:type="IBUS_KEY_Thai_saraue">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarauee"
+              value="3543"
+              c:type="IBUS_KEY_Thai_sarauee">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sarauu"
+              value="3545"
+              c:type="IBUS_KEY_Thai_sarauu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sorusi"
+              value="3529"
+              c:type="IBUS_KEY_Thai_sorusi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sosala"
+              value="3528"
+              c:type="IBUS_KEY_Thai_sosala">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_soso" value="3499" c:type="IBUS_KEY_Thai_soso">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_sosua" value="3530" c:type="IBUS_KEY_Thai_sosua">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thanthakhat"
+              value="3564"
+              c:type="IBUS_KEY_Thai_thanthakhat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thonangmontho"
+              value="3505"
+              c:type="IBUS_KEY_Thai_thonangmontho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thophuthao"
+              value="3506"
+              c:type="IBUS_KEY_Thai_thophuthao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothahan"
+              value="3511"
+              c:type="IBUS_KEY_Thai_thothahan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothan"
+              value="3504"
+              c:type="IBUS_KEY_Thai_thothan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothong"
+              value="3512"
+              c:type="IBUS_KEY_Thai_thothong">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_thothung"
+              value="3510"
+              c:type="IBUS_KEY_Thai_thothung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_topatak"
+              value="3503"
+              c:type="IBUS_KEY_Thai_topatak">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_totao" value="3509" c:type="IBUS_KEY_Thai_totao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_wowaen"
+              value="3527"
+              c:type="IBUS_KEY_Thai_wowaen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_yoyak" value="3522" c:type="IBUS_KEY_Thai_yoyak">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thai_yoying"
+              value="3501"
+              c:type="IBUS_KEY_Thai_yoying">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Thorn" value="222" c:type="IBUS_KEY_Thorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Touroku" value="65323" c:type="IBUS_KEY_Touroku">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Tslash" value="940" c:type="IBUS_KEY_Tslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_U" value="85" c:type="IBUS_KEY_U">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uacute" value="218" c:type="IBUS_KEY_Uacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ubelowdot"
+              value="16785124"
+              c:type="IBUS_KEY_Ubelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ubreve" value="733" c:type="IBUS_KEY_Ubreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ucircumflex" value="219" c:type="IBUS_KEY_Ucircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Udiaeresis" value="220" c:type="IBUS_KEY_Udiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Udoubleacute"
+              value="475"
+              c:type="IBUS_KEY_Udoubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ugrave" value="217" c:type="IBUS_KEY_Ugrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhook" value="16785126" c:type="IBUS_KEY_Uhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhorn" value="16777647" c:type="IBUS_KEY_Uhorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhornacute"
+              value="16785128"
+              c:type="IBUS_KEY_Uhornacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhornbelowdot"
+              value="16785136"
+              c:type="IBUS_KEY_Uhornbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhorngrave"
+              value="16785130"
+              c:type="IBUS_KEY_Uhorngrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhornhook"
+              value="16785132"
+              c:type="IBUS_KEY_Uhornhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uhorntilde"
+              value="16785134"
+              c:type="IBUS_KEY_Uhorntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_GHE_WITH_UPTURN"
+              value="1725"
+              c:type="IBUS_KEY_Ukrainian_GHE_WITH_UPTURN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_I"
+              value="1718"
+              c:type="IBUS_KEY_Ukrainian_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_IE"
+              value="1716"
+              c:type="IBUS_KEY_Ukrainian_IE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_YI"
+              value="1719"
+              c:type="IBUS_KEY_Ukrainian_YI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_ghe_with_upturn"
+              value="1709"
+              c:type="IBUS_KEY_Ukrainian_ghe_with_upturn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_i"
+              value="1702"
+              c:type="IBUS_KEY_Ukrainian_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_ie"
+              value="1700"
+              c:type="IBUS_KEY_Ukrainian_ie">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukrainian_yi"
+              value="1703"
+              c:type="IBUS_KEY_Ukrainian_yi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_I" value="1718" c:type="IBUS_KEY_Ukranian_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_JE"
+              value="1716"
+              c:type="IBUS_KEY_Ukranian_JE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_YI"
+              value="1719"
+              c:type="IBUS_KEY_Ukranian_YI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_i" value="1702" c:type="IBUS_KEY_Ukranian_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_je"
+              value="1700"
+              c:type="IBUS_KEY_Ukranian_je">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ukranian_yi"
+              value="1703"
+              c:type="IBUS_KEY_Ukranian_yi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Umacron" value="990" c:type="IBUS_KEY_Umacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Undo" value="65381" c:type="IBUS_KEY_Undo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uogonek" value="985" c:type="IBUS_KEY_Uogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Up" value="65362" c:type="IBUS_KEY_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Uring" value="473" c:type="IBUS_KEY_Uring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Utilde" value="989" c:type="IBUS_KEY_Utilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_V" value="86" c:type="IBUS_KEY_V">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_VoidSymbol"
+              value="16777215"
+              c:type="IBUS_KEY_VoidSymbol">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_W" value="87" c:type="IBUS_KEY_W">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wacute" value="16785026" c:type="IBUS_KEY_Wacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wcircumflex"
+              value="16777588"
+              c:type="IBUS_KEY_Wcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wdiaeresis"
+              value="16785028"
+              c:type="IBUS_KEY_Wdiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Wgrave" value="16785024" c:type="IBUS_KEY_Wgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_WonSign" value="16785577" c:type="IBUS_KEY_WonSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_X" value="88" c:type="IBUS_KEY_X">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Xabovedot"
+              value="16785034"
+              c:type="IBUS_KEY_Xabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Y" value="89" c:type="IBUS_KEY_Y">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Yacute" value="221" c:type="IBUS_KEY_Yacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ybelowdot"
+              value="16785140"
+              c:type="IBUS_KEY_Ybelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ycircumflex"
+              value="16777590"
+              c:type="IBUS_KEY_Ycircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ydiaeresis" value="5054" c:type="IBUS_KEY_Ydiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ygrave" value="16785138" c:type="IBUS_KEY_Ygrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Yhook" value="16785142" c:type="IBUS_KEY_Yhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Ytilde" value="16785144" c:type="IBUS_KEY_Ytilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Z" value="90" c:type="IBUS_KEY_Z">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zabovedot" value="431" c:type="IBUS_KEY_Zabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zacute" value="428" c:type="IBUS_KEY_Zacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zcaron" value="430" c:type="IBUS_KEY_Zcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zen_Koho" value="65341" c:type="IBUS_KEY_Zen_Koho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zenkaku" value="65320" c:type="IBUS_KEY_Zenkaku">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zenkaku_Hankaku"
+              value="65322"
+              c:type="IBUS_KEY_Zenkaku_Hankaku">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_Zstroke" value="16777653" c:type="IBUS_KEY_Zstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_a" value="97" c:type="IBUS_KEY_a">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_aacute" value="225" c:type="IBUS_KEY_aacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abelowdot"
+              value="16785057"
+              c:type="IBUS_KEY_abelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abovedot" value="511" c:type="IBUS_KEY_abovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abreve" value="483" c:type="IBUS_KEY_abreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abreveacute"
+              value="16785071"
+              c:type="IBUS_KEY_abreveacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevebelowdot"
+              value="16785079"
+              c:type="IBUS_KEY_abrevebelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevegrave"
+              value="16785073"
+              c:type="IBUS_KEY_abrevegrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevehook"
+              value="16785075"
+              c:type="IBUS_KEY_abrevehook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_abrevetilde"
+              value="16785077"
+              c:type="IBUS_KEY_abrevetilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflex" value="226" c:type="IBUS_KEY_acircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexacute"
+              value="16785061"
+              c:type="IBUS_KEY_acircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexbelowdot"
+              value="16785069"
+              c:type="IBUS_KEY_acircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexgrave"
+              value="16785063"
+              c:type="IBUS_KEY_acircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflexhook"
+              value="16785065"
+              c:type="IBUS_KEY_acircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acircumflextilde"
+              value="16785067"
+              c:type="IBUS_KEY_acircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_acute" value="180" c:type="IBUS_KEY_acute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_adiaeresis" value="228" c:type="IBUS_KEY_adiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ae" value="230" c:type="IBUS_KEY_ae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_agrave" value="224" c:type="IBUS_KEY_agrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ahook" value="16785059" c:type="IBUS_KEY_ahook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_amacron" value="992" c:type="IBUS_KEY_amacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ampersand" value="38" c:type="IBUS_KEY_ampersand">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_aogonek" value="433" c:type="IBUS_KEY_aogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_apostrophe" value="39" c:type="IBUS_KEY_apostrophe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_approxeq" value="16785992" c:type="IBUS_KEY_approxeq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_approximate"
+              value="2248"
+              c:type="IBUS_KEY_approximate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_aring" value="229" c:type="IBUS_KEY_aring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_asciicircum" value="94" c:type="IBUS_KEY_asciicircum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_asciitilde" value="126" c:type="IBUS_KEY_asciitilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_asterisk" value="42" c:type="IBUS_KEY_asterisk">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_at" value="64" c:type="IBUS_KEY_at">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_atilde" value="227" c:type="IBUS_KEY_atilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_b" value="98" c:type="IBUS_KEY_b">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_babovedot"
+              value="16784899"
+              c:type="IBUS_KEY_babovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_backslash" value="92" c:type="IBUS_KEY_backslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ballotcross"
+              value="2804"
+              c:type="IBUS_KEY_ballotcross">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bar" value="124" c:type="IBUS_KEY_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_because" value="16785973" c:type="IBUS_KEY_because">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_blank" value="2527" c:type="IBUS_KEY_blank">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botintegral"
+              value="2213"
+              c:type="IBUS_KEY_botintegral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botleftparens"
+              value="2220"
+              c:type="IBUS_KEY_botleftparens">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botleftsqbracket"
+              value="2216"
+              c:type="IBUS_KEY_botleftsqbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botleftsummation"
+              value="2226"
+              c:type="IBUS_KEY_botleftsummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botrightparens"
+              value="2222"
+              c:type="IBUS_KEY_botrightparens">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botrightsqbracket"
+              value="2218"
+              c:type="IBUS_KEY_botrightsqbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botrightsummation"
+              value="2230"
+              c:type="IBUS_KEY_botrightsummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bott" value="2550" c:type="IBUS_KEY_bott">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_botvertsummationconnector"
+              value="2228"
+              c:type="IBUS_KEY_botvertsummationconnector">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braceleft" value="123" c:type="IBUS_KEY_braceleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braceright" value="125" c:type="IBUS_KEY_braceright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bracketleft" value="91" c:type="IBUS_KEY_bracketleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_bracketright"
+              value="93"
+              c:type="IBUS_KEY_bracketright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_blank"
+              value="16787456"
+              c:type="IBUS_KEY_braille_blank">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_1"
+              value="65521"
+              c:type="IBUS_KEY_braille_dot_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_10"
+              value="65530"
+              c:type="IBUS_KEY_braille_dot_10">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_2"
+              value="65522"
+              c:type="IBUS_KEY_braille_dot_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_3"
+              value="65523"
+              c:type="IBUS_KEY_braille_dot_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_4"
+              value="65524"
+              c:type="IBUS_KEY_braille_dot_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_5"
+              value="65525"
+              c:type="IBUS_KEY_braille_dot_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_6"
+              value="65526"
+              c:type="IBUS_KEY_braille_dot_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_7"
+              value="65527"
+              c:type="IBUS_KEY_braille_dot_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_8"
+              value="65528"
+              c:type="IBUS_KEY_braille_dot_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dot_9"
+              value="65529"
+              c:type="IBUS_KEY_braille_dot_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1"
+              value="16787457"
+              c:type="IBUS_KEY_braille_dots_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12"
+              value="16787459"
+              c:type="IBUS_KEY_braille_dots_12">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123"
+              value="16787463"
+              c:type="IBUS_KEY_braille_dots_123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234"
+              value="16787471"
+              c:type="IBUS_KEY_braille_dots_1234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12345"
+              value="16787487"
+              c:type="IBUS_KEY_braille_dots_12345">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123456"
+              value="16787519"
+              c:type="IBUS_KEY_braille_dots_123456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234567"
+              value="16787583"
+              c:type="IBUS_KEY_braille_dots_1234567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12345678"
+              value="16787711"
+              c:type="IBUS_KEY_braille_dots_12345678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234568"
+              value="16787647"
+              c:type="IBUS_KEY_braille_dots_1234568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123457"
+              value="16787551"
+              c:type="IBUS_KEY_braille_dots_123457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234578"
+              value="16787679"
+              c:type="IBUS_KEY_braille_dots_1234578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123458"
+              value="16787615"
+              c:type="IBUS_KEY_braille_dots_123458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12346"
+              value="16787503"
+              c:type="IBUS_KEY_braille_dots_12346">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123467"
+              value="16787567"
+              c:type="IBUS_KEY_braille_dots_123467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1234678"
+              value="16787695"
+              c:type="IBUS_KEY_braille_dots_1234678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123468"
+              value="16787631"
+              c:type="IBUS_KEY_braille_dots_123468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12347"
+              value="16787535"
+              c:type="IBUS_KEY_braille_dots_12347">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123478"
+              value="16787663"
+              c:type="IBUS_KEY_braille_dots_123478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12348"
+              value="16787599"
+              c:type="IBUS_KEY_braille_dots_12348">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1235"
+              value="16787479"
+              c:type="IBUS_KEY_braille_dots_1235">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12356"
+              value="16787511"
+              c:type="IBUS_KEY_braille_dots_12356">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123567"
+              value="16787575"
+              c:type="IBUS_KEY_braille_dots_123567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1235678"
+              value="16787703"
+              c:type="IBUS_KEY_braille_dots_1235678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123568"
+              value="16787639"
+              c:type="IBUS_KEY_braille_dots_123568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12357"
+              value="16787543"
+              c:type="IBUS_KEY_braille_dots_12357">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123578"
+              value="16787671"
+              c:type="IBUS_KEY_braille_dots_123578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12358"
+              value="16787607"
+              c:type="IBUS_KEY_braille_dots_12358">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1236"
+              value="16787495"
+              c:type="IBUS_KEY_braille_dots_1236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12367"
+              value="16787559"
+              c:type="IBUS_KEY_braille_dots_12367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_123678"
+              value="16787687"
+              c:type="IBUS_KEY_braille_dots_123678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12368"
+              value="16787623"
+              c:type="IBUS_KEY_braille_dots_12368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1237"
+              value="16787527"
+              c:type="IBUS_KEY_braille_dots_1237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12378"
+              value="16787655"
+              c:type="IBUS_KEY_braille_dots_12378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1238"
+              value="16787591"
+              c:type="IBUS_KEY_braille_dots_1238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124"
+              value="16787467"
+              c:type="IBUS_KEY_braille_dots_124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1245"
+              value="16787483"
+              c:type="IBUS_KEY_braille_dots_1245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12456"
+              value="16787515"
+              c:type="IBUS_KEY_braille_dots_12456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124567"
+              value="16787579"
+              c:type="IBUS_KEY_braille_dots_124567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1245678"
+              value="16787707"
+              c:type="IBUS_KEY_braille_dots_1245678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124568"
+              value="16787643"
+              c:type="IBUS_KEY_braille_dots_124568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12457"
+              value="16787547"
+              c:type="IBUS_KEY_braille_dots_12457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124578"
+              value="16787675"
+              c:type="IBUS_KEY_braille_dots_124578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12458"
+              value="16787611"
+              c:type="IBUS_KEY_braille_dots_12458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1246"
+              value="16787499"
+              c:type="IBUS_KEY_braille_dots_1246">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12467"
+              value="16787563"
+              c:type="IBUS_KEY_braille_dots_12467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_124678"
+              value="16787691"
+              c:type="IBUS_KEY_braille_dots_124678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12468"
+              value="16787627"
+              c:type="IBUS_KEY_braille_dots_12468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1247"
+              value="16787531"
+              c:type="IBUS_KEY_braille_dots_1247">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12478"
+              value="16787659"
+              c:type="IBUS_KEY_braille_dots_12478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1248"
+              value="16787595"
+              c:type="IBUS_KEY_braille_dots_1248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_125"
+              value="16787475"
+              c:type="IBUS_KEY_braille_dots_125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1256"
+              value="16787507"
+              c:type="IBUS_KEY_braille_dots_1256">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12567"
+              value="16787571"
+              c:type="IBUS_KEY_braille_dots_12567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_125678"
+              value="16787699"
+              c:type="IBUS_KEY_braille_dots_125678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12568"
+              value="16787635"
+              c:type="IBUS_KEY_braille_dots_12568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1257"
+              value="16787539"
+              c:type="IBUS_KEY_braille_dots_1257">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12578"
+              value="16787667"
+              c:type="IBUS_KEY_braille_dots_12578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1258"
+              value="16787603"
+              c:type="IBUS_KEY_braille_dots_1258">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_126"
+              value="16787491"
+              c:type="IBUS_KEY_braille_dots_126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1267"
+              value="16787555"
+              c:type="IBUS_KEY_braille_dots_1267">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_12678"
+              value="16787683"
+              c:type="IBUS_KEY_braille_dots_12678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1268"
+              value="16787619"
+              c:type="IBUS_KEY_braille_dots_1268">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_127"
+              value="16787523"
+              c:type="IBUS_KEY_braille_dots_127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1278"
+              value="16787651"
+              c:type="IBUS_KEY_braille_dots_1278">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_128"
+              value="16787587"
+              c:type="IBUS_KEY_braille_dots_128">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13"
+              value="16787461"
+              c:type="IBUS_KEY_braille_dots_13">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134"
+              value="16787469"
+              c:type="IBUS_KEY_braille_dots_134">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1345"
+              value="16787485"
+              c:type="IBUS_KEY_braille_dots_1345">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13456"
+              value="16787517"
+              c:type="IBUS_KEY_braille_dots_13456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134567"
+              value="16787581"
+              c:type="IBUS_KEY_braille_dots_134567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1345678"
+              value="16787709"
+              c:type="IBUS_KEY_braille_dots_1345678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134568"
+              value="16787645"
+              c:type="IBUS_KEY_braille_dots_134568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13457"
+              value="16787549"
+              c:type="IBUS_KEY_braille_dots_13457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134578"
+              value="16787677"
+              c:type="IBUS_KEY_braille_dots_134578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13458"
+              value="16787613"
+              c:type="IBUS_KEY_braille_dots_13458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1346"
+              value="16787501"
+              c:type="IBUS_KEY_braille_dots_1346">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13467"
+              value="16787565"
+              c:type="IBUS_KEY_braille_dots_13467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_134678"
+              value="16787693"
+              c:type="IBUS_KEY_braille_dots_134678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13468"
+              value="16787629"
+              c:type="IBUS_KEY_braille_dots_13468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1347"
+              value="16787533"
+              c:type="IBUS_KEY_braille_dots_1347">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13478"
+              value="16787661"
+              c:type="IBUS_KEY_braille_dots_13478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1348"
+              value="16787597"
+              c:type="IBUS_KEY_braille_dots_1348">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_135"
+              value="16787477"
+              c:type="IBUS_KEY_braille_dots_135">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1356"
+              value="16787509"
+              c:type="IBUS_KEY_braille_dots_1356">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13567"
+              value="16787573"
+              c:type="IBUS_KEY_braille_dots_13567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_135678"
+              value="16787701"
+              c:type="IBUS_KEY_braille_dots_135678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13568"
+              value="16787637"
+              c:type="IBUS_KEY_braille_dots_13568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1357"
+              value="16787541"
+              c:type="IBUS_KEY_braille_dots_1357">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13578"
+              value="16787669"
+              c:type="IBUS_KEY_braille_dots_13578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1358"
+              value="16787605"
+              c:type="IBUS_KEY_braille_dots_1358">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_136"
+              value="16787493"
+              c:type="IBUS_KEY_braille_dots_136">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1367"
+              value="16787557"
+              c:type="IBUS_KEY_braille_dots_1367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_13678"
+              value="16787685"
+              c:type="IBUS_KEY_braille_dots_13678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1368"
+              value="16787621"
+              c:type="IBUS_KEY_braille_dots_1368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_137"
+              value="16787525"
+              c:type="IBUS_KEY_braille_dots_137">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1378"
+              value="16787653"
+              c:type="IBUS_KEY_braille_dots_1378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_138"
+              value="16787589"
+              c:type="IBUS_KEY_braille_dots_138">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14"
+              value="16787465"
+              c:type="IBUS_KEY_braille_dots_14">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_145"
+              value="16787481"
+              c:type="IBUS_KEY_braille_dots_145">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1456"
+              value="16787513"
+              c:type="IBUS_KEY_braille_dots_1456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14567"
+              value="16787577"
+              c:type="IBUS_KEY_braille_dots_14567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_145678"
+              value="16787705"
+              c:type="IBUS_KEY_braille_dots_145678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14568"
+              value="16787641"
+              c:type="IBUS_KEY_braille_dots_14568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1457"
+              value="16787545"
+              c:type="IBUS_KEY_braille_dots_1457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14578"
+              value="16787673"
+              c:type="IBUS_KEY_braille_dots_14578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1458"
+              value="16787609"
+              c:type="IBUS_KEY_braille_dots_1458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_146"
+              value="16787497"
+              c:type="IBUS_KEY_braille_dots_146">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1467"
+              value="16787561"
+              c:type="IBUS_KEY_braille_dots_1467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_14678"
+              value="16787689"
+              c:type="IBUS_KEY_braille_dots_14678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1468"
+              value="16787625"
+              c:type="IBUS_KEY_braille_dots_1468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_147"
+              value="16787529"
+              c:type="IBUS_KEY_braille_dots_147">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1478"
+              value="16787657"
+              c:type="IBUS_KEY_braille_dots_1478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_148"
+              value="16787593"
+              c:type="IBUS_KEY_braille_dots_148">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_15"
+              value="16787473"
+              c:type="IBUS_KEY_braille_dots_15">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_156"
+              value="16787505"
+              c:type="IBUS_KEY_braille_dots_156">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1567"
+              value="16787569"
+              c:type="IBUS_KEY_braille_dots_1567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_15678"
+              value="16787697"
+              c:type="IBUS_KEY_braille_dots_15678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1568"
+              value="16787633"
+              c:type="IBUS_KEY_braille_dots_1568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_157"
+              value="16787537"
+              c:type="IBUS_KEY_braille_dots_157">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1578"
+              value="16787665"
+              c:type="IBUS_KEY_braille_dots_1578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_158"
+              value="16787601"
+              c:type="IBUS_KEY_braille_dots_158">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_16"
+              value="16787489"
+              c:type="IBUS_KEY_braille_dots_16">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_167"
+              value="16787553"
+              c:type="IBUS_KEY_braille_dots_167">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_1678"
+              value="16787681"
+              c:type="IBUS_KEY_braille_dots_1678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_168"
+              value="16787617"
+              c:type="IBUS_KEY_braille_dots_168">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_17"
+              value="16787521"
+              c:type="IBUS_KEY_braille_dots_17">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_178"
+              value="16787649"
+              c:type="IBUS_KEY_braille_dots_178">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_18"
+              value="16787585"
+              c:type="IBUS_KEY_braille_dots_18">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2"
+              value="16787458"
+              c:type="IBUS_KEY_braille_dots_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23"
+              value="16787462"
+              c:type="IBUS_KEY_braille_dots_23">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234"
+              value="16787470"
+              c:type="IBUS_KEY_braille_dots_234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2345"
+              value="16787486"
+              c:type="IBUS_KEY_braille_dots_2345">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23456"
+              value="16787518"
+              c:type="IBUS_KEY_braille_dots_23456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234567"
+              value="16787582"
+              c:type="IBUS_KEY_braille_dots_234567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2345678"
+              value="16787710"
+              c:type="IBUS_KEY_braille_dots_2345678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234568"
+              value="16787646"
+              c:type="IBUS_KEY_braille_dots_234568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23457"
+              value="16787550"
+              c:type="IBUS_KEY_braille_dots_23457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234578"
+              value="16787678"
+              c:type="IBUS_KEY_braille_dots_234578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23458"
+              value="16787614"
+              c:type="IBUS_KEY_braille_dots_23458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2346"
+              value="16787502"
+              c:type="IBUS_KEY_braille_dots_2346">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23467"
+              value="16787566"
+              c:type="IBUS_KEY_braille_dots_23467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_234678"
+              value="16787694"
+              c:type="IBUS_KEY_braille_dots_234678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23468"
+              value="16787630"
+              c:type="IBUS_KEY_braille_dots_23468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2347"
+              value="16787534"
+              c:type="IBUS_KEY_braille_dots_2347">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23478"
+              value="16787662"
+              c:type="IBUS_KEY_braille_dots_23478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2348"
+              value="16787598"
+              c:type="IBUS_KEY_braille_dots_2348">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_235"
+              value="16787478"
+              c:type="IBUS_KEY_braille_dots_235">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2356"
+              value="16787510"
+              c:type="IBUS_KEY_braille_dots_2356">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23567"
+              value="16787574"
+              c:type="IBUS_KEY_braille_dots_23567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_235678"
+              value="16787702"
+              c:type="IBUS_KEY_braille_dots_235678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23568"
+              value="16787638"
+              c:type="IBUS_KEY_braille_dots_23568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2357"
+              value="16787542"
+              c:type="IBUS_KEY_braille_dots_2357">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23578"
+              value="16787670"
+              c:type="IBUS_KEY_braille_dots_23578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2358"
+              value="16787606"
+              c:type="IBUS_KEY_braille_dots_2358">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_236"
+              value="16787494"
+              c:type="IBUS_KEY_braille_dots_236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2367"
+              value="16787558"
+              c:type="IBUS_KEY_braille_dots_2367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_23678"
+              value="16787686"
+              c:type="IBUS_KEY_braille_dots_23678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2368"
+              value="16787622"
+              c:type="IBUS_KEY_braille_dots_2368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_237"
+              value="16787526"
+              c:type="IBUS_KEY_braille_dots_237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2378"
+              value="16787654"
+              c:type="IBUS_KEY_braille_dots_2378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_238"
+              value="16787590"
+              c:type="IBUS_KEY_braille_dots_238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24"
+              value="16787466"
+              c:type="IBUS_KEY_braille_dots_24">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_245"
+              value="16787482"
+              c:type="IBUS_KEY_braille_dots_245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2456"
+              value="16787514"
+              c:type="IBUS_KEY_braille_dots_2456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24567"
+              value="16787578"
+              c:type="IBUS_KEY_braille_dots_24567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_245678"
+              value="16787706"
+              c:type="IBUS_KEY_braille_dots_245678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24568"
+              value="16787642"
+              c:type="IBUS_KEY_braille_dots_24568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2457"
+              value="16787546"
+              c:type="IBUS_KEY_braille_dots_2457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24578"
+              value="16787674"
+              c:type="IBUS_KEY_braille_dots_24578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2458"
+              value="16787610"
+              c:type="IBUS_KEY_braille_dots_2458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_246"
+              value="16787498"
+              c:type="IBUS_KEY_braille_dots_246">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2467"
+              value="16787562"
+              c:type="IBUS_KEY_braille_dots_2467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_24678"
+              value="16787690"
+              c:type="IBUS_KEY_braille_dots_24678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2468"
+              value="16787626"
+              c:type="IBUS_KEY_braille_dots_2468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_247"
+              value="16787530"
+              c:type="IBUS_KEY_braille_dots_247">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2478"
+              value="16787658"
+              c:type="IBUS_KEY_braille_dots_2478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_248"
+              value="16787594"
+              c:type="IBUS_KEY_braille_dots_248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_25"
+              value="16787474"
+              c:type="IBUS_KEY_braille_dots_25">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_256"
+              value="16787506"
+              c:type="IBUS_KEY_braille_dots_256">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2567"
+              value="16787570"
+              c:type="IBUS_KEY_braille_dots_2567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_25678"
+              value="16787698"
+              c:type="IBUS_KEY_braille_dots_25678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2568"
+              value="16787634"
+              c:type="IBUS_KEY_braille_dots_2568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_257"
+              value="16787538"
+              c:type="IBUS_KEY_braille_dots_257">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2578"
+              value="16787666"
+              c:type="IBUS_KEY_braille_dots_2578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_258"
+              value="16787602"
+              c:type="IBUS_KEY_braille_dots_258">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_26"
+              value="16787490"
+              c:type="IBUS_KEY_braille_dots_26">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_267"
+              value="16787554"
+              c:type="IBUS_KEY_braille_dots_267">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_2678"
+              value="16787682"
+              c:type="IBUS_KEY_braille_dots_2678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_268"
+              value="16787618"
+              c:type="IBUS_KEY_braille_dots_268">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_27"
+              value="16787522"
+              c:type="IBUS_KEY_braille_dots_27">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_278"
+              value="16787650"
+              c:type="IBUS_KEY_braille_dots_278">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_28"
+              value="16787586"
+              c:type="IBUS_KEY_braille_dots_28">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3"
+              value="16787460"
+              c:type="IBUS_KEY_braille_dots_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34"
+              value="16787468"
+              c:type="IBUS_KEY_braille_dots_34">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_345"
+              value="16787484"
+              c:type="IBUS_KEY_braille_dots_345">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3456"
+              value="16787516"
+              c:type="IBUS_KEY_braille_dots_3456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34567"
+              value="16787580"
+              c:type="IBUS_KEY_braille_dots_34567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_345678"
+              value="16787708"
+              c:type="IBUS_KEY_braille_dots_345678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34568"
+              value="16787644"
+              c:type="IBUS_KEY_braille_dots_34568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3457"
+              value="16787548"
+              c:type="IBUS_KEY_braille_dots_3457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34578"
+              value="16787676"
+              c:type="IBUS_KEY_braille_dots_34578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3458"
+              value="16787612"
+              c:type="IBUS_KEY_braille_dots_3458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_346"
+              value="16787500"
+              c:type="IBUS_KEY_braille_dots_346">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3467"
+              value="16787564"
+              c:type="IBUS_KEY_braille_dots_3467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_34678"
+              value="16787692"
+              c:type="IBUS_KEY_braille_dots_34678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3468"
+              value="16787628"
+              c:type="IBUS_KEY_braille_dots_3468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_347"
+              value="16787532"
+              c:type="IBUS_KEY_braille_dots_347">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3478"
+              value="16787660"
+              c:type="IBUS_KEY_braille_dots_3478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_348"
+              value="16787596"
+              c:type="IBUS_KEY_braille_dots_348">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_35"
+              value="16787476"
+              c:type="IBUS_KEY_braille_dots_35">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_356"
+              value="16787508"
+              c:type="IBUS_KEY_braille_dots_356">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3567"
+              value="16787572"
+              c:type="IBUS_KEY_braille_dots_3567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_35678"
+              value="16787700"
+              c:type="IBUS_KEY_braille_dots_35678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3568"
+              value="16787636"
+              c:type="IBUS_KEY_braille_dots_3568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_357"
+              value="16787540"
+              c:type="IBUS_KEY_braille_dots_357">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3578"
+              value="16787668"
+              c:type="IBUS_KEY_braille_dots_3578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_358"
+              value="16787604"
+              c:type="IBUS_KEY_braille_dots_358">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_36"
+              value="16787492"
+              c:type="IBUS_KEY_braille_dots_36">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_367"
+              value="16787556"
+              c:type="IBUS_KEY_braille_dots_367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_3678"
+              value="16787684"
+              c:type="IBUS_KEY_braille_dots_3678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_368"
+              value="16787620"
+              c:type="IBUS_KEY_braille_dots_368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_37"
+              value="16787524"
+              c:type="IBUS_KEY_braille_dots_37">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_378"
+              value="16787652"
+              c:type="IBUS_KEY_braille_dots_378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_38"
+              value="16787588"
+              c:type="IBUS_KEY_braille_dots_38">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4"
+              value="16787464"
+              c:type="IBUS_KEY_braille_dots_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_45"
+              value="16787480"
+              c:type="IBUS_KEY_braille_dots_45">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_456"
+              value="16787512"
+              c:type="IBUS_KEY_braille_dots_456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4567"
+              value="16787576"
+              c:type="IBUS_KEY_braille_dots_4567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_45678"
+              value="16787704"
+              c:type="IBUS_KEY_braille_dots_45678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4568"
+              value="16787640"
+              c:type="IBUS_KEY_braille_dots_4568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_457"
+              value="16787544"
+              c:type="IBUS_KEY_braille_dots_457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4578"
+              value="16787672"
+              c:type="IBUS_KEY_braille_dots_4578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_458"
+              value="16787608"
+              c:type="IBUS_KEY_braille_dots_458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_46"
+              value="16787496"
+              c:type="IBUS_KEY_braille_dots_46">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_467"
+              value="16787560"
+              c:type="IBUS_KEY_braille_dots_467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_4678"
+              value="16787688"
+              c:type="IBUS_KEY_braille_dots_4678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_468"
+              value="16787624"
+              c:type="IBUS_KEY_braille_dots_468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_47"
+              value="16787528"
+              c:type="IBUS_KEY_braille_dots_47">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_478"
+              value="16787656"
+              c:type="IBUS_KEY_braille_dots_478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_48"
+              value="16787592"
+              c:type="IBUS_KEY_braille_dots_48">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_5"
+              value="16787472"
+              c:type="IBUS_KEY_braille_dots_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_56"
+              value="16787504"
+              c:type="IBUS_KEY_braille_dots_56">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_567"
+              value="16787568"
+              c:type="IBUS_KEY_braille_dots_567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_5678"
+              value="16787696"
+              c:type="IBUS_KEY_braille_dots_5678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_568"
+              value="16787632"
+              c:type="IBUS_KEY_braille_dots_568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_57"
+              value="16787536"
+              c:type="IBUS_KEY_braille_dots_57">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_578"
+              value="16787664"
+              c:type="IBUS_KEY_braille_dots_578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_58"
+              value="16787600"
+              c:type="IBUS_KEY_braille_dots_58">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_6"
+              value="16787488"
+              c:type="IBUS_KEY_braille_dots_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_67"
+              value="16787552"
+              c:type="IBUS_KEY_braille_dots_67">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_678"
+              value="16787680"
+              c:type="IBUS_KEY_braille_dots_678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_68"
+              value="16787616"
+              c:type="IBUS_KEY_braille_dots_68">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_7"
+              value="16787520"
+              c:type="IBUS_KEY_braille_dots_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_78"
+              value="16787648"
+              c:type="IBUS_KEY_braille_dots_78">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_braille_dots_8"
+              value="16787584"
+              c:type="IBUS_KEY_braille_dots_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_breve" value="418" c:type="IBUS_KEY_breve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_brokenbar" value="166" c:type="IBUS_KEY_brokenbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_c" value="99" c:type="IBUS_KEY_c">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_c_h" value="65187" c:type="IBUS_KEY_c_h">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cabovedot" value="741" c:type="IBUS_KEY_cabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cacute" value="486" c:type="IBUS_KEY_cacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_careof" value="2744" c:type="IBUS_KEY_careof">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_caret" value="2812" c:type="IBUS_KEY_caret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_caron" value="439" c:type="IBUS_KEY_caron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ccaron" value="488" c:type="IBUS_KEY_ccaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ccedilla" value="231" c:type="IBUS_KEY_ccedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ccircumflex" value="742" c:type="IBUS_KEY_ccircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cedilla" value="184" c:type="IBUS_KEY_cedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cent" value="162" c:type="IBUS_KEY_cent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ch" value="65184" c:type="IBUS_KEY_ch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_checkerboard"
+              value="2529"
+              c:type="IBUS_KEY_checkerboard">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_checkmark" value="2803" c:type="IBUS_KEY_checkmark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_circle" value="3023" c:type="IBUS_KEY_circle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_club" value="2796" c:type="IBUS_KEY_club">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_colon" value="58" c:type="IBUS_KEY_colon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_comma" value="44" c:type="IBUS_KEY_comma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_containsas"
+              value="16785931"
+              c:type="IBUS_KEY_containsas">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_copyright" value="169" c:type="IBUS_KEY_copyright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cr" value="2532" c:type="IBUS_KEY_cr">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_crossinglines"
+              value="2542"
+              c:type="IBUS_KEY_crossinglines">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cuberoot" value="16785947" c:type="IBUS_KEY_cuberoot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_currency" value="164" c:type="IBUS_KEY_currency">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_cursor" value="2815" c:type="IBUS_KEY_cursor">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_d" value="100" c:type="IBUS_KEY_d">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dabovedot"
+              value="16784907"
+              c:type="IBUS_KEY_dabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dagger" value="2801" c:type="IBUS_KEY_dagger">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dcaron" value="495" c:type="IBUS_KEY_dcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_A" value="65153" c:type="IBUS_KEY_dead_A">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_E" value="65155" c:type="IBUS_KEY_dead_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_I" value="65157" c:type="IBUS_KEY_dead_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_O" value="65159" c:type="IBUS_KEY_dead_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_U" value="65161" c:type="IBUS_KEY_dead_U">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_a" value="65152" c:type="IBUS_KEY_dead_a">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovecomma"
+              value="65124"
+              c:type="IBUS_KEY_dead_abovecomma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovedot"
+              value="65110"
+              c:type="IBUS_KEY_dead_abovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovereversedcomma"
+              value="65125"
+              c:type="IBUS_KEY_dead_abovereversedcomma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_abovering"
+              value="65112"
+              c:type="IBUS_KEY_dead_abovering">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_acute" value="65105" c:type="IBUS_KEY_dead_acute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowbreve"
+              value="65131"
+              c:type="IBUS_KEY_dead_belowbreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowcircumflex"
+              value="65129"
+              c:type="IBUS_KEY_dead_belowcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowcomma"
+              value="65134"
+              c:type="IBUS_KEY_dead_belowcomma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowdiaeresis"
+              value="65132"
+              c:type="IBUS_KEY_dead_belowdiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowdot"
+              value="65120"
+              c:type="IBUS_KEY_dead_belowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowmacron"
+              value="65128"
+              c:type="IBUS_KEY_dead_belowmacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowring"
+              value="65127"
+              c:type="IBUS_KEY_dead_belowring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_belowtilde"
+              value="65130"
+              c:type="IBUS_KEY_dead_belowtilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_breve" value="65109" c:type="IBUS_KEY_dead_breve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_capital_schwa"
+              value="65163"
+              c:type="IBUS_KEY_dead_capital_schwa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_caron" value="65114" c:type="IBUS_KEY_dead_caron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_cedilla"
+              value="65115"
+              c:type="IBUS_KEY_dead_cedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_circumflex"
+              value="65106"
+              c:type="IBUS_KEY_dead_circumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_currency"
+              value="65135"
+              c:type="IBUS_KEY_dead_currency">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_dasia" value="65125" c:type="IBUS_KEY_dead_dasia">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_diaeresis"
+              value="65111"
+              c:type="IBUS_KEY_dead_diaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_doubleacute"
+              value="65113"
+              c:type="IBUS_KEY_dead_doubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_doublegrave"
+              value="65126"
+              c:type="IBUS_KEY_dead_doublegrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_e" value="65154" c:type="IBUS_KEY_dead_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_grave" value="65104" c:type="IBUS_KEY_dead_grave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_hook" value="65121" c:type="IBUS_KEY_dead_hook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_horn" value="65122" c:type="IBUS_KEY_dead_horn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_i" value="65156" c:type="IBUS_KEY_dead_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_invertedbreve"
+              value="65133"
+              c:type="IBUS_KEY_dead_invertedbreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_iota" value="65117" c:type="IBUS_KEY_dead_iota">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_macron"
+              value="65108"
+              c:type="IBUS_KEY_dead_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_o" value="65158" c:type="IBUS_KEY_dead_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_ogonek"
+              value="65116"
+              c:type="IBUS_KEY_dead_ogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_perispomeni"
+              value="65107"
+              c:type="IBUS_KEY_dead_perispomeni">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_psili" value="65124" c:type="IBUS_KEY_dead_psili">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_semivoiced_sound"
+              value="65119"
+              c:type="IBUS_KEY_dead_semivoiced_sound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_small_schwa"
+              value="65162"
+              c:type="IBUS_KEY_dead_small_schwa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_stroke"
+              value="65123"
+              c:type="IBUS_KEY_dead_stroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_tilde" value="65107" c:type="IBUS_KEY_dead_tilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_u" value="65160" c:type="IBUS_KEY_dead_u">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dead_voiced_sound"
+              value="65118"
+              c:type="IBUS_KEY_dead_voiced_sound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_decimalpoint"
+              value="2749"
+              c:type="IBUS_KEY_decimalpoint">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_degree" value="176" c:type="IBUS_KEY_degree">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_diaeresis" value="168" c:type="IBUS_KEY_diaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_diamond" value="2797" c:type="IBUS_KEY_diamond">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_digitspace" value="2725" c:type="IBUS_KEY_digitspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dintegral"
+              value="16785964"
+              c:type="IBUS_KEY_dintegral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_division" value="247" c:type="IBUS_KEY_division">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dollar" value="36" c:type="IBUS_KEY_dollar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doubbaselinedot"
+              value="2735"
+              c:type="IBUS_KEY_doubbaselinedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doubleacute" value="445" c:type="IBUS_KEY_doubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doubledagger"
+              value="2802"
+              c:type="IBUS_KEY_doubledagger">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_doublelowquotemark"
+              value="2814"
+              c:type="IBUS_KEY_doublelowquotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downarrow" value="2302" c:type="IBUS_KEY_downarrow">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downcaret" value="2984" c:type="IBUS_KEY_downcaret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downshoe" value="3030" c:type="IBUS_KEY_downshoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downstile" value="3012" c:type="IBUS_KEY_downstile">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_downtack" value="3010" c:type="IBUS_KEY_downtack">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_dstroke" value="496" c:type="IBUS_KEY_dstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_e" value="101" c:type="IBUS_KEY_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eabovedot" value="1004" c:type="IBUS_KEY_eabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eacute" value="233" c:type="IBUS_KEY_eacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ebelowdot"
+              value="16785081"
+              c:type="IBUS_KEY_ebelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecaron" value="492" c:type="IBUS_KEY_ecaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflex" value="234" c:type="IBUS_KEY_ecircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexacute"
+              value="16785087"
+              c:type="IBUS_KEY_ecircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexbelowdot"
+              value="16785095"
+              c:type="IBUS_KEY_ecircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexgrave"
+              value="16785089"
+              c:type="IBUS_KEY_ecircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflexhook"
+              value="16785091"
+              c:type="IBUS_KEY_ecircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ecircumflextilde"
+              value="16785093"
+              c:type="IBUS_KEY_ecircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ediaeresis" value="235" c:type="IBUS_KEY_ediaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_egrave" value="232" c:type="IBUS_KEY_egrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ehook" value="16785083" c:type="IBUS_KEY_ehook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eightsubscript"
+              value="16785544"
+              c:type="IBUS_KEY_eightsubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eightsuperior"
+              value="16785528"
+              c:type="IBUS_KEY_eightsuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_elementof"
+              value="16785928"
+              c:type="IBUS_KEY_elementof">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ellipsis" value="2734" c:type="IBUS_KEY_ellipsis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_em3space" value="2723" c:type="IBUS_KEY_em3space">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_em4space" value="2724" c:type="IBUS_KEY_em4space">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emacron" value="954" c:type="IBUS_KEY_emacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emdash" value="2729" c:type="IBUS_KEY_emdash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emfilledcircle"
+              value="2782"
+              c:type="IBUS_KEY_emfilledcircle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emfilledrect"
+              value="2783"
+              c:type="IBUS_KEY_emfilledrect">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emopencircle"
+              value="2766"
+              c:type="IBUS_KEY_emopencircle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emopenrectangle"
+              value="2767"
+              c:type="IBUS_KEY_emopenrectangle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emptyset" value="16785925" c:type="IBUS_KEY_emptyset">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_emspace" value="2721" c:type="IBUS_KEY_emspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_endash" value="2730" c:type="IBUS_KEY_endash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enfilledcircbullet"
+              value="2790"
+              c:type="IBUS_KEY_enfilledcircbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enfilledsqbullet"
+              value="2791"
+              c:type="IBUS_KEY_enfilledsqbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eng" value="959" c:type="IBUS_KEY_eng">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enopencircbullet"
+              value="2784"
+              c:type="IBUS_KEY_enopencircbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enopensquarebullet"
+              value="2785"
+              c:type="IBUS_KEY_enopensquarebullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_enspace" value="2722" c:type="IBUS_KEY_enspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eogonek" value="490" c:type="IBUS_KEY_eogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_equal" value="61" c:type="IBUS_KEY_equal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_eth" value="240" c:type="IBUS_KEY_eth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_etilde" value="16785085" c:type="IBUS_KEY_etilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_exclam" value="33" c:type="IBUS_KEY_exclam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_exclamdown" value="161" c:type="IBUS_KEY_exclamdown">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_f" value="102" c:type="IBUS_KEY_f">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fabovedot"
+              value="16784927"
+              c:type="IBUS_KEY_fabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_femalesymbol"
+              value="2808"
+              c:type="IBUS_KEY_femalesymbol">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ff" value="2531" c:type="IBUS_KEY_ff">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_figdash" value="2747" c:type="IBUS_KEY_figdash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledlefttribullet"
+              value="2780"
+              c:type="IBUS_KEY_filledlefttribullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledrectbullet"
+              value="2779"
+              c:type="IBUS_KEY_filledrectbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledrighttribullet"
+              value="2781"
+              c:type="IBUS_KEY_filledrighttribullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledtribulletdown"
+              value="2793"
+              c:type="IBUS_KEY_filledtribulletdown">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_filledtribulletup"
+              value="2792"
+              c:type="IBUS_KEY_filledtribulletup">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fiveeighths"
+              value="2757"
+              c:type="IBUS_KEY_fiveeighths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fivesixths" value="2743" c:type="IBUS_KEY_fivesixths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fivesubscript"
+              value="16785541"
+              c:type="IBUS_KEY_fivesubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fivesuperior"
+              value="16785525"
+              c:type="IBUS_KEY_fivesuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fourfifths" value="2741" c:type="IBUS_KEY_fourfifths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_foursubscript"
+              value="16785540"
+              c:type="IBUS_KEY_foursubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_foursuperior"
+              value="16785524"
+              c:type="IBUS_KEY_foursuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_fourthroot"
+              value="16785948"
+              c:type="IBUS_KEY_fourthroot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_function" value="2294" c:type="IBUS_KEY_function">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_g" value="103" c:type="IBUS_KEY_g">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gabovedot" value="757" c:type="IBUS_KEY_gabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gbreve" value="699" c:type="IBUS_KEY_gbreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gcaron" value="16777703" c:type="IBUS_KEY_gcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gcedilla" value="955" c:type="IBUS_KEY_gcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_gcircumflex" value="760" c:type="IBUS_KEY_gcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_grave" value="96" c:type="IBUS_KEY_grave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_greater" value="62" c:type="IBUS_KEY_greater">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_greaterthanequal"
+              value="2238"
+              c:type="IBUS_KEY_greaterthanequal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_guillemotleft"
+              value="171"
+              c:type="IBUS_KEY_guillemotleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_guillemotright"
+              value="187"
+              c:type="IBUS_KEY_guillemotright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_h" value="104" c:type="IBUS_KEY_h">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hairspace" value="2728" c:type="IBUS_KEY_hairspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hcircumflex" value="694" c:type="IBUS_KEY_hcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_heart" value="2798" c:type="IBUS_KEY_heart">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_aleph"
+              value="3296"
+              c:type="IBUS_KEY_hebrew_aleph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_ayin"
+              value="3314"
+              c:type="IBUS_KEY_hebrew_ayin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_bet" value="3297" c:type="IBUS_KEY_hebrew_bet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_beth"
+              value="3297"
+              c:type="IBUS_KEY_hebrew_beth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_chet"
+              value="3303"
+              c:type="IBUS_KEY_hebrew_chet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_dalet"
+              value="3299"
+              c:type="IBUS_KEY_hebrew_dalet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_daleth"
+              value="3299"
+              c:type="IBUS_KEY_hebrew_daleth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_doublelowline"
+              value="3295"
+              c:type="IBUS_KEY_hebrew_doublelowline">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalkaph"
+              value="3306"
+              c:type="IBUS_KEY_hebrew_finalkaph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalmem"
+              value="3309"
+              c:type="IBUS_KEY_hebrew_finalmem">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalnun"
+              value="3311"
+              c:type="IBUS_KEY_hebrew_finalnun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalpe"
+              value="3315"
+              c:type="IBUS_KEY_hebrew_finalpe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalzade"
+              value="3317"
+              c:type="IBUS_KEY_hebrew_finalzade">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_finalzadi"
+              value="3317"
+              c:type="IBUS_KEY_hebrew_finalzadi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_gimel"
+              value="3298"
+              c:type="IBUS_KEY_hebrew_gimel">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_gimmel"
+              value="3298"
+              c:type="IBUS_KEY_hebrew_gimmel">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_he" value="3300" c:type="IBUS_KEY_hebrew_he">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_het" value="3303" c:type="IBUS_KEY_hebrew_het">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_kaph"
+              value="3307"
+              c:type="IBUS_KEY_hebrew_kaph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_kuf" value="3319" c:type="IBUS_KEY_hebrew_kuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_lamed"
+              value="3308"
+              c:type="IBUS_KEY_hebrew_lamed">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_mem" value="3310" c:type="IBUS_KEY_hebrew_mem">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_nun" value="3312" c:type="IBUS_KEY_hebrew_nun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_pe" value="3316" c:type="IBUS_KEY_hebrew_pe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_qoph"
+              value="3319"
+              c:type="IBUS_KEY_hebrew_qoph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_resh"
+              value="3320"
+              c:type="IBUS_KEY_hebrew_resh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_samech"
+              value="3313"
+              c:type="IBUS_KEY_hebrew_samech">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_samekh"
+              value="3313"
+              c:type="IBUS_KEY_hebrew_samekh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_shin"
+              value="3321"
+              c:type="IBUS_KEY_hebrew_shin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_taf" value="3322" c:type="IBUS_KEY_hebrew_taf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_taw" value="3322" c:type="IBUS_KEY_hebrew_taw">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_tet" value="3304" c:type="IBUS_KEY_hebrew_tet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_teth"
+              value="3304"
+              c:type="IBUS_KEY_hebrew_teth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_waw" value="3301" c:type="IBUS_KEY_hebrew_waw">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_yod" value="3305" c:type="IBUS_KEY_hebrew_yod">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zade"
+              value="3318"
+              c:type="IBUS_KEY_hebrew_zade">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zadi"
+              value="3318"
+              c:type="IBUS_KEY_hebrew_zadi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zain"
+              value="3302"
+              c:type="IBUS_KEY_hebrew_zain">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hebrew_zayin"
+              value="3302"
+              c:type="IBUS_KEY_hebrew_zayin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hexagram" value="2778" c:type="IBUS_KEY_hexagram">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizconnector"
+              value="2211"
+              c:type="IBUS_KEY_horizconnector">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan1"
+              value="2543"
+              c:type="IBUS_KEY_horizlinescan1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan3"
+              value="2544"
+              c:type="IBUS_KEY_horizlinescan3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan5"
+              value="2545"
+              c:type="IBUS_KEY_horizlinescan5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan7"
+              value="2546"
+              c:type="IBUS_KEY_horizlinescan7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_horizlinescan9"
+              value="2547"
+              c:type="IBUS_KEY_horizlinescan9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hstroke" value="689" c:type="IBUS_KEY_hstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ht" value="2530" c:type="IBUS_KEY_ht">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_hyphen" value="173" c:type="IBUS_KEY_hyphen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_i" value="105" c:type="IBUS_KEY_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_iacute" value="237" c:type="IBUS_KEY_iacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ibelowdot"
+              value="16785099"
+              c:type="IBUS_KEY_ibelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ibreve" value="16777517" c:type="IBUS_KEY_ibreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_icircumflex" value="238" c:type="IBUS_KEY_icircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_identical" value="2255" c:type="IBUS_KEY_identical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_idiaeresis" value="239" c:type="IBUS_KEY_idiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_idotless" value="697" c:type="IBUS_KEY_idotless">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ifonlyif" value="2253" c:type="IBUS_KEY_ifonlyif">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_igrave" value="236" c:type="IBUS_KEY_igrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ihook" value="16785097" c:type="IBUS_KEY_ihook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_imacron" value="1007" c:type="IBUS_KEY_imacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_implies" value="2254" c:type="IBUS_KEY_implies">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_includedin" value="2266" c:type="IBUS_KEY_includedin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_includes" value="2267" c:type="IBUS_KEY_includes">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_infinity" value="2242" c:type="IBUS_KEY_infinity">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_integral" value="2239" c:type="IBUS_KEY_integral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_intersection"
+              value="2268"
+              c:type="IBUS_KEY_intersection">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_iogonek" value="999" c:type="IBUS_KEY_iogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_itilde" value="949" c:type="IBUS_KEY_itilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_j" value="106" c:type="IBUS_KEY_j">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_jcircumflex" value="700" c:type="IBUS_KEY_jcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_jot" value="3018" c:type="IBUS_KEY_jot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_k" value="107" c:type="IBUS_KEY_k">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_A" value="1201" c:type="IBUS_KEY_kana_A">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_CHI" value="1217" c:type="IBUS_KEY_kana_CHI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_E" value="1204" c:type="IBUS_KEY_kana_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_FU" value="1228" c:type="IBUS_KEY_kana_FU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HA" value="1226" c:type="IBUS_KEY_kana_HA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HE" value="1229" c:type="IBUS_KEY_kana_HE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HI" value="1227" c:type="IBUS_KEY_kana_HI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HO" value="1230" c:type="IBUS_KEY_kana_HO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_HU" value="1228" c:type="IBUS_KEY_kana_HU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_I" value="1202" c:type="IBUS_KEY_kana_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KA" value="1206" c:type="IBUS_KEY_kana_KA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KE" value="1209" c:type="IBUS_KEY_kana_KE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KI" value="1207" c:type="IBUS_KEY_kana_KI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KO" value="1210" c:type="IBUS_KEY_kana_KO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_KU" value="1208" c:type="IBUS_KEY_kana_KU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MA" value="1231" c:type="IBUS_KEY_kana_MA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_ME" value="1234" c:type="IBUS_KEY_kana_ME">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MI" value="1232" c:type="IBUS_KEY_kana_MI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MO" value="1235" c:type="IBUS_KEY_kana_MO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_MU" value="1233" c:type="IBUS_KEY_kana_MU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_N" value="1245" c:type="IBUS_KEY_kana_N">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NA" value="1221" c:type="IBUS_KEY_kana_NA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NE" value="1224" c:type="IBUS_KEY_kana_NE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NI" value="1222" c:type="IBUS_KEY_kana_NI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NO" value="1225" c:type="IBUS_KEY_kana_NO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_NU" value="1223" c:type="IBUS_KEY_kana_NU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_O" value="1205" c:type="IBUS_KEY_kana_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RA" value="1239" c:type="IBUS_KEY_kana_RA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RE" value="1242" c:type="IBUS_KEY_kana_RE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RI" value="1240" c:type="IBUS_KEY_kana_RI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RO" value="1243" c:type="IBUS_KEY_kana_RO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_RU" value="1241" c:type="IBUS_KEY_kana_RU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SA" value="1211" c:type="IBUS_KEY_kana_SA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SE" value="1214" c:type="IBUS_KEY_kana_SE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SHI" value="1212" c:type="IBUS_KEY_kana_SHI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SO" value="1215" c:type="IBUS_KEY_kana_SO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_SU" value="1213" c:type="IBUS_KEY_kana_SU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TA" value="1216" c:type="IBUS_KEY_kana_TA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TE" value="1219" c:type="IBUS_KEY_kana_TE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TI" value="1217" c:type="IBUS_KEY_kana_TI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TO" value="1220" c:type="IBUS_KEY_kana_TO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TSU" value="1218" c:type="IBUS_KEY_kana_TSU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_TU" value="1218" c:type="IBUS_KEY_kana_TU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_U" value="1203" c:type="IBUS_KEY_kana_U">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_WA" value="1244" c:type="IBUS_KEY_kana_WA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_WO" value="1190" c:type="IBUS_KEY_kana_WO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_YA" value="1236" c:type="IBUS_KEY_kana_YA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_YO" value="1238" c:type="IBUS_KEY_kana_YO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_YU" value="1237" c:type="IBUS_KEY_kana_YU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_a" value="1191" c:type="IBUS_KEY_kana_a">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_closingbracket"
+              value="1187"
+              c:type="IBUS_KEY_kana_closingbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_comma" value="1188" c:type="IBUS_KEY_kana_comma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_conjunctive"
+              value="1189"
+              c:type="IBUS_KEY_kana_conjunctive">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_e" value="1194" c:type="IBUS_KEY_kana_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_fullstop"
+              value="1185"
+              c:type="IBUS_KEY_kana_fullstop">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_i" value="1192" c:type="IBUS_KEY_kana_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_middledot"
+              value="1189"
+              c:type="IBUS_KEY_kana_middledot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_o" value="1195" c:type="IBUS_KEY_kana_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_openingbracket"
+              value="1186"
+              c:type="IBUS_KEY_kana_openingbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_switch"
+              value="65406"
+              c:type="IBUS_KEY_kana_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_tsu" value="1199" c:type="IBUS_KEY_kana_tsu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_tu" value="1199" c:type="IBUS_KEY_kana_tu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_u" value="1193" c:type="IBUS_KEY_kana_u">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_ya" value="1196" c:type="IBUS_KEY_kana_ya">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_yo" value="1198" c:type="IBUS_KEY_kana_yo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kana_yu" value="1197" c:type="IBUS_KEY_kana_yu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kappa" value="930" c:type="IBUS_KEY_kappa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kcedilla" value="1011" c:type="IBUS_KEY_kcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_kra" value="930" c:type="IBUS_KEY_kra">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_l" value="108" c:type="IBUS_KEY_l">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lacute" value="485" c:type="IBUS_KEY_lacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_latincross" value="2777" c:type="IBUS_KEY_latincross">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lbelowdot"
+              value="16784951"
+              c:type="IBUS_KEY_lbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lcaron" value="437" c:type="IBUS_KEY_lcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lcedilla" value="950" c:type="IBUS_KEY_lcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftanglebracket"
+              value="2748"
+              c:type="IBUS_KEY_leftanglebracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftarrow" value="2299" c:type="IBUS_KEY_leftarrow">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftcaret" value="2979" c:type="IBUS_KEY_leftcaret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftdoublequotemark"
+              value="2770"
+              c:type="IBUS_KEY_leftdoublequotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftmiddlecurlybrace"
+              value="2223"
+              c:type="IBUS_KEY_leftmiddlecurlybrace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftopentriangle"
+              value="2764"
+              c:type="IBUS_KEY_leftopentriangle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftpointer"
+              value="2794"
+              c:type="IBUS_KEY_leftpointer">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftradical"
+              value="2209"
+              c:type="IBUS_KEY_leftradical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftshoe" value="3034" c:type="IBUS_KEY_leftshoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftsinglequotemark"
+              value="2768"
+              c:type="IBUS_KEY_leftsinglequotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_leftt" value="2548" c:type="IBUS_KEY_leftt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lefttack" value="3036" c:type="IBUS_KEY_lefttack">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_less" value="60" c:type="IBUS_KEY_less">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lessthanequal"
+              value="2236"
+              c:type="IBUS_KEY_lessthanequal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lf" value="2533" c:type="IBUS_KEY_lf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_logicaland" value="2270" c:type="IBUS_KEY_logicaland">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_logicalor" value="2271" c:type="IBUS_KEY_logicalor">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lowleftcorner"
+              value="2541"
+              c:type="IBUS_KEY_lowleftcorner">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lowrightcorner"
+              value="2538"
+              c:type="IBUS_KEY_lowrightcorner">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_lstroke" value="435" c:type="IBUS_KEY_lstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_m" value="109" c:type="IBUS_KEY_m">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_mabovedot"
+              value="16784961"
+              c:type="IBUS_KEY_mabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_macron" value="175" c:type="IBUS_KEY_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_malesymbol" value="2807" c:type="IBUS_KEY_malesymbol">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_maltesecross"
+              value="2800"
+              c:type="IBUS_KEY_maltesecross">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_marker" value="2751" c:type="IBUS_KEY_marker">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_masculine" value="186" c:type="IBUS_KEY_masculine">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_minus" value="45" c:type="IBUS_KEY_minus">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_minutes" value="2774" c:type="IBUS_KEY_minutes">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_mu" value="181" c:type="IBUS_KEY_mu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_multiply" value="215" c:type="IBUS_KEY_multiply">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_musicalflat"
+              value="2806"
+              c:type="IBUS_KEY_musicalflat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_musicalsharp"
+              value="2805"
+              c:type="IBUS_KEY_musicalsharp">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_n" value="110" c:type="IBUS_KEY_n">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nabla" value="2245" c:type="IBUS_KEY_nabla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nacute" value="497" c:type="IBUS_KEY_nacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ncaron" value="498" c:type="IBUS_KEY_ncaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ncedilla" value="1009" c:type="IBUS_KEY_ncedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ninesubscript"
+              value="16785545"
+              c:type="IBUS_KEY_ninesubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ninesuperior"
+              value="16785529"
+              c:type="IBUS_KEY_ninesuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nl" value="2536" c:type="IBUS_KEY_nl">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_nobreakspace"
+              value="160"
+              c:type="IBUS_KEY_nobreakspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notapproxeq"
+              value="16785991"
+              c:type="IBUS_KEY_notapproxeq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notelementof"
+              value="16785929"
+              c:type="IBUS_KEY_notelementof">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notequal" value="2237" c:type="IBUS_KEY_notequal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notidentical"
+              value="16786018"
+              c:type="IBUS_KEY_notidentical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_notsign" value="172" c:type="IBUS_KEY_notsign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ntilde" value="241" c:type="IBUS_KEY_ntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_numbersign" value="35" c:type="IBUS_KEY_numbersign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_numerosign" value="1712" c:type="IBUS_KEY_numerosign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_o" value="111" c:type="IBUS_KEY_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oacute" value="243" c:type="IBUS_KEY_oacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_obarred" value="16777845" c:type="IBUS_KEY_obarred">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_obelowdot"
+              value="16785101"
+              c:type="IBUS_KEY_obelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocaron" value="16777682" c:type="IBUS_KEY_ocaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflex" value="244" c:type="IBUS_KEY_ocircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexacute"
+              value="16785105"
+              c:type="IBUS_KEY_ocircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexbelowdot"
+              value="16785113"
+              c:type="IBUS_KEY_ocircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexgrave"
+              value="16785107"
+              c:type="IBUS_KEY_ocircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflexhook"
+              value="16785109"
+              c:type="IBUS_KEY_ocircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ocircumflextilde"
+              value="16785111"
+              c:type="IBUS_KEY_ocircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_odiaeresis" value="246" c:type="IBUS_KEY_odiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_odoubleacute"
+              value="501"
+              c:type="IBUS_KEY_odoubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oe" value="5053" c:type="IBUS_KEY_oe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ogonek" value="434" c:type="IBUS_KEY_ogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ograve" value="242" c:type="IBUS_KEY_ograve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohook" value="16785103" c:type="IBUS_KEY_ohook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohorn" value="16777633" c:type="IBUS_KEY_ohorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohornacute"
+              value="16785115"
+              c:type="IBUS_KEY_ohornacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohornbelowdot"
+              value="16785123"
+              c:type="IBUS_KEY_ohornbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohorngrave"
+              value="16785117"
+              c:type="IBUS_KEY_ohorngrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohornhook"
+              value="16785119"
+              c:type="IBUS_KEY_ohornhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ohorntilde"
+              value="16785121"
+              c:type="IBUS_KEY_ohorntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_omacron" value="1010" c:type="IBUS_KEY_omacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oneeighth" value="2755" c:type="IBUS_KEY_oneeighth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onefifth" value="2738" c:type="IBUS_KEY_onefifth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onehalf" value="189" c:type="IBUS_KEY_onehalf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onequarter" value="188" c:type="IBUS_KEY_onequarter">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onesixth" value="2742" c:type="IBUS_KEY_onesixth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onesubscript"
+              value="16785537"
+              c:type="IBUS_KEY_onesubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onesuperior" value="185" c:type="IBUS_KEY_onesuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_onethird" value="2736" c:type="IBUS_KEY_onethird">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ooblique" value="248" c:type="IBUS_KEY_ooblique">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_openrectbullet"
+              value="2786"
+              c:type="IBUS_KEY_openrectbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_openstar" value="2789" c:type="IBUS_KEY_openstar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_opentribulletdown"
+              value="2788"
+              c:type="IBUS_KEY_opentribulletdown">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_opentribulletup"
+              value="2787"
+              c:type="IBUS_KEY_opentribulletup">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ordfeminine" value="170" c:type="IBUS_KEY_ordfeminine">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_oslash" value="248" c:type="IBUS_KEY_oslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_otilde" value="245" c:type="IBUS_KEY_otilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_overbar" value="3008" c:type="IBUS_KEY_overbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_overline" value="1150" c:type="IBUS_KEY_overline">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_p" value="112" c:type="IBUS_KEY_p">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_pabovedot"
+              value="16784983"
+              c:type="IBUS_KEY_pabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_paragraph" value="182" c:type="IBUS_KEY_paragraph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_parenleft" value="40" c:type="IBUS_KEY_parenleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_parenright" value="41" c:type="IBUS_KEY_parenright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_partdifferential"
+              value="16785922"
+              c:type="IBUS_KEY_partdifferential">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_partialderivative"
+              value="2287"
+              c:type="IBUS_KEY_partialderivative">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_percent" value="37" c:type="IBUS_KEY_percent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_period" value="46" c:type="IBUS_KEY_period">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_periodcentered"
+              value="183"
+              c:type="IBUS_KEY_periodcentered">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_phonographcopyright"
+              value="2811"
+              c:type="IBUS_KEY_phonographcopyright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_plus" value="43" c:type="IBUS_KEY_plus">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_plusminus" value="177" c:type="IBUS_KEY_plusminus">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_prescription"
+              value="2772"
+              c:type="IBUS_KEY_prescription">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_prolongedsound"
+              value="1200"
+              c:type="IBUS_KEY_prolongedsound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_punctspace" value="2726" c:type="IBUS_KEY_punctspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_q" value="113" c:type="IBUS_KEY_q">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quad" value="3020" c:type="IBUS_KEY_quad">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_question" value="63" c:type="IBUS_KEY_question">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_questiondown"
+              value="191"
+              c:type="IBUS_KEY_questiondown">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quotedbl" value="34" c:type="IBUS_KEY_quotedbl">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quoteleft" value="96" c:type="IBUS_KEY_quoteleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_quoteright" value="39" c:type="IBUS_KEY_quoteright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_r" value="114" c:type="IBUS_KEY_r">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_racute" value="480" c:type="IBUS_KEY_racute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_radical" value="2262" c:type="IBUS_KEY_radical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rcaron" value="504" c:type="IBUS_KEY_rcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rcedilla" value="947" c:type="IBUS_KEY_rcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_registered" value="174" c:type="IBUS_KEY_registered">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightanglebracket"
+              value="2750"
+              c:type="IBUS_KEY_rightanglebracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightarrow" value="2301" c:type="IBUS_KEY_rightarrow">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightcaret" value="2982" c:type="IBUS_KEY_rightcaret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightdoublequotemark"
+              value="2771"
+              c:type="IBUS_KEY_rightdoublequotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightmiddlecurlybrace"
+              value="2224"
+              c:type="IBUS_KEY_rightmiddlecurlybrace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightmiddlesummation"
+              value="2231"
+              c:type="IBUS_KEY_rightmiddlesummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightopentriangle"
+              value="2765"
+              c:type="IBUS_KEY_rightopentriangle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightpointer"
+              value="2795"
+              c:type="IBUS_KEY_rightpointer">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightshoe" value="3032" c:type="IBUS_KEY_rightshoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightsinglequotemark"
+              value="2769"
+              c:type="IBUS_KEY_rightsinglequotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_rightt" value="2549" c:type="IBUS_KEY_rightt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_righttack" value="3068" c:type="IBUS_KEY_righttack">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_s" value="115" c:type="IBUS_KEY_s">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sabovedot"
+              value="16784993"
+              c:type="IBUS_KEY_sabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sacute" value="438" c:type="IBUS_KEY_sacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_scaron" value="441" c:type="IBUS_KEY_scaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_scedilla" value="442" c:type="IBUS_KEY_scedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_schwa" value="16777817" c:type="IBUS_KEY_schwa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_scircumflex" value="766" c:type="IBUS_KEY_scircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_script_switch"
+              value="65406"
+              c:type="IBUS_KEY_script_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_seconds" value="2775" c:type="IBUS_KEY_seconds">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_section" value="167" c:type="IBUS_KEY_section">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_semicolon" value="59" c:type="IBUS_KEY_semicolon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_semivoicedsound"
+              value="1247"
+              c:type="IBUS_KEY_semivoicedsound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_seveneighths"
+              value="2758"
+              c:type="IBUS_KEY_seveneighths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sevensubscript"
+              value="16785543"
+              c:type="IBUS_KEY_sevensubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sevensuperior"
+              value="16785527"
+              c:type="IBUS_KEY_sevensuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_signaturemark"
+              value="2762"
+              c:type="IBUS_KEY_signaturemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_signifblank"
+              value="2732"
+              c:type="IBUS_KEY_signifblank">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_similarequal"
+              value="2249"
+              c:type="IBUS_KEY_similarequal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_singlelowquotemark"
+              value="2813"
+              c:type="IBUS_KEY_singlelowquotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sixsubscript"
+              value="16785542"
+              c:type="IBUS_KEY_sixsubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sixsuperior"
+              value="16785526"
+              c:type="IBUS_KEY_sixsuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_slash" value="47" c:type="IBUS_KEY_slash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_soliddiamond"
+              value="2528"
+              c:type="IBUS_KEY_soliddiamond">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_space" value="32" c:type="IBUS_KEY_space">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_squareroot"
+              value="16785946"
+              c:type="IBUS_KEY_squareroot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ssharp" value="223" c:type="IBUS_KEY_ssharp">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_sterling" value="163" c:type="IBUS_KEY_sterling">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_stricteq" value="16786019" c:type="IBUS_KEY_stricteq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_t" value="116" c:type="IBUS_KEY_t">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tabovedot"
+              value="16785003"
+              c:type="IBUS_KEY_tabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tcaron" value="443" c:type="IBUS_KEY_tcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tcedilla" value="510" c:type="IBUS_KEY_tcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_telephone" value="2809" c:type="IBUS_KEY_telephone">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_telephonerecorder"
+              value="2810"
+              c:type="IBUS_KEY_telephonerecorder">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_therefore" value="2240" c:type="IBUS_KEY_therefore">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_thinspace" value="2727" c:type="IBUS_KEY_thinspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_thorn" value="254" c:type="IBUS_KEY_thorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threeeighths"
+              value="2756"
+              c:type="IBUS_KEY_threeeighths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threefifths"
+              value="2740"
+              c:type="IBUS_KEY_threefifths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threequarters"
+              value="190"
+              c:type="IBUS_KEY_threequarters">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threesubscript"
+              value="16785539"
+              c:type="IBUS_KEY_threesubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_threesuperior"
+              value="179"
+              c:type="IBUS_KEY_threesuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tintegral"
+              value="16785965"
+              c:type="IBUS_KEY_tintegral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topintegral"
+              value="2212"
+              c:type="IBUS_KEY_topintegral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftparens"
+              value="2219"
+              c:type="IBUS_KEY_topleftparens">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftradical"
+              value="2210"
+              c:type="IBUS_KEY_topleftradical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftsqbracket"
+              value="2215"
+              c:type="IBUS_KEY_topleftsqbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topleftsummation"
+              value="2225"
+              c:type="IBUS_KEY_topleftsummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_toprightparens"
+              value="2221"
+              c:type="IBUS_KEY_toprightparens">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_toprightsqbracket"
+              value="2217"
+              c:type="IBUS_KEY_toprightsqbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_toprightsummation"
+              value="2229"
+              c:type="IBUS_KEY_toprightsummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topt" value="2551" c:type="IBUS_KEY_topt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_topvertsummationconnector"
+              value="2227"
+              c:type="IBUS_KEY_topvertsummationconnector">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_trademark" value="2761" c:type="IBUS_KEY_trademark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_trademarkincircle"
+              value="2763"
+              c:type="IBUS_KEY_trademarkincircle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_tslash" value="956" c:type="IBUS_KEY_tslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twofifths" value="2739" c:type="IBUS_KEY_twofifths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twosubscript"
+              value="16785538"
+              c:type="IBUS_KEY_twosubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twosuperior" value="178" c:type="IBUS_KEY_twosuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_twothirds" value="2737" c:type="IBUS_KEY_twothirds">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_u" value="117" c:type="IBUS_KEY_u">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uacute" value="250" c:type="IBUS_KEY_uacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ubelowdot"
+              value="16785125"
+              c:type="IBUS_KEY_ubelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ubreve" value="765" c:type="IBUS_KEY_ubreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ucircumflex" value="251" c:type="IBUS_KEY_ucircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_udiaeresis" value="252" c:type="IBUS_KEY_udiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_udoubleacute"
+              value="507"
+              c:type="IBUS_KEY_udoubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ugrave" value="249" c:type="IBUS_KEY_ugrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhook" value="16785127" c:type="IBUS_KEY_uhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhorn" value="16777648" c:type="IBUS_KEY_uhorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhornacute"
+              value="16785129"
+              c:type="IBUS_KEY_uhornacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhornbelowdot"
+              value="16785137"
+              c:type="IBUS_KEY_uhornbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhorngrave"
+              value="16785131"
+              c:type="IBUS_KEY_uhorngrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhornhook"
+              value="16785133"
+              c:type="IBUS_KEY_uhornhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uhorntilde"
+              value="16785135"
+              c:type="IBUS_KEY_uhorntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_umacron" value="1022" c:type="IBUS_KEY_umacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_underbar" value="3014" c:type="IBUS_KEY_underbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_underscore" value="95" c:type="IBUS_KEY_underscore">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_union" value="2269" c:type="IBUS_KEY_union">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uogonek" value="1017" c:type="IBUS_KEY_uogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uparrow" value="2300" c:type="IBUS_KEY_uparrow">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upcaret" value="2985" c:type="IBUS_KEY_upcaret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upleftcorner"
+              value="2540"
+              c:type="IBUS_KEY_upleftcorner">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uprightcorner"
+              value="2539"
+              c:type="IBUS_KEY_uprightcorner">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upshoe" value="3011" c:type="IBUS_KEY_upshoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_upstile" value="3027" c:type="IBUS_KEY_upstile">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uptack" value="3022" c:type="IBUS_KEY_uptack">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_uring" value="505" c:type="IBUS_KEY_uring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_utilde" value="1021" c:type="IBUS_KEY_utilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_v" value="118" c:type="IBUS_KEY_v">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_variation" value="2241" c:type="IBUS_KEY_variation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_vertbar" value="2552" c:type="IBUS_KEY_vertbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_vertconnector"
+              value="2214"
+              c:type="IBUS_KEY_vertconnector">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_voicedsound"
+              value="1246"
+              c:type="IBUS_KEY_voicedsound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_vt" value="2537" c:type="IBUS_KEY_vt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_w" value="119" c:type="IBUS_KEY_w">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wacute" value="16785027" c:type="IBUS_KEY_wacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wcircumflex"
+              value="16777589"
+              c:type="IBUS_KEY_wcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wdiaeresis"
+              value="16785029"
+              c:type="IBUS_KEY_wdiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_wgrave" value="16785025" c:type="IBUS_KEY_wgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_x" value="120" c:type="IBUS_KEY_x">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_xabovedot"
+              value="16785035"
+              c:type="IBUS_KEY_xabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_y" value="121" c:type="IBUS_KEY_y">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_yacute" value="253" c:type="IBUS_KEY_yacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ybelowdot"
+              value="16785141"
+              c:type="IBUS_KEY_ybelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ycircumflex"
+              value="16777591"
+              c:type="IBUS_KEY_ycircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ydiaeresis" value="255" c:type="IBUS_KEY_ydiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_yen" value="165" c:type="IBUS_KEY_yen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ygrave" value="16785139" c:type="IBUS_KEY_ygrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_yhook" value="16785143" c:type="IBUS_KEY_yhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_ytilde" value="16785145" c:type="IBUS_KEY_ytilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_z" value="122" c:type="IBUS_KEY_z">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zabovedot" value="447" c:type="IBUS_KEY_zabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zacute" value="444" c:type="IBUS_KEY_zacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zcaron" value="446" c:type="IBUS_KEY_zcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zerosubscript"
+              value="16785536"
+              c:type="IBUS_KEY_zerosubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zerosuperior"
+              value="16785520"
+              c:type="IBUS_KEY_zerosuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KEY_zstroke" value="16777654" c:type="IBUS_KEY_zstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_0" value="65456" c:type="IBUS_KP_0">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_1" value="65457" c:type="IBUS_KP_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_2" value="65458" c:type="IBUS_KP_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_3" value="65459" c:type="IBUS_KP_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_4" value="65460" c:type="IBUS_KP_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_5" value="65461" c:type="IBUS_KP_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_6" value="65462" c:type="IBUS_KP_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_7" value="65463" c:type="IBUS_KP_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_8" value="65464" c:type="IBUS_KP_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_9" value="65465" c:type="IBUS_KP_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Add" value="65451" c:type="IBUS_KP_Add">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Begin" value="65437" c:type="IBUS_KP_Begin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Decimal" value="65454" c:type="IBUS_KP_Decimal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Delete" value="65439" c:type="IBUS_KP_Delete">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Divide" value="65455" c:type="IBUS_KP_Divide">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Down" value="65433" c:type="IBUS_KP_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_End" value="65436" c:type="IBUS_KP_End">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Enter" value="65421" c:type="IBUS_KP_Enter">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Equal" value="65469" c:type="IBUS_KP_Equal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_F1" value="65425" c:type="IBUS_KP_F1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_F2" value="65426" c:type="IBUS_KP_F2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_F3" value="65427" c:type="IBUS_KP_F3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_F4" value="65428" c:type="IBUS_KP_F4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Home" value="65429" c:type="IBUS_KP_Home">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Insert" value="65438" c:type="IBUS_KP_Insert">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Left" value="65430" c:type="IBUS_KP_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Multiply" value="65450" c:type="IBUS_KP_Multiply">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Next" value="65435" c:type="IBUS_KP_Next">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Page_Down" value="65435" c:type="IBUS_KP_Page_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Page_Up" value="65434" c:type="IBUS_KP_Page_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Prior" value="65434" c:type="IBUS_KP_Prior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Right" value="65432" c:type="IBUS_KP_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Separator" value="65452" c:type="IBUS_KP_Separator">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Space" value="65408" c:type="IBUS_KP_Space">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Subtract" value="65453" c:type="IBUS_KP_Subtract">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Tab" value="65417" c:type="IBUS_KP_Tab">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="KP_Up" value="65431" c:type="IBUS_KP_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kana_Lock" value="65325" c:type="IBUS_Kana_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kana_Shift" value="65326" c:type="IBUS_Kana_Shift">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kanji" value="65313" c:type="IBUS_Kanji">
+      <doc xml:whitespace="preserve">Japanese keyboard support.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kanji_Bangou" value="65335" c:type="IBUS_Kanji_Bangou">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Katakana" value="65318" c:type="IBUS_Katakana">
+      <doc xml:whitespace="preserve">Japanese keyboard support.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Kcedilla" value="979" c:type="IBUS_Kcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Keymap"
+           c:symbol-prefix="keymap"
+           c:type="IBusKeymap"
+           parent="Object"
+           glib:type-name="IBusKeymap"
+           glib:get-type="ibus_keymap_get_type"
+           glib:type-struct="KeymapClass">
+      <doc xml:whitespace="preserve">An IBusKeymap defines the mapping between keyboard scancodes and
+keyboard symbols such as numbers, alphabets, and punctuation marks.
+
+Some input methods assume certain keyboard layout
+(such as Chewing and Wubi requires an US-QWERTY layout),
+and expect key symbols to be arranged in that order.
+These input methods should new an IBusKeymap
+instance and define the keyboard layout.
+Then ibus_keymap_lookup_keysym() can
+convert scancodes back to the key symbols.</doc>
+      <constructor name="new"
+                   c:identifier="ibus_keymap_new"
+                   deprecated="This function has been deprecated and should not be used in newly written code. Please use ibus_keymap_get().">
+        <doc xml:whitespace="preserve">Get an IBusKeymap associated with the giving name.
+
+This function loads the keymap file specified in @name
+in the IBUS_DATA_DIR/keymaps directory.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">An IBusKeymap associated with the giving name; or NULL if failed.</doc>
+          <type name="Keymap" c:type="IBusKeymap*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The keymap file to be loaded, such as 'us', 'jp'.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <function name="get" c:identifier="ibus_keymap_get" introspectable="0">
+        <doc xml:whitespace="preserve">Get an IBusKeymap associated with the giving name.
+
+This function loads the keymap file specified in @name
+in the IBUS_DATA_DIR/keymaps directory.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">An IBusKeymap associated with the giving name; or NULL if failed.</doc>
+          <type name="Keymap" c:type="IBusKeymap*"/>
+        </return-value>
+        <parameters>
+          <parameter name="name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The keymap file to be loaded, such as 'us', 'jp'.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <method name="lookup_keysym" c:identifier="ibus_keymap_lookup_keysym">
+        <doc xml:whitespace="preserve">Convert the scancode to keysym, given the keymap.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">Corresponding keysym.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="keymap" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusKeymap.</doc>
+            <type name="Keymap" c:type="IBusKeymap*"/>
+          </instance-parameter>
+          <parameter name="keycode" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A scancode to be converted.</doc>
+            <type name="guint16" c:type="guint16"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Modifier flags(such as Ctrl, Shift).</doc>
+            <type name="guint32" c:type="guint32"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent" readable="0" private="1">
+        <type name="Object" c:type="IBusObject"/>
+      </field>
+      <field name="name">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="keymap">
+        <array zero-terminated="0" c:type="guint" fixed-size="256">
+          <type name="guint" c:type="guint"/>
+        </array>
+      </field>
+    </class>
+    <record name="KeymapClass"
+            c:type="IBusKeymapClass"
+            glib:is-gtype-struct-for="Keymap">
+      <field name="parent">
+        <type name="ObjectClass" c:type="IBusObjectClass"/>
+      </field>
+    </record>
+    <constant name="Korean_Won" value="3839" c:type="IBUS_Korean_Won">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L" value="76" c:type="IBUS_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L1" value="65480" c:type="IBUS_L1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L10" value="65489" c:type="IBUS_L10">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L2" value="65481" c:type="IBUS_L2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L3" value="65482" c:type="IBUS_L3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L4" value="65483" c:type="IBUS_L4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L5" value="65484" c:type="IBUS_L5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L6" value="65485" c:type="IBUS_L6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L7" value="65486" c:type="IBUS_L7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L8" value="65487" c:type="IBUS_L8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="L9" value="65488" c:type="IBUS_L9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Lacute" value="453" c:type="IBUS_Lacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Last_Virtual_Screen"
+              value="65236"
+              c:type="IBUS_Last_Virtual_Screen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Lbelowdot" value="16784950" c:type="IBUS_Lbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Lcaron" value="421" c:type="IBUS_Lcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Lcedilla" value="934" c:type="IBUS_Lcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Left" value="65361" c:type="IBUS_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Linefeed" value="65290" c:type="IBUS_Linefeed">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="LiraSign" value="16785572" c:type="IBUS_LiraSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="LookupTable"
+           c:symbol-prefix="lookup_table"
+           c:type="IBusLookupTable"
+           parent="Serializable"
+           glib:type-name="IBusLookupTable"
+           glib:get-type="ibus_lookup_table_get_type"
+           glib:type-struct="LookupTableClass">
+      <doc xml:whitespace="preserve">An IBusLookuptable stores the candidate words or phrases for users to choose from.
+
+Use ibus_engine_update_lookup_table(), ibus_engine_show_lookup_table(),
+and ibus_engine_hide_lookup_table() to update, show and hide the lookup
+table.</doc>
+      <constructor name="new" c:identifier="ibus_lookup_table_new">
+        <doc xml:whitespace="preserve">New a IBusLookupTable.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusLookupTable.</doc>
+          <type name="LookupTable" c:type="IBusLookupTable*"/>
+        </return-value>
+        <parameters>
+          <parameter name="page_size" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of candidate shown per page, the max value is 16.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">position index of cursor.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="cursor_visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">whether the cursor is visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="round" transfer-ownership="none">
+            <doc xml:whitespace="preserve">TRUE for lookup table wrap around.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="append_candidate"
+              c:identifier="ibus_lookup_table_append_candidate">
+        <doc xml:whitespace="preserve">Append a candidate word/phrase to IBusLookupTable, and increase reference.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">candidate word/phrase to be appended (in IBusText format).</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="append_label"
+              c:identifier="ibus_lookup_table_append_label">
+        <doc xml:whitespace="preserve">Append a candidate word/phrase to IBusLookupTable, and increase reference.
+This function is needed if the input method select candidate with
+non-numeric keys such as "asdfghjkl;".</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A candidate label to be appended (in IBusText format).</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="clear" c:identifier="ibus_lookup_table_clear">
+        <doc xml:whitespace="preserve">Clear and remove all candidate from an IBusLookupTable.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="cursor_down" c:identifier="ibus_lookup_table_cursor_down">
+        <doc xml:whitespace="preserve">Go to next candidate of an IBusLookupTable.
+
+It returns FALSE if it is already at the last candidate,
+unless  &lt;code&gt;table&amp;gt;-round==TRUE&lt;/code&gt;, where it will go
+to the first candidate.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if succeed.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="cursor_up" c:identifier="ibus_lookup_table_cursor_up">
+        <doc xml:whitespace="preserve">Go to previous candidate of an IBusLookupTable.
+
+It returns FALSE if it is already at the first candidate,
+unless  &lt;code&gt;table&amp;gt;-round==TRUE&lt;/code&gt;, where it will go
+to the last candidate.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if succeed.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_candidate"
+              c:identifier="ibus_lookup_table_get_candidate">
+        <doc xml:whitespace="preserve">Return IBusText at the given index. Borrowed reference.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">IBusText at the given index; NULL if no such IBusText.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Index in the Lookup table.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_cursor_in_page"
+              c:identifier="ibus_lookup_table_get_cursor_in_page">
+        <doc xml:whitespace="preserve">Get the cursor position in current page of IBusLookupTable.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The position of cursor in current page.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_cursor_pos"
+              c:identifier="ibus_lookup_table_get_cursor_pos">
+        <doc xml:whitespace="preserve">Get the cursor position of IBusLookupTable.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The position of cursor.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_label" c:identifier="ibus_lookup_table_get_label">
+        <doc xml:whitespace="preserve">Return IBusText at the given index. Borrowed reference.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">IBusText at the given index; NULL if no such IBusText.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Index in the Lookup table.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_number_of_candidates"
+              c:identifier="ibus_lookup_table_get_number_of_candidates">
+        <doc xml:whitespace="preserve">Return the number of candidate in the table.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The number of candidates in the table</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_orientation"
+              c:identifier="ibus_lookup_table_get_orientation">
+        <doc xml:whitespace="preserve">Returns the orientation of the IBusLookupTable.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The orientation of the @table.</doc>
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_page_size"
+              c:identifier="ibus_lookup_table_get_page_size">
+        <doc xml:whitespace="preserve">Get the number of candidate shown per page.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">Page size, i.e., number of candidate shown per page.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_cursor_visible"
+              c:identifier="ibus_lookup_table_is_cursor_visible">
+        <doc xml:whitespace="preserve">Returns whether the cursor of an IBusLookupTable is visible.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">Whether the cursor of @table is visible.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="is_round" c:identifier="ibus_lookup_table_is_round">
+        <doc xml:whitespace="preserve">Returns whether the IBusLookupTable is round.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">Whether the @table is round.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="page_down" c:identifier="ibus_lookup_table_page_down">
+        <doc xml:whitespace="preserve">Go to next page of an IBusLookupTable.
+
+It returns FALSE if it is already at the last page,
+unless  &lt;code&gt;table&amp;gt;-round==TRUE&lt;/code&gt;, where it will go
+to the first page.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if succeed.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="page_up" c:identifier="ibus_lookup_table_page_up">
+        <doc xml:whitespace="preserve">Go to previous page of an IBusLookupTable.
+
+It returns FALSE if it is already at the first page,
+unless  &lt;code&gt;table&amp;gt;-round==TRUE&lt;/code&gt;, where it will go
+to the last page.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if succeed.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_pos"
+              c:identifier="ibus_lookup_table_set_cursor_pos">
+        <doc xml:whitespace="preserve">Set the cursor position of IBusLookupTable.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The position of cursor.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_cursor_visible"
+              c:identifier="ibus_lookup_table_set_cursor_visible">
+        <doc xml:whitespace="preserve">Set whether to make the cursor of an IBusLookupTable visible or not.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether to make the cursor of @table visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_label" c:identifier="ibus_lookup_table_set_label">
+        <doc xml:whitespace="preserve">Append a candidate word/phrase to IBusLookupTable, and increase reference.
+This function is needed if the input method select candidate with
+non-numeric keys such as "asdfghjkl;".</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Intex in the Lookup table.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A candidate label to be appended (in IBusText format).</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_orientation"
+              c:identifier="ibus_lookup_table_set_orientation">
+        <doc xml:whitespace="preserve">Set the orientation.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="orientation" transfer-ownership="none">
+            <doc xml:whitespace="preserve">.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_page_size"
+              c:identifier="ibus_lookup_table_set_page_size">
+        <doc xml:whitespace="preserve">Set the number of candidate shown per page.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="page_size" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of candidate shown per page.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_round" c:identifier="ibus_lookup_table_set_round">
+        <doc xml:whitespace="preserve">Set whether to make the IBusLookupTable round or not.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="table" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusLookupTable.</doc>
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </instance-parameter>
+          <parameter name="round" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether to make @table round.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="page_size">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="cursor_pos">
+        <type name="guint" c:type="guint"/>
+      </field>
+      <field name="cursor_visible">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="round">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="orientation">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="candidates">
+        <array name="GLib.Array" c:type="GArray*">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+      <field name="labels">
+        <array name="GLib.Array" c:type="GArray*">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </class>
+    <record name="LookupTableClass"
+            c:type="IBusLookupTableClass"
+            glib:is-gtype-struct-for="LookupTable">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <constant name="Lstroke" value="419" c:type="IBUS_Lstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="M" value="77" c:type="IBUS_M">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MAJOR_VERSION" value="1" c:type="IBUS_MAJOR_VERSION">
+      <doc xml:whitespace="preserve">IBus major version.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MAX_COMPOSE_LEN" value="7" c:type="IBUS_MAX_COMPOSE_LEN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MICRO_VERSION" value="4" c:type="IBUS_MICRO_VERSION">
+      <doc xml:whitespace="preserve">IBus micro version.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MINOR_VERSION" value="5" c:type="IBUS_MINOR_VERSION">
+      <doc xml:whitespace="preserve">IBus minor version.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Mabovedot" value="16784960" c:type="IBUS_Mabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_DSE" value="1717" c:type="IBUS_Macedonia_DSE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_GJE" value="1714" c:type="IBUS_Macedonia_GJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_KJE" value="1724" c:type="IBUS_Macedonia_KJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_dse" value="1701" c:type="IBUS_Macedonia_dse">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_gje" value="1698" c:type="IBUS_Macedonia_gje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Macedonia_kje" value="1708" c:type="IBUS_Macedonia_kje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Mae_Koho" value="65342" c:type="IBUS_Mae_Koho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Massyo" value="65324" c:type="IBUS_Massyo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Menu" value="65383" c:type="IBUS_Menu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Meta_L" value="65511" c:type="IBUS_Meta_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Meta_R" value="65512" c:type="IBUS_Meta_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MillSign" value="16785573" c:type="IBUS_MillSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Mode_switch" value="65406" c:type="IBUS_Mode_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <bitfield name="ModifierType"
+              glib:type-name="IBusModifierType"
+              glib:get-type="ibus_modifier_type_get_type"
+              c:type="IBusModifierType">
+      <doc xml:whitespace="preserve">Handles key modifier such as control, shift and alt and release event.
+Note that nits 15 - 25 are currently unused, while bit 29 is used internally.</doc>
+      <member name="shift_mask"
+              value="1"
+              c:identifier="IBUS_SHIFT_MASK"
+              glib:nick="shift-mask">
+        <doc xml:whitespace="preserve">Shift  is activated.</doc>
+      </member>
+      <member name="lock_mask"
+              value="2"
+              c:identifier="IBUS_LOCK_MASK"
+              glib:nick="lock-mask">
+        <doc xml:whitespace="preserve">Cap Lock is locked.</doc>
+      </member>
+      <member name="control_mask"
+              value="4"
+              c:identifier="IBUS_CONTROL_MASK"
+              glib:nick="control-mask">
+        <doc xml:whitespace="preserve">Control key is activated.</doc>
+      </member>
+      <member name="mod1_mask"
+              value="8"
+              c:identifier="IBUS_MOD1_MASK"
+              glib:nick="mod1-mask">
+        <doc xml:whitespace="preserve">Modifier 1 (Usually Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)) activated.</doc>
+      </member>
+      <member name="mod2_mask"
+              value="16"
+              c:identifier="IBUS_MOD2_MASK"
+              glib:nick="mod2-mask">
+        <doc xml:whitespace="preserve">Modifier 2 (Usually Num_Lock (0x4d)) activated.</doc>
+      </member>
+      <member name="mod3_mask"
+              value="32"
+              c:identifier="IBUS_MOD3_MASK"
+              glib:nick="mod3-mask">
+        <doc xml:whitespace="preserve">Modifier 3 activated.</doc>
+      </member>
+      <member name="mod4_mask"
+              value="64"
+              c:identifier="IBUS_MOD4_MASK"
+              glib:nick="mod4-mask">
+        <doc xml:whitespace="preserve">Modifier 4 (Usually Super_L (0xce),  Hyper_L (0xcf)) activated.</doc>
+      </member>
+      <member name="mod5_mask"
+              value="128"
+              c:identifier="IBUS_MOD5_MASK"
+              glib:nick="mod5-mask">
+        <doc xml:whitespace="preserve">Modifier 5 (ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)) activated.</doc>
+      </member>
+      <member name="button1_mask"
+              value="256"
+              c:identifier="IBUS_BUTTON1_MASK"
+              glib:nick="button1-mask">
+        <doc xml:whitespace="preserve">Mouse button 1 (left) is activated.</doc>
+      </member>
+      <member name="button2_mask"
+              value="512"
+              c:identifier="IBUS_BUTTON2_MASK"
+              glib:nick="button2-mask">
+        <doc xml:whitespace="preserve">Mouse button 2 (middle) is activated.</doc>
+      </member>
+      <member name="button3_mask"
+              value="1024"
+              c:identifier="IBUS_BUTTON3_MASK"
+              glib:nick="button3-mask">
+        <doc xml:whitespace="preserve">Mouse button 3 (right) is activated.</doc>
+      </member>
+      <member name="button4_mask"
+              value="2048"
+              c:identifier="IBUS_BUTTON4_MASK"
+              glib:nick="button4-mask">
+        <doc xml:whitespace="preserve">Mouse button 4 (scroll up) is activated.</doc>
+      </member>
+      <member name="button5_mask"
+              value="4096"
+              c:identifier="IBUS_BUTTON5_MASK"
+              glib:nick="button5-mask">
+        <doc xml:whitespace="preserve">Mouse button 5 (scroll down) is activated.</doc>
+      </member>
+      <member name="handled_mask"
+              value="16777216"
+              c:identifier="IBUS_HANDLED_MASK"
+              glib:nick="handled-mask">
+        <doc xml:whitespace="preserve">Handled mask indicates the event has been handled by ibus.</doc>
+      </member>
+      <member name="forward_mask"
+              value="33554432"
+              c:identifier="IBUS_FORWARD_MASK"
+              glib:nick="forward-mask">
+        <doc xml:whitespace="preserve">Forward mask indicates the event has been forward from ibus.</doc>
+      </member>
+      <member name="ignored_mask"
+              value="33554432"
+              c:identifier="IBUS_IGNORED_MASK"
+              glib:nick="ignored-mask">
+        <doc xml:whitespace="preserve">It is an alias of IBUS_FORWARD_MASK.</doc>
+      </member>
+      <member name="super_mask"
+              value="67108864"
+              c:identifier="IBUS_SUPER_MASK"
+              glib:nick="super-mask">
+        <doc xml:whitespace="preserve">Super (Usually Win) key is activated.</doc>
+      </member>
+      <member name="hyper_mask"
+              value="134217728"
+              c:identifier="IBUS_HYPER_MASK"
+              glib:nick="hyper-mask">
+        <doc xml:whitespace="preserve">Hyper key is activated.</doc>
+      </member>
+      <member name="meta_mask"
+              value="268435456"
+              c:identifier="IBUS_META_MASK"
+              glib:nick="meta-mask">
+        <doc xml:whitespace="preserve">Meta key is activated.</doc>
+      </member>
+      <member name="release_mask"
+              value="1073741824"
+              c:identifier="IBUS_RELEASE_MASK"
+              glib:nick="release-mask">
+        <doc xml:whitespace="preserve">Key is released.</doc>
+      </member>
+      <member name="modifier_mask"
+              value="1593843711"
+              c:identifier="IBUS_MODIFIER_MASK"
+              glib:nick="modifier-mask">
+        <doc xml:whitespace="preserve">Modifier mask for the all the masks above.</doc>
+      </member>
+    </bitfield>
+    <constant name="MouseKeys_Accel_Enable"
+              value="65143"
+              c:type="IBUS_MouseKeys_Accel_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MouseKeys_Enable"
+              value="65142"
+              c:type="IBUS_MouseKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Muhenkan" value="65314" c:type="IBUS_Muhenkan">
+      <doc xml:whitespace="preserve">Japanese keyboard support.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Multi_key" value="65312" c:type="IBUS_Multi_key">
+      <doc xml:whitespace="preserve">Key for composing characters.
+A.k.a. Compose Key.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="MultipleCandidate"
+              value="65341"
+              c:type="IBUS_MultipleCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="N" value="78" c:type="IBUS_N">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Nacute" value="465" c:type="IBUS_Nacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="NairaSign" value="16785574" c:type="IBUS_NairaSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ncaron" value="466" c:type="IBUS_Ncaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ncedilla" value="977" c:type="IBUS_Ncedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="NewSheqelSign"
+              value="16785578"
+              c:type="IBUS_NewSheqelSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Next" value="65366" c:type="IBUS_Next">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Next_Virtual_Screen"
+              value="65234"
+              c:type="IBUS_Next_Virtual_Screen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ntilde" value="209" c:type="IBUS_Ntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Num_Lock" value="65407" c:type="IBUS_Num_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="O" value="79" c:type="IBUS_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="OE" value="5052" c:type="IBUS_OE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Oacute" value="211" c:type="IBUS_Oacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Obarred" value="16777631" c:type="IBUS_Obarred">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Obelowdot" value="16785100" c:type="IBUS_Obelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Object"
+           c:symbol-prefix="object"
+           c:type="IBusObject"
+           parent="GObject.InitiallyUnowned"
+           glib:type-name="IBusObject"
+           glib:get-type="ibus_object_get_type"
+           glib:type-struct="ObjectClass">
+      <doc xml:whitespace="preserve">IBusObject is the base object for all objects in IBus.</doc>
+      <constructor name="new" c:identifier="ibus_object_new">
+        <doc xml:whitespace="preserve">New an IBusObject.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusObject</doc>
+          <type name="Object" c:type="IBusObject*"/>
+        </return-value>
+      </constructor>
+      <virtual-method name="destroy" invoker="destroy">
+        <doc xml:whitespace="preserve">Emit the "destory" signal notifying all reference holders that they should
+release the #IBusObject.
+
+The memory for the object itself won't be deleted until its reference count
+actually drops to 0; ibus_object_destroy merely asks reference holders to
+release their references. It does not free the object.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <type name="Object" c:type="IBusObject*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="destroy" c:identifier="ibus_object_destroy">
+        <doc xml:whitespace="preserve">Emit the "destory" signal notifying all reference holders that they should
+release the #IBusObject.
+
+The memory for the object itself won't be deleted until its reference count
+actually drops to 0; ibus_object_destroy merely asks reference holders to
+release their references. It does not free the object.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an #IBusObject to destroy.</doc>
+            <type name="Object" c:type="IBusObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
+      </field>
+      <field name="flags">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="priv">
+        <type name="ObjectPrivate" c:type="IBusObjectPrivate*"/>
+      </field>
+      <glib:signal name="destroy" when="last">
+        <doc xml:whitespace="preserve">Destroy and free an IBusObject
+
+See also:  ibus_object_destroy().
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="ObjectClass"
+            c:type="IBusObjectClass"
+            glib:is-gtype-struct-for="Object">
+      <field name="parent">
+        <type name="GObject.InitiallyUnownedClass"
+              c:type="GInitiallyUnownedClass"/>
+      </field>
+      <field name="destroy">
+        <callback name="destroy">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object" c:type="IBusObject*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <callback name="ObjectDestroyFunc" c:type="IBusObjectDestroyFunc">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="arg0" transfer-ownership="none">
+          <type name="Object" c:type="IBusObject*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <bitfield name="ObjectFlags"
+              glib:type-name="IBusObjectFlags"
+              glib:get-type="ibus_object_flags_get_type"
+              c:type="IBusObjectFlags">
+      <member name="in_destruction"
+              value="1"
+              c:identifier="IBUS_IN_DESTRUCTION"
+              glib:nick="in-destruction">
+      </member>
+      <member name="destroyed"
+              value="2"
+              c:identifier="IBUS_DESTROYED"
+              glib:nick="destroyed">
+      </member>
+      <member name="reserved_1"
+              value="4"
+              c:identifier="IBUS_RESERVED_1"
+              glib:nick="reserved-1">
+      </member>
+      <member name="reserved_2"
+              value="8"
+              c:identifier="IBUS_RESERVED_2"
+              glib:nick="reserved-2">
+      </member>
+    </bitfield>
+    <record name="ObjectPrivate" c:type="IBusObjectPrivate" disguised="1">
+    </record>
+    <class name="ObservedPath"
+           c:symbol-prefix="observed_path"
+           c:type="IBusObservedPath"
+           parent="Serializable"
+           glib:type-name="IBusObservedPath"
+           glib:get-type="ibus_observed_path_get_type"
+           glib:type-struct="ObservedPathClass">
+      <doc xml:whitespace="preserve">IBusObservedPath provides methods for file path manipulation,
+such as monitor modification, directory tree traversal.</doc>
+      <constructor name="new" c:identifier="ibus_observed_path_new">
+        <doc xml:whitespace="preserve">New an IBusObservedPath from an XML node.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusObservedPath.</doc>
+          <type name="ObservedPath" c:type="IBusObservedPath*"/>
+        </return-value>
+        <parameters>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The path string.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="fill_stat" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Auto-fill the path status.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_xml_node"
+                   c:identifier="ibus_observed_path_new_from_xml_node"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">New an IBusObservedPath from an XML node.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusObservedPath.</doc>
+          <type name="ObservedPath" c:type="IBusObservedPath*"/>
+        </return-value>
+        <parameters>
+          <parameter name="node" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An XML node that contain path.</doc>
+            <type c:type="XMLNode*"/>
+          </parameter>
+          <parameter name="fill_stat" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Auto-fill the path status.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="check_modification"
+              c:identifier="ibus_observed_path_check_modification">
+        <doc xml:whitespace="preserve">Checks whether the path is modified by comparing the mtime in object and mtime in file system.
+Returns TRUE if imtime is changed, otherwise FALSE.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if mtime is changed; FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusObservedPath.</doc>
+            <type name="ObservedPath" c:type="IBusObservedPath*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="output" c:identifier="ibus_observed_path_output">
+        <doc xml:whitespace="preserve">Append the observed path to a string with following format:
+&amp;lt;path mtime="&amp;lt;i&amp;gt;modified time&amp;lt;/i&amp;gt;" &amp;gt;&amp;lt;i&amp;gt;path&amp;lt;/i&amp;gt;&amp;lt;/path&amp;gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusObservedPath.</doc>
+            <type name="ObservedPath" c:type="IBusObservedPath*"/>
+          </instance-parameter>
+          <parameter name="output" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Path is appended to.</doc>
+            <type name="GLib.String" c:type="GString*"/>
+          </parameter>
+          <parameter name="indent" transfer-ownership="none">
+            <doc xml:whitespace="preserve">number of indent.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="traverse"
+              c:identifier="ibus_observed_path_traverse"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Recursively traverse the path and put the files and subdirectory in to a newly allocated
+GLists, if the @path is a directory. Otherwise returns NULL.</doc>
+        <return-value>
+          <doc xml:whitespace="preserve">A newly allocate GList which holds content in path; NULL if @path is not directory.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="ObservedPath"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusObservedPath.</doc>
+            <type name="ObservedPath" c:type="IBusObservedPath*"/>
+          </instance-parameter>
+          <parameter name="dir_only" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Only looks for subdirs, not files</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="path">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="mtime">
+        <type name="glong" c:type="glong"/>
+      </field>
+      <field name="is_dir">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="is_exist">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+    </class>
+    <record name="ObservedPathClass"
+            c:type="IBusObservedPathClass"
+            glib:is-gtype-struct-for="ObservedPath">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <constant name="Ocaron" value="16777681" c:type="IBUS_Ocaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflex" value="212" c:type="IBUS_Ocircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflexacute"
+              value="16785104"
+              c:type="IBUS_Ocircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflexbelowdot"
+              value="16785112"
+              c:type="IBUS_Ocircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflexgrave"
+              value="16785106"
+              c:type="IBUS_Ocircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflexhook"
+              value="16785108"
+              c:type="IBUS_Ocircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ocircumflextilde"
+              value="16785110"
+              c:type="IBUS_Ocircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Odiaeresis" value="214" c:type="IBUS_Odiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Odoubleacute" value="469" c:type="IBUS_Odoubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ograve" value="210" c:type="IBUS_Ograve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohook" value="16785102" c:type="IBUS_Ohook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohorn" value="16777632" c:type="IBUS_Ohorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohornacute" value="16785114" c:type="IBUS_Ohornacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohornbelowdot"
+              value="16785122"
+              c:type="IBUS_Ohornbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohorngrave" value="16785116" c:type="IBUS_Ohorngrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohornhook" value="16785118" c:type="IBUS_Ohornhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ohorntilde" value="16785120" c:type="IBUS_Ohorntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Omacron" value="978" c:type="IBUS_Omacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ooblique" value="216" c:type="IBUS_Ooblique">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="Orientation"
+                 glib:type-name="IBusOrientation"
+                 glib:get-type="ibus_orientation_get_type"
+                 c:type="IBusOrientation">
+      <doc xml:whitespace="preserve">Orientation of UI.</doc>
+      <member name="horizontal"
+              value="0"
+              c:identifier="IBUS_ORIENTATION_HORIZONTAL"
+              glib:nick="horizontal">
+        <doc xml:whitespace="preserve">Horizontal orientation.</doc>
+      </member>
+      <member name="vertical"
+              value="1"
+              c:identifier="IBUS_ORIENTATION_VERTICAL"
+              glib:nick="vertical">
+        <doc xml:whitespace="preserve">Vertival orientation.</doc>
+      </member>
+      <member name="system"
+              value="2"
+              c:identifier="IBUS_ORIENTATION_SYSTEM"
+              glib:nick="system">
+        <doc xml:whitespace="preserve">Use ibus global orientation setup.</doc>
+      </member>
+    </enumeration>
+    <constant name="Oslash" value="216" c:type="IBUS_Oslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Otilde" value="213" c:type="IBUS_Otilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Overlay1_Enable"
+              value="65144"
+              c:type="IBUS_Overlay1_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Overlay2_Enable"
+              value="65145"
+              c:type="IBUS_Overlay2_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="P" value="80" c:type="IBUS_P">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PATH_CONFIG"
+              value="/org/freedesktop/IBus/Config"
+              c:type="IBUS_PATH_CONFIG">
+      <doc xml:whitespace="preserve">D-Bus path for IBus config.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="PATH_FACTORY"
+              value="/org/freedesktop/IBus/Factory"
+              c:type="IBUS_PATH_FACTORY">
+      <doc xml:whitespace="preserve">D-Bus path for IBus factory.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="PATH_IBUS"
+              value="/org/freedesktop/IBus"
+              c:type="IBUS_PATH_IBUS">
+      <doc xml:whitespace="preserve">D-Bus path for IBus</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="PATH_INPUT_CONTEXT"
+              value="/org/freedesktop/IBus/InputContext_%d"
+              c:type="IBUS_PATH_INPUT_CONTEXT">
+      <doc xml:whitespace="preserve">Template of D-Bus path for IBus input context.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="PATH_NOTIFICATIONS"
+              value="/org/freedesktop/IBus/Notifications"
+              c:type="IBUS_PATH_NOTIFICATIONS">
+      <doc xml:whitespace="preserve">D-Bus path for IBus notifications.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="PATH_PANEL"
+              value="/org/freedesktop/IBus/Panel"
+              c:type="IBUS_PATH_PANEL">
+      <doc xml:whitespace="preserve">D-Bus path for IBus panel.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="Pabovedot" value="16784982" c:type="IBUS_Pabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Page_Down" value="65366" c:type="IBUS_Page_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Page_Up" value="65365" c:type="IBUS_Page_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="PanelService"
+           c:symbol-prefix="panel_service"
+           c:type="IBusPanelService"
+           parent="Service"
+           glib:type-name="IBusPanelService"
+           glib:get-type="ibus_panel_service_get_type"
+           glib:type-struct="PanelServiceClass">
+      <doc xml:whitespace="preserve">An IBusPanelService is a base class for UI services.
+Developers can "extend" this class for panel UI development.</doc>
+      <constructor name="new" c:identifier="ibus_panel_service_new">
+        <doc xml:whitespace="preserve">New an IBusPanelService from an GDBusConnection.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusPanelService.</doc>
+          <type name="PanelService" c:type="IBusPanelService*"/>
+        </return-value>
+        <parameters>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An GDBusConnection.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="cursor_down_lookup_table">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="cursor_up_lookup_table">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="destroy_context">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="input_context_path" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="focus_in">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="input_context_path" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="focus_out">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="input_context_path" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="hide_auxiliary_text">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="hide_language_bar">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="hide_lookup_table">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="hide_preedit_text">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="page_down_lookup_table">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="page_up_lookup_table">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="register_properties">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="prop_list" transfer-ownership="none">
+            <type name="PropList" c:type="IBusPropList*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="reset">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="set_cursor_location">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="x" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="w" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="h" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show_auxiliary_text">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show_language_bar">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show_lookup_table">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="show_preedit_text">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="start_setup">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="state_changed">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="update_auxiliary_text">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="update_lookup_table">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="lookup_table" transfer-ownership="none">
+            <type name="LookupTable" c:type="IBusLookupTable*"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="update_preedit_text">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="text" transfer-ownership="none">
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+          <parameter name="cursor_pos" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="update_property">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="prop" transfer-ownership="none">
+            <type name="Property" c:type="IBusProperty*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="candidate_clicked"
+              c:identifier="ibus_panel_service_candidate_clicked">
+        <doc xml:whitespace="preserve">Notify that a candidate is clicked
+by sending a "CandidateClicked" to IBus service.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPanelService</doc>
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Index in the Lookup table</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="button" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GdkEventButton::button (1: left button, etc.)</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GdkEventButton::state (key modifier flags)</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="cursor_down" c:identifier="ibus_panel_service_cursor_down">
+        <doc xml:whitespace="preserve">Notify that the cursor is down
+by sending a "CursorDown" to IBus service.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPanelService</doc>
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="cursor_up" c:identifier="ibus_panel_service_cursor_up">
+        <doc xml:whitespace="preserve">Notify that the cursor is up
+by sending a "CursorUp" to IBus service.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPanelService</doc>
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="page_down" c:identifier="ibus_panel_service_page_down">
+        <doc xml:whitespace="preserve">Notify that the page is down
+by sending a "PageDown" to IBus service.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPanelService</doc>
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="page_up" c:identifier="ibus_panel_service_page_up">
+        <doc xml:whitespace="preserve">Notify that the page is up
+by sending a "PageUp" to IBus service.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPanelService</doc>
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="property_activate"
+              c:identifier="ibus_panel_service_property_activate">
+        <doc xml:whitespace="preserve">Notify that a property is active
+by sending a "PropertyActivate" message to IBus service.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPanelService</doc>
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="prop_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A property name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="prop_state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">State of the property</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="property_hide"
+              c:identifier="ibus_panel_service_property_hide">
+        <doc xml:whitespace="preserve">Notify that a property is hidden
+by sending a "ValueChanged" message to IBus service.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPanelService</doc>
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="prop_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A property name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="property_show"
+              c:identifier="ibus_panel_service_property_show">
+        <doc xml:whitespace="preserve">Notify that a property is shown
+by sending a "ValueChanged" message to IBus service.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="panel" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPanelService</doc>
+            <type name="PanelService" c:type="IBusPanelService*"/>
+          </instance-parameter>
+          <parameter name="prop_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A property name</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Service" c:type="IBusService"/>
+      </field>
+      <glib:signal name="cursor-down-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the cursor-down-lookup-table.
+Implement the member function cursor_down_lookup_table() in extended
+class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="cursor-up-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the cursor-up-lookup-table.
+Implement the member function cursor_up_lookup_table() in extended
+class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="destroy-context" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application destroys.
+Implement the member function destroy_context() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="focus-in" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the focus-in.
+Implement the member function focus_in() in extended class to receive
+this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="focus-out" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the focus-out.
+Implement the member function focus_out() in extended class to receive
+this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="utf8" c:type="gchar*"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="hide-auxiliary-text" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the hide-auxiliary-text.
+Implement the member function hide_auxiliary_text() in extended class
+to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="hide-language-bar" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the hide-language-bar.
+Implement the member function hide_language_bar() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="hide-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the hide-lookup-table.
+Implement the member function hide_lookup_table() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="hide-preedit-text" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the hide-preedit-text.
+Implement the member function hide_preedit_text() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="page-down-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the page-down-lookup-table.
+Implement the member function page_down_lookup_table() in extended
+class to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="page-up-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the page-up-lookup-table.
+Implement the member function page_up_lookup_table() in extended class
+to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="register-properties" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the register-properties.
+Implement the member function register_properties() in extended class
+to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="PropList"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="reset" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the reset.
+Implement the member function reset() in extended class to receive this
+signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="set-cursor-location" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the set-cursor-location.
+Implement the member function set_cursor_location() in extended class
+to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+          <parameter name="p2" transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="show-auxiliary-text" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the show-auxiliary-text.
+Implement the member function show_auxiliary_text() in extended class
+to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="show-language-bar" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the show-language-bar.
+Implement the member function show_language_bar() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="show-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the show-lookup-table.
+Implement the member function show_lookup_table() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="show-preedit-text" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the show-preedit-text.
+Implement the member function show_preedit_text() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="start-setup" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the start-setup.
+Implement the member function start_setup() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="state-changed" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the state-changed.
+Implement the member function state_changed() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+      <glib:signal name="update-auxiliary-text" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the update-auxiliary-text.
+Implement the member function update_auxiliary_text() in extended class
+to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Text"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="update-lookup-table" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the update-lookup-table.
+Implement the member function update_lookup_table() in extended class
+to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="LookupTable"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="update-preedit-text" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the update-preedit-text.
+Implement the member function update_preedit_text() in extended class
+to receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Text"/>
+          </parameter>
+          <parameter name="p0" transfer-ownership="none">
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="p1" transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+      <glib:signal name="update-property" when="last">
+        <doc xml:whitespace="preserve">Emitted when the client application get the update-property.
+Implement the member function update_property() in extended class to
+receive this signal.
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;
+&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <parameter name="object" transfer-ownership="none">
+            <type name="Property"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="PanelServiceClass"
+            c:type="IBusPanelServiceClass"
+            glib:is-gtype-struct-for="PanelService">
+      <field name="parent">
+        <type name="ServiceClass" c:type="IBusServiceClass"/>
+      </field>
+      <field name="focus_in">
+        <callback name="focus_in">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+            <parameter name="input_context_path" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="focus_out">
+        <callback name="focus_out">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+            <parameter name="input_context_path" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="register_properties">
+        <callback name="register_properties">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+            <parameter name="prop_list" transfer-ownership="none">
+              <type name="PropList" c:type="IBusPropList*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="set_cursor_location">
+        <callback name="set_cursor_location">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="y" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="w" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+            <parameter name="h" transfer-ownership="none">
+              <type name="gint" c:type="gint"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="update_auxiliary_text">
+        <callback name="update_auxiliary_text">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+            <parameter name="text" transfer-ownership="none">
+              <type name="Text" c:type="IBusText*"/>
+            </parameter>
+            <parameter name="visible" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="update_lookup_table">
+        <callback name="update_lookup_table">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+            <parameter name="lookup_table" transfer-ownership="none">
+              <type name="LookupTable" c:type="IBusLookupTable*"/>
+            </parameter>
+            <parameter name="visible" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="update_preedit_text">
+        <callback name="update_preedit_text">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+            <parameter name="text" transfer-ownership="none">
+              <type name="Text" c:type="IBusText*"/>
+            </parameter>
+            <parameter name="cursor_pos" transfer-ownership="none">
+              <type name="guint" c:type="guint"/>
+            </parameter>
+            <parameter name="visible" transfer-ownership="none">
+              <type name="gboolean" c:type="gboolean"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="update_property">
+        <callback name="update_property">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+            <parameter name="prop" transfer-ownership="none">
+              <type name="Property" c:type="IBusProperty*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cursor_down_lookup_table">
+        <callback name="cursor_down_lookup_table">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="cursor_up_lookup_table">
+        <callback name="cursor_up_lookup_table">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide_auxiliary_text">
+        <callback name="hide_auxiliary_text">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide_language_bar">
+        <callback name="hide_language_bar">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide_lookup_table">
+        <callback name="hide_lookup_table">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="hide_preedit_text">
+        <callback name="hide_preedit_text">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="page_down_lookup_table">
+        <callback name="page_down_lookup_table">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="page_up_lookup_table">
+        <callback name="page_up_lookup_table">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="reset">
+        <callback name="reset">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="show_auxiliary_text">
+        <callback name="show_auxiliary_text">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="show_language_bar">
+        <callback name="show_language_bar">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="show_lookup_table">
+        <callback name="show_lookup_table">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="show_preedit_text">
+        <callback name="show_preedit_text">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="start_setup">
+        <callback name="start_setup">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="state_changed">
+        <callback name="state_changed">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="destroy_context">
+        <callback name="destroy_context">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="panel" transfer-ownership="none">
+              <type name="PanelService" c:type="IBusPanelService*"/>
+            </parameter>
+            <parameter name="input_context_path" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <constant name="Pause" value="65299" c:type="IBUS_Pause">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PesetaSign" value="16785575" c:type="IBUS_PesetaSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Accelerate"
+              value="65274"
+              c:type="IBUS_Pointer_Accelerate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button1"
+              value="65257"
+              c:type="IBUS_Pointer_Button1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button2"
+              value="65258"
+              c:type="IBUS_Pointer_Button2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button3"
+              value="65259"
+              c:type="IBUS_Pointer_Button3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button4"
+              value="65260"
+              c:type="IBUS_Pointer_Button4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button5"
+              value="65261"
+              c:type="IBUS_Pointer_Button5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Button_Dflt"
+              value="65256"
+              c:type="IBUS_Pointer_Button_Dflt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick1"
+              value="65263"
+              c:type="IBUS_Pointer_DblClick1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick2"
+              value="65264"
+              c:type="IBUS_Pointer_DblClick2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick3"
+              value="65265"
+              c:type="IBUS_Pointer_DblClick3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick4"
+              value="65266"
+              c:type="IBUS_Pointer_DblClick4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick5"
+              value="65267"
+              c:type="IBUS_Pointer_DblClick5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DblClick_Dflt"
+              value="65262"
+              c:type="IBUS_Pointer_DblClick_Dflt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DfltBtnNext"
+              value="65275"
+              c:type="IBUS_Pointer_DfltBtnNext">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DfltBtnPrev"
+              value="65276"
+              c:type="IBUS_Pointer_DfltBtnPrev">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Down" value="65251" c:type="IBUS_Pointer_Down">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DownLeft"
+              value="65254"
+              c:type="IBUS_Pointer_DownLeft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_DownRight"
+              value="65255"
+              c:type="IBUS_Pointer_DownRight">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag1" value="65269" c:type="IBUS_Pointer_Drag1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag2" value="65270" c:type="IBUS_Pointer_Drag2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag3" value="65271" c:type="IBUS_Pointer_Drag3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag4" value="65272" c:type="IBUS_Pointer_Drag4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag5" value="65277" c:type="IBUS_Pointer_Drag5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Drag_Dflt"
+              value="65268"
+              c:type="IBUS_Pointer_Drag_Dflt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_EnableKeys"
+              value="65273"
+              c:type="IBUS_Pointer_EnableKeys">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Left" value="65248" c:type="IBUS_Pointer_Left">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Right" value="65249" c:type="IBUS_Pointer_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_Up" value="65250" c:type="IBUS_Pointer_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_UpLeft" value="65252" c:type="IBUS_Pointer_UpLeft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Pointer_UpRight"
+              value="65253"
+              c:type="IBUS_Pointer_UpRight">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="PreeditFocusMode"
+                 glib:type-name="IBusPreeditFocusMode"
+                 glib:get-type="ibus_preedit_focus_mode_get_type"
+                 c:type="IBusPreeditFocusMode">
+      <doc xml:whitespace="preserve">Pre-edit commit mode when the focus is lost.</doc>
+      <member name="clear"
+              value="0"
+              c:identifier="IBUS_ENGINE_PREEDIT_CLEAR"
+              glib:nick="clear">
+        <doc xml:whitespace="preserve">pre-edit text is cleared.</doc>
+      </member>
+      <member name="commit"
+              value="1"
+              c:identifier="IBUS_ENGINE_PREEDIT_COMMIT"
+              glib:nick="commit">
+        <doc xml:whitespace="preserve">pre-edit text is committed.</doc>
+      </member>
+    </enumeration>
+    <constant name="Prev_Virtual_Screen"
+              value="65233"
+              c:type="IBUS_Prev_Virtual_Screen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="PreviousCandidate"
+              value="65342"
+              c:type="IBUS_PreviousCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Print" value="65377" c:type="IBUS_Print">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Prior" value="65365" c:type="IBUS_Prior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="PropList"
+           c:symbol-prefix="prop_list"
+           c:type="IBusPropList"
+           parent="Serializable"
+           glib:type-name="IBusPropList"
+           glib:get-type="ibus_prop_list_get_type"
+           glib:type-struct="PropListClass">
+      <constructor name="new" c:identifier="ibus_prop_list_new">
+        <doc xml:whitespace="preserve">New a IBusPropList.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusPropList.</doc>
+          <type name="PropList" c:type="IBusPropList*"/>
+        </return-value>
+      </constructor>
+      <method name="append" c:identifier="ibus_prop_list_append">
+        <doc xml:whitespace="preserve">Append an IBusProperty to an IBusPropList, and increase reference.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop_list" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPropList.</doc>
+            <type name="PropList" c:type="IBusPropList*"/>
+          </instance-parameter>
+          <parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">IBusProperty to be append to @prop_list.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get" c:identifier="ibus_prop_list_get">
+        <doc xml:whitespace="preserve">Returns IBusProperty at given index. Borrowed reference.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">IBusProperty at given index, NULL if no such IBusProperty.</doc>
+          <type name="Property" c:type="IBusProperty*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop_list" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPropList.</doc>
+            <type name="PropList" c:type="IBusPropList*"/>
+          </instance-parameter>
+          <parameter name="index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Index of an IBusPropList.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update_property"
+              c:identifier="ibus_prop_list_update_property">
+        <doc xml:whitespace="preserve">Update an IBusProperty in IBusPropList.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if succeeded, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop_list" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusPropList.</doc>
+            <type name="PropList" c:type="IBusPropList*"/>
+          </instance-parameter>
+          <parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">IBusProperty to be update.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="properties">
+        <array name="GLib.Array" c:type="GArray*">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </class>
+    <record name="PropListClass"
+            c:type="IBusPropListClass"
+            glib:is-gtype-struct-for="PropList">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <enumeration name="PropState"
+                 glib:type-name="IBusPropState"
+                 glib:get-type="ibus_prop_state_get_type"
+                 c:type="IBusPropState">
+      <doc xml:whitespace="preserve">State of #IBusProperty. The actual effect depends on #IBusPropType of the
+IBusProperty.
+
+&lt;variablelist&gt;
+    &lt;varlistentry&gt;
+        &lt;term&gt;PROP_TYPE_TOGGLE&lt;/term&gt;
+        &lt;listitem&gt;&lt;para&gt;Emphasized if PROP_STATE_CHECKED, normal otherwise.&lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+    &lt;varlistentry&gt;
+        &lt;term&gt;PROP_TYPE_RADIO&lt;/term&gt;
+        &lt;listitem&gt;&lt;para&gt;Option checked if PROP_STATE_CHECKED, unchecked otherwise.&lt;/para&gt;&lt;/listitem&gt;
+    &lt;/varlistentry&gt;
+&lt;/variablelist&gt;
+No effect on other types.</doc>
+      <member name="unchecked"
+              value="0"
+              c:identifier="PROP_STATE_UNCHECKED"
+              glib:nick="unchecked">
+        <doc xml:whitespace="preserve">Property option is unchecked.</doc>
+      </member>
+      <member name="checked"
+              value="1"
+              c:identifier="PROP_STATE_CHECKED"
+              glib:nick="checked">
+        <doc xml:whitespace="preserve">Property option is checked.</doc>
+      </member>
+      <member name="inconsistent"
+              value="2"
+              c:identifier="PROP_STATE_INCONSISTENT"
+              glib:nick="inconsistent">
+        <doc xml:whitespace="preserve">The state is inconsistent with the associated IME property.</doc>
+      </member>
+    </enumeration>
+    <enumeration name="PropType"
+                 glib:type-name="IBusPropType"
+                 glib:get-type="ibus_prop_type_get_type"
+                 c:type="IBusPropType">
+      <doc xml:whitespace="preserve">Type enumeration of IBusProperty.</doc>
+      <member name="normal"
+              value="0"
+              c:identifier="PROP_TYPE_NORMAL"
+              glib:nick="normal">
+        <doc xml:whitespace="preserve">Property is shown as normal text.</doc>
+      </member>
+      <member name="toggle"
+              value="1"
+              c:identifier="PROP_TYPE_TOGGLE"
+              glib:nick="toggle">
+        <doc xml:whitespace="preserve">Property is shown as a toggle button.</doc>
+      </member>
+      <member name="radio"
+              value="2"
+              c:identifier="PROP_TYPE_RADIO"
+              glib:nick="radio">
+        <doc xml:whitespace="preserve">Property is shown as a radio selection option.</doc>
+      </member>
+      <member name="menu"
+              value="3"
+              c:identifier="PROP_TYPE_MENU"
+              glib:nick="menu">
+        <doc xml:whitespace="preserve">Property is shown as a menu, usually imply it has sub menu items.</doc>
+      </member>
+      <member name="separator"
+              value="4"
+              c:identifier="PROP_TYPE_SEPARATOR"
+              glib:nick="separator">
+        <doc xml:whitespace="preserve">A separator for menu.</doc>
+      </member>
+    </enumeration>
+    <class name="Property"
+           c:symbol-prefix="property"
+           c:type="IBusProperty"
+           parent="Serializable"
+           glib:type-name="IBusProperty"
+           glib:get-type="ibus_property_get_type"
+           glib:type-struct="PropertyClass">
+      <doc xml:whitespace="preserve">An IBusProperty is an UI component like a button or a menu item
+which shows the status of corresponding input method engine property.
+End user can operate and see the current status of IME through these components.
+For example, ibus-chewing users change the English/Chinese input mode by
+pressing ctrl-space or click on the Eng/Chi switch button.
+And the IBusProperty shows the change correspondingly.
+
+see_also: #IBusPropList, #IBusEngine</doc>
+      <constructor name="new" c:identifier="ibus_property_new">
+        <doc xml:whitespace="preserve">New a #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated #IBusProperty.</doc>
+          <type name="Property" c:type="IBusProperty*"/>
+        </return-value>
+        <parameters>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Unique Identity for the #IBusProperty.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#IBusPropType of #IBusProperty.</doc>
+            <type name="PropType" c:type="IBusPropType"/>
+          </parameter>
+          <parameter name="label" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Text shown in UI.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+          <parameter name="icon" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">Icon file for the #IBusProperty.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="tooltip" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Message shown if mouse hovered the  #IBusProperty.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+          <parameter name="sensitive" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the #IBusProperty is sensitive to keyboard and mouse event.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the #IBusProperty is visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">IBusPropState of #IBusProperty.</doc>
+            <type name="PropState" c:type="IBusPropState"/>
+          </parameter>
+          <parameter name="prop_list" transfer-ownership="none" allow-none="1">
+            <doc xml:whitespace="preserve">#IBusPropList that contains sub IBusProperties.</doc>
+            <type name="PropList" c:type="IBusPropList*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_varargs"
+                   c:identifier="ibus_property_new_varargs"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">New a #IBusProperty.
+ibus_property_new_varargs() supports the va_list format.
+name property is required. e.g.
+ibus_property_new_varargs("key", "TypingMode", "type", PROP_TYPE_MENU, NULL)</doc>
+        <return-value transfer-ownership="none">
+          <type name="Property" c:type="IBusProperty*"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_property_name" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Name of the first property.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg1" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="get_icon" c:identifier="ibus_property_get_icon">
+        <doc xml:whitespace="preserve">Get the icon of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the icon of #IBusProperty. Should not be freed.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_key" c:identifier="ibus_property_get_key">
+        <doc xml:whitespace="preserve">Get the key of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the key of #IBusProperty. Should not be freed.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_label" c:identifier="ibus_property_get_label">
+        <doc xml:whitespace="preserve">Get the label of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the label of #IBusProperty. Should not be freed.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_prop_type" c:identifier="ibus_property_get_prop_type">
+        <return-value transfer-ownership="none">
+          <type name="PropType" c:type="IBusPropType"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sensitive" c:identifier="ibus_property_get_sensitive">
+        <doc xml:whitespace="preserve">Get the sensitive of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the sensitive of #IBusProperty.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_state" c:identifier="ibus_property_get_state">
+        <doc xml:whitespace="preserve">Get the state of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the state of #IBusProperty.</doc>
+          <type name="PropState" c:type="IBusPropState"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_sub_props" c:identifier="ibus_property_get_sub_props">
+        <doc xml:whitespace="preserve">Get the IBusPropList of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the IBusPropList of #IBusProperty. Should not be freed.</doc>
+          <type name="PropList" c:type="IBusPropList*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_symbol" c:identifier="ibus_property_get_symbol">
+        <doc xml:whitespace="preserve">Get the symbol of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the symbol of #IBusProperty. Should not be freed.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_tooltip" c:identifier="ibus_property_get_tooltip">
+        <doc xml:whitespace="preserve">Get the tooltip of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the tooltip of #IBusProperty. Should not be freed.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_visible" c:identifier="ibus_property_get_visible">
+        <doc xml:whitespace="preserve">Get the visible of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the visible of #IBusProperty.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_icon" c:identifier="ibus_property_set_icon">
+        <doc xml:whitespace="preserve">Set the icon of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+          <parameter name="icon" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Icon shown in UI. It could be a full path of an icon file or an icon name.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_label" c:identifier="ibus_property_set_label">
+        <doc xml:whitespace="preserve">Set the label of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+          <parameter name="label" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Text shown in UI.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sensitive" c:identifier="ibus_property_set_sensitive">
+        <doc xml:whitespace="preserve">Set whether the #IBusProperty is sensitive.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+          <parameter name="sensitive" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the #IBusProperty is sensitive.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_state" c:identifier="ibus_property_set_state">
+        <doc xml:whitespace="preserve">Set the state of the #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+          <parameter name="state" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The state of the #IBusProperty.</doc>
+            <type name="PropState" c:type="IBusPropState"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_sub_props" c:identifier="ibus_property_set_sub_props">
+        <doc xml:whitespace="preserve">Set the sub IBusProperties.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+          <parameter name="prop_list" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#IBusPropList that contains sub IBusProperties.</doc>
+            <type name="PropList" c:type="IBusPropList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_symbol" c:identifier="ibus_property_set_symbol">
+        <doc xml:whitespace="preserve">Set the symbol of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+          <parameter name="symbol" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Text shown in UI.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_tooltip" c:identifier="ibus_property_set_tooltip">
+        <doc xml:whitespace="preserve">Set the tooltip of #IBusProperty.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+          <parameter name="tooltip" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Text of the tooltip.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="set_visible" c:identifier="ibus_property_set_visible">
+        <doc xml:whitespace="preserve">Set whether the #IBusProperty is visible.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+          <parameter name="visible" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Whether the #IBusProperty is visible.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="update" c:identifier="ibus_property_update">
+        <doc xml:whitespace="preserve">Update the content of an #IBusProperty.
+#IBusProperty @prop_update can either be sub-property of @prop,
+or holds new values for @prop.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE for update suceeded; FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="prop" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusProperty.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </instance-parameter>
+          <parameter name="prop_update" transfer-ownership="none">
+            <doc xml:whitespace="preserve">#IBusPropList that contains sub IBusProperties.</doc>
+            <type name="Property" c:type="IBusProperty*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="icon" writable="1" transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="key"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <property name="label"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="Text"/>
+      </property>
+      <property name="prop-type"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <type name="PropType"/>
+      </property>
+      <property name="sensitive" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <property name="state" writable="1" transfer-ownership="none">
+        <type name="PropState"/>
+      </property>
+      <property name="sub-props" writable="1" transfer-ownership="none">
+        <type name="PropList"/>
+      </property>
+      <property name="symbol"
+                writable="1"
+                construct="1"
+                transfer-ownership="none">
+        <type name="Text"/>
+      </property>
+      <property name="tooltip" writable="1" transfer-ownership="none">
+        <type name="Text"/>
+      </property>
+      <property name="visible" writable="1" transfer-ownership="none">
+        <type name="gboolean" c:type="gboolean"/>
+      </property>
+      <field name="parent" readable="0" private="1">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="PropertyPrivate" c:type="IBusPropertyPrivate*"/>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </class>
+    <record name="PropertyClass"
+            c:type="IBusPropertyClass"
+            glib:is-gtype-struct-for="Property">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <record name="PropertyPrivate" c:type="IBusPropertyPrivate" disguised="1">
+    </record>
+    <class name="Proxy"
+           c:symbol-prefix="proxy"
+           c:type="IBusProxy"
+           parent="Gio.DBusProxy"
+           glib:type-name="IBusProxy"
+           glib:get-type="ibus_proxy_get_type"
+           glib:type-struct="ProxyClass">
+      <doc xml:whitespace="preserve">An IBusProxy is the base of all proxy objects,
+which communicate the corresponding #IBusServices on the other end of IBusConnection.
+For example, IBus clients (such as editors, web browsers) invoke the proxy object,
+IBusInputContext to communicate with the InputContext service of the ibus-daemon.
+
+Almost all services have corresponding proxies, except very simple services.</doc>
+      <implements name="Gio.AsyncInitable"/>
+      <implements name="Gio.DBusInterface"/>
+      <implements name="Gio.Initable"/>
+      <virtual-method name="destroy" invoker="destroy">
+        <doc xml:whitespace="preserve">Dispose the proxy object. If the dbus connection is alive and the own variable above
+is TRUE (which is the default), org.freedesktop.IBus.Service.Destroy method will be
+called. Note that "destroy" signal might be emitted when ibus_proxy_destroy is called
+or the underlying dbus connection for the proxy is terminated. In the callback of the
+destroy signal, you might have to call something like 'g_object_unref(the_proxy);'.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <type name="Proxy" c:type="IBusProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </virtual-method>
+      <method name="destroy" c:identifier="ibus_proxy_destroy">
+        <doc xml:whitespace="preserve">Dispose the proxy object. If the dbus connection is alive and the own variable above
+is TRUE (which is the default), org.freedesktop.IBus.Service.Destroy method will be
+called. Note that "destroy" signal might be emitted when ibus_proxy_destroy is called
+or the underlying dbus connection for the proxy is terminated. In the callback of the
+destroy signal, you might have to call something like 'g_object_unref(the_proxy);'.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="proxy" transfer-ownership="none">
+            <type name="Proxy" c:type="IBusProxy*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Gio.DBusProxy" c:type="GDBusProxy"/>
+      </field>
+      <field name="flags">
+        <type name="guint32" c:type="guint32"/>
+      </field>
+      <field name="own">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <glib:signal name="destroy" when="last">
+        <doc xml:whitespace="preserve">Destroy and free an IBusProxy
+
+See also:  ibus_proxy_destroy().
+
+&lt;note&gt;&lt;para&gt;Argument @user_data is ignored in this function.&lt;/para&gt;&lt;/note&gt;</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="ProxyClass"
+            c:type="IBusProxyClass"
+            glib:is-gtype-struct-for="Proxy">
+      <field name="parent">
+        <type name="Gio.DBusProxyClass" c:type="GDBusProxyClass"/>
+      </field>
+      <field name="destroy">
+        <callback name="destroy">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="proxy" transfer-ownership="none">
+              <type name="Proxy" c:type="IBusProxy*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="7">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <constant name="Q" value="81" c:type="IBUS_Q">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R" value="82" c:type="IBUS_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R1" value="65490" c:type="IBUS_R1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R10" value="65499" c:type="IBUS_R10">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R11" value="65500" c:type="IBUS_R11">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R12" value="65501" c:type="IBUS_R12">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R13" value="65502" c:type="IBUS_R13">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R14" value="65503" c:type="IBUS_R14">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R15" value="65504" c:type="IBUS_R15">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R2" value="65491" c:type="IBUS_R2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R3" value="65492" c:type="IBUS_R3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R4" value="65493" c:type="IBUS_R4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R5" value="65494" c:type="IBUS_R5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R6" value="65495" c:type="IBUS_R6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R7" value="65496" c:type="IBUS_R7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R8" value="65497" c:type="IBUS_R8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="R9" value="65498" c:type="IBUS_R9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Racute" value="448" c:type="IBUS_Racute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Rcaron" value="472" c:type="IBUS_Rcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Rcedilla" value="931" c:type="IBUS_Rcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <record name="Rectangle" c:type="IBusRectangle">
+      <doc xml:whitespace="preserve">Rectangle definition.</doc>
+      <field name="x" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="width" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+      <field name="height" writable="1">
+        <type name="gint" c:type="gint"/>
+      </field>
+    </record>
+    <constant name="Redo" value="65382" c:type="IBUS_Redo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Registry"
+           c:symbol-prefix="registry"
+           c:type="IBusRegistry"
+           parent="Serializable"
+           glib:type-name="IBusRegistry"
+           glib:get-type="ibus_registry_get_type"
+           glib:type-struct="RegistryClass">
+      <doc xml:whitespace="preserve">An #IBusRegistry loads IBus component files and generates the cache files.
+
+see_also: #IBusComponent</doc>
+      <constructor name="new" c:identifier="ibus_registry_new">
+        <doc xml:whitespace="preserve">New a #IBusRegistry</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated #IBusRegistry.</doc>
+          <type name="Registry" c:type="IBusRegistry*"/>
+        </return-value>
+      </constructor>
+      <method name="check_modification"
+              c:identifier="ibus_registry_check_modification">
+        <doc xml:whitespace="preserve">Check if the registry is updated.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if mtime is changed; %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_components"
+              c:identifier="ibus_registry_get_components">
+        <doc xml:whitespace="preserve">List components.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a list of #IBusComponent objects. The caller has to call g_list_free() for the returned list.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="Component"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_observed_paths"
+              c:identifier="ibus_registry_get_observed_paths">
+        <doc xml:whitespace="preserve">List observed paths.</doc>
+        <return-value transfer-ownership="container">
+          <doc xml:whitespace="preserve">a list of #IBusObservedPath objects. The caller has to call g_list_free() for the returned list.</doc>
+          <type name="GLib.List" c:type="GList*">
+            <type name="ObservedPath"/>
+          </type>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="load" c:identifier="ibus_registry_load">
+        <doc xml:whitespace="preserve">Read all XML files in a IBus component directory (typically
+/usr/share/ibus/component/ *.xml) and update the registry object.
+IBUS_COMPONENT_PATH environment valuable is also available for
+the custom component directories, whose delimiter is ':'.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="load_cache" c:identifier="ibus_registry_load_cache">
+        <doc xml:whitespace="preserve">Load the user or system registry cache.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the cache exists and is loaded successfully, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+          <parameter name="is_user" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the registry cache is loaded in the user directory.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_cache_file"
+              c:identifier="ibus_registry_load_cache_file">
+        <doc xml:whitespace="preserve">Load the registry cache @filename.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the cache exists and is loaded successfully, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The file path of the registry cache</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="load_in_dir" c:identifier="ibus_registry_load_in_dir">
+        <doc xml:whitespace="preserve">Read all XML files in @dirname, create a #IBusComponent object for each file,
+and add the component objects to the registry.
+If @dirname is "/usr/share/ibus/component", this API and
+ibus_registry_load() are same.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+          <parameter name="dirname" transfer-ownership="none">
+            <doc xml:whitespace="preserve">IBus component directory which includes XML files.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="output" c:identifier="ibus_registry_output">
+        <doc xml:whitespace="preserve">Output #IBusRegistry as an XML-formatted string.
+The output string can be then shown on the screen or written to file.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+          <parameter name="output" transfer-ownership="none">
+            <doc xml:whitespace="preserve">GString that holds the result.</doc>
+            <type name="GLib.String" c:type="GString*"/>
+          </parameter>
+          <parameter name="indent" transfer-ownership="none">
+            <doc xml:whitespace="preserve">level of indent.</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="save_cache" c:identifier="ibus_registry_save_cache">
+        <doc xml:whitespace="preserve">Save the registry in a user directory or system directory.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the cache is saved successfully, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+          <parameter name="is_user" transfer-ownership="none">
+            <doc xml:whitespace="preserve">%TRUE if the registry cache is saved in the user directory.</doc>
+            <type name="gboolean" c:type="gboolean"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="save_cache_file"
+              c:identifier="ibus_registry_save_cache_file">
+        <doc xml:whitespace="preserve">Save the registry cache @filename.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%TRUE if the cache is saved successfully, %FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+          <parameter name="filename" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The file path of the registry cache</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="start_monitor_changes"
+              c:identifier="ibus_registry_start_monitor_changes">
+        <doc xml:whitespace="preserve">Start to monitor observed paths.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="registry" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusRegistry.</doc>
+            <type name="Registry" c:type="IBusRegistry*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <field name="parent" readable="0" private="1">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="RegistryPrivate" c:type="IBusRegistryPrivate*"/>
+      </field>
+      <glib:signal name="changed" when="last">
+        <doc xml:whitespace="preserve">Emitted when any observed paths are changed.
+A method is not associated in this class. the "changed"
+signal would be handled in other classes.
+
+See also: ibus_registry_start_monitor_changes().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+      </glib:signal>
+    </class>
+    <record name="RegistryClass"
+            c:type="IBusRegistryClass"
+            glib:is-gtype-struct-for="Registry">
+      <field name="parent" readable="0" private="1">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <record name="RegistryPrivate" c:type="IBusRegistryPrivate" disguised="1">
+    </record>
+    <constant name="RepeatKeys_Enable"
+              value="65138"
+              c:type="IBUS_RepeatKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Return" value="65293" c:type="IBUS_Return">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Right" value="65363" c:type="IBUS_Right">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Romaji" value="65316" c:type="IBUS_Romaji">
+      <doc xml:whitespace="preserve">Japanese keyboard support.</doc>
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="RupeeSign" value="16785576" c:type="IBUS_RupeeSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="S" value="83" c:type="IBUS_S">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SCHWA" value="16777615" c:type="IBUS_SCHWA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SERVICE_CONFIG"
+              value="org.freedesktop.IBus.Config"
+              c:type="IBUS_SERVICE_CONFIG">
+      <doc xml:whitespace="preserve">Address of IBus config service.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="SERVICE_IBUS"
+              value="org.freedesktop.IBus"
+              c:type="IBUS_SERVICE_IBUS">
+      <doc xml:whitespace="preserve">Address of IBus service.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="SERVICE_NOTIFICATIONS"
+              value="org.freedesktop.IBus.Notifications"
+              c:type="IBUS_SERVICE_NOTIFICATIONS">
+      <doc xml:whitespace="preserve">Address of IBus notification service.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="SERVICE_PANEL"
+              value="org.freedesktop.IBus.Panel"
+              c:type="IBUS_SERVICE_PANEL">
+      <doc xml:whitespace="preserve">Address of IBus panel service.</doc>
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="Sabovedot" value="16784992" c:type="IBUS_Sabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Sacute" value="422" c:type="IBUS_Sacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Scaron" value="425" c:type="IBUS_Scaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Scedilla" value="426" c:type="IBUS_Scedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Scircumflex" value="734" c:type="IBUS_Scircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Scroll_Lock" value="65300" c:type="IBUS_Scroll_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Select" value="65376" c:type="IBUS_Select">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_DJE" value="1713" c:type="IBUS_Serbian_DJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_DZE" value="1727" c:type="IBUS_Serbian_DZE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_JE" value="1720" c:type="IBUS_Serbian_JE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_LJE" value="1721" c:type="IBUS_Serbian_LJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_NJE" value="1722" c:type="IBUS_Serbian_NJE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_TSHE" value="1723" c:type="IBUS_Serbian_TSHE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_dje" value="1697" c:type="IBUS_Serbian_dje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_dze" value="1711" c:type="IBUS_Serbian_dze">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_je" value="1704" c:type="IBUS_Serbian_je">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_lje" value="1705" c:type="IBUS_Serbian_lje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_nje" value="1706" c:type="IBUS_Serbian_nje">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Serbian_tshe" value="1707" c:type="IBUS_Serbian_tshe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Serializable"
+           c:symbol-prefix="serializable"
+           c:type="IBusSerializable"
+           parent="Object"
+           glib:type-name="IBusSerializable"
+           glib:get-type="ibus_serializable_get_type"
+           glib:type-struct="SerializableClass">
+      <doc xml:whitespace="preserve">An #IBusSerializable is an IBus object which can be serialized, that is,
+to be to and from a #GVariant.
+
+This class is to be extended by other class that requires serialization.
+An extended class should overrides following methods:
+&lt;itemizedlist&gt;
+   &lt;listitem&gt;
+      &lt;para&gt;&lt;function&gt;serialize(object,iter)&lt;/function&gt;: for serialize.&lt;/para&gt;
+   &lt;/listitem&gt;
+   &lt;listitem&gt;
+      &lt;para&gt;&lt;function&gt;deserialize(object,iter)&lt;/function&gt;: for deserialize.&lt;/para&gt;
+   &lt;/listitem&gt;
+   &lt;listitem&gt;
+      &lt;para&gt;&lt;function&gt;copy(desc,src)&lt;/function&gt;: for copy between IBusSerializable.&lt;/para&gt;
+   &lt;/listitem&gt;
+&lt;/itemizedlist&gt;
+See IBusSerializableSerializeFunc(), IBusSerializableDeserializeFunc(), IBusSerializableCopyFunc()
+for function prototype.</doc>
+      <constructor name="new" c:identifier="ibus_serializable_new">
+        <doc xml:whitespace="preserve">Creates a new instance of an #IBusSerializable.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">a new instance of #IBusSerializable.</doc>
+          <type name="Serializable" c:type="IBusSerializable*"/>
+        </return-value>
+      </constructor>
+      <function name="deserialize"
+                c:identifier="ibus_serializable_deserialize">
+        <doc xml:whitespace="preserve">Deserialize a #GVariant to an #IBusSerializable/
+The deserialize method should be implemented in extended class.
+
+See also: IBusSerializableCopyFunc().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The deserialized #IBusSerializable.</doc>
+          <type name="Serializable" c:type="IBusSerializable*"/>
+        </return-value>
+        <parameters>
+          <parameter name="variant" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A #GVariant.</doc>
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+        </parameters>
+      </function>
+      <virtual-method name="copy">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="dest" transfer-ownership="none">
+            <type name="Serializable" c:type="IBusSerializable*"/>
+          </instance-parameter>
+          <parameter name="src" transfer-ownership="none">
+            <type name="Serializable" c:type="const IBusSerializable*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="deserialize">
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="gint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <type name="Serializable" c:type="IBusSerializable*"/>
+          </instance-parameter>
+          <parameter name="variant" transfer-ownership="none">
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="serialize">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <type name="Serializable" c:type="IBusSerializable*"/>
+          </instance-parameter>
+          <parameter name="builder" transfer-ownership="none">
+            <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="copy" c:identifier="ibus_serializable_copy">
+        <doc xml:whitespace="preserve">Clone an #IBusSerializable.
+The copy method should be implemented in extended class.
+
+See also: IBusSerializableCopyFunc().</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated clone object; or %NULL if @object is not serializable.</doc>
+          <type name="Serializable" c:type="IBusSerializable*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusSerializable.</doc>
+            <type name="Serializable" c:type="IBusSerializable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_qattachment"
+              c:identifier="ibus_serializable_get_qattachment">
+        <doc xml:whitespace="preserve">Get a value from attachment of an #IBusSerializable.
+See also: ibus_serializable_set_attachment().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">The attached value; or %NULL if fail to retrieve the value.</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusSerializable.</doc>
+            <type name="Serializable" c:type="IBusSerializable*"/>
+          </instance-parameter>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">String formatted key for indexing value.</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="remove_qattachment"
+              c:identifier="ibus_serializable_remove_qattachment">
+        <doc xml:whitespace="preserve">Remove a value from attachment of an #IBusSerializable.
+See also: ibus_serializable_remove_attachment().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusSerializable.</doc>
+            <type name="Serializable" c:type="IBusSerializable*"/>
+          </instance-parameter>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">String formatted key for indexing value.</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="serialize" c:identifier="ibus_serializable_serialize">
+        <doc xml:whitespace="preserve">Serialize an #IBusSerializable to a #GVariant.
+The serialize method should be implemented in extended class.
+
+See also: IBusSerializableCopyFunc().</doc>
+        <return-value transfer-ownership="full">
+          <doc xml:whitespace="preserve">A #GVariant.</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusSerializable.</doc>
+            <type name="Serializable" c:type="IBusSerializable*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_qattachment"
+              c:identifier="ibus_serializable_set_qattachment">
+        <doc xml:whitespace="preserve">Attach a value to an #IBusSerializable. If the value is floating,
+the serializable will take the ownership.
+
+See also: ibus_serializable_set_attachment().</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="serializable" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An #IBusSerializable.</doc>
+            <type name="Serializable" c:type="IBusSerializable*"/>
+          </instance-parameter>
+          <parameter name="key" transfer-ownership="none">
+            <doc xml:whitespace="preserve">String formatted key for indexing value.</doc>
+            <type name="GLib.Quark" c:type="GQuark"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Value to be attached or %NULL to remove any prevoius value.</doc>
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent" readable="0" private="1">
+        <type name="Object" c:type="IBusObject"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="SerializablePrivate" c:type="IBusSerializablePrivate*"/>
+      </field>
+    </class>
+    <record name="SerializableClass"
+            c:type="IBusSerializableClass"
+            glib:is-gtype-struct-for="Serializable">
+      <field name="parent" readable="0" private="1">
+        <type name="ObjectClass" c:type="IBusObjectClass"/>
+      </field>
+      <field name="serialize">
+        <callback name="serialize">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Serializable" c:type="IBusSerializable*"/>
+            </parameter>
+            <parameter name="builder" transfer-ownership="none">
+              <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="deserialize">
+        <callback name="deserialize">
+          <return-value transfer-ownership="none">
+            <type name="gint" c:type="gint"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Serializable" c:type="IBusSerializable*"/>
+            </parameter>
+            <parameter name="variant" transfer-ownership="none">
+              <type name="GLib.Variant" c:type="GVariant*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="copy">
+        <callback name="copy">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="dest" transfer-ownership="none">
+              <type name="Serializable" c:type="IBusSerializable*"/>
+            </parameter>
+            <parameter name="src" transfer-ownership="none">
+              <type name="Serializable" c:type="const IBusSerializable*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="5">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+    </record>
+    <callback name="SerializableCopyFunc" c:type="IBusSerializableCopyFunc">
+      <doc xml:whitespace="preserve">Prototype of copy function.
+Copy function copy from source #IBusSerializable to the destination one.
+Returns a gboolean value which indicates whether the copying is success.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if succeed; %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="dest" transfer-ownership="none">
+          <doc xml:whitespace="preserve">The destination #IBusSerializable.</doc>
+          <type name="Serializable" c:type="IBusSerializable*"/>
+        </parameter>
+        <parameter name="src" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A source #IBusSerializable.</doc>
+          <type name="Serializable" c:type="const IBusSerializable*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <callback name="SerializableDeserializeFunc"
+              c:type="IBusSerializableDeserializeFunc">
+      <doc xml:whitespace="preserve">Prototype of deserialize function.
+Deserialize function convert a #GVariant to #IBusSerializable.
+Returns an integer value which indicates how many values in
+the variant(tuple) are consumed.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The number of values in the variant(tuple) are consumed.</doc>
+        <type name="gint" c:type="gint"/>
+      </return-value>
+      <parameters>
+        <parameter name="serializable" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An #IBusSerializable.</doc>
+          <type name="Serializable" c:type="IBusSerializable*"/>
+        </parameter>
+        <parameter name="variant" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #GVariant contains a tuple.</doc>
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="SerializablePrivate"
+            c:type="IBusSerializablePrivate"
+            disguised="1">
+    </record>
+    <callback name="SerializableSerializeFunc"
+              c:type="IBusSerializableSerializeFunc">
+      <doc xml:whitespace="preserve">Prototype of serialize function.
+Serialize function convert an #IBusSerializable to #GVariantBuilder.
+Returns a gboolean value which indicates whether the conversion is success.
+Return %TRUE if succeed.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">%TRUE if succeed; %FALSE otherwise.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="serializable" transfer-ownership="none">
+          <doc xml:whitespace="preserve">An #IBusSerializable.</doc>
+          <type name="Serializable" c:type="IBusSerializable*"/>
+        </parameter>
+        <parameter name="builder" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #GVariantBuilder.</doc>
+          <type name="GLib.VariantBuilder" c:type="GVariantBuilder*"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <class name="Service"
+           c:symbol-prefix="service"
+           c:type="IBusService"
+           parent="Object"
+           glib:type-name="IBusService"
+           glib:get-type="ibus_service_get_type"
+           glib:type-struct="ServiceClass">
+      <doc xml:whitespace="preserve">An IBusService is a base class for services.</doc>
+      <constructor name="new" c:identifier="ibus_service_new">
+        <doc xml:whitespace="preserve">New an IBusService.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusService</doc>
+          <type name="Service" c:type="IBusService*"/>
+        </return-value>
+        <parameters>
+          <parameter name="connection" transfer-ownership="none">
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+          <parameter name="path" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Object path.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <virtual-method name="service_get_property" throws="1">
+        <return-value transfer-ownership="full">
+          <type name="GLib.Variant" c:type="GVariant*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="service" transfer-ownership="none">
+            <type name="Service" c:type="IBusService*"/>
+          </instance-parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+          <parameter name="sender" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="object_path" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="interface_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="service_method_call">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="service" transfer-ownership="none">
+            <type name="Service" c:type="IBusService*"/>
+          </instance-parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+          <parameter name="sender" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="object_path" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="interface_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="method_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="parameters" transfer-ownership="none">
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+          <parameter name="invocation" transfer-ownership="none">
+            <type name="Gio.DBusMethodInvocation"
+                  c:type="GDBusMethodInvocation*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="service_set_property" throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="service" transfer-ownership="none">
+            <type name="Service" c:type="IBusService*"/>
+          </instance-parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+          <parameter name="sender" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="object_path" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="interface_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="property_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="emit_signal"
+              c:identifier="ibus_service_emit_signal"
+              throws="1">
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="service" transfer-ownership="none">
+            <type name="Service" c:type="IBusService*"/>
+          </instance-parameter>
+          <parameter name="dest_bus_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="interface_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="signal_name" transfer-ownership="none">
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="parameters" transfer-ownership="none">
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_connection" c:identifier="ibus_service_get_connection">
+        <doc xml:whitespace="preserve">Returns a connections.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A #GDBusConnection of an #IBusService instance.</doc>
+          <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="service" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusService.</doc>
+            <type name="Service" c:type="IBusService*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_object_path"
+              c:identifier="ibus_service_get_object_path">
+        <doc xml:whitespace="preserve">Returns the object path of an IBusService.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The object path of @service</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="service" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusService.</doc>
+            <type name="Service" c:type="IBusService*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="register" c:identifier="ibus_service_register" throws="1">
+        <doc xml:whitespace="preserve">Registers service to a connection.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE if the service was registered, FALSE otherwise.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="service" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusService.</doc>
+            <type name="Service" c:type="IBusService*"/>
+          </instance-parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A GDBusConnection the service will be registered to.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="unregister" c:identifier="ibus_service_unregister">
+        <doc xml:whitespace="preserve">Unregisters service from a connection.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="service" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusService.</doc>
+            <type name="Service" c:type="IBusService*"/>
+          </instance-parameter>
+          <parameter name="connection" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A GDBusConnection the service was registered with.</doc>
+            <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <property name="connection"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The connection of service object.</doc>
+        <type name="Gio.DBusConnection"/>
+      </property>
+      <property name="object-path"
+                writable="1"
+                construct-only="1"
+                transfer-ownership="none">
+        <doc xml:whitespace="preserve">The path of service object.</doc>
+        <type name="utf8" c:type="gchar*"/>
+      </property>
+      <field name="parent" readable="0" private="1">
+        <type name="Object" c:type="IBusObject"/>
+      </field>
+      <field name="priv" readable="0" private="1">
+        <type name="ServicePrivate" c:type="IBusServicePrivate*"/>
+      </field>
+    </class>
+    <record name="ServiceClass"
+            c:type="IBusServiceClass"
+            glib:is-gtype-struct-for="Service">
+      <field name="parent" readable="0" private="1">
+        <type name="ObjectClass" c:type="IBusObjectClass"/>
+      </field>
+      <field name="service_method_call">
+        <callback name="service_method_call">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="service" transfer-ownership="none">
+              <type name="Service" c:type="IBusService*"/>
+            </parameter>
+            <parameter name="connection" transfer-ownership="none">
+              <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+            </parameter>
+            <parameter name="sender" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="object_path" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="interface_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="method_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="parameters" transfer-ownership="none">
+              <type name="GLib.Variant" c:type="GVariant*"/>
+            </parameter>
+            <parameter name="invocation" transfer-ownership="none">
+              <type name="Gio.DBusMethodInvocation"
+                    c:type="GDBusMethodInvocation*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="service_get_property">
+        <callback name="service_get_property" throws="1">
+          <return-value transfer-ownership="full">
+            <type name="GLib.Variant" c:type="GVariant*"/>
+          </return-value>
+          <parameters>
+            <parameter name="service" transfer-ownership="none">
+              <type name="Service" c:type="IBusService*"/>
+            </parameter>
+            <parameter name="connection" transfer-ownership="none">
+              <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+            </parameter>
+            <parameter name="sender" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="object_path" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="interface_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="service_set_property">
+        <callback name="service_set_property" throws="1">
+          <return-value transfer-ownership="none">
+            <type name="gboolean" c:type="gboolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="service" transfer-ownership="none">
+              <type name="Service" c:type="IBusService*"/>
+            </parameter>
+            <parameter name="connection" transfer-ownership="none">
+              <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
+            </parameter>
+            <parameter name="sender" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="object_path" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="interface_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="property_name" transfer-ownership="none">
+              <type name="utf8" c:type="const gchar*"/>
+            </parameter>
+            <parameter name="value" transfer-ownership="none">
+              <type name="GLib.Variant" c:type="GVariant*"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="interfaces" readable="0" private="1">
+        <array name="GLib.Array" c:type="GArray*">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+      <field name="pdummy" readable="0" private="1">
+        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+          <type name="gpointer" c:type="gpointer"/>
+        </array>
+      </field>
+      <method name="add_interfaces"
+              c:identifier="ibus_service_class_add_interfaces">
+        <doc xml:whitespace="preserve">Set the interface introspection information with the service class.</doc>
+        <return-value transfer-ownership="none">
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="klass" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusServiceClass.</doc>
+            <type name="ServiceClass" c:type="IBusServiceClass*"/>
+          </instance-parameter>
+          <parameter name="xml_data" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The introspection xml data.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </method>
+    </record>
+    <record name="ServicePrivate" c:type="IBusServicePrivate" disguised="1">
+    </record>
+    <constant name="Shift_L" value="65505" c:type="IBUS_Shift_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Shift_Lock" value="65510" c:type="IBUS_Shift_Lock">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Shift_R" value="65506" c:type="IBUS_Shift_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SingleCandidate"
+              value="65340"
+              c:type="IBUS_SingleCandidate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="SlowKeys_Enable"
+              value="65139"
+              c:type="IBUS_SlowKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="StickyKeys_Enable"
+              value="65141"
+              c:type="IBUS_StickyKeys_Enable">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Super_L" value="65515" c:type="IBUS_Super_L">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Super_R" value="65516" c:type="IBUS_Super_R">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Sys_Req" value="65301" c:type="IBUS_Sys_Req">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="T" value="84" c:type="IBUS_T">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="THORN" value="222" c:type="IBUS_THORN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tab" value="65289" c:type="IBUS_Tab">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tabovedot" value="16785002" c:type="IBUS_Tabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tcaron" value="427" c:type="IBUS_Tcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tcedilla" value="478" c:type="IBUS_Tcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Terminate_Server"
+              value="65237"
+              c:type="IBUS_Terminate_Server">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <class name="Text"
+           c:symbol-prefix="text"
+           c:type="IBusText"
+           parent="Serializable"
+           glib:type-name="IBusText"
+           glib:get-type="ibus_text_get_type"
+           glib:type-struct="TextClass">
+      <doc xml:whitespace="preserve">An IBusText is the main text object in IBus.
+The text is decorated according to associated IBusAttribute,
+e.g. the foreground/background color, underline, and
+applied scope.</doc>
+      <constructor name="new_from_printf"
+                   c:identifier="ibus_text_new_from_printf"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">New an IBusText from a printf expression.
+
+The result of printf expression is stored in the new IBusText instance.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <parameter name="fmt" transfer-ownership="none">
+            <doc xml:whitespace="preserve">printf format string.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+          <parameter name="arg1" transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_static_string"
+                   c:identifier="ibus_text_new_from_static_string"
+                   introspectable="0">
+        <doc xml:whitespace="preserve">New an IBusText from a static string.
+
+Since @str is a static string which won't be freed.
+This function will NOT duplicate @str.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An text string to be set.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_string"
+                   c:identifier="ibus_text_new_from_string">
+        <doc xml:whitespace="preserve">New an IBusText from a string.
+
+@str will be duplicated in IBusText, so feel free to free @str after this function.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An text string to be set.</doc>
+            <type name="utf8" c:type="const gchar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_ucs4" c:identifier="ibus_text_new_from_ucs4">
+        <doc xml:whitespace="preserve">New an IBusText from an UCS-4 encoded string.
+
+@str will be duplicated in IBusText, so feel free to free @str after this function.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <parameter name="str" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An text string to be set.</doc>
+            <type name="gunichar" c:type="const gunichar*"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <constructor name="new_from_unichar"
+                   c:identifier="ibus_text_new_from_unichar">
+        <doc xml:whitespace="preserve">New an IBusText from a single UCS4-encoded character.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">A newly allocated IBusText.</doc>
+          <type name="Text" c:type="IBusText*"/>
+        </return-value>
+        <parameters>
+          <parameter name="c" transfer-ownership="none">
+            <doc xml:whitespace="preserve">A single UCS4-encoded character.</doc>
+            <type name="gunichar" c:type="gunichar"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="append_attribute"
+              c:identifier="ibus_text_append_attribute">
+        <doc xml:whitespace="preserve">Append an IBusAttribute for IBusText.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">an IBusText</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </instance-parameter>
+          <parameter name="type" transfer-ownership="none">
+            <doc xml:whitespace="preserve">IBusAttributeType for @text.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="value" transfer-ownership="none">
+            <doc xml:whitespace="preserve">Value for the type.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="start_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The starting index, inclusive.</doc>
+            <type name="guint" c:type="guint"/>
+          </parameter>
+          <parameter name="end_index" transfer-ownership="none">
+            <doc xml:whitespace="preserve">The ending index, exclusive.</doc>
+            <type name="gint" c:type="gint"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="get_attributes" c:identifier="ibus_text_get_attributes">
+        <doc xml:whitespace="preserve">Return the attributes in an IBusText. Should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the attrs in @text.</doc>
+          <type name="AttrList" c:type="IBusAttrList*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusText.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_is_static"
+              c:identifier="ibus_text_get_is_static"
+              introspectable="0">
+        <doc xml:whitespace="preserve">Return the is_static in an IBusText.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the is_static in @text.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusText.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_length" c:identifier="ibus_text_get_length">
+        <doc xml:whitespace="preserve">Return number of characters in an IBusText.
+This function is based on g_utf8_strlen(), so unlike strlen(),
+it does not count by bytes but characters instead.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">Number of character in @text, not counted by bytes.</doc>
+          <type name="guint" c:type="guint"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusText.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_text" c:identifier="ibus_text_get_text">
+        <doc xml:whitespace="preserve">Return the text in an IBusText. Should not be freed.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">the text in @text.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusText.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="set_attributes" c:identifier="ibus_text_set_attributes">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="text" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusText.</doc>
+            <type name="Text" c:type="IBusText*"/>
+          </instance-parameter>
+          <parameter name="attrs" transfer-ownership="none">
+            <doc xml:whitespace="preserve">An IBusAttrList</doc>
+            <type name="AttrList" c:type="IBusAttrList*"/>
+          </parameter>
+        </parameters>
+      </method>
+      <field name="parent">
+        <type name="Serializable" c:type="IBusSerializable"/>
+      </field>
+      <field name="is_static">
+        <type name="gboolean" c:type="gboolean"/>
+      </field>
+      <field name="text">
+        <type name="utf8" c:type="gchar*"/>
+      </field>
+      <field name="attrs">
+        <type name="AttrList" c:type="IBusAttrList*"/>
+      </field>
+    </class>
+    <record name="TextClass"
+            c:type="IBusTextClass"
+            glib:is-gtype-struct-for="Text">
+      <field name="parent">
+        <type name="SerializableClass" c:type="IBusSerializableClass"/>
+      </field>
+    </record>
+    <constant name="Thai_baht" value="3551" c:type="IBUS_Thai_baht">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_bobaimai" value="3514" c:type="IBUS_Thai_bobaimai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_chochan" value="3496" c:type="IBUS_Thai_chochan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_chochang" value="3498" c:type="IBUS_Thai_chochang">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_choching" value="3497" c:type="IBUS_Thai_choching">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_chochoe" value="3500" c:type="IBUS_Thai_chochoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_dochada" value="3502" c:type="IBUS_Thai_dochada">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_dodek" value="3508" c:type="IBUS_Thai_dodek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_fofa" value="3517" c:type="IBUS_Thai_fofa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_fofan" value="3519" c:type="IBUS_Thai_fofan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_hohip" value="3531" c:type="IBUS_Thai_hohip">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_honokhuk" value="3534" c:type="IBUS_Thai_honokhuk">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khokhai" value="3490" c:type="IBUS_Thai_khokhai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khokhon" value="3493" c:type="IBUS_Thai_khokhon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khokhuat" value="3491" c:type="IBUS_Thai_khokhuat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khokhwai" value="3492" c:type="IBUS_Thai_khokhwai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_khorakhang"
+              value="3494"
+              c:type="IBUS_Thai_khorakhang">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_kokai" value="3489" c:type="IBUS_Thai_kokai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lakkhangyao"
+              value="3557"
+              c:type="IBUS_Thai_lakkhangyao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekchet" value="3575" c:type="IBUS_Thai_lekchet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekha" value="3573" c:type="IBUS_Thai_lekha">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekhok" value="3574" c:type="IBUS_Thai_lekhok">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekkao" value="3577" c:type="IBUS_Thai_lekkao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leknung" value="3569" c:type="IBUS_Thai_leknung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lekpaet" value="3576" c:type="IBUS_Thai_lekpaet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leksam" value="3571" c:type="IBUS_Thai_leksam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leksi" value="3572" c:type="IBUS_Thai_leksi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leksong" value="3570" c:type="IBUS_Thai_leksong">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_leksun" value="3568" c:type="IBUS_Thai_leksun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lochula" value="3532" c:type="IBUS_Thai_lochula">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_loling" value="3525" c:type="IBUS_Thai_loling">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_lu" value="3526" c:type="IBUS_Thai_lu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maichattawa"
+              value="3563"
+              c:type="IBUS_Thai_maichattawa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maiek" value="3560" c:type="IBUS_Thai_maiek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maihanakat"
+              value="3537"
+              c:type="IBUS_Thai_maihanakat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maihanakat_maitho"
+              value="3550"
+              c:type="IBUS_Thai_maihanakat_maitho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maitaikhu" value="3559" c:type="IBUS_Thai_maitaikhu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maitho" value="3561" c:type="IBUS_Thai_maitho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maitri" value="3562" c:type="IBUS_Thai_maitri">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_maiyamok" value="3558" c:type="IBUS_Thai_maiyamok">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_moma" value="3521" c:type="IBUS_Thai_moma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_ngongu" value="3495" c:type="IBUS_Thai_ngongu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_nikhahit" value="3565" c:type="IBUS_Thai_nikhahit">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_nonen" value="3507" c:type="IBUS_Thai_nonen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_nonu" value="3513" c:type="IBUS_Thai_nonu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_oang" value="3533" c:type="IBUS_Thai_oang">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_paiyannoi" value="3535" c:type="IBUS_Thai_paiyannoi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_phinthu" value="3546" c:type="IBUS_Thai_phinthu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_phophan" value="3518" c:type="IBUS_Thai_phophan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_phophung" value="3516" c:type="IBUS_Thai_phophung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_phosamphao"
+              value="3520"
+              c:type="IBUS_Thai_phosamphao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_popla" value="3515" c:type="IBUS_Thai_popla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_rorua" value="3523" c:type="IBUS_Thai_rorua">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_ru" value="3524" c:type="IBUS_Thai_ru">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraa" value="3536" c:type="IBUS_Thai_saraa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraaa" value="3538" c:type="IBUS_Thai_saraaa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraae" value="3553" c:type="IBUS_Thai_saraae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraaimaimalai"
+              value="3556"
+              c:type="IBUS_Thai_saraaimaimalai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraaimaimuan"
+              value="3555"
+              c:type="IBUS_Thai_saraaimaimuan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraam" value="3539" c:type="IBUS_Thai_saraam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarae" value="3552" c:type="IBUS_Thai_sarae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarai" value="3540" c:type="IBUS_Thai_sarai">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraii" value="3541" c:type="IBUS_Thai_saraii">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarao" value="3554" c:type="IBUS_Thai_sarao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarau" value="3544" c:type="IBUS_Thai_sarau">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_saraue" value="3542" c:type="IBUS_Thai_saraue">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarauee" value="3543" c:type="IBUS_Thai_sarauee">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sarauu" value="3545" c:type="IBUS_Thai_sarauu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sorusi" value="3529" c:type="IBUS_Thai_sorusi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sosala" value="3528" c:type="IBUS_Thai_sosala">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_soso" value="3499" c:type="IBUS_Thai_soso">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_sosua" value="3530" c:type="IBUS_Thai_sosua">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thanthakhat"
+              value="3564"
+              c:type="IBUS_Thai_thanthakhat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thonangmontho"
+              value="3505"
+              c:type="IBUS_Thai_thonangmontho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thophuthao"
+              value="3506"
+              c:type="IBUS_Thai_thophuthao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thothahan" value="3511" c:type="IBUS_Thai_thothahan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thothan" value="3504" c:type="IBUS_Thai_thothan">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thothong" value="3512" c:type="IBUS_Thai_thothong">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_thothung" value="3510" c:type="IBUS_Thai_thothung">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_topatak" value="3503" c:type="IBUS_Thai_topatak">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_totao" value="3509" c:type="IBUS_Thai_totao">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_wowaen" value="3527" c:type="IBUS_Thai_wowaen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_yoyak" value="3522" c:type="IBUS_Thai_yoyak">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thai_yoying" value="3501" c:type="IBUS_Thai_yoying">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Thorn" value="222" c:type="IBUS_Thorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Touroku" value="65323" c:type="IBUS_Touroku">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Tslash" value="940" c:type="IBUS_Tslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="U" value="85" c:type="IBUS_U">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uacute" value="218" c:type="IBUS_Uacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ubelowdot" value="16785124" c:type="IBUS_Ubelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ubreve" value="733" c:type="IBUS_Ubreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ucircumflex" value="219" c:type="IBUS_Ucircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Udiaeresis" value="220" c:type="IBUS_Udiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Udoubleacute" value="475" c:type="IBUS_Udoubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ugrave" value="217" c:type="IBUS_Ugrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhook" value="16785126" c:type="IBUS_Uhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhorn" value="16777647" c:type="IBUS_Uhorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhornacute" value="16785128" c:type="IBUS_Uhornacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhornbelowdot"
+              value="16785136"
+              c:type="IBUS_Uhornbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhorngrave" value="16785130" c:type="IBUS_Uhorngrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhornhook" value="16785132" c:type="IBUS_Uhornhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uhorntilde" value="16785134" c:type="IBUS_Uhorntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_GHE_WITH_UPTURN"
+              value="1725"
+              c:type="IBUS_Ukrainian_GHE_WITH_UPTURN">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_I" value="1718" c:type="IBUS_Ukrainian_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_IE" value="1716" c:type="IBUS_Ukrainian_IE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_YI" value="1719" c:type="IBUS_Ukrainian_YI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_ghe_with_upturn"
+              value="1709"
+              c:type="IBUS_Ukrainian_ghe_with_upturn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_i" value="1702" c:type="IBUS_Ukrainian_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_ie" value="1700" c:type="IBUS_Ukrainian_ie">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukrainian_yi" value="1703" c:type="IBUS_Ukrainian_yi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_I" value="1718" c:type="IBUS_Ukranian_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_JE" value="1716" c:type="IBUS_Ukranian_JE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_YI" value="1719" c:type="IBUS_Ukranian_YI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_i" value="1702" c:type="IBUS_Ukranian_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_je" value="1700" c:type="IBUS_Ukranian_je">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ukranian_yi" value="1703" c:type="IBUS_Ukranian_yi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Umacron" value="990" c:type="IBUS_Umacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Undo" value="65381" c:type="IBUS_Undo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uogonek" value="985" c:type="IBUS_Uogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Up" value="65362" c:type="IBUS_Up">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Uring" value="473" c:type="IBUS_Uring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Utilde" value="989" c:type="IBUS_Utilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="V" value="86" c:type="IBUS_V">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="VoidSymbol" value="16777215" c:type="IBUS_VoidSymbol">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="W" value="87" c:type="IBUS_W">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Wacute" value="16785026" c:type="IBUS_Wacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Wcircumflex" value="16777588" c:type="IBUS_Wcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Wdiaeresis" value="16785028" c:type="IBUS_Wdiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Wgrave" value="16785024" c:type="IBUS_Wgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="WonSign" value="16785577" c:type="IBUS_WonSign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="X" value="88" c:type="IBUS_X">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Xabovedot" value="16785034" c:type="IBUS_Xabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Y" value="89" c:type="IBUS_Y">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Yacute" value="221" c:type="IBUS_Yacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ybelowdot" value="16785140" c:type="IBUS_Ybelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ycircumflex" value="16777590" c:type="IBUS_Ycircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ydiaeresis" value="5054" c:type="IBUS_Ydiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ygrave" value="16785138" c:type="IBUS_Ygrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Yhook" value="16785142" c:type="IBUS_Yhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Ytilde" value="16785144" c:type="IBUS_Ytilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Z" value="90" c:type="IBUS_Z">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zabovedot" value="431" c:type="IBUS_Zabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zacute" value="428" c:type="IBUS_Zacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zcaron" value="430" c:type="IBUS_Zcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zen_Koho" value="65341" c:type="IBUS_Zen_Koho">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zenkaku" value="65320" c:type="IBUS_Zenkaku">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zenkaku_Hankaku"
+              value="65322"
+              c:type="IBUS_Zenkaku_Hankaku">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="Zstroke" value="16777653" c:type="IBUS_Zstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="a" value="97" c:type="IBUS_a">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="aacute" value="225" c:type="IBUS_aacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abelowdot" value="16785057" c:type="IBUS_abelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abovedot" value="511" c:type="IBUS_abovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abreve" value="483" c:type="IBUS_abreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abreveacute" value="16785071" c:type="IBUS_abreveacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abrevebelowdot"
+              value="16785079"
+              c:type="IBUS_abrevebelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abrevegrave" value="16785073" c:type="IBUS_abrevegrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abrevehook" value="16785075" c:type="IBUS_abrevehook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="abrevetilde" value="16785077" c:type="IBUS_abrevetilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflex" value="226" c:type="IBUS_acircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflexacute"
+              value="16785061"
+              c:type="IBUS_acircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflexbelowdot"
+              value="16785069"
+              c:type="IBUS_acircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflexgrave"
+              value="16785063"
+              c:type="IBUS_acircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflexhook"
+              value="16785065"
+              c:type="IBUS_acircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acircumflextilde"
+              value="16785067"
+              c:type="IBUS_acircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="acute" value="180" c:type="IBUS_acute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="adiaeresis" value="228" c:type="IBUS_adiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ae" value="230" c:type="IBUS_ae">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="agrave" value="224" c:type="IBUS_agrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ahook" value="16785059" c:type="IBUS_ahook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="amacron" value="992" c:type="IBUS_amacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ampersand" value="38" c:type="IBUS_ampersand">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="aogonek" value="433" c:type="IBUS_aogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="apostrophe" value="39" c:type="IBUS_apostrophe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="approxeq" value="16785992" c:type="IBUS_approxeq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="approximate" value="2248" c:type="IBUS_approximate">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="aring" value="229" c:type="IBUS_aring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="asciicircum" value="94" c:type="IBUS_asciicircum">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="asciitilde" value="126" c:type="IBUS_asciitilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="asterisk" value="42" c:type="IBUS_asterisk">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="at" value="64" c:type="IBUS_at">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="atilde" value="227" c:type="IBUS_atilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="attr_background_new"
+              c:identifier="ibus_attr_background_new">
+      <doc xml:whitespace="preserve">New an background #IBusAttribute.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">A newly allocated #IBusAttribute.</doc>
+        <type name="Attribute" c:type="IBusAttribute*"/>
+      </return-value>
+      <parameters>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Color in RGB.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="start_index" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Where attribute starts.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="end_index" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Where attribute ends.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="attr_foreground_new"
+              c:identifier="ibus_attr_foreground_new">
+      <doc xml:whitespace="preserve">New an foreground #IBusAttribute.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">A newly allocated #IBusAttribute.</doc>
+        <type name="Attribute" c:type="IBusAttribute*"/>
+      </return-value>
+      <parameters>
+        <parameter name="color" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Color in RGB.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="start_index" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Where attribute starts.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="end_index" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Where attribute ends.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="attr_underline_new"
+              c:identifier="ibus_attr_underline_new"
+              moved-to="AttrUnderline.new">
+      <doc xml:whitespace="preserve">New an underline #IBusAttribute.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">A newly allocated #IBusAttribute.</doc>
+        <type name="Attribute" c:type="IBusAttribute*"/>
+      </return-value>
+      <parameters>
+        <parameter name="underline_type" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Type of underline.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="start_index" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Where attribute starts.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="end_index" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Where attribute ends.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="b" value="98" c:type="IBUS_b">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="babovedot" value="16784899" c:type="IBUS_babovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="backslash" value="92" c:type="IBUS_backslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ballotcross" value="2804" c:type="IBUS_ballotcross">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="bar" value="124" c:type="IBUS_bar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="because" value="16785973" c:type="IBUS_because">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="blank" value="2527" c:type="IBUS_blank">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botintegral" value="2213" c:type="IBUS_botintegral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botleftparens" value="2220" c:type="IBUS_botleftparens">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botleftsqbracket"
+              value="2216"
+              c:type="IBUS_botleftsqbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botleftsummation"
+              value="2226"
+              c:type="IBUS_botleftsummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botrightparens" value="2222" c:type="IBUS_botrightparens">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botrightsqbracket"
+              value="2218"
+              c:type="IBUS_botrightsqbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botrightsummation"
+              value="2230"
+              c:type="IBUS_botrightsummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="bott" value="2550" c:type="IBUS_bott">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="botvertsummationconnector"
+              value="2228"
+              c:type="IBUS_botvertsummationconnector">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braceleft" value="123" c:type="IBUS_braceleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braceright" value="125" c:type="IBUS_braceright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="bracketleft" value="91" c:type="IBUS_bracketleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="bracketright" value="93" c:type="IBUS_bracketright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_blank"
+              value="16787456"
+              c:type="IBUS_braille_blank">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_1" value="65521" c:type="IBUS_braille_dot_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_10" value="65530" c:type="IBUS_braille_dot_10">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_2" value="65522" c:type="IBUS_braille_dot_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_3" value="65523" c:type="IBUS_braille_dot_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_4" value="65524" c:type="IBUS_braille_dot_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_5" value="65525" c:type="IBUS_braille_dot_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_6" value="65526" c:type="IBUS_braille_dot_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_7" value="65527" c:type="IBUS_braille_dot_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_8" value="65528" c:type="IBUS_braille_dot_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dot_9" value="65529" c:type="IBUS_braille_dot_9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1"
+              value="16787457"
+              c:type="IBUS_braille_dots_1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12"
+              value="16787459"
+              c:type="IBUS_braille_dots_12">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123"
+              value="16787463"
+              c:type="IBUS_braille_dots_123">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234"
+              value="16787471"
+              c:type="IBUS_braille_dots_1234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12345"
+              value="16787487"
+              c:type="IBUS_braille_dots_12345">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123456"
+              value="16787519"
+              c:type="IBUS_braille_dots_123456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234567"
+              value="16787583"
+              c:type="IBUS_braille_dots_1234567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12345678"
+              value="16787711"
+              c:type="IBUS_braille_dots_12345678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234568"
+              value="16787647"
+              c:type="IBUS_braille_dots_1234568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123457"
+              value="16787551"
+              c:type="IBUS_braille_dots_123457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234578"
+              value="16787679"
+              c:type="IBUS_braille_dots_1234578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123458"
+              value="16787615"
+              c:type="IBUS_braille_dots_123458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12346"
+              value="16787503"
+              c:type="IBUS_braille_dots_12346">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123467"
+              value="16787567"
+              c:type="IBUS_braille_dots_123467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1234678"
+              value="16787695"
+              c:type="IBUS_braille_dots_1234678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123468"
+              value="16787631"
+              c:type="IBUS_braille_dots_123468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12347"
+              value="16787535"
+              c:type="IBUS_braille_dots_12347">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123478"
+              value="16787663"
+              c:type="IBUS_braille_dots_123478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12348"
+              value="16787599"
+              c:type="IBUS_braille_dots_12348">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1235"
+              value="16787479"
+              c:type="IBUS_braille_dots_1235">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12356"
+              value="16787511"
+              c:type="IBUS_braille_dots_12356">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123567"
+              value="16787575"
+              c:type="IBUS_braille_dots_123567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1235678"
+              value="16787703"
+              c:type="IBUS_braille_dots_1235678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123568"
+              value="16787639"
+              c:type="IBUS_braille_dots_123568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12357"
+              value="16787543"
+              c:type="IBUS_braille_dots_12357">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123578"
+              value="16787671"
+              c:type="IBUS_braille_dots_123578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12358"
+              value="16787607"
+              c:type="IBUS_braille_dots_12358">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1236"
+              value="16787495"
+              c:type="IBUS_braille_dots_1236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12367"
+              value="16787559"
+              c:type="IBUS_braille_dots_12367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_123678"
+              value="16787687"
+              c:type="IBUS_braille_dots_123678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12368"
+              value="16787623"
+              c:type="IBUS_braille_dots_12368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1237"
+              value="16787527"
+              c:type="IBUS_braille_dots_1237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12378"
+              value="16787655"
+              c:type="IBUS_braille_dots_12378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1238"
+              value="16787591"
+              c:type="IBUS_braille_dots_1238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124"
+              value="16787467"
+              c:type="IBUS_braille_dots_124">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1245"
+              value="16787483"
+              c:type="IBUS_braille_dots_1245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12456"
+              value="16787515"
+              c:type="IBUS_braille_dots_12456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124567"
+              value="16787579"
+              c:type="IBUS_braille_dots_124567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1245678"
+              value="16787707"
+              c:type="IBUS_braille_dots_1245678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124568"
+              value="16787643"
+              c:type="IBUS_braille_dots_124568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12457"
+              value="16787547"
+              c:type="IBUS_braille_dots_12457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124578"
+              value="16787675"
+              c:type="IBUS_braille_dots_124578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12458"
+              value="16787611"
+              c:type="IBUS_braille_dots_12458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1246"
+              value="16787499"
+              c:type="IBUS_braille_dots_1246">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12467"
+              value="16787563"
+              c:type="IBUS_braille_dots_12467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_124678"
+              value="16787691"
+              c:type="IBUS_braille_dots_124678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12468"
+              value="16787627"
+              c:type="IBUS_braille_dots_12468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1247"
+              value="16787531"
+              c:type="IBUS_braille_dots_1247">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12478"
+              value="16787659"
+              c:type="IBUS_braille_dots_12478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1248"
+              value="16787595"
+              c:type="IBUS_braille_dots_1248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_125"
+              value="16787475"
+              c:type="IBUS_braille_dots_125">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1256"
+              value="16787507"
+              c:type="IBUS_braille_dots_1256">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12567"
+              value="16787571"
+              c:type="IBUS_braille_dots_12567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_125678"
+              value="16787699"
+              c:type="IBUS_braille_dots_125678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12568"
+              value="16787635"
+              c:type="IBUS_braille_dots_12568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1257"
+              value="16787539"
+              c:type="IBUS_braille_dots_1257">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12578"
+              value="16787667"
+              c:type="IBUS_braille_dots_12578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1258"
+              value="16787603"
+              c:type="IBUS_braille_dots_1258">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_126"
+              value="16787491"
+              c:type="IBUS_braille_dots_126">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1267"
+              value="16787555"
+              c:type="IBUS_braille_dots_1267">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_12678"
+              value="16787683"
+              c:type="IBUS_braille_dots_12678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1268"
+              value="16787619"
+              c:type="IBUS_braille_dots_1268">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_127"
+              value="16787523"
+              c:type="IBUS_braille_dots_127">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1278"
+              value="16787651"
+              c:type="IBUS_braille_dots_1278">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_128"
+              value="16787587"
+              c:type="IBUS_braille_dots_128">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13"
+              value="16787461"
+              c:type="IBUS_braille_dots_13">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134"
+              value="16787469"
+              c:type="IBUS_braille_dots_134">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1345"
+              value="16787485"
+              c:type="IBUS_braille_dots_1345">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13456"
+              value="16787517"
+              c:type="IBUS_braille_dots_13456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134567"
+              value="16787581"
+              c:type="IBUS_braille_dots_134567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1345678"
+              value="16787709"
+              c:type="IBUS_braille_dots_1345678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134568"
+              value="16787645"
+              c:type="IBUS_braille_dots_134568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13457"
+              value="16787549"
+              c:type="IBUS_braille_dots_13457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134578"
+              value="16787677"
+              c:type="IBUS_braille_dots_134578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13458"
+              value="16787613"
+              c:type="IBUS_braille_dots_13458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1346"
+              value="16787501"
+              c:type="IBUS_braille_dots_1346">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13467"
+              value="16787565"
+              c:type="IBUS_braille_dots_13467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_134678"
+              value="16787693"
+              c:type="IBUS_braille_dots_134678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13468"
+              value="16787629"
+              c:type="IBUS_braille_dots_13468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1347"
+              value="16787533"
+              c:type="IBUS_braille_dots_1347">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13478"
+              value="16787661"
+              c:type="IBUS_braille_dots_13478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1348"
+              value="16787597"
+              c:type="IBUS_braille_dots_1348">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_135"
+              value="16787477"
+              c:type="IBUS_braille_dots_135">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1356"
+              value="16787509"
+              c:type="IBUS_braille_dots_1356">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13567"
+              value="16787573"
+              c:type="IBUS_braille_dots_13567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_135678"
+              value="16787701"
+              c:type="IBUS_braille_dots_135678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13568"
+              value="16787637"
+              c:type="IBUS_braille_dots_13568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1357"
+              value="16787541"
+              c:type="IBUS_braille_dots_1357">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13578"
+              value="16787669"
+              c:type="IBUS_braille_dots_13578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1358"
+              value="16787605"
+              c:type="IBUS_braille_dots_1358">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_136"
+              value="16787493"
+              c:type="IBUS_braille_dots_136">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1367"
+              value="16787557"
+              c:type="IBUS_braille_dots_1367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_13678"
+              value="16787685"
+              c:type="IBUS_braille_dots_13678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1368"
+              value="16787621"
+              c:type="IBUS_braille_dots_1368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_137"
+              value="16787525"
+              c:type="IBUS_braille_dots_137">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1378"
+              value="16787653"
+              c:type="IBUS_braille_dots_1378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_138"
+              value="16787589"
+              c:type="IBUS_braille_dots_138">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14"
+              value="16787465"
+              c:type="IBUS_braille_dots_14">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_145"
+              value="16787481"
+              c:type="IBUS_braille_dots_145">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1456"
+              value="16787513"
+              c:type="IBUS_braille_dots_1456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14567"
+              value="16787577"
+              c:type="IBUS_braille_dots_14567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_145678"
+              value="16787705"
+              c:type="IBUS_braille_dots_145678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14568"
+              value="16787641"
+              c:type="IBUS_braille_dots_14568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1457"
+              value="16787545"
+              c:type="IBUS_braille_dots_1457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14578"
+              value="16787673"
+              c:type="IBUS_braille_dots_14578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1458"
+              value="16787609"
+              c:type="IBUS_braille_dots_1458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_146"
+              value="16787497"
+              c:type="IBUS_braille_dots_146">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1467"
+              value="16787561"
+              c:type="IBUS_braille_dots_1467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_14678"
+              value="16787689"
+              c:type="IBUS_braille_dots_14678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1468"
+              value="16787625"
+              c:type="IBUS_braille_dots_1468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_147"
+              value="16787529"
+              c:type="IBUS_braille_dots_147">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1478"
+              value="16787657"
+              c:type="IBUS_braille_dots_1478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_148"
+              value="16787593"
+              c:type="IBUS_braille_dots_148">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_15"
+              value="16787473"
+              c:type="IBUS_braille_dots_15">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_156"
+              value="16787505"
+              c:type="IBUS_braille_dots_156">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1567"
+              value="16787569"
+              c:type="IBUS_braille_dots_1567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_15678"
+              value="16787697"
+              c:type="IBUS_braille_dots_15678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1568"
+              value="16787633"
+              c:type="IBUS_braille_dots_1568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_157"
+              value="16787537"
+              c:type="IBUS_braille_dots_157">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1578"
+              value="16787665"
+              c:type="IBUS_braille_dots_1578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_158"
+              value="16787601"
+              c:type="IBUS_braille_dots_158">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_16"
+              value="16787489"
+              c:type="IBUS_braille_dots_16">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_167"
+              value="16787553"
+              c:type="IBUS_braille_dots_167">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_1678"
+              value="16787681"
+              c:type="IBUS_braille_dots_1678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_168"
+              value="16787617"
+              c:type="IBUS_braille_dots_168">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_17"
+              value="16787521"
+              c:type="IBUS_braille_dots_17">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_178"
+              value="16787649"
+              c:type="IBUS_braille_dots_178">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_18"
+              value="16787585"
+              c:type="IBUS_braille_dots_18">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2"
+              value="16787458"
+              c:type="IBUS_braille_dots_2">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23"
+              value="16787462"
+              c:type="IBUS_braille_dots_23">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234"
+              value="16787470"
+              c:type="IBUS_braille_dots_234">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2345"
+              value="16787486"
+              c:type="IBUS_braille_dots_2345">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23456"
+              value="16787518"
+              c:type="IBUS_braille_dots_23456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234567"
+              value="16787582"
+              c:type="IBUS_braille_dots_234567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2345678"
+              value="16787710"
+              c:type="IBUS_braille_dots_2345678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234568"
+              value="16787646"
+              c:type="IBUS_braille_dots_234568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23457"
+              value="16787550"
+              c:type="IBUS_braille_dots_23457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234578"
+              value="16787678"
+              c:type="IBUS_braille_dots_234578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23458"
+              value="16787614"
+              c:type="IBUS_braille_dots_23458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2346"
+              value="16787502"
+              c:type="IBUS_braille_dots_2346">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23467"
+              value="16787566"
+              c:type="IBUS_braille_dots_23467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_234678"
+              value="16787694"
+              c:type="IBUS_braille_dots_234678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23468"
+              value="16787630"
+              c:type="IBUS_braille_dots_23468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2347"
+              value="16787534"
+              c:type="IBUS_braille_dots_2347">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23478"
+              value="16787662"
+              c:type="IBUS_braille_dots_23478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2348"
+              value="16787598"
+              c:type="IBUS_braille_dots_2348">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_235"
+              value="16787478"
+              c:type="IBUS_braille_dots_235">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2356"
+              value="16787510"
+              c:type="IBUS_braille_dots_2356">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23567"
+              value="16787574"
+              c:type="IBUS_braille_dots_23567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_235678"
+              value="16787702"
+              c:type="IBUS_braille_dots_235678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23568"
+              value="16787638"
+              c:type="IBUS_braille_dots_23568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2357"
+              value="16787542"
+              c:type="IBUS_braille_dots_2357">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23578"
+              value="16787670"
+              c:type="IBUS_braille_dots_23578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2358"
+              value="16787606"
+              c:type="IBUS_braille_dots_2358">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_236"
+              value="16787494"
+              c:type="IBUS_braille_dots_236">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2367"
+              value="16787558"
+              c:type="IBUS_braille_dots_2367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_23678"
+              value="16787686"
+              c:type="IBUS_braille_dots_23678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2368"
+              value="16787622"
+              c:type="IBUS_braille_dots_2368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_237"
+              value="16787526"
+              c:type="IBUS_braille_dots_237">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2378"
+              value="16787654"
+              c:type="IBUS_braille_dots_2378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_238"
+              value="16787590"
+              c:type="IBUS_braille_dots_238">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24"
+              value="16787466"
+              c:type="IBUS_braille_dots_24">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_245"
+              value="16787482"
+              c:type="IBUS_braille_dots_245">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2456"
+              value="16787514"
+              c:type="IBUS_braille_dots_2456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24567"
+              value="16787578"
+              c:type="IBUS_braille_dots_24567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_245678"
+              value="16787706"
+              c:type="IBUS_braille_dots_245678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24568"
+              value="16787642"
+              c:type="IBUS_braille_dots_24568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2457"
+              value="16787546"
+              c:type="IBUS_braille_dots_2457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24578"
+              value="16787674"
+              c:type="IBUS_braille_dots_24578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2458"
+              value="16787610"
+              c:type="IBUS_braille_dots_2458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_246"
+              value="16787498"
+              c:type="IBUS_braille_dots_246">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2467"
+              value="16787562"
+              c:type="IBUS_braille_dots_2467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_24678"
+              value="16787690"
+              c:type="IBUS_braille_dots_24678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2468"
+              value="16787626"
+              c:type="IBUS_braille_dots_2468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_247"
+              value="16787530"
+              c:type="IBUS_braille_dots_247">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2478"
+              value="16787658"
+              c:type="IBUS_braille_dots_2478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_248"
+              value="16787594"
+              c:type="IBUS_braille_dots_248">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_25"
+              value="16787474"
+              c:type="IBUS_braille_dots_25">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_256"
+              value="16787506"
+              c:type="IBUS_braille_dots_256">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2567"
+              value="16787570"
+              c:type="IBUS_braille_dots_2567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_25678"
+              value="16787698"
+              c:type="IBUS_braille_dots_25678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2568"
+              value="16787634"
+              c:type="IBUS_braille_dots_2568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_257"
+              value="16787538"
+              c:type="IBUS_braille_dots_257">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2578"
+              value="16787666"
+              c:type="IBUS_braille_dots_2578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_258"
+              value="16787602"
+              c:type="IBUS_braille_dots_258">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_26"
+              value="16787490"
+              c:type="IBUS_braille_dots_26">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_267"
+              value="16787554"
+              c:type="IBUS_braille_dots_267">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_2678"
+              value="16787682"
+              c:type="IBUS_braille_dots_2678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_268"
+              value="16787618"
+              c:type="IBUS_braille_dots_268">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_27"
+              value="16787522"
+              c:type="IBUS_braille_dots_27">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_278"
+              value="16787650"
+              c:type="IBUS_braille_dots_278">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_28"
+              value="16787586"
+              c:type="IBUS_braille_dots_28">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3"
+              value="16787460"
+              c:type="IBUS_braille_dots_3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34"
+              value="16787468"
+              c:type="IBUS_braille_dots_34">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_345"
+              value="16787484"
+              c:type="IBUS_braille_dots_345">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3456"
+              value="16787516"
+              c:type="IBUS_braille_dots_3456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34567"
+              value="16787580"
+              c:type="IBUS_braille_dots_34567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_345678"
+              value="16787708"
+              c:type="IBUS_braille_dots_345678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34568"
+              value="16787644"
+              c:type="IBUS_braille_dots_34568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3457"
+              value="16787548"
+              c:type="IBUS_braille_dots_3457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34578"
+              value="16787676"
+              c:type="IBUS_braille_dots_34578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3458"
+              value="16787612"
+              c:type="IBUS_braille_dots_3458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_346"
+              value="16787500"
+              c:type="IBUS_braille_dots_346">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3467"
+              value="16787564"
+              c:type="IBUS_braille_dots_3467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_34678"
+              value="16787692"
+              c:type="IBUS_braille_dots_34678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3468"
+              value="16787628"
+              c:type="IBUS_braille_dots_3468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_347"
+              value="16787532"
+              c:type="IBUS_braille_dots_347">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3478"
+              value="16787660"
+              c:type="IBUS_braille_dots_3478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_348"
+              value="16787596"
+              c:type="IBUS_braille_dots_348">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_35"
+              value="16787476"
+              c:type="IBUS_braille_dots_35">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_356"
+              value="16787508"
+              c:type="IBUS_braille_dots_356">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3567"
+              value="16787572"
+              c:type="IBUS_braille_dots_3567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_35678"
+              value="16787700"
+              c:type="IBUS_braille_dots_35678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3568"
+              value="16787636"
+              c:type="IBUS_braille_dots_3568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_357"
+              value="16787540"
+              c:type="IBUS_braille_dots_357">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3578"
+              value="16787668"
+              c:type="IBUS_braille_dots_3578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_358"
+              value="16787604"
+              c:type="IBUS_braille_dots_358">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_36"
+              value="16787492"
+              c:type="IBUS_braille_dots_36">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_367"
+              value="16787556"
+              c:type="IBUS_braille_dots_367">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_3678"
+              value="16787684"
+              c:type="IBUS_braille_dots_3678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_368"
+              value="16787620"
+              c:type="IBUS_braille_dots_368">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_37"
+              value="16787524"
+              c:type="IBUS_braille_dots_37">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_378"
+              value="16787652"
+              c:type="IBUS_braille_dots_378">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_38"
+              value="16787588"
+              c:type="IBUS_braille_dots_38">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4"
+              value="16787464"
+              c:type="IBUS_braille_dots_4">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_45"
+              value="16787480"
+              c:type="IBUS_braille_dots_45">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_456"
+              value="16787512"
+              c:type="IBUS_braille_dots_456">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4567"
+              value="16787576"
+              c:type="IBUS_braille_dots_4567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_45678"
+              value="16787704"
+              c:type="IBUS_braille_dots_45678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4568"
+              value="16787640"
+              c:type="IBUS_braille_dots_4568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_457"
+              value="16787544"
+              c:type="IBUS_braille_dots_457">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4578"
+              value="16787672"
+              c:type="IBUS_braille_dots_4578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_458"
+              value="16787608"
+              c:type="IBUS_braille_dots_458">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_46"
+              value="16787496"
+              c:type="IBUS_braille_dots_46">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_467"
+              value="16787560"
+              c:type="IBUS_braille_dots_467">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_4678"
+              value="16787688"
+              c:type="IBUS_braille_dots_4678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_468"
+              value="16787624"
+              c:type="IBUS_braille_dots_468">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_47"
+              value="16787528"
+              c:type="IBUS_braille_dots_47">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_478"
+              value="16787656"
+              c:type="IBUS_braille_dots_478">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_48"
+              value="16787592"
+              c:type="IBUS_braille_dots_48">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_5"
+              value="16787472"
+              c:type="IBUS_braille_dots_5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_56"
+              value="16787504"
+              c:type="IBUS_braille_dots_56">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_567"
+              value="16787568"
+              c:type="IBUS_braille_dots_567">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_5678"
+              value="16787696"
+              c:type="IBUS_braille_dots_5678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_568"
+              value="16787632"
+              c:type="IBUS_braille_dots_568">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_57"
+              value="16787536"
+              c:type="IBUS_braille_dots_57">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_578"
+              value="16787664"
+              c:type="IBUS_braille_dots_578">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_58"
+              value="16787600"
+              c:type="IBUS_braille_dots_58">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_6"
+              value="16787488"
+              c:type="IBUS_braille_dots_6">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_67"
+              value="16787552"
+              c:type="IBUS_braille_dots_67">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_678"
+              value="16787680"
+              c:type="IBUS_braille_dots_678">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_68"
+              value="16787616"
+              c:type="IBUS_braille_dots_68">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_7"
+              value="16787520"
+              c:type="IBUS_braille_dots_7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_78"
+              value="16787648"
+              c:type="IBUS_braille_dots_78">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="braille_dots_8"
+              value="16787584"
+              c:type="IBUS_braille_dots_8">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="breve" value="418" c:type="IBUS_breve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="brokenbar" value="166" c:type="IBUS_brokenbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="c" value="99" c:type="IBUS_c">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cabovedot" value="741" c:type="IBUS_cabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cacute" value="486" c:type="IBUS_cacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="careof" value="2744" c:type="IBUS_careof">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="caret" value="2812" c:type="IBUS_caret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="caron" value="439" c:type="IBUS_caron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ccaron" value="488" c:type="IBUS_ccaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ccedilla" value="231" c:type="IBUS_ccedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ccircumflex" value="742" c:type="IBUS_ccircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cedilla" value="184" c:type="IBUS_cedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cent" value="162" c:type="IBUS_cent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="checkerboard" value="2529" c:type="IBUS_checkerboard">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="checkmark" value="2803" c:type="IBUS_checkmark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="circle" value="3023" c:type="IBUS_circle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="club" value="2796" c:type="IBUS_club">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="colon" value="58" c:type="IBUS_colon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="comma" value="44" c:type="IBUS_comma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="containsas" value="16785931" c:type="IBUS_containsas">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="copyright" value="169" c:type="IBUS_copyright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cr" value="2532" c:type="IBUS_cr">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="crossinglines" value="2542" c:type="IBUS_crossinglines">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cuberoot" value="16785947" c:type="IBUS_cuberoot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="currency" value="164" c:type="IBUS_currency">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="cursor" value="2815" c:type="IBUS_cursor">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="d" value="100" c:type="IBUS_d">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dabovedot" value="16784907" c:type="IBUS_dabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dagger" value="2801" c:type="IBUS_dagger">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dcaron" value="495" c:type="IBUS_dcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_abovecomma"
+              value="65124"
+              c:type="IBUS_dead_abovecomma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_abovedot" value="65110" c:type="IBUS_dead_abovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_abovereversedcomma"
+              value="65125"
+              c:type="IBUS_dead_abovereversedcomma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_abovering" value="65112" c:type="IBUS_dead_abovering">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_acute" value="65105" c:type="IBUS_dead_acute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowbreve"
+              value="65131"
+              c:type="IBUS_dead_belowbreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowcircumflex"
+              value="65129"
+              c:type="IBUS_dead_belowcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowdiaeresis"
+              value="65132"
+              c:type="IBUS_dead_belowdiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowdot" value="65120" c:type="IBUS_dead_belowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowmacron"
+              value="65128"
+              c:type="IBUS_dead_belowmacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowring" value="65127" c:type="IBUS_dead_belowring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_belowtilde"
+              value="65130"
+              c:type="IBUS_dead_belowtilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_breve" value="65109" c:type="IBUS_dead_breve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_caron" value="65114" c:type="IBUS_dead_caron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_cedilla" value="65115" c:type="IBUS_dead_cedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_circumflex"
+              value="65106"
+              c:type="IBUS_dead_circumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_dasia" value="65125" c:type="IBUS_dead_dasia">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_diaeresis" value="65111" c:type="IBUS_dead_diaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_doubleacute"
+              value="65113"
+              c:type="IBUS_dead_doubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_grave" value="65104" c:type="IBUS_dead_grave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_hook" value="65121" c:type="IBUS_dead_hook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_horn" value="65122" c:type="IBUS_dead_horn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_iota" value="65117" c:type="IBUS_dead_iota">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_macron" value="65108" c:type="IBUS_dead_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_ogonek" value="65116" c:type="IBUS_dead_ogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_perispomeni"
+              value="65107"
+              c:type="IBUS_dead_perispomeni">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_psili" value="65124" c:type="IBUS_dead_psili">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_semivoiced_sound"
+              value="65119"
+              c:type="IBUS_dead_semivoiced_sound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_stroke" value="65123" c:type="IBUS_dead_stroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_tilde" value="65107" c:type="IBUS_dead_tilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dead_voiced_sound"
+              value="65118"
+              c:type="IBUS_dead_voiced_sound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="decimalpoint" value="2749" c:type="IBUS_decimalpoint">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="degree" value="176" c:type="IBUS_degree">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="diaeresis" value="168" c:type="IBUS_diaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="diamond" value="2797" c:type="IBUS_diamond">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="digitspace" value="2725" c:type="IBUS_digitspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dintegral" value="16785964" c:type="IBUS_dintegral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="division" value="247" c:type="IBUS_division">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dollar" value="36" c:type="IBUS_dollar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="doubbaselinedot"
+              value="2735"
+              c:type="IBUS_doubbaselinedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="doubleacute" value="445" c:type="IBUS_doubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="doubledagger" value="2802" c:type="IBUS_doubledagger">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="doublelowquotemark"
+              value="2814"
+              c:type="IBUS_doublelowquotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downarrow" value="2302" c:type="IBUS_downarrow">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downcaret" value="2984" c:type="IBUS_downcaret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downshoe" value="3030" c:type="IBUS_downshoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downstile" value="3012" c:type="IBUS_downstile">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="downtack" value="3010" c:type="IBUS_downtack">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="dstroke" value="496" c:type="IBUS_dstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="e" value="101" c:type="IBUS_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eabovedot" value="1004" c:type="IBUS_eabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eacute" value="233" c:type="IBUS_eacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ebelowdot" value="16785081" c:type="IBUS_ebelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecaron" value="492" c:type="IBUS_ecaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflex" value="234" c:type="IBUS_ecircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflexacute"
+              value="16785087"
+              c:type="IBUS_ecircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflexbelowdot"
+              value="16785095"
+              c:type="IBUS_ecircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflexgrave"
+              value="16785089"
+              c:type="IBUS_ecircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflexhook"
+              value="16785091"
+              c:type="IBUS_ecircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ecircumflextilde"
+              value="16785093"
+              c:type="IBUS_ecircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ediaeresis" value="235" c:type="IBUS_ediaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="egrave" value="232" c:type="IBUS_egrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ehook" value="16785083" c:type="IBUS_ehook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eightsubscript"
+              value="16785544"
+              c:type="IBUS_eightsubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eightsuperior"
+              value="16785528"
+              c:type="IBUS_eightsuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="elementof" value="16785928" c:type="IBUS_elementof">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ellipsis" value="2734" c:type="IBUS_ellipsis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="em3space" value="2723" c:type="IBUS_em3space">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="em4space" value="2724" c:type="IBUS_em4space">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emacron" value="954" c:type="IBUS_emacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emdash" value="2729" c:type="IBUS_emdash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emfilledcircle" value="2782" c:type="IBUS_emfilledcircle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emfilledrect" value="2783" c:type="IBUS_emfilledrect">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emopencircle" value="2766" c:type="IBUS_emopencircle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emopenrectangle"
+              value="2767"
+              c:type="IBUS_emopenrectangle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emptyset" value="16785925" c:type="IBUS_emptyset">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="emspace" value="2721" c:type="IBUS_emspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="endash" value="2730" c:type="IBUS_endash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enfilledcircbullet"
+              value="2790"
+              c:type="IBUS_enfilledcircbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enfilledsqbullet"
+              value="2791"
+              c:type="IBUS_enfilledsqbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eng" value="959" c:type="IBUS_eng">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enopencircbullet"
+              value="2784"
+              c:type="IBUS_enopencircbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enopensquarebullet"
+              value="2785"
+              c:type="IBUS_enopensquarebullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="enspace" value="2722" c:type="IBUS_enspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="eogonek" value="490" c:type="IBUS_eogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="equal" value="61" c:type="IBUS_equal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="error_quark"
+              c:identifier="ibus_error_quark"
+              moved-to="Error.quark">
+      <return-value transfer-ownership="none">
+        <type name="GLib.Quark" c:type="GQuark"/>
+      </return-value>
+    </function>
+    <constant name="eth" value="240" c:type="IBUS_eth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="etilde" value="16785085" c:type="IBUS_etilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="exclam" value="33" c:type="IBUS_exclam">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="exclamdown" value="161" c:type="IBUS_exclamdown">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="f" value="102" c:type="IBUS_f">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fabovedot" value="16784927" c:type="IBUS_fabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="femalesymbol" value="2808" c:type="IBUS_femalesymbol">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ff" value="2531" c:type="IBUS_ff">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="figdash" value="2747" c:type="IBUS_figdash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledlefttribullet"
+              value="2780"
+              c:type="IBUS_filledlefttribullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledrectbullet"
+              value="2779"
+              c:type="IBUS_filledrectbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledrighttribullet"
+              value="2781"
+              c:type="IBUS_filledrighttribullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledtribulletdown"
+              value="2793"
+              c:type="IBUS_filledtribulletdown">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="filledtribulletup"
+              value="2792"
+              c:type="IBUS_filledtribulletup">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fiveeighths" value="2757" c:type="IBUS_fiveeighths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fivesixths" value="2743" c:type="IBUS_fivesixths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fivesubscript"
+              value="16785541"
+              c:type="IBUS_fivesubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fivesuperior" value="16785525" c:type="IBUS_fivesuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fourfifths" value="2741" c:type="IBUS_fourfifths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="foursubscript"
+              value="16785540"
+              c:type="IBUS_foursubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="foursuperior" value="16785524" c:type="IBUS_foursuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="fourthroot" value="16785948" c:type="IBUS_fourthroot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="free_strv"
+              c:identifier="ibus_free_strv"
+              deprecated="This function has been deprecated and should not be used in newly written code.">
+      <doc xml:whitespace="preserve">Free a list of strings.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="strv" transfer-ownership="none">
+          <doc xml:whitespace="preserve">List of strings.</doc>
+          <type name="utf8" c:type="gchar**"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="function" value="2294" c:type="IBUS_function">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="g" value="103" c:type="IBUS_g">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gabovedot" value="757" c:type="IBUS_gabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gbreve" value="699" c:type="IBUS_gbreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gcaron" value="16777703" c:type="IBUS_gcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gcedilla" value="955" c:type="IBUS_gcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="gcircumflex" value="760" c:type="IBUS_gcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="get_address" c:identifier="ibus_get_address">
+      <doc xml:whitespace="preserve">Return the D-Bus address of IBus.
+It will find the address from following source:
+&lt;orderedlist&gt;
+   &lt;listitem&gt;&lt;para&gt;Environment variable IBUS_ADDRESS&lt;/para&gt;&lt;/listitem&gt;
+   &lt;listitem&gt;&lt;para&gt;Socket file under ~/.config/ibus/bus/&lt;/para&gt;&lt;/listitem&gt;
+&lt;/orderedlist&gt;
+
+See also: ibus_write_address().</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">D-Bus address of IBus. %NULL for not found.</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_daemon_uid"
+              c:identifier="ibus_get_daemon_uid"
+              deprecated="This function has been deprecated and should not be used in newly written code.">
+      <doc xml:whitespace="preserve">Get UID of ibus-daemon.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">UID of ibus-daemon; or 0 if UID is not available.</doc>
+        <type name="glong" c:type="glong"/>
+      </return-value>
+    </function>
+    <function name="get_language_name" c:identifier="ibus_get_language_name">
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">language name</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="_locale" transfer-ownership="none">
+          <doc xml:whitespace="preserve">A const locale name.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="get_local_machine_id"
+              c:identifier="ibus_get_local_machine_id">
+      <doc xml:whitespace="preserve">Obtains the machine UUID of the machine this process is running on.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">A newly allocated string that shows the UUID of the machine.</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_socket_path" c:identifier="ibus_get_socket_path">
+      <doc xml:whitespace="preserve">Get the path of socket file.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">A newly allocated string that stores the path of socket file.</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+    </function>
+    <function name="get_timeout" c:identifier="ibus_get_timeout">
+      <doc xml:whitespace="preserve">Get the GDBus timeout in milliseconds. The timeout is for clients (e.g. im-ibus.so), not for ibus-daemon.
+Note that the timeout for ibus-daemon could be set by --timeout command line option of the daemon.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">A GDBus timeout in milliseconds. -1 when default timeout for GDBus should be used.</doc>
+        <type name="gint" c:type="gint"/>
+      </return-value>
+    </function>
+    <function name="get_user_name" c:identifier="ibus_get_user_name">
+      <doc xml:whitespace="preserve">Get the current user name.
+It is determined by:
+&lt;orderedlist&gt;
+   &lt;listitem&gt;&lt;para&gt;getlogin()&lt;/para&gt;&lt;/listitem&gt;
+   &lt;listitem&gt;&lt;para&gt;Environment variable SUDO_USER&lt;/para&gt;&lt;/listitem&gt;
+   &lt;listitem&gt;&lt;para&gt;Environment variable USERHELPER_UID&lt;/para&gt;&lt;/listitem&gt;
+   &lt;listitem&gt;&lt;para&gt;Environment variable USERNAME&lt;/para&gt;&lt;/listitem&gt;
+   &lt;listitem&gt;&lt;para&gt;Environment variable LOGNAME&lt;/para&gt;&lt;/listitem&gt;
+   &lt;listitem&gt;&lt;para&gt;Environment variable USER&lt;/para&gt;&lt;/listitem&gt;
+   &lt;listitem&gt;&lt;para&gt;Environment variable LNAME&lt;/para&gt;&lt;/listitem&gt;
+&lt;/orderedlist&gt;</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">A newly allocated string that stores current user name.</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+    </function>
+    <constant name="grave" value="96" c:type="IBUS_grave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="greater" value="62" c:type="IBUS_greater">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="greaterthanequal"
+              value="2238"
+              c:type="IBUS_greaterthanequal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="guillemotleft" value="171" c:type="IBUS_guillemotleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="guillemotright" value="187" c:type="IBUS_guillemotright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="h" value="104" c:type="IBUS_h">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hairspace" value="2728" c:type="IBUS_hairspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hcircumflex" value="694" c:type="IBUS_hcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="heart" value="2798" c:type="IBUS_heart">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_aleph" value="3296" c:type="IBUS_hebrew_aleph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_ayin" value="3314" c:type="IBUS_hebrew_ayin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_bet" value="3297" c:type="IBUS_hebrew_bet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_beth" value="3297" c:type="IBUS_hebrew_beth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_chet" value="3303" c:type="IBUS_hebrew_chet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_dalet" value="3299" c:type="IBUS_hebrew_dalet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_daleth" value="3299" c:type="IBUS_hebrew_daleth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_doublelowline"
+              value="3295"
+              c:type="IBUS_hebrew_doublelowline">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalkaph"
+              value="3306"
+              c:type="IBUS_hebrew_finalkaph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalmem"
+              value="3309"
+              c:type="IBUS_hebrew_finalmem">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalnun"
+              value="3311"
+              c:type="IBUS_hebrew_finalnun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalpe" value="3315" c:type="IBUS_hebrew_finalpe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalzade"
+              value="3317"
+              c:type="IBUS_hebrew_finalzade">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_finalzadi"
+              value="3317"
+              c:type="IBUS_hebrew_finalzadi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_gimel" value="3298" c:type="IBUS_hebrew_gimel">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_gimmel" value="3298" c:type="IBUS_hebrew_gimmel">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_he" value="3300" c:type="IBUS_hebrew_he">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_het" value="3303" c:type="IBUS_hebrew_het">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_kaph" value="3307" c:type="IBUS_hebrew_kaph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_kuf" value="3319" c:type="IBUS_hebrew_kuf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_lamed" value="3308" c:type="IBUS_hebrew_lamed">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_mem" value="3310" c:type="IBUS_hebrew_mem">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_nun" value="3312" c:type="IBUS_hebrew_nun">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_pe" value="3316" c:type="IBUS_hebrew_pe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_qoph" value="3319" c:type="IBUS_hebrew_qoph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_resh" value="3320" c:type="IBUS_hebrew_resh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_samech" value="3313" c:type="IBUS_hebrew_samech">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_samekh" value="3313" c:type="IBUS_hebrew_samekh">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_shin" value="3321" c:type="IBUS_hebrew_shin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_taf" value="3322" c:type="IBUS_hebrew_taf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_taw" value="3322" c:type="IBUS_hebrew_taw">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_tet" value="3304" c:type="IBUS_hebrew_tet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_teth" value="3304" c:type="IBUS_hebrew_teth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_waw" value="3301" c:type="IBUS_hebrew_waw">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_yod" value="3305" c:type="IBUS_hebrew_yod">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_zade" value="3318" c:type="IBUS_hebrew_zade">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_zadi" value="3318" c:type="IBUS_hebrew_zadi">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_zain" value="3302" c:type="IBUS_hebrew_zain">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hebrew_zayin" value="3302" c:type="IBUS_hebrew_zayin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hexagram" value="2778" c:type="IBUS_hexagram">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizconnector" value="2211" c:type="IBUS_horizconnector">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan1" value="2543" c:type="IBUS_horizlinescan1">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan3" value="2544" c:type="IBUS_horizlinescan3">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan5" value="2545" c:type="IBUS_horizlinescan5">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan7" value="2546" c:type="IBUS_horizlinescan7">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="horizlinescan9" value="2547" c:type="IBUS_horizlinescan9">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hstroke" value="689" c:type="IBUS_hstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ht" value="2530" c:type="IBUS_ht">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="hyphen" value="173" c:type="IBUS_hyphen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="i" value="105" c:type="IBUS_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="iacute" value="237" c:type="IBUS_iacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ibelowdot" value="16785099" c:type="IBUS_ibelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ibreve" value="16777517" c:type="IBUS_ibreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="icircumflex" value="238" c:type="IBUS_icircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="identical" value="2255" c:type="IBUS_identical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="idiaeresis" value="239" c:type="IBUS_idiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="idotless" value="697" c:type="IBUS_idotless">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ifonlyif" value="2253" c:type="IBUS_ifonlyif">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="igrave" value="236" c:type="IBUS_igrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ihook" value="16785097" c:type="IBUS_ihook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="imacron" value="1007" c:type="IBUS_imacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="implies" value="2254" c:type="IBUS_implies">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="includedin" value="2266" c:type="IBUS_includedin">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="includes" value="2267" c:type="IBUS_includes">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="infinity" value="2242" c:type="IBUS_infinity">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="init" c:identifier="ibus_init">
+      <doc xml:whitespace="preserve">Initialize the ibus types.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <constant name="integral" value="2239" c:type="IBUS_integral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="intersection" value="2268" c:type="IBUS_intersection">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="iogonek" value="999" c:type="IBUS_iogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="itilde" value="949" c:type="IBUS_itilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="j" value="106" c:type="IBUS_j">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="jcircumflex" value="700" c:type="IBUS_jcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="jot" value="3018" c:type="IBUS_jot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="k" value="107" c:type="IBUS_k">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_A" value="1201" c:type="IBUS_kana_A">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_CHI" value="1217" c:type="IBUS_kana_CHI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_E" value="1204" c:type="IBUS_kana_E">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_FU" value="1228" c:type="IBUS_kana_FU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HA" value="1226" c:type="IBUS_kana_HA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HE" value="1229" c:type="IBUS_kana_HE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HI" value="1227" c:type="IBUS_kana_HI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HO" value="1230" c:type="IBUS_kana_HO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_HU" value="1228" c:type="IBUS_kana_HU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_I" value="1202" c:type="IBUS_kana_I">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KA" value="1206" c:type="IBUS_kana_KA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KE" value="1209" c:type="IBUS_kana_KE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KI" value="1207" c:type="IBUS_kana_KI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KO" value="1210" c:type="IBUS_kana_KO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_KU" value="1208" c:type="IBUS_kana_KU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_MA" value="1231" c:type="IBUS_kana_MA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_ME" value="1234" c:type="IBUS_kana_ME">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_MI" value="1232" c:type="IBUS_kana_MI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_MO" value="1235" c:type="IBUS_kana_MO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_MU" value="1233" c:type="IBUS_kana_MU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_N" value="1245" c:type="IBUS_kana_N">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NA" value="1221" c:type="IBUS_kana_NA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NE" value="1224" c:type="IBUS_kana_NE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NI" value="1222" c:type="IBUS_kana_NI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NO" value="1225" c:type="IBUS_kana_NO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_NU" value="1223" c:type="IBUS_kana_NU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_O" value="1205" c:type="IBUS_kana_O">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RA" value="1239" c:type="IBUS_kana_RA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RE" value="1242" c:type="IBUS_kana_RE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RI" value="1240" c:type="IBUS_kana_RI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RO" value="1243" c:type="IBUS_kana_RO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_RU" value="1241" c:type="IBUS_kana_RU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SA" value="1211" c:type="IBUS_kana_SA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SE" value="1214" c:type="IBUS_kana_SE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SHI" value="1212" c:type="IBUS_kana_SHI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SO" value="1215" c:type="IBUS_kana_SO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_SU" value="1213" c:type="IBUS_kana_SU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TA" value="1216" c:type="IBUS_kana_TA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TE" value="1219" c:type="IBUS_kana_TE">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TI" value="1217" c:type="IBUS_kana_TI">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TO" value="1220" c:type="IBUS_kana_TO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TSU" value="1218" c:type="IBUS_kana_TSU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_TU" value="1218" c:type="IBUS_kana_TU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_U" value="1203" c:type="IBUS_kana_U">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_WA" value="1244" c:type="IBUS_kana_WA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_WO" value="1190" c:type="IBUS_kana_WO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_YA" value="1236" c:type="IBUS_kana_YA">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_YO" value="1238" c:type="IBUS_kana_YO">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_YU" value="1237" c:type="IBUS_kana_YU">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_a" value="1191" c:type="IBUS_kana_a">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_closingbracket"
+              value="1187"
+              c:type="IBUS_kana_closingbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_comma" value="1188" c:type="IBUS_kana_comma">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_conjunctive"
+              value="1189"
+              c:type="IBUS_kana_conjunctive">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_e" value="1194" c:type="IBUS_kana_e">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_fullstop" value="1185" c:type="IBUS_kana_fullstop">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_i" value="1192" c:type="IBUS_kana_i">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_middledot" value="1189" c:type="IBUS_kana_middledot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_o" value="1195" c:type="IBUS_kana_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_openingbracket"
+              value="1186"
+              c:type="IBUS_kana_openingbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_switch" value="65406" c:type="IBUS_kana_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_tsu" value="1199" c:type="IBUS_kana_tsu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_tu" value="1199" c:type="IBUS_kana_tu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_u" value="1193" c:type="IBUS_kana_u">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_ya" value="1196" c:type="IBUS_kana_ya">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_yo" value="1198" c:type="IBUS_kana_yo">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kana_yu" value="1197" c:type="IBUS_kana_yu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kappa" value="930" c:type="IBUS_kappa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="kcedilla" value="1011" c:type="IBUS_kcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="key_event_from_string"
+              c:identifier="ibus_key_event_from_string">
+      <doc xml:whitespace="preserve">Parse key event string and return key symbol and modifiers.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">TRUE for succeed; FALSE if failed.</doc>
+        <type name="gboolean" c:type="gboolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="string" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Key event string.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+        <parameter name="keyval" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Variable that hold key symbol result.</doc>
+          <type name="guint" c:type="guint*"/>
+        </parameter>
+        <parameter name="modifiers" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Variable that hold modifiers result.</doc>
+          <type name="guint" c:type="guint*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="key_event_to_string"
+              c:identifier="ibus_key_event_to_string">
+      <doc xml:whitespace="preserve">Return the name of a key symbol and modifiers.
+
+For example, if press ctrl, shift, and enter, then this function returns:
+Shift+Control+enter.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">The name of a key symbol and modifier.</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="keyval" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Key symbol.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+        <parameter name="modifiers" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Modifiers such as Ctrl or Shift.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="keyval_from_name" c:identifier="ibus_keyval_from_name">
+      <doc xml:whitespace="preserve">Return the key symbol that associate with the key name.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">Corresponding key symbol.</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="keyval_name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Key name in #gdk_keys_by_name.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="keyval_name" c:identifier="ibus_keyval_name">
+      <doc xml:whitespace="preserve">Return the name of a key symbol.
+
+Note that the returned string is used internally, so don't free it.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">Corresponding key name. %NULL if no such key symbol.</doc>
+        <type name="utf8" c:type="const gchar*"/>
+      </return-value>
+      <parameters>
+        <parameter name="keyval" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Key symbol.</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="keyval_to_unicode" c:identifier="ibus_keyval_to_unicode">
+      <doc xml:whitespace="preserve">Convert from an IBus key symbol to the corresponding ISO10646 (Unicode)
+character.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the corresponding unicode character, or 0 if there is no corresponding character.</doc>
+        <type name="gunichar" c:type="gunichar"/>
+      </return-value>
+      <parameters>
+        <parameter name="keyval" transfer-ownership="none">
+          <doc xml:whitespace="preserve">an IBus key symbol</doc>
+          <type name="guint" c:type="guint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="kra" value="930" c:type="IBUS_kra">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="l" value="108" c:type="IBUS_l">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lacute" value="485" c:type="IBUS_lacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="latincross" value="2777" c:type="IBUS_latincross">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lbelowdot" value="16784951" c:type="IBUS_lbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lcaron" value="437" c:type="IBUS_lcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lcedilla" value="950" c:type="IBUS_lcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftanglebracket"
+              value="2748"
+              c:type="IBUS_leftanglebracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftarrow" value="2299" c:type="IBUS_leftarrow">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftcaret" value="2979" c:type="IBUS_leftcaret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftdoublequotemark"
+              value="2770"
+              c:type="IBUS_leftdoublequotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftmiddlecurlybrace"
+              value="2223"
+              c:type="IBUS_leftmiddlecurlybrace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftopentriangle"
+              value="2764"
+              c:type="IBUS_leftopentriangle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftpointer" value="2794" c:type="IBUS_leftpointer">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftradical" value="2209" c:type="IBUS_leftradical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftshoe" value="3034" c:type="IBUS_leftshoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftsinglequotemark"
+              value="2768"
+              c:type="IBUS_leftsinglequotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="leftt" value="2548" c:type="IBUS_leftt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lefttack" value="3036" c:type="IBUS_lefttack">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="less" value="60" c:type="IBUS_less">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lessthanequal" value="2236" c:type="IBUS_lessthanequal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lf" value="2533" c:type="IBUS_lf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="logicaland" value="2270" c:type="IBUS_logicaland">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="logicalor" value="2271" c:type="IBUS_logicalor">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lowleftcorner" value="2541" c:type="IBUS_lowleftcorner">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lowrightcorner" value="2538" c:type="IBUS_lowrightcorner">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="lstroke" value="435" c:type="IBUS_lstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="m" value="109" c:type="IBUS_m">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="mabovedot" value="16784961" c:type="IBUS_mabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="macron" value="175" c:type="IBUS_macron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="main" c:identifier="ibus_main">
+      <doc xml:whitespace="preserve">Runs an IBus main loop until ibus_quit() is called in the loop.
+
+See also: ibus_quit().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <constant name="malesymbol" value="2807" c:type="IBUS_malesymbol">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="maltesecross" value="2800" c:type="IBUS_maltesecross">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="marker" value="2751" c:type="IBUS_marker">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="masculine" value="186" c:type="IBUS_masculine">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="minus" value="45" c:type="IBUS_minus">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="minutes" value="2774" c:type="IBUS_minutes">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="mu" value="181" c:type="IBUS_mu">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="multiply" value="215" c:type="IBUS_multiply">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="musicalflat" value="2806" c:type="IBUS_musicalflat">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="musicalsharp" value="2805" c:type="IBUS_musicalsharp">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="n" value="110" c:type="IBUS_n">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="nabla" value="2245" c:type="IBUS_nabla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="nacute" value="497" c:type="IBUS_nacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ncaron" value="498" c:type="IBUS_ncaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ncedilla" value="1009" c:type="IBUS_ncedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ninesubscript"
+              value="16785545"
+              c:type="IBUS_ninesubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ninesuperior" value="16785529" c:type="IBUS_ninesuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="nl" value="2536" c:type="IBUS_nl">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="nobreakspace" value="160" c:type="IBUS_nobreakspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notapproxeq" value="16785991" c:type="IBUS_notapproxeq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notelementof" value="16785929" c:type="IBUS_notelementof">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notequal" value="2237" c:type="IBUS_notequal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notidentical" value="16786018" c:type="IBUS_notidentical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="notsign" value="172" c:type="IBUS_notsign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ntilde" value="241" c:type="IBUS_ntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="numbersign" value="35" c:type="IBUS_numbersign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="numerosign" value="1712" c:type="IBUS_numerosign">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="o" value="111" c:type="IBUS_o">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="oacute" value="243" c:type="IBUS_oacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="obarred" value="16777845" c:type="IBUS_obarred">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="obelowdot" value="16785101" c:type="IBUS_obelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocaron" value="16777682" c:type="IBUS_ocaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflex" value="244" c:type="IBUS_ocircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflexacute"
+              value="16785105"
+              c:type="IBUS_ocircumflexacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflexbelowdot"
+              value="16785113"
+              c:type="IBUS_ocircumflexbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflexgrave"
+              value="16785107"
+              c:type="IBUS_ocircumflexgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflexhook"
+              value="16785109"
+              c:type="IBUS_ocircumflexhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ocircumflextilde"
+              value="16785111"
+              c:type="IBUS_ocircumflextilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="odiaeresis" value="246" c:type="IBUS_odiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="odoubleacute" value="501" c:type="IBUS_odoubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="oe" value="5053" c:type="IBUS_oe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ogonek" value="434" c:type="IBUS_ogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ograve" value="242" c:type="IBUS_ograve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohook" value="16785103" c:type="IBUS_ohook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohorn" value="16777633" c:type="IBUS_ohorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohornacute" value="16785115" c:type="IBUS_ohornacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohornbelowdot"
+              value="16785123"
+              c:type="IBUS_ohornbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohorngrave" value="16785117" c:type="IBUS_ohorngrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohornhook" value="16785119" c:type="IBUS_ohornhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ohorntilde" value="16785121" c:type="IBUS_ohorntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="omacron" value="1010" c:type="IBUS_omacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="oneeighth" value="2755" c:type="IBUS_oneeighth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onefifth" value="2738" c:type="IBUS_onefifth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onehalf" value="189" c:type="IBUS_onehalf">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onequarter" value="188" c:type="IBUS_onequarter">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onesixth" value="2742" c:type="IBUS_onesixth">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onesubscript" value="16785537" c:type="IBUS_onesubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onesuperior" value="185" c:type="IBUS_onesuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="onethird" value="2736" c:type="IBUS_onethird">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ooblique" value="248" c:type="IBUS_ooblique">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="openrectbullet" value="2786" c:type="IBUS_openrectbullet">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="openstar" value="2789" c:type="IBUS_openstar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="opentribulletdown"
+              value="2788"
+              c:type="IBUS_opentribulletdown">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="opentribulletup"
+              value="2787"
+              c:type="IBUS_opentribulletup">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ordfeminine" value="170" c:type="IBUS_ordfeminine">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="oslash" value="248" c:type="IBUS_oslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="otilde" value="245" c:type="IBUS_otilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="overbar" value="3008" c:type="IBUS_overbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="overline" value="1150" c:type="IBUS_overline">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="p" value="112" c:type="IBUS_p">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="pabovedot" value="16784983" c:type="IBUS_pabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="paragraph" value="182" c:type="IBUS_paragraph">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="parenleft" value="40" c:type="IBUS_parenleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="parenright" value="41" c:type="IBUS_parenright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="partdifferential"
+              value="16785922"
+              c:type="IBUS_partdifferential">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="partialderivative"
+              value="2287"
+              c:type="IBUS_partialderivative">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="percent" value="37" c:type="IBUS_percent">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="period" value="46" c:type="IBUS_period">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="periodcentered" value="183" c:type="IBUS_periodcentered">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="phonographcopyright"
+              value="2811"
+              c:type="IBUS_phonographcopyright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="plus" value="43" c:type="IBUS_plus">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="plusminus" value="177" c:type="IBUS_plusminus">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="prescription" value="2772" c:type="IBUS_prescription">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="prolongedsound" value="1200" c:type="IBUS_prolongedsound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="punctspace" value="2726" c:type="IBUS_punctspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="q" value="113" c:type="IBUS_q">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="quad" value="3020" c:type="IBUS_quad">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="question" value="63" c:type="IBUS_question">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="questiondown" value="191" c:type="IBUS_questiondown">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="quit" c:identifier="ibus_quit">
+      <doc xml:whitespace="preserve">Stops an IBus from running.
+
+Any calls to ibus_quit() for the loop will return.
+See also: ibus_main().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <constant name="quotedbl" value="34" c:type="IBUS_quotedbl">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="quoteleft" value="96" c:type="IBUS_quoteleft">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="quoteright" value="39" c:type="IBUS_quoteright">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="r" value="114" c:type="IBUS_r">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="racute" value="480" c:type="IBUS_racute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="radical" value="2262" c:type="IBUS_radical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rcaron" value="504" c:type="IBUS_rcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rcedilla" value="947" c:type="IBUS_rcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="registered" value="174" c:type="IBUS_registered">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightanglebracket"
+              value="2750"
+              c:type="IBUS_rightanglebracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightarrow" value="2301" c:type="IBUS_rightarrow">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightcaret" value="2982" c:type="IBUS_rightcaret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightdoublequotemark"
+              value="2771"
+              c:type="IBUS_rightdoublequotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightmiddlecurlybrace"
+              value="2224"
+              c:type="IBUS_rightmiddlecurlybrace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightmiddlesummation"
+              value="2231"
+              c:type="IBUS_rightmiddlesummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightopentriangle"
+              value="2765"
+              c:type="IBUS_rightopentriangle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightpointer" value="2795" c:type="IBUS_rightpointer">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightshoe" value="3032" c:type="IBUS_rightshoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightsinglequotemark"
+              value="2769"
+              c:type="IBUS_rightsinglequotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="rightt" value="2549" c:type="IBUS_rightt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="righttack" value="3068" c:type="IBUS_righttack">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="s" value="115" c:type="IBUS_s">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sabovedot" value="16784993" c:type="IBUS_sabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sacute" value="438" c:type="IBUS_sacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="scaron" value="441" c:type="IBUS_scaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="scedilla" value="442" c:type="IBUS_scedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="schwa" value="16777817" c:type="IBUS_schwa">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="scircumflex" value="766" c:type="IBUS_scircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="script_switch" value="65406" c:type="IBUS_script_switch">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="seconds" value="2775" c:type="IBUS_seconds">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="section" value="167" c:type="IBUS_section">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="semicolon" value="59" c:type="IBUS_semicolon">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="semivoicedsound"
+              value="1247"
+              c:type="IBUS_semivoicedsound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="set_display" c:identifier="ibus_set_display">
+      <doc xml:whitespace="preserve">Set the display address.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="display" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Display address, as in DISPLAY environment for X.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="set_log_handler" c:identifier="ibus_set_log_handler">
+      <doc xml:whitespace="preserve">Sets GLIB's log handler to ours. Our log handler adds time info
+including hour, minute, second, and microsecond, like:
+
+(ibus-daemon:7088): IBUS-DEBUG: 18:06:45.822819: ibus-daemon started
+
+If @verbose is %TRUE, all levels of messages will be logged. Otherwise,
+DEBUG and WARNING messages will be ignored.  The function is used in
+ibus-daemon, but can be useful for IBus client programs as well for
+debugging. It's totally fine for not calling this function. If you
+don't set a custom GLIB log handler, the default GLIB log handler will
+be used.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="verbose" transfer-ownership="none">
+          <doc xml:whitespace="preserve">TRUE for verbose logging.</doc>
+          <type name="gboolean" c:type="gboolean"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="seveneighths" value="2758" c:type="IBUS_seveneighths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sevensubscript"
+              value="16785543"
+              c:type="IBUS_sevensubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sevensuperior"
+              value="16785527"
+              c:type="IBUS_sevensuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="signaturemark" value="2762" c:type="IBUS_signaturemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="signifblank" value="2732" c:type="IBUS_signifblank">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="similarequal" value="2249" c:type="IBUS_similarequal">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="singlelowquotemark"
+              value="2813"
+              c:type="IBUS_singlelowquotemark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sixsubscript" value="16785542" c:type="IBUS_sixsubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sixsuperior" value="16785526" c:type="IBUS_sixsuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="slash" value="47" c:type="IBUS_slash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="soliddiamond" value="2528" c:type="IBUS_soliddiamond">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="space" value="32" c:type="IBUS_space">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="squareroot" value="16785946" c:type="IBUS_squareroot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ssharp" value="223" c:type="IBUS_ssharp">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="sterling" value="163" c:type="IBUS_sterling">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="stricteq" value="16786019" c:type="IBUS_stricteq">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="t" value="116" c:type="IBUS_t">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="tabovedot" value="16785003" c:type="IBUS_tabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="tcaron" value="443" c:type="IBUS_tcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="tcedilla" value="510" c:type="IBUS_tcedilla">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="telephone" value="2809" c:type="IBUS_telephone">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="telephonerecorder"
+              value="2810"
+              c:type="IBUS_telephonerecorder">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="therefore" value="2240" c:type="IBUS_therefore">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="thinspace" value="2727" c:type="IBUS_thinspace">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="thorn" value="254" c:type="IBUS_thorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="threeeighths" value="2756" c:type="IBUS_threeeighths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="threefifths" value="2740" c:type="IBUS_threefifths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="threequarters" value="190" c:type="IBUS_threequarters">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="threesubscript"
+              value="16785539"
+              c:type="IBUS_threesubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="threesuperior" value="179" c:type="IBUS_threesuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="tintegral" value="16785965" c:type="IBUS_tintegral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topintegral" value="2212" c:type="IBUS_topintegral">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topleftparens" value="2219" c:type="IBUS_topleftparens">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topleftradical" value="2210" c:type="IBUS_topleftradical">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topleftsqbracket"
+              value="2215"
+              c:type="IBUS_topleftsqbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topleftsummation"
+              value="2225"
+              c:type="IBUS_topleftsummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="toprightparens" value="2221" c:type="IBUS_toprightparens">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="toprightsqbracket"
+              value="2217"
+              c:type="IBUS_toprightsqbracket">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="toprightsummation"
+              value="2229"
+              c:type="IBUS_toprightsummation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topt" value="2551" c:type="IBUS_topt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="topvertsummationconnector"
+              value="2227"
+              c:type="IBUS_topvertsummationconnector">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="trademark" value="2761" c:type="IBUS_trademark">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="trademarkincircle"
+              value="2763"
+              c:type="IBUS_trademarkincircle">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="tslash" value="956" c:type="IBUS_tslash">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="twofifths" value="2739" c:type="IBUS_twofifths">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="twosubscript" value="16785538" c:type="IBUS_twosubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="twosuperior" value="178" c:type="IBUS_twosuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="twothirds" value="2737" c:type="IBUS_twothirds">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="u" value="117" c:type="IBUS_u">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uacute" value="250" c:type="IBUS_uacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ubelowdot" value="16785125" c:type="IBUS_ubelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ubreve" value="765" c:type="IBUS_ubreve">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ucircumflex" value="251" c:type="IBUS_ucircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="udiaeresis" value="252" c:type="IBUS_udiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="udoubleacute" value="507" c:type="IBUS_udoubleacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ugrave" value="249" c:type="IBUS_ugrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhook" value="16785127" c:type="IBUS_uhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhorn" value="16777648" c:type="IBUS_uhorn">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhornacute" value="16785129" c:type="IBUS_uhornacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhornbelowdot"
+              value="16785137"
+              c:type="IBUS_uhornbelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhorngrave" value="16785131" c:type="IBUS_uhorngrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhornhook" value="16785133" c:type="IBUS_uhornhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uhorntilde" value="16785135" c:type="IBUS_uhorntilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="umacron" value="1022" c:type="IBUS_umacron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="underbar" value="3014" c:type="IBUS_underbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="underscore" value="95" c:type="IBUS_underscore">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="unicode_to_keyval" c:identifier="ibus_unicode_to_keyval">
+      <doc xml:whitespace="preserve">Convert from a ISO10646 character to a key symbol.</doc>
+      <return-value transfer-ownership="none">
+        <doc xml:whitespace="preserve">the corresponding IBus key symbol, if one exists. or, if there is no corresponding symbol, wc | 0x01000000</doc>
+        <type name="guint" c:type="guint"/>
+      </return-value>
+      <parameters>
+        <parameter name="wc" transfer-ownership="none">
+          <doc xml:whitespace="preserve">a ISO10646 encoded character</doc>
+          <type name="gunichar" c:type="gunichar"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="union" value="2269" c:type="IBUS_union">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="unset_log_handler" c:identifier="ibus_unset_log_handler">
+      <doc xml:whitespace="preserve">Remove the log handler which is set by ibus_set_log_handler.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+    </function>
+    <constant name="uogonek" value="1017" c:type="IBUS_uogonek">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uparrow" value="2300" c:type="IBUS_uparrow">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="upcaret" value="2985" c:type="IBUS_upcaret">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="upleftcorner" value="2540" c:type="IBUS_upleftcorner">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uprightcorner" value="2539" c:type="IBUS_uprightcorner">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="upshoe" value="3011" c:type="IBUS_upshoe">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="upstile" value="3027" c:type="IBUS_upstile">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uptack" value="3022" c:type="IBUS_uptack">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="uring" value="505" c:type="IBUS_uring">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="utilde" value="1021" c:type="IBUS_utilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="v" value="118" c:type="IBUS_v">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="variation" value="2241" c:type="IBUS_variation">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="vertbar" value="2552" c:type="IBUS_vertbar">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="vertconnector" value="2214" c:type="IBUS_vertconnector">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="voicedsound" value="1246" c:type="IBUS_voicedsound">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="vt" value="2537" c:type="IBUS_vt">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="w" value="119" c:type="IBUS_w">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="wacute" value="16785027" c:type="IBUS_wacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="wcircumflex" value="16777589" c:type="IBUS_wcircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="wdiaeresis" value="16785029" c:type="IBUS_wdiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="wgrave" value="16785025" c:type="IBUS_wgrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="write_address" c:identifier="ibus_write_address">
+      <doc xml:whitespace="preserve">Write D-Bus address to socket file.
+
+See also: ibus_get_address().</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="address" transfer-ownership="none">
+          <doc xml:whitespace="preserve">D-Bus address of IBus.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="x" value="120" c:type="IBUS_x">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="xabovedot" value="16785035" c:type="IBUS_xabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <function name="xml_free" c:identifier="ibus_xml_free" introspectable="0">
+      <doc xml:whitespace="preserve">Free an XML tree.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="node" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Root node of an XML tree.</doc>
+          <type c:type="XMLNode*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xml_output"
+              c:identifier="ibus_xml_output"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Output an XML tree to a GString.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="node" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Root node of an XML tree.</doc>
+          <type c:type="const XMLNode*"/>
+        </parameter>
+        <parameter name="output" transfer-ownership="none">
+          <doc xml:whitespace="preserve">GString which stores the output.</doc>
+          <type name="GLib.String" c:type="GString*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xml_parse_buffer"
+              c:identifier="ibus_xml_parse_buffer"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Parse a string buffer which contains an XML-formatted string,
+and return a corresponding XML tree.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">Root node of parsed XML tree.</doc>
+        <type c:type="XMLNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="buffer" transfer-ownership="none">
+          <doc xml:whitespace="preserve">Buffer to be parsed.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="xml_parse_file"
+              c:identifier="ibus_xml_parse_file"
+              introspectable="0">
+      <doc xml:whitespace="preserve">Parse an XML file and return a corresponding XML tree.</doc>
+      <return-value>
+        <doc xml:whitespace="preserve">Root node of parsed XML tree.</doc>
+        <type c:type="XMLNode*"/>
+      </return-value>
+      <parameters>
+        <parameter name="name" transfer-ownership="none">
+          <doc xml:whitespace="preserve">File name to be parsed.</doc>
+          <type name="utf8" c:type="const gchar*"/>
+        </parameter>
+      </parameters>
+    </function>
+    <constant name="y" value="121" c:type="IBUS_y">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="yacute" value="253" c:type="IBUS_yacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ybelowdot" value="16785141" c:type="IBUS_ybelowdot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ycircumflex" value="16777591" c:type="IBUS_ycircumflex">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ydiaeresis" value="255" c:type="IBUS_ydiaeresis">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="yen" value="165" c:type="IBUS_yen">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ygrave" value="16785139" c:type="IBUS_ygrave">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="yhook" value="16785143" c:type="IBUS_yhook">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="ytilde" value="16785145" c:type="IBUS_ytilde">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="z" value="122" c:type="IBUS_z">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zabovedot" value="447" c:type="IBUS_zabovedot">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zacute" value="444" c:type="IBUS_zacute">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zcaron" value="446" c:type="IBUS_zcaron">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zerosubscript"
+              value="16785536"
+              c:type="IBUS_zerosubscript">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zerosuperior" value="16785520" c:type="IBUS_zerosuperior">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <constant name="zstroke" value="16777654" c:type="IBUS_zstroke">
+      <type name="gint" c:type="gint"/>
+    </constant>
+  </namespace>
+</repository>
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644 (file)
index 0000000..8a64594
--- /dev/null
@@ -0,0 +1,1249 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2013 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-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
+# 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
+
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@HAVE_INTROSPECTION_TRUE@am__append_1 = IBus-1.0.gir
+@HAVE_INTROSPECTION_TRUE@am__append_2 = $(dist_gir_DATA) $(typelibs_DATA)
+subdir = src
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(srcdir)/ibusversion.h.in $(top_srcdir)/depcomp \
+       $(am__dist_gir_DATA_DIST) $(ibusinclude_HEADERS) \
+       $(noinst_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = ibusversion.h
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" \
+       "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(ibusincludedir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libibus_1_0_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am__objects_1 =
+am__objects_2 = ibusshare.lo ibusobject.lo ibusserializable.lo \
+       ibusproxy.lo ibusservice.lo ibusfactory.lo ibusengine.lo \
+       ibuserror.lo ibustext.lo ibuskeymap.lo ibusattribute.lo \
+       ibusattrlist.lo ibusproperty.lo ibusproplist.lo \
+       ibuslookuptable.lo ibusinputcontext.lo ibusconfig.lo \
+       ibusconfigservice.lo ibuspanelservice.lo ibusbus.lo \
+       ibuskeynames.lo ibuskeyuni.lo ibushotkey.lo ibusxml.lo \
+       ibusenginedesc.lo ibusobservedpath.lo ibuscomponent.lo \
+       ibusutil.lo ibusenginesimple.lo ibusregistry.lo \
+       $(am__objects_1)
+am_libibus_1_0_la_OBJECTS = ibusmarshalers.lo ibusenumtypes.lo \
+       $(am__objects_2) $(am__objects_1)
+libibus_1_0_la_OBJECTS = $(am_libibus_1_0_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libibus_1_0_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libibus_1_0_la_LDFLAGS) $(LDFLAGS) -o \
+       $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libibus_1_0_la_SOURCES)
+DIST_SOURCES = $(libibus_1_0_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__dist_gir_DATA_DIST = IBus-1.0.gir
+DATA = $(dist_gir_DATA) $(typelibs_DATA)
+HEADERS = $(ibusinclude_HEADERS) $(noinst_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = . tests
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+NULL = 
+@ENABLE_TESTS_TRUE@TESTS_DIR = tests
+SUBDIRS = . $(TESTS_DIR)
+
+# libibus = libibus-@IBUS_API_VERSION@.la
+libibus = libibus-1.0.la
+INTROSPECTION_SCANNER_ARGS = 
+INTROSPECTION_COMPILER_ARGS = \
+    --includedir=$(srcdir)    \
+    --includedir=.            \
+    $(NULL)
+
+INTROSPECTION_GIRS = $(am__append_1)
+CLEANFILES = $(am__append_2) $(BUILT_SOURCES) stamp-ibusmarshalers.h \
+       stamp-ibusenumtypes.h $(NULL)
+
+# C preprocessor flags
+AM_CPPFLAGS = \
+    -DG_LOG_DOMAIN=\"IBUS\"                             \
+    @GLIB2_CFLAGS@                                      \
+    @GOBJECT2_CFLAGS@                                   \
+    @GIO2_CFLAGS@                                       \
+    -DIBUS_CACHE_DIR=\""$(localstatedir)/cache/ibus"\"  \
+    -DIBUS_DATA_DIR=\"$(pkgdatadir)\"                   \
+    -DIBUS_DISABLE_DEPRECATION_WARNINGS                 \
+    -DIBUS_COMPILATION                                  \
+    -DISOCODES_PREFIX=\"$(ISOCODES_PREFIX)\"            \
+    $(NULL)
+
+
+# ibus library
+lib_LTLIBRARIES = $(libibus)
+libibus_1_0_la_LIBADD = \
+    @GLIB2_LIBS@            \
+    @GOBJECT2_LIBS@         \
+    @GIO2_LIBS@             \
+    $(NULL)
+
+libibus_1_0_la_LDFLAGS = \
+    -no-undefined                   \
+    -export-symbols-regex "ibus_.*" \
+    -version-info @LT_VERSION_INFO@ \
+    $(NULL)
+
+ibus_sources = \
+    ibusshare.c             \
+    ibusobject.c            \
+    ibusserializable.c      \
+    ibusproxy.c             \
+    ibusservice.c           \
+    ibusfactory.c           \
+    ibusengine.c            \
+    ibuserror.c             \
+    ibustext.c              \
+    ibuskeymap.c            \
+    ibusattribute.c         \
+    ibusattrlist.c          \
+    ibusproperty.c          \
+    ibusproplist.c          \
+    ibuslookuptable.c       \
+    ibusinputcontext.c      \
+    ibusconfig.c            \
+    ibusconfigservice.c     \
+    ibuspanelservice.c      \
+    ibusbus.c               \
+    ibuskeynames.c          \
+    ibuskeyuni.c            \
+    ibushotkey.c            \
+    ibusxml.c               \
+    ibusenginedesc.c        \
+    ibusobservedpath.c      \
+    ibuscomponent.c         \
+    ibusutil.c              \
+    ibusenginesimple.c      \
+    ibusregistry.c          \
+    $(NULL)
+
+libibus_1_0_la_SOURCES = \
+    ibusmarshalers.c        \
+    ibusenumtypes.c         \
+    $(ibus_sources)         \
+    $(NULL)
+
+ibus_marshalers_sources = \
+    ibusmarshalers.h        \
+    ibusmarshalers.c        \
+    $(NULL)
+
+ibus_enumtypes_sources = \
+    ibusenumtypes.h         \
+    ibusenumtypes.c         \
+    $(NULL)
+
+ibus_headers = \
+    ibus.h                  \
+    ibusshare.h             \
+    ibusdebug.h             \
+    ibusobject.h            \
+    ibusserializable.h      \
+    ibusproxy.h             \
+    ibusservice.h           \
+    ibusfactory.h           \
+    ibusengine.h            \
+    ibuserror.h             \
+    ibustext.h              \
+    ibuskeymap.h            \
+    ibusattribute.h         \
+    ibusattrlist.h          \
+    ibusproperty.h          \
+    ibusproplist.h          \
+    ibuslookuptable.h       \
+    ibusinputcontext.h      \
+    ibusconfig.h            \
+    ibusconfigservice.h     \
+    ibuspanelservice.h      \
+    ibuskeysyms.h           \
+    ibuskeysyms-compat.h    \
+    ibuskeys.h              \
+    ibustypes.h             \
+    ibusbus.h               \
+    ibushotkey.h            \
+    ibusxml.h               \
+    ibusenginedesc.h        \
+    ibusobservedpath.h      \
+    ibuscomponent.h         \
+    ibusutil.h              \
+    ibusenginesimple.h      \
+    ibusregistry.h          \
+    $(NULL)
+
+ibusincludedir = $(includedir)/ibus-@IBUS_API_VERSION@
+ibus_public_headers = \
+    $(ibus_headers)         \
+    ibusenumtypes.h         \
+    ibusversion.h           \
+    $(NULL)
+
+ibusinclude_HEADERS = \
+    $(ibus_public_headers)  \
+    $(NULL)
+
+ibus_privite_headers = \
+    ibusinternal.h           \
+    keyname-table.h          \
+    gtkimcontextsimpleseqs.h \
+    $(NULL)
+
+noinst_HEADERS = \
+    $(ibus_privite_headers) \
+    $(NULL)
+
+BUILT_SOURCES = \
+    $(ibus_marshalers_sources)  \
+    $(ibus_enumtypes_sources)   \
+    $(NULL)
+
+@HAVE_INTROSPECTION_TRUE@introspection_sources = \
+@HAVE_INTROSPECTION_TRUE@    $(ibus_headers)             \
+@HAVE_INTROSPECTION_TRUE@    $(ibus_sources)             \
+@HAVE_INTROSPECTION_TRUE@    $(NULL)
+
+@HAVE_INTROSPECTION_TRUE@built_introspection_sources = \
+@HAVE_INTROSPECTION_TRUE@    $(ibus_enumtypes_sources)   \
+@HAVE_INTROSPECTION_TRUE@    ibusversion.h               \
+@HAVE_INTROSPECTION_TRUE@    $(NULL)
+
+@HAVE_INTROSPECTION_TRUE@IBus_1_0_gir_SCANNERFLAGS = --pkg-export=ibus-1.0 $(IBUS_GIR_SCANNERFLAGS)
+@HAVE_INTROSPECTION_TRUE@IBus_1_0_gir_INCLUDES = GLib-2.0 GObject-2.0 Gio-2.0
+@HAVE_INTROSPECTION_TRUE@IBus_1_0_gir_LIBS = $(libibus)
+@HAVE_INTROSPECTION_TRUE@IBus_1_0_gir_FILES = \
+@HAVE_INTROSPECTION_TRUE@    $(addprefix $(srcdir)/,$(introspection_sources))            \
+@HAVE_INTROSPECTION_TRUE@    $(addprefix $(builddir)/,$(built_introspection_sources))    \
+@HAVE_INTROSPECTION_TRUE@    $(NULL)
+
+@HAVE_INTROSPECTION_TRUE@IBus_1_0_gir_CFLAGS = -DIBUS_COMPILATION -I$(srcdir) -I$(builddir)
+@HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
+@HAVE_INTROSPECTION_TRUE@dist_gir_DATA = $(INTROSPECTION_GIRS)
+@HAVE_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0
+@HAVE_INTROSPECTION_TRUE@typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+EXTRA_DIST = \
+    ibusversion.h.in            \
+    ibusmarshalers.list         \
+    ibusenumtypes.h.template    \
+    ibusenumtypes.c.template    \
+    $(NULL)
+
+DISTCLEANFILES = \
+    ibusversion.h               \
+    $(NULL)
+
+all: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu src/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+ibusversion.h: $(top_builddir)/config.status $(srcdir)/ibusversion.h.in
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+       @$(NORMAL_INSTALL)
+       @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+       list2=; for p in $$list; do \
+         if test -f $$p; then \
+           list2="$$list2 $$p"; \
+         else :; fi; \
+       done; \
+       test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+       }
+
+uninstall-libLTLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+       for p in $$list; do \
+         $(am__strip_dir) \
+         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+       done
+
+clean-libLTLIBRARIES:
+       -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+       @list='$(lib_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
+
+libibus-1.0.la: $(libibus_1_0_la_OBJECTS) $(libibus_1_0_la_DEPENDENCIES) $(EXTRA_libibus_1_0_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libibus_1_0_la_LINK) -rpath $(libdir) $(libibus_1_0_la_OBJECTS) $(libibus_1_0_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusattribute.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusattrlist.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusbus.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibuscomponent.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusconfig.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusconfigservice.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusengine.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusenginedesc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusenginesimple.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusenumtypes.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibuserror.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusfactory.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibushotkey.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusinputcontext.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibuskeymap.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibuskeynames.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibuskeyuni.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibuslookuptable.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusmarshalers.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusobject.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusobservedpath.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibuspanelservice.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusproperty.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusproplist.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusproxy.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusregistry.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusserializable.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusservice.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusshare.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibustext.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusutil.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibusxml.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-dist_girDATA: $(dist_gir_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(dist_gir_DATA)'; test -n "$(girdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(girdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \
+       done
+
+uninstall-dist_girDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(dist_gir_DATA)'; test -n "$(girdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
+install-typelibsDATA: $(typelibs_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(typelibsdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(typelibsdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(typelibsdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibsdir)" || exit $$?; \
+       done
+
+uninstall-typelibsDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
+install-ibusincludeHEADERS: $(ibusinclude_HEADERS)
+       @$(NORMAL_INSTALL)
+       @list='$(ibusinclude_HEADERS)'; test -n "$(ibusincludedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(ibusincludedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(ibusincludedir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(ibusincludedir)'"; \
+         $(INSTALL_HEADER) $$files "$(DESTDIR)$(ibusincludedir)" || exit $$?; \
+       done
+
+uninstall-ibusincludeHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(ibusinclude_HEADERS)'; test -n "$(ibusincludedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(ibusincludedir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(ibusincludedir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: $(BUILT_SOURCES)
+       $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-recursive
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-dist_girDATA install-ibusincludeHEADERS \
+       install-typelibsDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-dist_girDATA uninstall-ibusincludeHEADERS \
+       uninstall-libLTLIBRARIES uninstall-typelibsDATA
+
+.MAKE: $(am__recursive_targets) all check install install-am \
+       install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libLTLIBRARIES \
+       clean-libtool cscopelist-am ctags ctags-am distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am \
+       install-dist_girDATA install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am \
+       install-ibusincludeHEADERS install-info install-info-am \
+       install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip install-typelibsDATA \
+       installcheck installcheck-am installdirs installdirs-am \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+       uninstall-dist_girDATA uninstall-ibusincludeHEADERS \
+       uninstall-libLTLIBRARIES uninstall-typelibsDATA
+
+
+# gobject introspection
+-include $(INTROSPECTION_MAKEFILE)
+@HAVE_INTROSPECTION_TRUE@IBus-1.0.gir: $(libibus) Makefile
+
+# gen enum types
+ibusenumtypes.h: $(ibus_headers) ibusenumtypes.h.template
+       $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \
+       cd $(srcdir) && $(GLIB_MKENUMS) --template ibusenumtypes.h.template $(ibus_headers) | \
+               sed 's/i_bus_/ibus_/g' | \
+               sed 's/I_TYPE_BUS_/IBUS_TYPE_/g') > \
+       ibusenumtypes.h.tmp && mv ibusenumtypes.h.tmp ibusenumtypes.h
+
+ibusenumtypes.c: $(ibus_headers) ibusenumtypes.c.template
+       $(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \
+       cd $(srcdir) && $(GLIB_MKENUMS) --template ibusenumtypes.c.template $(ibus_headers) | \
+               sed 's/i_bus_/ibus_/g' | \
+               sed 's/I_TYPE_BUS_/IBUS_TYPE_/g') > \
+       ibusenumtypes.c.tmp && mv ibusenumtypes.c.tmp ibusenumtypes.c
+
+# gen marshal
+ibusmarshalers.h: ibusmarshalers.list
+       $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_ibus_marshal $(srcdir)/ibusmarshalers.list --header --internal > $@.tmp && \
+       mv $@.tmp $@
+
+ibusmarshalers.c: ibusmarshalers.h ibusmarshalers.list
+       $(AM_V_GEN) (echo "#include \"ibusmarshalers.h\""; \
+       $(GLIB_GENMARSHAL) --prefix=_ibus_marshal $(srcdir)/ibusmarshalers.list --body --internal) > $@.tmp && \
+       mv $@.tmp $@
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/ibusenumtypes.c b/src/ibusenumtypes.c
new file mode 100644 (file)
index 0000000..04bcb18
--- /dev/null
@@ -0,0 +1,290 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include "ibus.h"
+
+/* enumerations from "ibusobject.h" */
+GType
+ibus_object_flags_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GFlagsValue values[] = {
+            { IBUS_IN_DESTRUCTION, "IBUS_IN_DESTRUCTION", "in-destruction" },
+            { IBUS_DESTROYED, "IBUS_DESTROYED", "destroyed" },
+            { IBUS_RESERVED_1, "IBUS_RESERVED_1", "reserved-1" },
+            { IBUS_RESERVED_2, "IBUS_RESERVED_2", "reserved-2" },
+            { 0, NULL, NULL }
+        };
+        etype = g_flags_register_static (g_intern_static_string ("IBusObjectFlags"), values);
+    }
+    return etype;
+}
+
+/* enumerations from "ibusattribute.h" */
+GType
+ibus_attr_type_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { IBUS_ATTR_TYPE_UNDERLINE, "IBUS_ATTR_TYPE_UNDERLINE", "underline" },
+            { IBUS_ATTR_TYPE_FOREGROUND, "IBUS_ATTR_TYPE_FOREGROUND", "foreground" },
+            { IBUS_ATTR_TYPE_BACKGROUND, "IBUS_ATTR_TYPE_BACKGROUND", "background" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusAttrType"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_attr_underline_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { IBUS_ATTR_UNDERLINE_NONE, "IBUS_ATTR_UNDERLINE_NONE", "none" },
+            { IBUS_ATTR_UNDERLINE_SINGLE, "IBUS_ATTR_UNDERLINE_SINGLE", "single" },
+            { IBUS_ATTR_UNDERLINE_DOUBLE, "IBUS_ATTR_UNDERLINE_DOUBLE", "double" },
+            { IBUS_ATTR_UNDERLINE_LOW, "IBUS_ATTR_UNDERLINE_LOW", "low" },
+            { IBUS_ATTR_UNDERLINE_ERROR, "IBUS_ATTR_UNDERLINE_ERROR", "error" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusAttrUnderline"), values);
+    }
+    return etype;
+}
+
+/* enumerations from "ibusproperty.h" */
+GType
+ibus_prop_type_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { PROP_TYPE_NORMAL, "PROP_TYPE_NORMAL", "normal" },
+            { PROP_TYPE_TOGGLE, "PROP_TYPE_TOGGLE", "toggle" },
+            { PROP_TYPE_RADIO, "PROP_TYPE_RADIO", "radio" },
+            { PROP_TYPE_MENU, "PROP_TYPE_MENU", "menu" },
+            { PROP_TYPE_SEPARATOR, "PROP_TYPE_SEPARATOR", "separator" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusPropType"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_prop_state_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { PROP_STATE_UNCHECKED, "PROP_STATE_UNCHECKED", "unchecked" },
+            { PROP_STATE_CHECKED, "PROP_STATE_CHECKED", "checked" },
+            { PROP_STATE_INCONSISTENT, "PROP_STATE_INCONSISTENT", "inconsistent" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusPropState"), values);
+    }
+    return etype;
+}
+
+/* enumerations from "ibustypes.h" */
+GType
+ibus_modifier_type_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GFlagsValue values[] = {
+            { IBUS_SHIFT_MASK, "IBUS_SHIFT_MASK", "shift-mask" },
+            { IBUS_LOCK_MASK, "IBUS_LOCK_MASK", "lock-mask" },
+            { IBUS_CONTROL_MASK, "IBUS_CONTROL_MASK", "control-mask" },
+            { IBUS_MOD1_MASK, "IBUS_MOD1_MASK", "mod1-mask" },
+            { IBUS_MOD2_MASK, "IBUS_MOD2_MASK", "mod2-mask" },
+            { IBUS_MOD3_MASK, "IBUS_MOD3_MASK", "mod3-mask" },
+            { IBUS_MOD4_MASK, "IBUS_MOD4_MASK", "mod4-mask" },
+            { IBUS_MOD5_MASK, "IBUS_MOD5_MASK", "mod5-mask" },
+            { IBUS_BUTTON1_MASK, "IBUS_BUTTON1_MASK", "button1-mask" },
+            { IBUS_BUTTON2_MASK, "IBUS_BUTTON2_MASK", "button2-mask" },
+            { IBUS_BUTTON3_MASK, "IBUS_BUTTON3_MASK", "button3-mask" },
+            { IBUS_BUTTON4_MASK, "IBUS_BUTTON4_MASK", "button4-mask" },
+            { IBUS_BUTTON5_MASK, "IBUS_BUTTON5_MASK", "button5-mask" },
+            { IBUS_HANDLED_MASK, "IBUS_HANDLED_MASK", "handled-mask" },
+            { IBUS_FORWARD_MASK, "IBUS_FORWARD_MASK", "forward-mask" },
+            { IBUS_IGNORED_MASK, "IBUS_IGNORED_MASK", "ignored-mask" },
+            { IBUS_SUPER_MASK, "IBUS_SUPER_MASK", "super-mask" },
+            { IBUS_HYPER_MASK, "IBUS_HYPER_MASK", "hyper-mask" },
+            { IBUS_META_MASK, "IBUS_META_MASK", "meta-mask" },
+            { IBUS_RELEASE_MASK, "IBUS_RELEASE_MASK", "release-mask" },
+            { IBUS_MODIFIER_MASK, "IBUS_MODIFIER_MASK", "modifier-mask" },
+            { 0, NULL, NULL }
+        };
+        etype = g_flags_register_static (g_intern_static_string ("IBusModifierType"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_capabilite_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GFlagsValue values[] = {
+            { IBUS_CAP_PREEDIT_TEXT, "IBUS_CAP_PREEDIT_TEXT", "preedit-text" },
+            { IBUS_CAP_AUXILIARY_TEXT, "IBUS_CAP_AUXILIARY_TEXT", "auxiliary-text" },
+            { IBUS_CAP_LOOKUP_TABLE, "IBUS_CAP_LOOKUP_TABLE", "lookup-table" },
+            { IBUS_CAP_FOCUS, "IBUS_CAP_FOCUS", "focus" },
+            { IBUS_CAP_PROPERTY, "IBUS_CAP_PROPERTY", "property" },
+            { IBUS_CAP_SURROUNDING_TEXT, "IBUS_CAP_SURROUNDING_TEXT", "surrounding-text" },
+            { 0, NULL, NULL }
+        };
+        etype = g_flags_register_static (g_intern_static_string ("IBusCapabilite"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_preedit_focus_mode_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { IBUS_ENGINE_PREEDIT_CLEAR, "IBUS_ENGINE_PREEDIT_CLEAR", "clear" },
+            { IBUS_ENGINE_PREEDIT_COMMIT, "IBUS_ENGINE_PREEDIT_COMMIT", "commit" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusPreeditFocusMode"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_orientation_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { IBUS_ORIENTATION_HORIZONTAL, "IBUS_ORIENTATION_HORIZONTAL", "horizontal" },
+            { IBUS_ORIENTATION_VERTICAL, "IBUS_ORIENTATION_VERTICAL", "vertical" },
+            { IBUS_ORIENTATION_SYSTEM, "IBUS_ORIENTATION_SYSTEM", "system" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusOrientation"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_bus_name_flag_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GFlagsValue values[] = {
+            { IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT, "IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT", "allow-replacement" },
+            { IBUS_BUS_NAME_FLAG_REPLACE_EXISTING, "IBUS_BUS_NAME_FLAG_REPLACE_EXISTING", "replace-existing" },
+            { IBUS_BUS_NAME_FLAG_DO_NOT_QUEUE, "IBUS_BUS_NAME_FLAG_DO_NOT_QUEUE", "do-not-queue" },
+            { 0, NULL, NULL }
+        };
+        etype = g_flags_register_static (g_intern_static_string ("IBusBusNameFlag"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_bus_request_name_reply_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { IBUS_BUS_REQUEST_NAME_REPLY_PRIMARY_OWNER, "IBUS_BUS_REQUEST_NAME_REPLY_PRIMARY_OWNER", "primary-owner" },
+            { IBUS_BUS_REQUEST_NAME_REPLY_IN_QUEUE, "IBUS_BUS_REQUEST_NAME_REPLY_IN_QUEUE", "in-queue" },
+            { IBUS_BUS_REQUEST_NAME_REPLY_EXISTS, "IBUS_BUS_REQUEST_NAME_REPLY_EXISTS", "exists" },
+            { IBUS_BUS_REQUEST_NAME_REPLY_ALREADY_OWNER, "IBUS_BUS_REQUEST_NAME_REPLY_ALREADY_OWNER", "already-owner" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusBusRequestNameReply"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_bus_start_service_by_name_reply_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { IBUS_BUS_START_REPLY_SUCCESS, "IBUS_BUS_START_REPLY_SUCCESS", "success" },
+            { IBUS_BUS_START_REPLY_ALREADY_RUNNING, "IBUS_BUS_START_REPLY_ALREADY_RUNNING", "already-running" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusBusStartServiceByNameReply"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_error_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { IBUS_ERROR_NO_ENGINE, "IBUS_ERROR_NO_ENGINE", "no-engine" },
+            { IBUS_ERROR_NO_CONFIG, "IBUS_ERROR_NO_CONFIG", "no-config" },
+            { IBUS_ERROR_FAILED, "IBUS_ERROR_FAILED", "failed" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusError"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_input_purpose_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GEnumValue values[] = {
+            { IBUS_INPUT_PURPOSE_FREE_FORM, "IBUS_INPUT_PURPOSE_FREE_FORM", "free-form" },
+            { IBUS_INPUT_PURPOSE_ALPHA, "IBUS_INPUT_PURPOSE_ALPHA", "alpha" },
+            { IBUS_INPUT_PURPOSE_DIGITS, "IBUS_INPUT_PURPOSE_DIGITS", "digits" },
+            { IBUS_INPUT_PURPOSE_NUMBER, "IBUS_INPUT_PURPOSE_NUMBER", "number" },
+            { IBUS_INPUT_PURPOSE_PHONE, "IBUS_INPUT_PURPOSE_PHONE", "phone" },
+            { IBUS_INPUT_PURPOSE_URL, "IBUS_INPUT_PURPOSE_URL", "url" },
+            { IBUS_INPUT_PURPOSE_EMAIL, "IBUS_INPUT_PURPOSE_EMAIL", "email" },
+            { IBUS_INPUT_PURPOSE_NAME, "IBUS_INPUT_PURPOSE_NAME", "name" },
+            { IBUS_INPUT_PURPOSE_PASSWORD, "IBUS_INPUT_PURPOSE_PASSWORD", "password" },
+            { IBUS_INPUT_PURPOSE_PIN, "IBUS_INPUT_PURPOSE_PIN", "pin" },
+            { 0, NULL, NULL }
+        };
+        etype = g_enum_register_static (g_intern_static_string ("IBusInputPurpose"), values);
+    }
+    return etype;
+}
+
+GType
+ibus_input_hints_get_type (void)
+{
+    static GType etype = 0;
+    if (G_UNLIKELY(etype == 0)) {
+        static const GFlagsValue values[] = {
+            { IBUS_INPUT_HINT_NONE, "IBUS_INPUT_HINT_NONE", "none" },
+            { IBUS_INPUT_HINT_SPELLCHECK, "IBUS_INPUT_HINT_SPELLCHECK", "spellcheck" },
+            { IBUS_INPUT_HINT_NO_SPELLCHECK, "IBUS_INPUT_HINT_NO_SPELLCHECK", "no-spellcheck" },
+            { IBUS_INPUT_HINT_WORD_COMPLETION, "IBUS_INPUT_HINT_WORD_COMPLETION", "word-completion" },
+            { IBUS_INPUT_HINT_LOWERCASE, "IBUS_INPUT_HINT_LOWERCASE", "lowercase" },
+            { IBUS_INPUT_HINT_UPPERCASE_CHARS, "IBUS_INPUT_HINT_UPPERCASE_CHARS", "uppercase-chars" },
+            { IBUS_INPUT_HINT_UPPERCASE_WORDS, "IBUS_INPUT_HINT_UPPERCASE_WORDS", "uppercase-words" },
+            { IBUS_INPUT_HINT_UPPERCASE_SENTENCES, "IBUS_INPUT_HINT_UPPERCASE_SENTENCES", "uppercase-sentences" },
+            { IBUS_INPUT_HINT_INHIBIT_OSK, "IBUS_INPUT_HINT_INHIBIT_OSK", "inhibit-osk" },
+            { 0, NULL, NULL }
+        };
+        etype = g_flags_register_static (g_intern_static_string ("IBusInputHints"), values);
+    }
+    return etype;
+}
+
+
+/* Generated data ends here */
+
diff --git a/src/ibusenumtypes.h b/src/ibusenumtypes.h
new file mode 100644 (file)
index 0000000..a8c1214
--- /dev/null
@@ -0,0 +1,255 @@
+
+/* Generated data (by glib-mkenums) */
+
+/**
+ * SECTION: ibusenumtypes
+ * @short_description: Enumeration definition in IBus.
+ * @stability: Stable
+ *
+ * IBusEnumTypes lists IBus enumeration types.
+ */
+#ifndef __IBUS_ENUM_TYPES_H__
+#define __IBUS_ENUM_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "ibusobject.h" */
+/**
+ * ibus_object_flags_get_type:
+ * @returns: GType of IBUS_OBJECT_FLAGS
+ *
+ * Returns the type of IBUS_OBJECT_FLAGS as GType.
+ */
+GType ibus_object_flags_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_OBJECT_FLAGS:
+ * @returns: GType of IBUS_OBJECT_FLAGS
+ *
+ * Returns the type of IBUS_OBJECT_FLAGS as GType.
+ */
+#define IBUS_TYPE_OBJECT_FLAGS (ibus_object_flags_get_type ())
+
+/* enumerations from "ibusattribute.h" */
+/**
+ * ibus_attr_type_get_type:
+ * @returns: GType of IBUS_ATTR_TYPE
+ *
+ * Returns the type of IBUS_ATTR_TYPE as GType.
+ */
+GType ibus_attr_type_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_ATTR_TYPE:
+ * @returns: GType of IBUS_ATTR_TYPE
+ *
+ * Returns the type of IBUS_ATTR_TYPE as GType.
+ */
+#define IBUS_TYPE_ATTR_TYPE (ibus_attr_type_get_type ())
+/**
+ * ibus_attr_underline_get_type:
+ * @returns: GType of IBUS_ATTR_UNDERLINE
+ *
+ * Returns the type of IBUS_ATTR_UNDERLINE as GType.
+ */
+GType ibus_attr_underline_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_ATTR_UNDERLINE:
+ * @returns: GType of IBUS_ATTR_UNDERLINE
+ *
+ * Returns the type of IBUS_ATTR_UNDERLINE as GType.
+ */
+#define IBUS_TYPE_ATTR_UNDERLINE (ibus_attr_underline_get_type ())
+
+/* enumerations from "ibusproperty.h" */
+/**
+ * ibus_prop_type_get_type:
+ * @returns: GType of IBUS_PROP_TYPE
+ *
+ * Returns the type of IBUS_PROP_TYPE as GType.
+ */
+GType ibus_prop_type_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_PROP_TYPE:
+ * @returns: GType of IBUS_PROP_TYPE
+ *
+ * Returns the type of IBUS_PROP_TYPE as GType.
+ */
+#define IBUS_TYPE_PROP_TYPE (ibus_prop_type_get_type ())
+/**
+ * ibus_prop_state_get_type:
+ * @returns: GType of IBUS_PROP_STATE
+ *
+ * Returns the type of IBUS_PROP_STATE as GType.
+ */
+GType ibus_prop_state_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_PROP_STATE:
+ * @returns: GType of IBUS_PROP_STATE
+ *
+ * Returns the type of IBUS_PROP_STATE as GType.
+ */
+#define IBUS_TYPE_PROP_STATE (ibus_prop_state_get_type ())
+
+/* enumerations from "ibustypes.h" */
+/**
+ * ibus_modifier_type_get_type:
+ * @returns: GType of IBUS_MODIFIER_TYPE
+ *
+ * Returns the type of IBUS_MODIFIER_TYPE as GType.
+ */
+GType ibus_modifier_type_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_MODIFIER_TYPE:
+ * @returns: GType of IBUS_MODIFIER_TYPE
+ *
+ * Returns the type of IBUS_MODIFIER_TYPE as GType.
+ */
+#define IBUS_TYPE_MODIFIER_TYPE (ibus_modifier_type_get_type ())
+/**
+ * ibus_capabilite_get_type:
+ * @returns: GType of IBUS_CAPABILITE
+ *
+ * Returns the type of IBUS_CAPABILITE as GType.
+ */
+GType ibus_capabilite_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_CAPABILITE:
+ * @returns: GType of IBUS_CAPABILITE
+ *
+ * Returns the type of IBUS_CAPABILITE as GType.
+ */
+#define IBUS_TYPE_CAPABILITE (ibus_capabilite_get_type ())
+/**
+ * ibus_preedit_focus_mode_get_type:
+ * @returns: GType of IBUS_PREEDIT_FOCUS_MODE
+ *
+ * Returns the type of IBUS_PREEDIT_FOCUS_MODE as GType.
+ */
+GType ibus_preedit_focus_mode_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_PREEDIT_FOCUS_MODE:
+ * @returns: GType of IBUS_PREEDIT_FOCUS_MODE
+ *
+ * Returns the type of IBUS_PREEDIT_FOCUS_MODE as GType.
+ */
+#define IBUS_TYPE_PREEDIT_FOCUS_MODE (ibus_preedit_focus_mode_get_type ())
+/**
+ * ibus_orientation_get_type:
+ * @returns: GType of IBUS_ORIENTATION
+ *
+ * Returns the type of IBUS_ORIENTATION as GType.
+ */
+GType ibus_orientation_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_ORIENTATION:
+ * @returns: GType of IBUS_ORIENTATION
+ *
+ * Returns the type of IBUS_ORIENTATION as GType.
+ */
+#define IBUS_TYPE_ORIENTATION (ibus_orientation_get_type ())
+/**
+ * ibus_bus_name_flag_get_type:
+ * @returns: GType of IBUS_BUS_NAME_FLAG
+ *
+ * Returns the type of IBUS_BUS_NAME_FLAG as GType.
+ */
+GType ibus_bus_name_flag_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_BUS_NAME_FLAG:
+ * @returns: GType of IBUS_BUS_NAME_FLAG
+ *
+ * Returns the type of IBUS_BUS_NAME_FLAG as GType.
+ */
+#define IBUS_TYPE_BUS_NAME_FLAG (ibus_bus_name_flag_get_type ())
+/**
+ * ibus_bus_request_name_reply_get_type:
+ * @returns: GType of IBUS_BUS_REQUEST_NAME_REPLY
+ *
+ * Returns the type of IBUS_BUS_REQUEST_NAME_REPLY as GType.
+ */
+GType ibus_bus_request_name_reply_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_BUS_REQUEST_NAME_REPLY:
+ * @returns: GType of IBUS_BUS_REQUEST_NAME_REPLY
+ *
+ * Returns the type of IBUS_BUS_REQUEST_NAME_REPLY as GType.
+ */
+#define IBUS_TYPE_BUS_REQUEST_NAME_REPLY (ibus_bus_request_name_reply_get_type ())
+/**
+ * ibus_bus_start_service_by_name_reply_get_type:
+ * @returns: GType of IBUS_BUS_START_SERVICE_BY_NAME_REPLY
+ *
+ * Returns the type of IBUS_BUS_START_SERVICE_BY_NAME_REPLY as GType.
+ */
+GType ibus_bus_start_service_by_name_reply_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_BUS_START_SERVICE_BY_NAME_REPLY:
+ * @returns: GType of IBUS_BUS_START_SERVICE_BY_NAME_REPLY
+ *
+ * Returns the type of IBUS_BUS_START_SERVICE_BY_NAME_REPLY as GType.
+ */
+#define IBUS_TYPE_BUS_START_SERVICE_BY_NAME_REPLY (ibus_bus_start_service_by_name_reply_get_type ())
+/**
+ * ibus_error_get_type:
+ * @returns: GType of IBUS_ERROR
+ *
+ * Returns the type of IBUS_ERROR as GType.
+ */
+GType ibus_error_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_ERROR:
+ * @returns: GType of IBUS_ERROR
+ *
+ * Returns the type of IBUS_ERROR as GType.
+ */
+#define IBUS_TYPE_ERROR (ibus_error_get_type ())
+/**
+ * ibus_input_purpose_get_type:
+ * @returns: GType of IBUS_INPUT_PURPOSE
+ *
+ * Returns the type of IBUS_INPUT_PURPOSE as GType.
+ */
+GType ibus_input_purpose_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_INPUT_PURPOSE:
+ * @returns: GType of IBUS_INPUT_PURPOSE
+ *
+ * Returns the type of IBUS_INPUT_PURPOSE as GType.
+ */
+#define IBUS_TYPE_INPUT_PURPOSE (ibus_input_purpose_get_type ())
+/**
+ * ibus_input_hints_get_type:
+ * @returns: GType of IBUS_INPUT_HINTS
+ *
+ * Returns the type of IBUS_INPUT_HINTS as GType.
+ */
+GType ibus_input_hints_get_type (void) G_GNUC_CONST;
+
+/**
+ * IBUS_TYPE_INPUT_HINTS:
+ * @returns: GType of IBUS_INPUT_HINTS
+ *
+ * Returns the type of IBUS_INPUT_HINTS as GType.
+ */
+#define IBUS_TYPE_INPUT_HINTS (ibus_input_hints_get_type ())
+G_END_DECLS
+
+#endif /* __IBUS_ENUM_TYPES_H__ */
+
+/* Generated data ends here */
+
diff --git a/src/ibuskeysyms-update.pl b/src/ibuskeysyms-update.pl
deleted file mode 100755 (executable)
index 265818f..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env perl
-
-# Updates http://svn.gnome.org/viewcvs/gtk%2B/trunk/gdk/gdkkeysyms.h?view=log from upstream (X.org 7.x),
-# from http://gitweb.freedesktop.org/?p=xorg/proto/x11proto.git;a=blob_plain;f=keysymdef.h
-#
-# Author  : Simos Xenitellis <simos at gnome dot org>.
-# Version : 1.2
-#
-# Input   : http://gitweb.freedesktop.org/?p=xorg/proto/x11proto.git;a=blob_plain;f=keysymdef.h
-# Output  : http://svn.gnome.org/svn/gtk+/trunk/gdk/gdkkeysyms.h
-#
-# Notes   : It downloads keysymdef.h from the Internet, if not found locally,
-# Notes   : and creates an updated gdkkeysyms.h
-# Notes   : This version updates the source of gdkkeysyms.h from CVS to the GIT server.
-
-use strict;
-
-# Used for reading the keysymdef symbols.
-my @keysymelements;
-
-if ( ! -f "keysymdef.h" )
-{
-       print "Trying to download keysymdef.h from\n";
-       print "http://gitweb.freedesktop.org/?p=xorg/proto/x11proto.git;a=blob_plain;f=keysymdef.h\n";
-       die "Unable to download keysymdef.h from http://gitweb.freedesktop.org/?p=xorg/proto/x11proto.git;a=blob_plain;f=keysymdef.h\n"
-               unless system("wget -c -O keysymdef.h \"http://gitweb.freedesktop.org/?p=xorg/proto/x11proto.git;a=blob_plain;f=keysymdef.h\"") == 0;
-       print " done.\n\n";
-}
-else
-{
-       print "We are using existing keysymdef.h found in this directory.\n";
-       print "It is assumed that you took care and it is a recent version\n";
-       print "as found at http://gitweb.freedesktop.org/?p=xorg/proto/x11proto.git;a=blob;f=keysymdef.h\n\n";
-}
-
-
-if ( -f "ibuskeysyms.h" )
-{
-       print "There is already a ibuskeysyms.h file in this directory. We are not overwriting it.\n";
-       print "Please move it somewhere else in order to run this script.\n";
-       die "Exiting...\n\n";
-}
-
-# Source: http://cvs.freedesktop.org/xorg/xc/include/keysymdef.h
-die "Could not open file keysymdef.h: $!\n" unless open(IN_KEYSYMDEF, "<:utf8", "keysymdef.h");
-
-# Output: gtk+/gdk/gdkkeysyms.h
-die "Could not open file ibuskeysyms.h: $!\n" unless open(OUT_IBUSKEYSYMS, ">:utf8", "ibuskeysyms.h");
-
-print OUT_IBUSKEYSYMS<<EOF;
-/* ibus - The Input Bus
- * Copyright (C) 2008-2010 Peng Huang <shawn.p.huang\@gmail.com>
- * Copyright (C) 2008-2010 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 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., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#if !defined (__IBUS_H_INSIDE__) && !defined (IBUS_COMPILATION)
-#error "Only <ibus.h> can be included directly"
-#endif
-
-#ifndef __IBUS_KEYSYMS_H__
-#define __IBUS_KEYSYMS_H__
-
-EOF
-
-
-while (<IN_KEYSYMDEF>)
-{
-       next if ( ! /^#define / );
-
-       @keysymelements = split(/\s+/);
-       die "Internal error, no \@keysymelements: $_\n" unless @keysymelements;
-
-       $_ = $keysymelements[1];
-       die "Internal error, was expecting \"XC_*\", found: $_\n" if ( ! /^XK_/ );
-
-       $_ = $keysymelements[2];
-       die "Internal error, was expecting \"0x*\", found: $_\n" if ( ! /^0x/ );
-
-       $keysymelements[1] =~ s/^XK_/IBUS_KEY_/g;
-
-       printf OUT_IBUSKEYSYMS "#define %s 0x%03x\n", $keysymelements[1], hex($keysymelements[2]);
-}
-
-#$ibussyms{"0"} = "0000";
-
-close IN_KEYSYMDEF;
-
-
-print OUT_IBUSKEYSYMS<<EOF;
-
-#endif /* __IBUS_KEYSYMS_H__ */
-EOF
-
-printf "We just finished converting keysymdef.h to ibuskeysyms.h\nThank you\n";
diff --git a/src/ibusmarshalers.c b/src/ibusmarshalers.c
new file mode 100644 (file)
index 0000000..5db6e59
--- /dev/null
@@ -0,0 +1,844 @@
+#include "ibusmarshalers.h"
+
+#include       <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v)     g_value_get_schar (v)
+#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v)      g_value_get_int (v)
+#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
+#define g_marshal_value_peek_long(v)     g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
+#define g_marshal_value_peek_float(v)    g_value_get_float (v)
+#define g_marshal_value_peek_double(v)   g_value_get_double (v)
+#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v)    g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v)   g_value_get_object (v)
+#define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ *          Do not access GValues directly in your code. Instead, use the
+ *          g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
+#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
+#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
+#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* VOID:NONE (./ibusmarshalers.list:1) */
+
+/* VOID:OBJECT (./ibusmarshalers.list:2) */
+
+/* VOID:POINTER (./ibusmarshalers.list:3) */
+
+/* VOID:STRING (./ibusmarshalers.list:4) */
+
+/* VOID:STRING,INT (./ibusmarshalers.list:5) */
+void
+_ibus_marshal_VOID__STRING_INT (GClosure     *closure,
+                                GValue       *return_value G_GNUC_UNUSED,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__STRING_INT) (gpointer     data1,
+                                                 gpointer     arg_1,
+                                                 gint         arg_2,
+                                                 gpointer     data2);
+  register GMarshalFunc_VOID__STRING_INT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__STRING_INT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_string (param_values + 1),
+            g_marshal_value_peek_int (param_values + 2),
+            data2);
+}
+
+/* VOID:STRING,UINT (./ibusmarshalers.list:6) */
+void
+_ibus_marshal_VOID__STRING_UINT (GClosure     *closure,
+                                 GValue       *return_value G_GNUC_UNUSED,
+                                 guint         n_param_values,
+                                 const GValue *param_values,
+                                 gpointer      invocation_hint G_GNUC_UNUSED,
+                                 gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__STRING_UINT) (gpointer     data1,
+                                                  gpointer     arg_1,
+                                                  guint        arg_2,
+                                                  gpointer     data2);
+  register GMarshalFunc_VOID__STRING_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__STRING_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_string (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            data2);
+}
+
+/* BOOL:POINTER (./ibusmarshalers.list:7) */
+void
+_ibus_marshal_BOOLEAN__POINTER (GClosure     *closure,
+                                GValue       *return_value G_GNUC_UNUSED,
+                                guint         n_param_values,
+                                const GValue *param_values,
+                                gpointer      invocation_hint G_GNUC_UNUSED,
+                                gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER) (gpointer     data1,
+                                                     gpointer     arg_1,
+                                                     gpointer     data2);
+  register GMarshalFunc_BOOLEAN__POINTER callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__POINTER) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_pointer (param_values + 1),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* BOOL:POINTER,POINTER (./ibusmarshalers.list:8) */
+void
+_ibus_marshal_BOOLEAN__POINTER_POINTER (GClosure     *closure,
+                                        GValue       *return_value G_GNUC_UNUSED,
+                                        guint         n_param_values,
+                                        const GValue *param_values,
+                                        gpointer      invocation_hint G_GNUC_UNUSED,
+                                        gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__POINTER_POINTER) (gpointer     data1,
+                                                             gpointer     arg_1,
+                                                             gpointer     arg_2,
+                                                             gpointer     data2);
+  register GMarshalFunc_BOOLEAN__POINTER_POINTER callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_pointer (param_values + 1),
+                       g_marshal_value_peek_pointer (param_values + 2),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* BOOL:UINT,UINT (./ibusmarshalers.list:9) */
+void
+_ibus_marshal_BOOLEAN__UINT_UINT (GClosure     *closure,
+                                  GValue       *return_value G_GNUC_UNUSED,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                  gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_UINT) (gpointer     data1,
+                                                       guint        arg_1,
+                                                       guint        arg_2,
+                                                       gpointer     data2);
+  register GMarshalFunc_BOOLEAN__UINT_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_uint (param_values + 1),
+                       g_marshal_value_peek_uint (param_values + 2),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* BOOL:UINT,UINT,UINT (./ibusmarshalers.list:10) */
+void
+_ibus_marshal_BOOLEAN__UINT_UINT_UINT (GClosure     *closure,
+                                       GValue       *return_value G_GNUC_UNUSED,
+                                       guint         n_param_values,
+                                       const GValue *param_values,
+                                       gpointer      invocation_hint G_GNUC_UNUSED,
+                                       gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__UINT_UINT_UINT) (gpointer     data1,
+                                                            guint        arg_1,
+                                                            guint        arg_2,
+                                                            guint        arg_3,
+                                                            gpointer     data2);
+  register GMarshalFunc_BOOLEAN__UINT_UINT_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_uint (param_values + 1),
+                       g_marshal_value_peek_uint (param_values + 2),
+                       g_marshal_value_peek_uint (param_values + 3),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* BOOL:ULONG (./ibusmarshalers.list:11) */
+void
+_ibus_marshal_BOOLEAN__ULONG (GClosure     *closure,
+                              GValue       *return_value G_GNUC_UNUSED,
+                              guint         n_param_values,
+                              const GValue *param_values,
+                              gpointer      invocation_hint G_GNUC_UNUSED,
+                              gpointer      marshal_data)
+{
+  typedef gboolean (*GMarshalFunc_BOOLEAN__ULONG) (gpointer     data1,
+                                                   gulong       arg_1,
+                                                   gpointer     data2);
+  register GMarshalFunc_BOOLEAN__ULONG callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  gboolean v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_BOOLEAN__ULONG) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_ulong (param_values + 1),
+                       data2);
+
+  g_value_set_boolean (return_value, v_return);
+}
+
+/* VOID:INT,INT,INT,INT (./ibusmarshalers.list:12) */
+void
+_ibus_marshal_VOID__INT_INT_INT_INT (GClosure     *closure,
+                                     GValue       *return_value G_GNUC_UNUSED,
+                                     guint         n_param_values,
+                                     const GValue *param_values,
+                                     gpointer      invocation_hint G_GNUC_UNUSED,
+                                     gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__INT_INT_INT_INT) (gpointer     data1,
+                                                      gint         arg_1,
+                                                      gint         arg_2,
+                                                      gint         arg_3,
+                                                      gint         arg_4,
+                                                      gpointer     data2);
+  register GMarshalFunc_VOID__INT_INT_INT_INT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 5);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT_INT_INT_INT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int (param_values + 1),
+            g_marshal_value_peek_int (param_values + 2),
+            g_marshal_value_peek_int (param_values + 3),
+            g_marshal_value_peek_int (param_values + 4),
+            data2);
+}
+
+/* VOID:UINT,UINT (./ibusmarshalers.list:13) */
+void
+_ibus_marshal_VOID__UINT_UINT (GClosure     *closure,
+                               GValue       *return_value G_GNUC_UNUSED,
+                               guint         n_param_values,
+                               const GValue *param_values,
+                               gpointer      invocation_hint G_GNUC_UNUSED,
+                               gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer     data1,
+                                                guint        arg_1,
+                                                guint        arg_2,
+                                                gpointer     data2);
+  register GMarshalFunc_VOID__UINT_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_uint (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            data2);
+}
+
+/* VOID:INT,UINT (./ibusmarshalers.list:14) */
+void
+_ibus_marshal_VOID__INT_UINT (GClosure     *closure,
+                              GValue       *return_value G_GNUC_UNUSED,
+                              guint         n_param_values,
+                              const GValue *param_values,
+                              gpointer      invocation_hint G_GNUC_UNUSED,
+                              gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__INT_UINT) (gpointer     data1,
+                                               gint         arg_1,
+                                               guint        arg_2,
+                                               gpointer     data2);
+  register GMarshalFunc_VOID__INT_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__INT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_int (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            data2);
+}
+
+/* VOID:UINT,UINT,UINT (./ibusmarshalers.list:15) */
+void
+_ibus_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
+                                    GValue       *return_value G_GNUC_UNUSED,
+                                    guint         n_param_values,
+                                    const GValue *param_values,
+                                    gpointer      invocation_hint G_GNUC_UNUSED,
+                                    gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT) (gpointer     data1,
+                                                     guint        arg_1,
+                                                     guint        arg_2,
+                                                     guint        arg_3,
+                                                     gpointer     data2);
+  register GMarshalFunc_VOID__UINT_UINT_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_uint (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            g_marshal_value_peek_uint (param_values + 3),
+            data2);
+}
+
+/* VOID:OBJECT,UINT,BOOL (./ibusmarshalers.list:16) */
+void
+_ibus_marshal_VOID__OBJECT_UINT_BOOLEAN (GClosure     *closure,
+                                         GValue       *return_value G_GNUC_UNUSED,
+                                         guint         n_param_values,
+                                         const GValue *param_values,
+                                         gpointer      invocation_hint G_GNUC_UNUSED,
+                                         gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN) (gpointer     data1,
+                                                          gpointer     arg_1,
+                                                          guint        arg_2,
+                                                          gboolean     arg_3,
+                                                          gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            g_marshal_value_peek_boolean (param_values + 3),
+            data2);
+}
+
+/* VOID:OBJECT,UINT,BOOL,UINT (./ibusmarshalers.list:17) */
+void
+_ibus_marshal_VOID__OBJECT_UINT_BOOLEAN_UINT (GClosure     *closure,
+                                              GValue       *return_value G_GNUC_UNUSED,
+                                              guint         n_param_values,
+                                              const GValue *param_values,
+                                              gpointer      invocation_hint G_GNUC_UNUSED,
+                                              gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN_UINT) (gpointer     data1,
+                                                               gpointer     arg_1,
+                                                               guint        arg_2,
+                                                               gboolean     arg_3,
+                                                               guint        arg_4,
+                                                               gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 5);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_UINT_BOOLEAN_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            g_marshal_value_peek_boolean (param_values + 3),
+            g_marshal_value_peek_uint (param_values + 4),
+            data2);
+}
+
+/* VOID:OBJECT,UINT,UINT (./ibusmarshalers.list:18) */
+void
+_ibus_marshal_VOID__OBJECT_UINT_UINT (GClosure     *closure,
+                                      GValue       *return_value G_GNUC_UNUSED,
+                                      guint         n_param_values,
+                                      const GValue *param_values,
+                                      gpointer      invocation_hint G_GNUC_UNUSED,
+                                      gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_UINT_UINT) (gpointer     data1,
+                                                       gpointer     arg_1,
+                                                       guint        arg_2,
+                                                       guint        arg_3,
+                                                       gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_UINT_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            g_marshal_value_peek_uint (param_values + 3),
+            data2);
+}
+
+/* VOID:OBJECT,BOOL (./ibusmarshalers.list:19) */
+void
+_ibus_marshal_VOID__OBJECT_BOOLEAN (GClosure     *closure,
+                                    GValue       *return_value G_GNUC_UNUSED,
+                                    guint         n_param_values,
+                                    const GValue *param_values,
+                                    gpointer      invocation_hint G_GNUC_UNUSED,
+                                    gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer     data1,
+                                                     gpointer     arg_1,
+                                                     gboolean     arg_2,
+                                                     gpointer     data2);
+  register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_object (param_values + 1),
+            g_marshal_value_peek_boolean (param_values + 2),
+            data2);
+}
+
+/* VOID:BOXED,BOOL (./ibusmarshalers.list:20) */
+void
+_ibus_marshal_VOID__BOXED_BOOLEAN (GClosure     *closure,
+                                   GValue       *return_value G_GNUC_UNUSED,
+                                   guint         n_param_values,
+                                   const GValue *param_values,
+                                   gpointer      invocation_hint G_GNUC_UNUSED,
+                                   gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__BOXED_BOOLEAN) (gpointer     data1,
+                                                    gpointer     arg_1,
+                                                    gboolean     arg_2,
+                                                    gpointer     data2);
+  register GMarshalFunc_VOID__BOXED_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__BOXED_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_boxed (param_values + 1),
+            g_marshal_value_peek_boolean (param_values + 2),
+            data2);
+}
+
+/* VOID:BOXED (./ibusmarshalers.list:21) */
+
+/* VOID:STRING,STRING,VARIANT (./ibusmarshalers.list:22) */
+void
+_ibus_marshal_VOID__STRING_STRING_VARIANT (GClosure     *closure,
+                                           GValue       *return_value G_GNUC_UNUSED,
+                                           guint         n_param_values,
+                                           const GValue *param_values,
+                                           gpointer      invocation_hint G_GNUC_UNUSED,
+                                           gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__STRING_STRING_VARIANT) (gpointer     data1,
+                                                            gpointer     arg_1,
+                                                            gpointer     arg_2,
+                                                            gpointer     arg_3,
+                                                            gpointer     data2);
+  register GMarshalFunc_VOID__STRING_STRING_VARIANT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__STRING_STRING_VARIANT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_string (param_values + 1),
+            g_marshal_value_peek_string (param_values + 2),
+            g_marshal_value_peek_variant (param_values + 3),
+            data2);
+}
+
+/* VOID:STRING,STRING,STRING (./ibusmarshalers.list:23) */
+void
+_ibus_marshal_VOID__STRING_STRING_STRING (GClosure     *closure,
+                                          GValue       *return_value G_GNUC_UNUSED,
+                                          guint         n_param_values,
+                                          const GValue *param_values,
+                                          gpointer      invocation_hint G_GNUC_UNUSED,
+                                          gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__STRING_STRING_STRING) (gpointer     data1,
+                                                           gpointer     arg_1,
+                                                           gpointer     arg_2,
+                                                           gpointer     arg_3,
+                                                           gpointer     data2);
+  register GMarshalFunc_VOID__STRING_STRING_STRING callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 4);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__STRING_STRING_STRING) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_string (param_values + 1),
+            g_marshal_value_peek_string (param_values + 2),
+            g_marshal_value_peek_string (param_values + 3),
+            data2);
+}
+
+/* VOID:UINT (./ibusmarshalers.list:24) */
+
+/* VOID:UINT,POINTER (./ibusmarshalers.list:25) */
+
+/* VOID:POINTER,UINT (./ibusmarshalers.list:26) */
+void
+_ibus_marshal_VOID__POINTER_UINT (GClosure     *closure,
+                                  GValue       *return_value G_GNUC_UNUSED,
+                                  guint         n_param_values,
+                                  const GValue *param_values,
+                                  gpointer      invocation_hint G_GNUC_UNUSED,
+                                  gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__POINTER_UINT) (gpointer     data1,
+                                                   gpointer     arg_1,
+                                                   guint        arg_2,
+                                                   gpointer     data2);
+  register GMarshalFunc_VOID__POINTER_UINT callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__POINTER_UINT) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_pointer (param_values + 1),
+            g_marshal_value_peek_uint (param_values + 2),
+            data2);
+}
+
+/* OBJECT:STRING (./ibusmarshalers.list:27) */
+void
+_ibus_marshal_OBJECT__STRING (GClosure     *closure,
+                              GValue       *return_value G_GNUC_UNUSED,
+                              guint         n_param_values,
+                              const GValue *param_values,
+                              gpointer      invocation_hint G_GNUC_UNUSED,
+                              gpointer      marshal_data)
+{
+  typedef GObject* (*GMarshalFunc_OBJECT__STRING) (gpointer     data1,
+                                                   gpointer     arg_1,
+                                                   gpointer     data2);
+  register GMarshalFunc_OBJECT__STRING callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+  GObject* v_return;
+
+  g_return_if_fail (return_value != NULL);
+  g_return_if_fail (n_param_values == 2);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_OBJECT__STRING) (marshal_data ? marshal_data : cc->callback);
+
+  v_return = callback (data1,
+                       g_marshal_value_peek_string (param_values + 1),
+                       data2);
+
+  g_value_take_object (return_value, v_return);
+}
+
diff --git a/src/ibusversion.h b/src/ibusversion.h
new file mode 100644 (file)
index 0000000..44ad7f6
--- /dev/null
@@ -0,0 +1,70 @@
+/* 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.
+ *
+ * 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
+ */
+/**
+ * SECTION: ibusversion
+ * @short_description: Current version of IBus.
+ * @stability: Stable
+ *
+ * IBusVersion shows the current IBus version.
+ */
+
+#ifndef __IBUS_VERSION_H_
+#define __IBUS_VERSION_H_
+/* compile time version
+ */
+/**
+ * IBUS_MAJOR_VERSION:
+ *
+ * IBus major version.
+ */
+#define IBUS_MAJOR_VERSION                             (1)
+
+/**
+ * IBUS_MINOR_VERSION:
+ *
+ * IBus minor version.
+ */
+#define IBUS_MINOR_VERSION                             (5)
+
+/**
+ * IBUS_MICRO_VERSION:
+ *
+ * IBus micro version.
+ */
+#define IBUS_MICRO_VERSION                             (4)
+
+/**
+ * IBUS_CHECK_VERSION:
+ * @major: Major version of ibus.
+ * @minor: Minor version of ibus.
+ * @micro: Micro version of ibus.
+ *
+ * Check whether the current IBus version is equal to or greater than
+ * given major.minor.micro.
+ */
+#define        IBUS_CHECK_VERSION(major,minor,micro)   \
+    (IBUS_MAJOR_VERSION > (major) || \
+     (IBUS_MAJOR_VERSION == (major) && IBUS_MINOR_VERSION > (minor)) || \
+     (IBUS_MAJOR_VERSION == (major) && IBUS_MINOR_VERSION == (minor) && \
+      IBUS_MICRO_VERSION >= (micro)))
+
+#endif
+
diff --git a/src/python/ibus.py b/src/python/ibus.py
deleted file mode 100644 (file)
index 7736058..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-from gi.repository.IBus import \
-    AttrList, \
-    Attribute, \
-    Bus, \
-    Component, \
-    Config, \
-    Engine, \
-    EngineDesc, \
-    Factory, \
-    HotkeyProfile, \
-    Keymap, \
-    LookupTable, \
-    Object, \
-    ObservedPath, \
-    PanelService, \
-    PropList, \
-    Property, \
-    Proxy, \
-    Serializable, \
-    Service, \
-    Text
diff --git a/src/python/test.py b/src/python/test.py
deleted file mode 100644 (file)
index 626271d..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-import ibus
-bus = ibus.Bus()
-if not bus.is_connected():
-    print "Can not connect to ibus-daemon"
-else:
-    for e in bus.list_engines():
-        print e.get_name()
diff --git a/src/tests/Makefile.in b/src/tests/Makefile.in
new file mode 100644 (file)
index 0000000..c80c810
--- /dev/null
@@ -0,0 +1,1358 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2013 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-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
+# 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
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+noinst_PROGRAMS = $(am__EXEEXT_3)
+TESTS = ibus-bus$(EXEEXT) ibus-config$(EXEEXT) \
+       ibus-configservice$(EXEEXT) ibus-factory$(EXEEXT) \
+       ibus-inputcontext$(EXEEXT) ibus-inputcontext-create$(EXEEXT) \
+       ibus-keynames$(EXEEXT) ibus-registry$(EXEEXT) \
+       ibus-serializable$(EXEEXT) ibus-share$(EXEEXT) \
+       ibus-util$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2)
+@ENABLE_ENGINE_TRUE@am__append_1 = ibus-engine-switch
+subdir = src/tests
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp $(top_srcdir)/test-driver
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__EXEEXT_1 =
+@ENABLE_ENGINE_TRUE@am__EXEEXT_2 = ibus-engine-switch$(EXEEXT)
+am__EXEEXT_3 = ibus-bus$(EXEEXT) ibus-config$(EXEEXT) \
+       ibus-configservice$(EXEEXT) ibus-factory$(EXEEXT) \
+       ibus-inputcontext$(EXEEXT) ibus-inputcontext-create$(EXEEXT) \
+       ibus-keynames$(EXEEXT) ibus-registry$(EXEEXT) \
+       ibus-serializable$(EXEEXT) ibus-share$(EXEEXT) \
+       ibus-util$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2)
+PROGRAMS = $(noinst_PROGRAMS)
+am_ibus_bus_OBJECTS = ibus-bus.$(OBJEXT)
+ibus_bus_OBJECTS = $(am_ibus_bus_OBJECTS)
+am__DEPENDENCIES_1 =
+am__DEPENDENCIES_2 =  \
+       $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la \
+       $(am__DEPENDENCIES_1)
+ibus_bus_DEPENDENCIES = $(am__DEPENDENCIES_2)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+am_ibus_config_OBJECTS = ibus-config.$(OBJEXT)
+ibus_config_OBJECTS = $(am_ibus_config_OBJECTS)
+ibus_config_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_ibus_configservice_OBJECTS = ibus-configservice.$(OBJEXT)
+ibus_configservice_OBJECTS = $(am_ibus_configservice_OBJECTS)
+ibus_configservice_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_ibus_engine_switch_OBJECTS = ibus-engine-switch.$(OBJEXT)
+ibus_engine_switch_OBJECTS = $(am_ibus_engine_switch_OBJECTS)
+ibus_engine_switch_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_ibus_factory_OBJECTS = ibus-factory.$(OBJEXT)
+ibus_factory_OBJECTS = $(am_ibus_factory_OBJECTS)
+ibus_factory_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_ibus_inputcontext_OBJECTS = ibus-inputcontext.$(OBJEXT)
+ibus_inputcontext_OBJECTS = $(am_ibus_inputcontext_OBJECTS)
+ibus_inputcontext_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_ibus_inputcontext_create_OBJECTS =  \
+       ibus-inputcontext-create.$(OBJEXT)
+ibus_inputcontext_create_OBJECTS =  \
+       $(am_ibus_inputcontext_create_OBJECTS)
+ibus_inputcontext_create_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_ibus_keynames_OBJECTS = ibus-keynames.$(OBJEXT)
+ibus_keynames_OBJECTS = $(am_ibus_keynames_OBJECTS)
+ibus_keynames_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_ibus_registry_OBJECTS = ibus-registry.$(OBJEXT)
+ibus_registry_OBJECTS = $(am_ibus_registry_OBJECTS)
+ibus_registry_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_ibus_serializable_OBJECTS = ibus-serializable.$(OBJEXT)
+ibus_serializable_OBJECTS = $(am_ibus_serializable_OBJECTS)
+ibus_serializable_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_ibus_share_OBJECTS = ibus_share-ibus-share.$(OBJEXT)
+ibus_share_OBJECTS = $(am_ibus_share_OBJECTS)
+ibus_share_DEPENDENCIES = $(am__DEPENDENCIES_2)
+ibus_share_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ibus_share_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_ibus_util_OBJECTS = ibus-util.$(OBJEXT)
+ibus_util_OBJECTS = $(am_ibus_util_OBJECTS)
+ibus_util_DEPENDENCIES = $(am__DEPENDENCIES_2)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(ibus_bus_SOURCES) $(ibus_config_SOURCES) \
+       $(ibus_configservice_SOURCES) $(ibus_engine_switch_SOURCES) \
+       $(ibus_factory_SOURCES) $(ibus_inputcontext_SOURCES) \
+       $(ibus_inputcontext_create_SOURCES) $(ibus_keynames_SOURCES) \
+       $(ibus_registry_SOURCES) $(ibus_serializable_SOURCES) \
+       $(ibus_share_SOURCES) $(ibus_util_SOURCES)
+DIST_SOURCES = $(ibus_bus_SOURCES) $(ibus_config_SOURCES) \
+       $(ibus_configservice_SOURCES) $(ibus_engine_switch_SOURCES) \
+       $(ibus_factory_SOURCES) $(ibus_inputcontext_SOURCES) \
+       $(ibus_inputcontext_create_SOURCES) $(ibus_keynames_SOURCES) \
+       $(ibus_registry_SOURCES) $(ibus_serializable_SOURCES) \
+       $(ibus_share_SOURCES) $(ibus_util_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red='\e[0;31m'; \
+    grn='\e[0;32m'; \
+    lgn='\e[1;32m'; \
+    blu='\e[1;34m'; \
+    mgn='\e[0;35m'; \
+    brg='\e[1m'; \
+    std='\e[m'; \
+  fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__recheck_rx = ^[    ]*:recheck:[    ]*
+am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
+am__copy_in_global_log_rx = ^[         ]*:copy-in-global-log:[         ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+           recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[       ]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);                                     \
+$(am__vpath_adj_setup) $(am__vpath_adj)                        \
+$(am__tty_colors);                                     \
+srcdir=$(srcdir); export srcdir;                       \
+case "$@" in                                           \
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;   \
+    *) am__odir=.;;                                    \
+esac;                                                  \
+test "x$$am__odir" = x"." || test -d "$$am__odir"      \
+  || $(MKDIR_P) "$$am__odir" || exit $$?;              \
+if test -f "./$$f"; then dir=./;                       \
+elif test -f "$$f"; then dir=;                         \
+else dir="$(srcdir)/"; fi;                             \
+tst=$$dir$$f; log='$@';                                \
+if test -n '$(DISABLE_HARD_ERRORS)'; then              \
+  am__enable_hard_errors=no;                           \
+else                                                   \
+  am__enable_hard_errors=yes;                          \
+fi;                                                    \
+case " $(XFAIL_TESTS) " in                             \
+  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
+    am__expect_failure=yes;;                           \
+  *)                                                   \
+    am__expect_failure=no;;                            \
+esac;                                                  \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+       $(TEST_LOG_FLAGS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+NULL = 
+DEPS = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+AM_CPPFLAGS = \
+       -g                                      \
+       @GLIB2_CFLAGS@                          \
+       @GIO2_CFLAGS@                           \
+       -DIBUS_DISABLE_DEPRECATION_WARNINGS     \
+       -I$(top_srcdir)/src                     \
+       -I$(top_builddir)/src                   \
+       $(NULL)
+
+prog_ldadd = \
+       @GLIB2_LIBS@        \
+       @GIO2_LIBS@                     \
+       $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la       \
+       $(NULL)
+
+TESTS_ENVIRONMENT = \
+       top_builddir=$(top_builddir) \
+       top_srcdir=$(top_srcdir) \
+       builddir=$(builddir) \
+       $(NULL)
+
+LOG_COMPILER = $(srcdir)/runtest
+EXTRA_DIST = runtest
+ibus_bus_SOURCES = ibus-bus.c
+ibus_bus_LDADD = $(prog_ldadd)
+ibus_config_SOURCES = ibus-config.c
+ibus_config_LDADD = $(prog_ldadd)
+ibus_configservice_SOURCES = ibus-configservice.c
+ibus_configservice_LDADD = $(prog_ldadd)
+ibus_engine_switch_SOURCES = ibus-engine-switch.c
+ibus_engine_switch_LDADD = $(prog_ldadd)
+ibus_factory_SOURCES = ibus-factory.c
+ibus_factory_LDADD = $(prog_ldadd)
+ibus_inputcontext_SOURCES = ibus-inputcontext.c
+ibus_inputcontext_LDADD = $(prog_ldadd)
+ibus_inputcontext_create_SOURCES = ibus-inputcontext-create.c
+ibus_inputcontext_create_LDADD = $(prog_ldadd)
+ibus_keynames_SOURCES = ibus-keynames.c
+ibus_keynames_LDADD = $(prog_ldadd)
+ibus_registry_SOURCES = ibus-registry.c
+ibus_registry_LDADD = $(prog_ldadd)
+ibus_serializable_SOURCES = ibus-serializable.c
+ibus_serializable_LDADD = $(prog_ldadd)
+ibus_share_SOURCES = ibus-share.c
+ibus_share_CFLAGS = @DBUS_CFLAGS@
+ibus_share_LDADD = $(prog_ldadd) @DBUS_LIBS@
+ibus_util_SOURCES = ibus-util.c
+ibus_util_LDADD = $(prog_ldadd)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/tests/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu src/tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+       @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus-bus$(EXEEXT): $(ibus_bus_OBJECTS) $(ibus_bus_DEPENDENCIES) $(EXTRA_ibus_bus_DEPENDENCIES) 
+       @rm -f ibus-bus$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_bus_OBJECTS) $(ibus_bus_LDADD) $(LIBS)
+
+ibus-config$(EXEEXT): $(ibus_config_OBJECTS) $(ibus_config_DEPENDENCIES) $(EXTRA_ibus_config_DEPENDENCIES) 
+       @rm -f ibus-config$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_config_OBJECTS) $(ibus_config_LDADD) $(LIBS)
+
+ibus-configservice$(EXEEXT): $(ibus_configservice_OBJECTS) $(ibus_configservice_DEPENDENCIES) $(EXTRA_ibus_configservice_DEPENDENCIES) 
+       @rm -f ibus-configservice$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_configservice_OBJECTS) $(ibus_configservice_LDADD) $(LIBS)
+
+ibus-engine-switch$(EXEEXT): $(ibus_engine_switch_OBJECTS) $(ibus_engine_switch_DEPENDENCIES) $(EXTRA_ibus_engine_switch_DEPENDENCIES) 
+       @rm -f ibus-engine-switch$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_engine_switch_OBJECTS) $(ibus_engine_switch_LDADD) $(LIBS)
+
+ibus-factory$(EXEEXT): $(ibus_factory_OBJECTS) $(ibus_factory_DEPENDENCIES) $(EXTRA_ibus_factory_DEPENDENCIES) 
+       @rm -f ibus-factory$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_factory_OBJECTS) $(ibus_factory_LDADD) $(LIBS)
+
+ibus-inputcontext$(EXEEXT): $(ibus_inputcontext_OBJECTS) $(ibus_inputcontext_DEPENDENCIES) $(EXTRA_ibus_inputcontext_DEPENDENCIES) 
+       @rm -f ibus-inputcontext$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_inputcontext_OBJECTS) $(ibus_inputcontext_LDADD) $(LIBS)
+
+ibus-inputcontext-create$(EXEEXT): $(ibus_inputcontext_create_OBJECTS) $(ibus_inputcontext_create_DEPENDENCIES) $(EXTRA_ibus_inputcontext_create_DEPENDENCIES) 
+       @rm -f ibus-inputcontext-create$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_inputcontext_create_OBJECTS) $(ibus_inputcontext_create_LDADD) $(LIBS)
+
+ibus-keynames$(EXEEXT): $(ibus_keynames_OBJECTS) $(ibus_keynames_DEPENDENCIES) $(EXTRA_ibus_keynames_DEPENDENCIES) 
+       @rm -f ibus-keynames$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_keynames_OBJECTS) $(ibus_keynames_LDADD) $(LIBS)
+
+ibus-registry$(EXEEXT): $(ibus_registry_OBJECTS) $(ibus_registry_DEPENDENCIES) $(EXTRA_ibus_registry_DEPENDENCIES) 
+       @rm -f ibus-registry$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_registry_OBJECTS) $(ibus_registry_LDADD) $(LIBS)
+
+ibus-serializable$(EXEEXT): $(ibus_serializable_OBJECTS) $(ibus_serializable_DEPENDENCIES) $(EXTRA_ibus_serializable_DEPENDENCIES) 
+       @rm -f ibus-serializable$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_serializable_OBJECTS) $(ibus_serializable_LDADD) $(LIBS)
+
+ibus-share$(EXEEXT): $(ibus_share_OBJECTS) $(ibus_share_DEPENDENCIES) $(EXTRA_ibus_share_DEPENDENCIES) 
+       @rm -f ibus-share$(EXEEXT)
+       $(AM_V_CCLD)$(ibus_share_LINK) $(ibus_share_OBJECTS) $(ibus_share_LDADD) $(LIBS)
+
+ibus-util$(EXEEXT): $(ibus_util_OBJECTS) $(ibus_util_DEPENDENCIES) $(EXTRA_ibus_util_DEPENDENCIES) 
+       @rm -f ibus-util$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_util_OBJECTS) $(ibus_util_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-bus.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-config.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-configservice.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-engine-switch.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-factory.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-inputcontext-create.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-inputcontext.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-keynames.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-registry.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-serializable.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus-util.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibus_share-ibus-share.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+ibus_share-ibus-share.o: ibus-share.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_share_CFLAGS) $(CFLAGS) -MT ibus_share-ibus-share.o -MD -MP -MF $(DEPDIR)/ibus_share-ibus-share.Tpo -c -o ibus_share-ibus-share.o `test -f 'ibus-share.c' || echo '$(srcdir)/'`ibus-share.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_share-ibus-share.Tpo $(DEPDIR)/ibus_share-ibus-share.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibus-share.c' object='ibus_share-ibus-share.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_share_CFLAGS) $(CFLAGS) -c -o ibus_share-ibus-share.o `test -f 'ibus-share.c' || echo '$(srcdir)/'`ibus-share.c
+
+ibus_share-ibus-share.obj: ibus-share.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_share_CFLAGS) $(CFLAGS) -MT ibus_share-ibus-share.obj -MD -MP -MF $(DEPDIR)/ibus_share-ibus-share.Tpo -c -o ibus_share-ibus-share.obj `if test -f 'ibus-share.c'; then $(CYGPATH_W) 'ibus-share.c'; else $(CYGPATH_W) '$(srcdir)/ibus-share.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/ibus_share-ibus-share.Tpo $(DEPDIR)/ibus_share-ibus-share.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='ibus-share.c' object='ibus_share-ibus-share.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ibus_share_CFLAGS) $(CFLAGS) -c -o ibus_share-ibus-share.obj `if test -f 'ibus-share.c'; then $(CYGPATH_W) 'ibus-share.c'; else $(CYGPATH_W) '$(srcdir)/ibus-share.c'; fi`
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+       @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+       @$(am__set_TESTS_bases); \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+                   done`; \
+       if test -n "$$redo_bases"; then \
+         redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+         redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+         if $(am__make_dryrun); then :; else \
+           rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+         fi; \
+       fi; \
+       if test -n "$$am__remaking_logs"; then \
+         echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+              "recursion detected" >&2; \
+       else \
+         am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+       fi; \
+       if $(am__make_dryrun); then :; else \
+         st=0;  \
+         errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+         for i in $$redo_bases; do \
+           test -f $$i.trs && test -r $$i.trs \
+             || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+           test -f $$i.log && test -r $$i.log \
+             || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+         done; \
+         test $$st -eq 0 || exit 1; \
+       fi
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
+       results=`for b in $$bases; do echo $$b.trs; done`; \
+       test -n "$$results" || results=/dev/null; \
+       all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+       pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+       fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+       skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+       xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+       xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+       error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+       if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+         success=true; \
+       else \
+         success=false; \
+       fi; \
+       br='==================='; br=$$br$$br$$br$$br; \
+       result_count () \
+       { \
+           if test x"$$1" = x"--maybe-color"; then \
+             maybe_colorize=yes; \
+           elif test x"$$1" = x"--no-color"; then \
+             maybe_colorize=no; \
+           else \
+             echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+           fi; \
+           shift; \
+           desc=$$1 count=$$2; \
+           if test $$maybe_colorize = yes && test $$count -gt 0; then \
+             color_start=$$3 color_end=$$std; \
+           else \
+             color_start= color_end=; \
+           fi; \
+           echo "$${color_start}# $$desc $$count$${color_end}"; \
+       }; \
+       create_testsuite_report () \
+       { \
+         result_count $$1 "TOTAL:" $$all   "$$brg"; \
+         result_count $$1 "PASS: " $$pass  "$$grn"; \
+         result_count $$1 "SKIP: " $$skip  "$$blu"; \
+         result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+         result_count $$1 "FAIL: " $$fail  "$$red"; \
+         result_count $$1 "XPASS:" $$xpass "$$red"; \
+         result_count $$1 "ERROR:" $$error "$$mgn"; \
+       }; \
+       {                                                               \
+         echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |       \
+           $(am__rst_title);                                           \
+         create_testsuite_report --no-color;                           \
+         echo;                                                         \
+         echo ".. contents:: :depth: 2";                               \
+         echo;                                                         \
+         for b in $$bases; do echo $$b; done                           \
+           | $(am__create_global_log);                                 \
+       } >$(TEST_SUITE_LOG).tmp || exit 1;                             \
+       mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
+       if $$success; then                                              \
+         col="$$grn";                                                  \
+        else                                                           \
+         col="$$red";                                                  \
+         test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);               \
+       fi;                                                             \
+       echo "$${col}$$br$${std}";                                      \
+       echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";   \
+       echo "$${col}$$br$${std}";                                      \
+       create_testsuite_report --maybe-color;                          \
+       echo "$$col$$br$$std";                                          \
+       if $$success; then :; else                                      \
+         echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";         \
+         if test -n "$(PACKAGE_BUGREPORT)"; then                       \
+           echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+         fi;                                                           \
+         echo "$$col$$br$$std";                                        \
+       fi;                                                             \
+       $$success || exit 1
+
+check-TESTS:
+       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+       exit $$?;
+recheck: all 
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       bases=`for i in $$bases; do echo $$i; done \
+                | $(am__list_recheck_tests)` || exit 1; \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       log_list=`echo $$log_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+               am__force_recheck=am--force-recheck \
+               TEST_LOGS="$$log_list"; \
+       exit $$?
+ibus-bus.log: ibus-bus$(EXEEXT)
+       @p='ibus-bus$(EXEEXT)'; \
+       b='ibus-bus'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-config.log: ibus-config$(EXEEXT)
+       @p='ibus-config$(EXEEXT)'; \
+       b='ibus-config'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-configservice.log: ibus-configservice$(EXEEXT)
+       @p='ibus-configservice$(EXEEXT)'; \
+       b='ibus-configservice'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-factory.log: ibus-factory$(EXEEXT)
+       @p='ibus-factory$(EXEEXT)'; \
+       b='ibus-factory'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-inputcontext.log: ibus-inputcontext$(EXEEXT)
+       @p='ibus-inputcontext$(EXEEXT)'; \
+       b='ibus-inputcontext'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-inputcontext-create.log: ibus-inputcontext-create$(EXEEXT)
+       @p='ibus-inputcontext-create$(EXEEXT)'; \
+       b='ibus-inputcontext-create'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-keynames.log: ibus-keynames$(EXEEXT)
+       @p='ibus-keynames$(EXEEXT)'; \
+       b='ibus-keynames'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-registry.log: ibus-registry$(EXEEXT)
+       @p='ibus-registry$(EXEEXT)'; \
+       b='ibus-registry'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-serializable.log: ibus-serializable$(EXEEXT)
+       @p='ibus-serializable$(EXEEXT)'; \
+       b='ibus-serializable'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-share.log: ibus-share$(EXEEXT)
+       @p='ibus-share$(EXEEXT)'; \
+       b='ibus-share'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-util.log: ibus-util$(EXEEXT)
+       @p='ibus-util$(EXEEXT)'; \
+       b='ibus-util'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+ibus-engine-switch.log: ibus-engine-switch$(EXEEXT)
+       @p='ibus-engine-switch$(EXEEXT)'; \
+       b='ibus-engine-switch'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+       @p='$<'; \
+       $(am__set_b); \
+       $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@      @p='$<'; \
+@am__EXEEXT_TRUE@      $(am__set_b); \
+@am__EXEEXT_TRUE@      $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@      --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@      $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@      "$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+       $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
+       clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \
+       ctags ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       recheck tags tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/tests/ibus-engine.c b/src/tests/ibus-engine.c
deleted file mode 100644 (file)
index 225328d..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
-#include "ibus.h"
-
-int main()
-{
-    ibus_init ();
-
-    GMainLoop *mainloop;
-    IBusConnection *connection;
-    IBusService *service;
-
-    mainloop = g_main_loop_new (NULL, FALSE);
-    connection = ibus_connection_open ("unix:path=/tmp/ibus-phuang/ibus--0.0");
-    service = IBUS_SERVICE (ibus_engine_new ("/a/Engine", connection));
-    g_main_loop_run (mainloop);
-    return 0;
-}
diff --git a/src/tests/ibus-gi-inputcontext.py b/src/tests/ibus-gi-inputcontext.py
deleted file mode 100755 (executable)
index 80fb97b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright (c) 2011 Peng Huang <shawn.p.huang@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 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 program; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-# Boston, MA  02111-1307  USA
-
-
-import glib
-import gio
-from gi.repository import IBus
-IBus.init()
-main = glib.MainLoop()
-bus = IBus.Bus()
-ic = bus.create_input_context("ibus-test")
-ic.get_engine()
-ic.get_engine()
-ic.get_engine()
-ic.get_engine()
diff --git a/src/tests/ibus-global-engine.c b/src/tests/ibus-global-engine.c
deleted file mode 100644 (file)
index 9007af2..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
-#include <string.h>
-#include "ibus.h"
-
-static GList *engines = NULL;
-static GList *current_engine = NULL;
-
-void
-global_engine_changed_cb (IBusBus *bus)
-{
-    IBusEngineDesc *global_engine = ibus_bus_get_global_engine (bus);
-    const gchar *name = NULL;
-
-    g_assert (global_engine);
-
-    name = ibus_engine_desc_get_name (global_engine);
-    g_debug ("%s (id:%s, icon:%s)",
-             ibus_engine_desc_get_longname (global_engine),
-             name,
-             ibus_engine_desc_get_icon (global_engine));
-    IBusEngineDesc *engine_desc = IBUS_ENGINE_DESC (current_engine->data);
-
-    g_assert (strcmp (name,
-                      ibus_engine_desc_get_name (engine_desc)) == 0);
-    g_object_unref (global_engine);
-}
-
-gboolean
-change_global_engine_cb (IBusBus *bus)
-{
-    if (!current_engine)
-        current_engine = engines;
-    else
-        current_engine = g_list_next (current_engine);
-
-    if (!current_engine) {
-        ibus_quit();
-        return FALSE;
-    }
-
-    IBusEngineDesc *engine_desc = IBUS_ENGINE_DESC (current_engine->data);
-
-    ibus_bus_set_global_engine (bus,
-                                ibus_engine_desc_get_name (engine_desc));
-
-    return TRUE;
-}
-
-int main()
-{
-    IBusBus *bus;
-
-    ibus_init ();
-
-    bus = ibus_bus_new ();
-    engines = ibus_bus_list_active_engines (bus);
-    g_assert (engines);
-
-    g_debug ("===== Global engine:");
-    if (ibus_bus_get_use_global_engine (bus) == FALSE)
-        return 0;
-
-    g_signal_connect (bus, "global-engine-changed",
-                      G_CALLBACK (global_engine_changed_cb), bus);
-
-    g_idle_add ((GSourceFunc)change_global_engine_cb, bus);
-
-    ibus_main();
-
-    g_debug ("Test ibusbus.c's global engine api: passed.");
-    g_list_free (engines);
-    g_object_unref (bus);
-
-    return 0;
-}
diff --git a/src/tests/ibus-keymap.c b/src/tests/ibus-keymap.c
deleted file mode 100644 (file)
index ede5bb3..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include "ibus.h"
-
-#ifndef __linux__
-/* the test is supported only on linux */
-int main (int argc, char **argv)
-{
-    return 3;
-}
-#else
-
-#include <linux/input.h>
-
-#define KEYBOARDPATH "/dev/input/event4"
-
-int main (int argc, char **argv)
-{
-#if 0
-    gint fd;
-    struct input_event e;
-
-    ibus_init ();
-
-    IBusKeymap *keymap = ibus_keymap_get (argc > 1 ? argv[1] : "us");
-
-    g_object_unref (keymap);
-    return 0;
-
-    fd = open (KEYBOARDPATH, O_RDONLY);
-
-
-    while (fd >= 0 && read (fd, &e, sizeof (e)) == sizeof (e)) {
-        if (e.type != EV_KEY)
-            continue;
-        if (e.value != 0)
-            continue;
-
-        g_debug ("=========================================================================");
-        g_debug ("keycode = %d, %s %s %s %s %s", e.code,
-                    ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, 0)),
-                    ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, IBUS_SHIFT_MASK)),
-                    ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, IBUS_MOD5_MASK)),
-                    ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, IBUS_MOD5_MASK | IBUS_SHIFT_MASK)),
-                    ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, IBUS_MOD2_MASK))
-        );
-    }
-
-    g_object_unref (keymap);
-#endif
-    return 0;
-}
-#endif
diff --git a/src/tests/ibus-proxy.c b/src/tests/ibus-proxy.c
deleted file mode 100644 (file)
index dbfb79d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
-#include "ibus.h"
-
-static
-_value_changed_cb (IBusConfig *config, gchar *section, gchar *name, GValue *value, gpointer data)
-{
-    g_debug ("value-changed %s %s", section, name);
-}
-
-int main()
-{
-    IBusBus *bus;
-    IBusConfig *config;
-
-    ibus_init ();
-
-    bus = ibus_bus_new ();
-    config = ibus_bus_get_config (bus);
-
-    g_signal_connect (config,
-                      "value-changed",
-                      G_CALLBACK (_value_changed_cb),
-                      NULL);
-    g_main_loop_run (g_main_loop_new (NULL, FALSE));
-
-    return 0;
-}
diff --git a/test-driver b/test-driver
new file mode 100755 (executable)
index 0000000..32bf39e
--- /dev/null
@@ -0,0 +1,127 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+  esac
+  shift
+done
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='\e[0;31m' # Red.
+  grn='\e[0;32m' # Green.
+  lgn='\e[1;32m' # Light green.
+  blu='\e[1;34m' # Blue.
+  mgn='\e[0;35m' # Magenta.
+  std='\e[m'     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/test/test_client.py b/test/test_client.py
deleted file mode 100755 (executable)
index 58da6ac..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-#! /usr/bin/python
-# Test program for client APIs.
-
-import os
-import sys
-import glib
-import termios
-import tty
-import locale
-import curses
-import ibus
-from ibus import keysyms
-from ibus import modifier
-
-class DemoTerm:
-    def __init__(self):
-        self.__init_curses()
-        self.__bus = ibus.Bus()
-        self.__ic_path = self.__bus.create_input_context("DemoTerm")
-        self.__ic = ibus.InputContext(self.__bus, self.__ic_path, True)
-        self.__ic.set_capabilities(7)
-        self.__ic.connect("commit-text", self.__commit_text_cb)
-
-        self.__ic.connect("update-preedit-text", self.__update_preedit_text_cb)
-        self.__ic.connect("show-preedit-text", self.__show_preedit_text_cb)
-        self.__ic.connect("hide-preedit-text", self.__hide_preedit_text_cb)
-
-        self.__ic.connect("update-auxiliary-text", self.__update_aux_text_cb)
-        self.__ic.connect("show-auxiliary-text", self.__show_aux_text_cb)
-        self.__ic.connect("hide-auxiliary-text", self.__hide_aux_text_cb)
-
-        self.__ic.connect("update-lookup-table", self.__update_lookup_table_cb)
-        self.__ic.connect("show-lookup-table", self.__show_lookup_table_cb)
-        self.__ic.connect("hide-lookup-table", self.__hide_lookup_table_cb)
-        glib.io_add_watch(0, glib.IO_IN, self.__stdin_cb)
-        # glib.timeout_add(500, self.__timeout_cb)
-
-        # self.__master_fd, self.__slave_fd = os.openpty()
-        # self.__run_shell()
-
-        self.__is_invalidate = False
-        self.__preedit = None
-        self.__preedit_visible = False
-        self.__aux_string = None
-        self.__aux_string_visible = False
-        self.__lookup_table = None
-        self.__lookup_table_visible = False
-
-        # self.__old_sigwinch_cb = signal.signal(signal.SIGWINCH, self.__sigwinch_cb)
-
-    def __timeout_cb(self):
-        self.__stdin_cb(0, 0)
-        return True
-
-    def __sigwinch_cb(self, a, b):
-        self.__old_sigwinch_cb(a, b)
-        self.__invalidate()
-
-    def __init_curses(self):
-        self.__screen = curses.initscr()
-        curses.noecho()
-        curses.raw()
-        self.__screen.keypad(1)
-        self.__screen.refresh()
-        self.__screen.nodelay(1)
-        self.__max_y, self.__max_x = self.__screen.getmaxyx()
-        self.__state_pad = curses.newpad(2, self.__max_x)
-        self.__state_pad.bkgd(' ', curses.A_REVERSE)
-        self.__state_pad.addstr(0, 0, "Press Ctrl + v to enable or disable input method")
-        self.__state_pad.refresh(0, 0, self.__max_y - 2, 0, self.__max_y, self.__max_x)
-
-    def __fini_curses(self):
-        curses.noraw()
-        curses.echo()
-        curses.endwin()
-
-    def __stdin_cb(self, fd, condition):
-        while self.__process_input():
-            pass
-        return True
-
-    def __process_input(self):
-        c = self.__screen.getch()
-        if c < 0:
-            return False
-
-        if c == 3:
-            self.__loop.quit()
-        try:
-            if c == 22: # Ctrl + V => Ctrl + space
-                retval = self.__ic.process_key_event(keysyms.space, 0, modifier.CONTROL_MASK)
-            elif c == curses.KEY_BACKSPACE: # BackSpace
-                self.__ic.process_key_event(keysyms.BackSpace, 0, 0)
-                retval = True
-            elif c == curses.KEY_ENTER:
-                self.__ic.process_key_event(keysyms.Enter, 0, 0)
-            elif c == curses.KEY_RESIZE:
-                self.__invalidate()
-                retval = True
-            else:
-                retval = self.__ic.process_key_event(c, 0, 0)
-        except:
-            import backtrace
-            backtrace.print_exc()
-            retval = False
-            raise
-        if retval == False:
-            self.__screen.addstr(unichr(c).encode("utf-8"))
-            self.__screen.refresh()
-        return True
-
-    def __commit_text_cb(self, ic, text):
-        self.__screen.addstr(text.text)
-        self.__screen.refresh()
-
-    def __update_preedit_text_cb(self, ic, text, cursor_pos, visible):
-        self.__preedit = text
-        self.__preedit_visible = visible
-        self.__invalidate()
-
-    def __show_preedit_text_cb(self, ic):
-        if self.__preedit_visible:
-            return
-        self.__preedit_visible = True
-        self.__invalidate()
-
-    def __hide_preedit_text_cb(self, ic):
-        if not self.__preedit_visible:
-            return
-        self.__preedit_visible = False
-        self.__invalidate()
-
-    def __update_aux_text_cb(self, ic, text, visible):
-        self.__aux_string = text
-        self.__aux_string_visible = visible
-        self.__invalidate()
-
-    def __show_aux_text_cb(self, ic):
-        if self.__aux_string_visible:
-            return
-        self.__aux_string_visible = True
-        self.__invalidate()
-
-    def __hide_aux_text_cb(self, ic):
-        if not self.__aux_string_visible:
-            return
-        self.__aux_string_visible = False
-        self.__invalidate()
-
-
-    def __update_lookup_table_cb(self, ic, lookup_table, visible):
-        self.__lookup_table = lookup_table
-        self.__lookup_table_visible = visible
-        self.__invalidate()
-
-    def __show_lookup_table_cb(self, ic):
-        if self.__lookup_table_visible:
-            return
-        self.__lookup_table_visible = True
-        self.__invalidate()
-
-    def __hide_lookup_table_cb(self, ic):
-        if not self.__lookup_table_visible:
-            return
-        self.__lookup_table_visible = False
-        self.__invalidate()
-
-    def __invalidate(self):
-        if self.__is_invalidate:
-            return
-        self.__is_invalidate = True
-        glib.idle_add(self.__update)
-
-    def __update(self):
-        if not self.__is_invalidate:
-            return False
-        self.__is_invalidate = False
-
-        y, x = self.__screen.getmaxyx()
-        if self.__max_x != x or self.__max_y != y:
-            self.__max_x = x
-            self.__max_y = y
-            self.__state_pad = curses.newpad(2, self.__max_x)
-            self.__state_pad.bkgd(' ', curses.A_REVERSE)
-            self.__state_pad.addstr(0, 0, "Press Ctrl + v to enable or disable input method")
-            self.__screen.clear()
-
-        self.__state_pad.clear()
-
-        # update preedit
-        if self.__preedit_visible and self.__preedit:
-            self.__state_pad.addstr(0, 0, self.__preedit.text, curses.A_REVERSE)
-        else:
-            self.__state_pad.addstr(0, 0, "", curses.A_REVERSE)
-
-        # update aux string
-        if self.__aux_string_visible and self.__aux_string:
-            self.__state_pad.addstr("  ", curses.A_REVERSE)
-            self.__state_pad.addstr(self.__aux_string.text, curses.A_REVERSE)
-        self.__state_pad.addstr(1, 0, "", curses.A_REVERSE)
-
-        # update lookup table
-        if self.__lookup_table_visible and self.__lookup_table:
-            candidates = self.__lookup_table.get_candidates_in_current_page()
-            for i, c in enumerate(candidates):
-                text = u"%d.%s " % (i + 1, c.text)
-                self.__state_pad.addstr(text.encode("utf-8"), curses.A_REVERSE)
-                i += 1
-
-        if self.__preedit_visible == False and self.__aux_string_visible == False and self.__lookup_table_visible == False:
-            self.__state_pad.addstr(0, 0, "Press Ctrl + v to enable or disable input method")
-
-        self.__state_pad.refresh(0, 0, self.__max_y - 2, 0, self.__max_y, self.__max_x)
-        self.__screen.refresh()
-
-        return False
-
-    def __run_shell(self):
-        pid = os.fork()
-        if pid == 0: # child
-            os.close(0)
-            os.close(1)
-            os.close(2)
-            os.close(self.__master_fd)
-            os.dup2(self.__slave_fd, 0)
-            os.dup2(self.__slave_fd, 1)
-            os.dup2(self.__slave_fd, 2)
-            os.close(self.__slave_fd)
-            os.execv('/bin/bash', ["bash"])
-            os.exit(1)
-
-
-
-    def run(self):
-        self.__loop = glib.MainLoop()
-        self.__loop.run()
-
-    def close(self):
-        self.__fini_curses()
-        pass
-
-def old_main():
-    locale.setlocale(locale.LC_ALL, "")
-    old = termios.tcgetattr(0)
-    term = DemoTerm()
-    try:
-        term.run()
-    except:
-        term.close()
-        termios.tcsetattr(0, termios.TCSAFLUSH, old)
-        import traceback
-        traceback.print_exc()
-    finally:
-        term.close()
-        termios.tcsetattr(0, termios.TCSAFLUSH, old)
-
-def main():
-    term = DemoTerm()
-
-if __name__ == "__main__":
-    old_main()
-
diff --git a/tools/Makefile.in b/tools/Makefile.in
new file mode 100644 (file)
index 0000000..f424144
--- /dev/null
@@ -0,0 +1,938 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2013 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-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
+# 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
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = ibus$(EXEEXT)
+subdir = tools
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am main.c \
+       $(top_srcdir)/depcomp $(srcdir)/ibus_vala.stamp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" \
+       "$(DESTDIR)$(bash_completiondir)" "$(DESTDIR)$(man_onedir)"
+PROGRAMS = $(bin_PROGRAMS)
+am__objects_1 =
+am_ibus_OBJECTS = main.$(OBJEXT) $(am__objects_1)
+ibus_OBJECTS = $(am_ibus_OBJECTS)
+am__DEPENDENCIES_1 =
+am__DEPENDENCIES_2 = $(libibus) $(am__DEPENDENCIES_1)
+ibus_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+VALACOMPILE = $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS)
+LTVALACOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(VALAC) $(AM_VALAFLAGS) \
+       $(VALAFLAGS)
+AM_V_VALAC = $(am__v_VALAC_@AM_V@)
+am__v_VALAC_ = $(am__v_VALAC_@AM_DEFAULT_V@)
+am__v_VALAC_0 = @echo "  VALAC   " $@;
+am__v_VALAC_1 = 
+SOURCES = $(ibus_SOURCES)
+DIST_SOURCES = $(ibus_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+DATA = $(bash_completion_DATA) $(man_one_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+NULL = 
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+
+# force include config.h before gi18n.h.
+AM_CPPFLAGS = \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       -include $(CONFIG_HEADER) \
+       $(NULL)
+
+AM_CFLAGS = \
+       @GLIB2_CFLAGS@ \
+       @GIO2_CFLAGS@ \
+       @GTHREAD2_CFLAGS@ \
+       -DG_LOG_DOMAIN=\"IBUS\" \
+       -DIBUS_DISABLE_DEPRECATED \
+       -Wno-unused-variable \
+       -Wno-unused-but-set-variable \
+       -Wno-unused-function \
+       $(NULL)
+
+AM_LDADD = \
+       @GOBJECT2_LIBS@ \
+       @GLIB2_LIBS@ \
+       @GIO2_LIBS@ \
+       @GTHREAD2_LIBS@ \
+       $(libibus) \
+       $(NULL)
+
+AM_VALAFLAGS = \
+       --vapidir=$(top_builddir)/bindings/vala \
+       --vapidir=$(top_srcdir)/bindings/vala \
+       --pkg=ibus-1.0 \
+       --pkg=posix \
+       --pkg=config \
+       --target-glib="$(VALA_TARGET_GLIB_VERSION)" \
+       $(NULL)
+
+ibus_SOURCES = \
+       main.vala \
+       $(NULL)
+
+ibus_LDADD = \
+       $(AM_LDADD) \
+       $(NULL)
+
+bash_completion_DATA = \
+       ibus.bash \
+       $(NULL)
+
+bash_completiondir = @datadir@/bash-completion/completions
+man_one_in_files = ibus.1.in
+man_one_files = $(man_one_in_files:.1.in=.1)
+man_one_DATA = $(man_one_files:.1=.1.gz) 
+man_onedir = $(datadir)/man/man1
+EXTRA_DIST = \
+       $(man_one_in_files) \
+       ibus.bash \
+       $(NULL)
+
+CLEANFILES = \
+       $(man_one_DATA) \
+       $(man_one_files) \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu tools/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-binPROGRAMS: $(bin_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-binPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+       @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus$(EXEEXT): $(ibus_OBJECTS) $(ibus_DEPENDENCIES) $(EXTRA_ibus_DEPENDENCIES) 
+       @rm -f ibus$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_OBJECTS) $(ibus_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+$(srcdir)/main.c: $(srcdir)/ibus_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_vala.stamp; \
+       fi
+$(srcdir)/ibus_vala.stamp: main.vala
+       $(AM_V_at)rm -f $@ && echo stamp > $@-t
+       $(AM_V_VALAC)$(am__cd) $(srcdir) && $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS) -C main.vala
+       $(AM_V_at)mv -f $@-t $@
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-bash_completionDATA: $(bash_completion_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(bash_completion_DATA)'; test -n "$(bash_completiondir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(bash_completiondir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(bash_completiondir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(bash_completiondir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(bash_completiondir)" || exit $$?; \
+       done
+
+uninstall-bash_completionDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(bash_completion_DATA)'; test -n "$(bash_completiondir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(bash_completiondir)'; $(am__uninstall_files_from_dir)
+install-man_oneDATA: $(man_one_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(man_one_DATA)'; test -n "$(man_onedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(man_onedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(man_onedir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man_onedir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(man_onedir)" || exit $$?; \
+       done
+
+uninstall-man_oneDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(man_one_DATA)'; test -n "$(man_onedir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(man_onedir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bash_completiondir)" "$(DESTDIR)$(man_onedir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -rm -f $(srcdir)/ibus_vala.stamp
+       -rm -f $(srcdir)/main.c
+       -rm -f main.c
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-bash_completionDATA install-man_oneDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-bash_completionDATA uninstall-binPROGRAMS \
+       uninstall-man_oneDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+       clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+       ctags ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am \
+       install-bash_completionDATA install-binPROGRAMS install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-man_oneDATA install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-am uninstall uninstall-am \
+       uninstall-bash_completionDATA uninstall-binPROGRAMS \
+       uninstall-man_oneDATA
+
+%.1: %.1.in
+       $(AM_V_GEN) sed \
+               -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \
+               mv $@.tmp $@
+%.1.gz: %.1
+       $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tools/ibus_vala.stamp b/tools/ibus_vala.stamp
new file mode 100644 (file)
index 0000000..859afb1
--- /dev/null
@@ -0,0 +1 @@
+stamp
diff --git a/tools/main.c b/tools/main.c
new file mode 100644 (file)
index 0000000..2e102e2
--- /dev/null
@@ -0,0 +1,1733 @@
+/* main.c generated by valac 0.20.1, the Vala compiler
+ * generated from main.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2013 Peng Huang <shawn.p.huang@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-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ibus.h>
+#include <config.h>
+#include <stdio.h>
+#include <glib/gi18n-lib.h>
+#include <locale.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_ENGINE_LIST (engine_list_get_type ())
+#define ENGINE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ENGINE_LIST, EngineList))
+#define ENGINE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ENGINE_LIST, EngineListClass))
+#define IS_ENGINE_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ENGINE_LIST))
+#define IS_ENGINE_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ENGINE_LIST))
+#define ENGINE_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ENGINE_LIST, EngineListClass))
+
+typedef struct _EngineList EngineList;
+typedef struct _EngineListClass EngineListClass;
+typedef struct _EngineListPrivate EngineListPrivate;
+typedef struct _ParamSpecEngineList ParamSpecEngineList;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_option_context_free0(var) ((var == NULL) ? NULL : (var = (g_option_context_free (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+#define _engine_list_unref0(var) ((var == NULL) ? NULL : (var = (engine_list_unref (var), NULL)))
+#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
+
+#define TYPE_COMMAND_ENTRY (command_entry_get_type ())
+typedef struct _CommandEntry CommandEntry;
+
+struct _EngineList {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       EngineListPrivate * priv;
+       IBusEngineDesc** data;
+       gint data_length1;
+       gint _data_size_;
+};
+
+struct _EngineListClass {
+       GTypeClass parent_class;
+       void (*finalize) (EngineList *self);
+};
+
+struct _ParamSpecEngineList {
+       GParamSpec parent_instance;
+};
+
+typedef gint (*EntryFunc) (gchar** argv, int argv_length1, void* user_data);
+struct _CommandEntry {
+       const gchar* name;
+       const gchar* description;
+       EntryFunc entry;
+       gpointer entry_target;
+};
+
+
+extern gboolean name_only;
+gboolean name_only = FALSE;
+extern gboolean is_system;
+gboolean is_system = FALSE;
+extern gchar* cache_file;
+gchar* cache_file = NULL;
+static gpointer engine_list_parent_class = NULL;
+extern gchar* program_name;
+gchar* program_name = NULL;
+
+gpointer engine_list_ref (gpointer instance);
+void engine_list_unref (gpointer instance);
+GParamSpec* param_spec_engine_list (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_engine_list (GValue* value, gpointer v_object);
+void value_take_engine_list (GValue* value, gpointer v_object);
+gpointer value_get_engine_list (const GValue* value);
+GType engine_list_get_type (void) G_GNUC_CONST;
+enum  {
+       ENGINE_LIST_DUMMY_PROPERTY
+};
+EngineList* engine_list_new (void);
+EngineList* engine_list_construct (GType object_type);
+static void engine_list_finalize (EngineList* obj);
+IBusBus* get_bus (void);
+gint list_engine (gchar** argv, int argv_length1);
+static void _g_free0_ (gpointer var);
+static void _engine_list_unref0_ (gpointer var);
+static void _vala_array_add1 (IBusEngineDesc*** array, int* length, int* size, IBusEngineDesc* value);
+gint exec_setxkbmap (IBusEngineDesc* engine);
+static void _vala_array_add2 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add3 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add4 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add5 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add6 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add7 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add8 (gchar*** array, int* length, int* size, gchar* value);
+gint get_set_engine (gchar** argv, int argv_length1);
+gint message_watch (gchar** argv, int argv_length1);
+gint restart_daemon (gchar** argv, int argv_length1);
+gint exit_daemon (gchar** argv, int argv_length1);
+gint print_version (gchar** argv, int argv_length1);
+gint read_cache (gchar** argv, int argv_length1);
+gint write_cache (gchar** argv, int argv_length1);
+gint print_address (gchar** argv, int argv_length1);
+gint print_help (gchar** argv, int argv_length1);
+void print_usage (FILE* stream);
+GType command_entry_get_type (void) G_GNUC_CONST;
+CommandEntry* command_entry_dup (const CommandEntry* self);
+void command_entry_free (CommandEntry* self);
+static gint _get_set_engine_entry_func (gchar** argv, int argv_length1, gpointer self);
+static gint _exit_daemon_entry_func (gchar** argv, int argv_length1, gpointer self);
+static gint _list_engine_entry_func (gchar** argv, int argv_length1, gpointer self);
+static gint _message_watch_entry_func (gchar** argv, int argv_length1, gpointer self);
+static gint _restart_daemon_entry_func (gchar** argv, int argv_length1, gpointer self);
+static gint _print_version_entry_func (gchar** argv, int argv_length1, gpointer self);
+static gint _read_cache_entry_func (gchar** argv, int argv_length1, gpointer self);
+static gint _write_cache_entry_func (gchar** argv, int argv_length1, gpointer self);
+static gint _print_address_entry_func (gchar** argv, int argv_length1, gpointer self);
+static gint _print_help_entry_func (gchar** argv, int argv_length1, gpointer self);
+gint _vala_main (gchar** argv, int argv_length1);
+static gchar** _vala_array_dup1 (gchar** self, int length);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+const CommandEntry commands[10] = {{"engine", "Set or get engine", _get_set_engine_entry_func}, {"exit", "Exit ibus-daemon", _exit_daemon_entry_func}, {"list-engine", "Show available engines", _list_engine_entry_func}, {"watch", "(Not implemented)", _message_watch_entry_func}, {"restart", "Restart ibus-daemon", _restart_daemon_entry_func}, {"version", "Show version", _print_version_entry_func}, {"read-cache", "Show the content of registry cache", _read_cache_entry_func}, {"write-cache", "Create registry cache", _write_cache_entry_func}, {"address", "Print the D-Bus address of ibus-daemon", _print_address_entry_func}, {"help", "Show this information", _print_help_entry_func}};
+
+EngineList* engine_list_construct (GType object_type) {
+       EngineList* self = NULL;
+       self = (EngineList*) g_type_create_instance (object_type);
+       return self;
+}
+
+
+EngineList* engine_list_new (void) {
+       return engine_list_construct (TYPE_ENGINE_LIST);
+}
+
+
+static void value_engine_list_init (GValue* value) {
+       value->data[0].v_pointer = NULL;
+}
+
+
+static void value_engine_list_free_value (GValue* value) {
+       if (value->data[0].v_pointer) {
+               engine_list_unref (value->data[0].v_pointer);
+       }
+}
+
+
+static void value_engine_list_copy_value (const GValue* src_value, GValue* dest_value) {
+       if (src_value->data[0].v_pointer) {
+               dest_value->data[0].v_pointer = engine_list_ref (src_value->data[0].v_pointer);
+       } else {
+               dest_value->data[0].v_pointer = NULL;
+       }
+}
+
+
+static gpointer value_engine_list_peek_pointer (const GValue* value) {
+       return value->data[0].v_pointer;
+}
+
+
+static gchar* value_engine_list_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       if (collect_values[0].v_pointer) {
+               EngineList* object;
+               object = collect_values[0].v_pointer;
+               if (object->parent_instance.g_class == NULL) {
+                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               }
+               value->data[0].v_pointer = engine_list_ref (object);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       return NULL;
+}
+
+
+static gchar* value_engine_list_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       EngineList** object_p;
+       object_p = collect_values[0].v_pointer;
+       if (!object_p) {
+               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+       }
+       if (!value->data[0].v_pointer) {
+               *object_p = NULL;
+       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+               *object_p = value->data[0].v_pointer;
+       } else {
+               *object_p = engine_list_ref (value->data[0].v_pointer);
+       }
+       return NULL;
+}
+
+
+GParamSpec* param_spec_engine_list (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+       ParamSpecEngineList* spec;
+       g_return_val_if_fail (g_type_is_a (object_type, TYPE_ENGINE_LIST), NULL);
+       spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+       G_PARAM_SPEC (spec)->value_type = object_type;
+       return G_PARAM_SPEC (spec);
+}
+
+
+gpointer value_get_engine_list (const GValue* value) {
+       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ENGINE_LIST), NULL);
+       return value->data[0].v_pointer;
+}
+
+
+void value_set_engine_list (GValue* value, gpointer v_object) {
+       EngineList* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ENGINE_LIST));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ENGINE_LIST));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+               engine_list_ref (value->data[0].v_pointer);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               engine_list_unref (old);
+       }
+}
+
+
+void value_take_engine_list (GValue* value, gpointer v_object) {
+       EngineList* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_ENGINE_LIST));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_ENGINE_LIST));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               engine_list_unref (old);
+       }
+}
+
+
+static void engine_list_class_init (EngineListClass * klass) {
+       engine_list_parent_class = g_type_class_peek_parent (klass);
+       ENGINE_LIST_CLASS (klass)->finalize = engine_list_finalize;
+}
+
+
+static void engine_list_instance_init (EngineList * self) {
+       IBusEngineDesc** _tmp0_ = NULL;
+       _tmp0_ = g_new0 (IBusEngineDesc*, 0 + 1);
+       self->data = _tmp0_;
+       self->data_length1 = 0;
+       self->_data_size_ = self->data_length1;
+       self->ref_count = 1;
+}
+
+
+static void engine_list_finalize (EngineList* obj) {
+       EngineList * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_ENGINE_LIST, EngineList);
+       self->data = (_vala_array_free (self->data, self->data_length1, (GDestroyNotify) g_object_unref), NULL);
+}
+
+
+GType engine_list_get_type (void) {
+       static volatile gsize engine_list_type_id__volatile = 0;
+       if (g_once_init_enter (&engine_list_type_id__volatile)) {
+               static const GTypeValueTable g_define_type_value_table = { value_engine_list_init, value_engine_list_free_value, value_engine_list_copy_value, value_engine_list_peek_pointer, "p", value_engine_list_collect_value, "p", value_engine_list_lcopy_value };
+               static const GTypeInfo g_define_type_info = { sizeof (EngineListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) engine_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (EngineList), 0, (GInstanceInitFunc) engine_list_instance_init, &g_define_type_value_table };
+               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+               GType engine_list_type_id;
+               engine_list_type_id = g_type_register_fundamental (g_type_fundamental_next (), "EngineList", &g_define_type_info, &g_define_type_fundamental_info, 0);
+               g_once_init_leave (&engine_list_type_id__volatile, engine_list_type_id);
+       }
+       return engine_list_type_id__volatile;
+}
+
+
+gpointer engine_list_ref (gpointer instance) {
+       EngineList* self;
+       self = instance;
+       g_atomic_int_inc (&self->ref_count);
+       return instance;
+}
+
+
+void engine_list_unref (gpointer instance) {
+       EngineList* self;
+       self = instance;
+       if (g_atomic_int_dec_and_test (&self->ref_count)) {
+               ENGINE_LIST_GET_CLASS (self)->finalize (self);
+               g_type_free_instance ((GTypeInstance *) self);
+       }
+}
+
+
+IBusBus* get_bus (void) {
+       IBusBus* result = NULL;
+       IBusBus* _tmp0_;
+       IBusBus* bus;
+       IBusBus* _tmp1_;
+       gboolean _tmp2_ = FALSE;
+       _tmp0_ = ibus_bus_new ();
+       g_object_ref_sink (_tmp0_);
+       bus = _tmp0_;
+       _tmp1_ = bus;
+       _tmp2_ = ibus_bus_is_connected (_tmp1_);
+       if (!_tmp2_) {
+               result = NULL;
+               _g_object_unref0 (bus);
+               return result;
+       }
+       result = bus;
+       return result;
+}
+
+
+static void _g_free0_ (gpointer var) {
+       var = (g_free (var), NULL);
+}
+
+
+static void _engine_list_unref0_ (gpointer var) {
+       (var == NULL) ? NULL : (var = (engine_list_unref (var), NULL));
+}
+
+
+static gpointer _engine_list_ref0 (gpointer self) {
+       return self ? engine_list_ref (self) : NULL;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+static void _vala_array_add1 (IBusEngineDesc*** array, int* length, int* size, IBusEngineDesc* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (IBusEngineDesc*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+gint list_engine (gchar** argv, int argv_length1) {
+       gint result = 0;
+       static const GOptionEntry options[] = {{"name-only", (gchar) 0, 0, G_OPTION_ARG_NONE, &name_only, "List engine name only", NULL}, {NULL}};
+       GOptionContext* _tmp0_;
+       GOptionContext* option;
+       GOptionContext* _tmp1_;
+       IBusBus* _tmp6_ = NULL;
+       IBusBus* bus;
+       IBusBus* _tmp7_;
+       IBusBus* _tmp10_;
+       GList* _tmp11_ = NULL;
+       GList* engines;
+       gboolean _tmp12_;
+       GHashFunc _tmp16_;
+       GEqualFunc _tmp17_;
+       GHashTable* _tmp18_;
+       GHashTable* map;
+       GList* _tmp19_;
+       GHashTable* _tmp38_;
+       GList* _tmp39_ = NULL;
+       GError * _inner_error_ = NULL;
+       _tmp0_ = g_option_context_new (NULL);
+       option = _tmp0_;
+       _tmp1_ = option;
+       g_option_context_add_main_entries (_tmp1_, options, GETTEXT_PACKAGE);
+       {
+               GOptionContext* _tmp2_;
+               _tmp2_ = option;
+               g_option_context_parse (_tmp2_, &argv_length1, &argv, &_inner_error_);
+               if (_inner_error_ != NULL) {
+                       if (_inner_error_->domain == G_OPTION_ERROR) {
+                               goto __catch0_g_option_error;
+                       }
+                       _g_option_context_free0 (option);
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return 0;
+               }
+       }
+       goto __finally0;
+       __catch0_g_option_error:
+       {
+               GError* e = NULL;
+               FILE* _tmp3_;
+               GError* _tmp4_;
+               const gchar* _tmp5_;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               _tmp3_ = stderr;
+               _tmp4_ = e;
+               _tmp5_ = _tmp4_->message;
+               fprintf (_tmp3_, "%s\n", _tmp5_);
+               result = EXIT_FAILURE;
+               _g_error_free0 (e);
+               _g_option_context_free0 (option);
+               return result;
+       }
+       __finally0:
+       if (_inner_error_ != NULL) {
+               _g_option_context_free0 (option);
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return 0;
+       }
+       _tmp6_ = get_bus ();
+       bus = _tmp6_;
+       _tmp7_ = bus;
+       if (_tmp7_ == NULL) {
+               FILE* _tmp8_;
+               const gchar* _tmp9_ = NULL;
+               _tmp8_ = stderr;
+               _tmp9_ = _ ("Can't connect to IBus.\n");
+               fprintf (_tmp8_, "%s", _tmp9_);
+               result = EXIT_FAILURE;
+               _g_object_unref0 (bus);
+               _g_option_context_free0 (option);
+               return result;
+       }
+       _tmp10_ = bus;
+       _tmp11_ = ibus_bus_list_engines (_tmp10_);
+       engines = _tmp11_;
+       _tmp12_ = name_only;
+       if (_tmp12_) {
+               GList* _tmp13_;
+               _tmp13_ = engines;
+               {
+                       GList* engine_collection = NULL;
+                       GList* engine_it = NULL;
+                       engine_collection = _tmp13_;
+                       for (engine_it = engine_collection; engine_it != NULL; engine_it = engine_it->next) {
+                               IBusEngineDesc* engine = NULL;
+                               engine = (IBusEngineDesc*) engine_it->data;
+                               {
+                                       IBusEngineDesc* _tmp14_;
+                                       const gchar* _tmp15_ = NULL;
+                                       _tmp14_ = engine;
+                                       _tmp15_ = ibus_engine_desc_get_name (_tmp14_);
+                                       g_print ("%s\n", _tmp15_);
+                               }
+                       }
+               }
+               result = EXIT_SUCCESS;
+               _g_list_free0 (engines);
+               _g_object_unref0 (bus);
+               _g_option_context_free0 (option);
+               return result;
+       }
+       _tmp16_ = g_str_hash;
+       _tmp17_ = g_str_equal;
+       _tmp18_ = g_hash_table_new_full (_tmp16_, _tmp17_, _g_free0_, _engine_list_unref0_);
+       map = _tmp18_;
+       _tmp19_ = engines;
+       {
+               GList* engine_collection = NULL;
+               GList* engine_it = NULL;
+               engine_collection = _tmp19_;
+               for (engine_it = engine_collection; engine_it != NULL; engine_it = engine_it->next) {
+                       IBusEngineDesc* engine = NULL;
+                       engine = (IBusEngineDesc*) engine_it->data;
+                       {
+                               GHashTable* _tmp20_;
+                               IBusEngineDesc* _tmp21_;
+                               const gchar* _tmp22_ = NULL;
+                               gconstpointer _tmp23_ = NULL;
+                               EngineList* _tmp24_;
+                               EngineList* list;
+                               EngineList* _tmp25_;
+                               EngineList* _tmp33_;
+                               EngineList* _tmp34_;
+                               IBusEngineDesc** _tmp35_;
+                               gint _tmp35__length1;
+                               IBusEngineDesc* _tmp36_;
+                               IBusEngineDesc* _tmp37_;
+                               _tmp20_ = map;
+                               _tmp21_ = engine;
+                               _tmp22_ = ibus_engine_desc_get_language (_tmp21_);
+                               _tmp23_ = g_hash_table_lookup (_tmp20_, _tmp22_);
+                               _tmp24_ = _engine_list_ref0 ((EngineList*) _tmp23_);
+                               list = _tmp24_;
+                               _tmp25_ = list;
+                               if (_tmp25_ == NULL) {
+                                       EngineList* _tmp26_;
+                                       GHashTable* _tmp27_;
+                                       IBusEngineDesc* _tmp28_;
+                                       const gchar* _tmp29_ = NULL;
+                                       gchar* _tmp30_;
+                                       EngineList* _tmp31_;
+                                       EngineList* _tmp32_;
+                                       _tmp26_ = engine_list_new ();
+                                       _engine_list_unref0 (list);
+                                       list = _tmp26_;
+                                       _tmp27_ = map;
+                                       _tmp28_ = engine;
+                                       _tmp29_ = ibus_engine_desc_get_language (_tmp28_);
+                                       _tmp30_ = g_strdup (_tmp29_);
+                                       _tmp31_ = list;
+                                       _tmp32_ = _engine_list_ref0 (_tmp31_);
+                                       g_hash_table_insert (_tmp27_, _tmp30_, _tmp32_);
+                               }
+                               _tmp33_ = list;
+                               _tmp34_ = list;
+                               _tmp35_ = _tmp34_->data;
+                               _tmp35__length1 = _tmp34_->data_length1;
+                               _tmp36_ = engine;
+                               _tmp37_ = _g_object_ref0 (_tmp36_);
+                               _vala_array_add1 (&_tmp33_->data, &_tmp33_->data_length1, &_tmp33_->_data_size_, _tmp37_);
+                               _engine_list_unref0 (list);
+                       }
+               }
+       }
+       _tmp38_ = map;
+       _tmp39_ = g_hash_table_get_keys (_tmp38_);
+       {
+               GList* language_collection = NULL;
+               GList* language_it = NULL;
+               language_collection = _tmp39_;
+               for (language_it = language_collection; language_it != NULL; language_it = language_it->next) {
+                       const gchar* language = NULL;
+                       language = (const gchar*) language_it->data;
+                       {
+                               GHashTable* _tmp40_;
+                               const gchar* _tmp41_;
+                               gconstpointer _tmp42_ = NULL;
+                               EngineList* _tmp43_;
+                               EngineList* list;
+                               const gchar* _tmp44_ = NULL;
+                               const gchar* _tmp45_;
+                               const gchar* _tmp46_ = NULL;
+                               EngineList* _tmp47_;
+                               IBusEngineDesc** _tmp48_;
+                               gint _tmp48__length1;
+                               _tmp40_ = map;
+                               _tmp41_ = language;
+                               _tmp42_ = g_hash_table_lookup (_tmp40_, _tmp41_);
+                               _tmp43_ = _engine_list_ref0 ((EngineList*) _tmp42_);
+                               list = _tmp43_;
+                               _tmp44_ = _ ("language: %s\n");
+                               _tmp45_ = language;
+                               _tmp46_ = ibus_get_language_name (_tmp45_);
+                               g_print (_tmp44_, _tmp46_);
+                               _tmp47_ = list;
+                               _tmp48_ = _tmp47_->data;
+                               _tmp48__length1 = _tmp47_->data_length1;
+                               {
+                                       IBusEngineDesc** engine_collection = NULL;
+                                       gint engine_collection_length1 = 0;
+                                       gint _engine_collection_size_ = 0;
+                                       gint engine_it = 0;
+                                       engine_collection = _tmp48_;
+                                       engine_collection_length1 = _tmp48__length1;
+                                       for (engine_it = 0; engine_it < _tmp48__length1; engine_it = engine_it + 1) {
+                                               IBusEngineDesc* _tmp49_;
+                                               IBusEngineDesc* engine = NULL;
+                                               _tmp49_ = _g_object_ref0 (engine_collection[engine_it]);
+                                               engine = _tmp49_;
+                                               {
+                                                       IBusEngineDesc* _tmp50_;
+                                                       const gchar* _tmp51_ = NULL;
+                                                       IBusEngineDesc* _tmp52_;
+                                                       const gchar* _tmp53_ = NULL;
+                                                       _tmp50_ = engine;
+                                                       _tmp51_ = ibus_engine_desc_get_name (_tmp50_);
+                                                       _tmp52_ = engine;
+                                                       _tmp53_ = ibus_engine_desc_get_longname (_tmp52_);
+                                                       g_print ("  %s - %s\n", _tmp51_, _tmp53_);
+                                                       _g_object_unref0 (engine);
+                                               }
+                                       }
+                               }
+                               _engine_list_unref0 (list);
+                       }
+               }
+               _g_list_free0 (language_collection);
+       }
+       result = EXIT_SUCCESS;
+       _g_hash_table_unref0 (map);
+       _g_list_free0 (engines);
+       _g_object_unref0 (bus);
+       _g_option_context_free0 (option);
+       return result;
+}
+
+
+static void _vala_array_add2 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add3 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add4 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add5 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add6 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add7 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add8 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+gint exec_setxkbmap (IBusEngineDesc* engine) {
+       gint result = 0;
+       IBusEngineDesc* _tmp0_;
+       const gchar* _tmp1_ = NULL;
+       gchar* _tmp2_;
+       gchar* layout;
+       IBusEngineDesc* _tmp3_;
+       const gchar* _tmp4_ = NULL;
+       gchar* _tmp5_;
+       gchar* variant;
+       IBusEngineDesc* _tmp6_;
+       const gchar* _tmp7_ = NULL;
+       gchar* _tmp8_;
+       gchar* option;
+       gchar* standard_error;
+       gint exit_status;
+       gchar* _tmp9_;
+       gchar** _tmp10_ = NULL;
+       gchar** args;
+       gint args_length1;
+       gint _args_size_;
+       gboolean _tmp11_ = FALSE;
+       gboolean _tmp12_ = FALSE;
+       const gchar* _tmp13_;
+       gboolean _tmp15_;
+       gboolean _tmp17_;
+       gboolean _tmp23_ = FALSE;
+       gboolean _tmp24_ = FALSE;
+       const gchar* _tmp25_;
+       gboolean _tmp27_;
+       gboolean _tmp29_;
+       gboolean _tmp35_ = FALSE;
+       gboolean _tmp36_ = FALSE;
+       const gchar* _tmp37_;
+       gboolean _tmp39_;
+       gboolean _tmp41_;
+       gchar** _tmp49_;
+       gint _tmp49__length1;
+       gint _tmp59_;
+       GError * _inner_error_ = NULL;
+       g_return_val_if_fail (engine != NULL, 0);
+       _tmp0_ = engine;
+       _tmp1_ = ibus_engine_desc_get_layout (_tmp0_);
+       _tmp2_ = g_strdup (_tmp1_);
+       layout = _tmp2_;
+       _tmp3_ = engine;
+       _tmp4_ = ibus_engine_desc_get_layout_variant (_tmp3_);
+       _tmp5_ = g_strdup (_tmp4_);
+       variant = _tmp5_;
+       _tmp6_ = engine;
+       _tmp7_ = ibus_engine_desc_get_layout_option (_tmp6_);
+       _tmp8_ = g_strdup (_tmp7_);
+       option = _tmp8_;
+       standard_error = NULL;
+       exit_status = 0;
+       _tmp9_ = g_strdup ("setxkbmap");
+       _tmp10_ = g_new0 (gchar*, 1 + 1);
+       _tmp10_[0] = _tmp9_;
+       args = _tmp10_;
+       args_length1 = 1;
+       _args_size_ = args_length1;
+       _tmp13_ = layout;
+       if (_tmp13_ != NULL) {
+               const gchar* _tmp14_;
+               _tmp14_ = layout;
+               _tmp12_ = g_strcmp0 (_tmp14_, "") != 0;
+       } else {
+               _tmp12_ = FALSE;
+       }
+       _tmp15_ = _tmp12_;
+       if (_tmp15_) {
+               const gchar* _tmp16_;
+               _tmp16_ = layout;
+               _tmp11_ = g_strcmp0 (_tmp16_, "default") != 0;
+       } else {
+               _tmp11_ = FALSE;
+       }
+       _tmp17_ = _tmp11_;
+       if (_tmp17_) {
+               gchar** _tmp18_;
+               gint _tmp18__length1;
+               gchar* _tmp19_;
+               gchar** _tmp20_;
+               gint _tmp20__length1;
+               const gchar* _tmp21_;
+               gchar* _tmp22_;
+               _tmp18_ = args;
+               _tmp18__length1 = args_length1;
+               _tmp19_ = g_strdup ("-layout");
+               _vala_array_add2 (&args, &args_length1, &_args_size_, _tmp19_);
+               _tmp20_ = args;
+               _tmp20__length1 = args_length1;
+               _tmp21_ = layout;
+               _tmp22_ = g_strdup (_tmp21_);
+               _vala_array_add3 (&args, &args_length1, &_args_size_, _tmp22_);
+       }
+       _tmp25_ = variant;
+       if (_tmp25_ != NULL) {
+               const gchar* _tmp26_;
+               _tmp26_ = variant;
+               _tmp24_ = g_strcmp0 (_tmp26_, "") != 0;
+       } else {
+               _tmp24_ = FALSE;
+       }
+       _tmp27_ = _tmp24_;
+       if (_tmp27_) {
+               const gchar* _tmp28_;
+               _tmp28_ = variant;
+               _tmp23_ = g_strcmp0 (_tmp28_, "default") != 0;
+       } else {
+               _tmp23_ = FALSE;
+       }
+       _tmp29_ = _tmp23_;
+       if (_tmp29_) {
+               gchar** _tmp30_;
+               gint _tmp30__length1;
+               gchar* _tmp31_;
+               gchar** _tmp32_;
+               gint _tmp32__length1;
+               const gchar* _tmp33_;
+               gchar* _tmp34_;
+               _tmp30_ = args;
+               _tmp30__length1 = args_length1;
+               _tmp31_ = g_strdup ("-variant");
+               _vala_array_add4 (&args, &args_length1, &_args_size_, _tmp31_);
+               _tmp32_ = args;
+               _tmp32__length1 = args_length1;
+               _tmp33_ = variant;
+               _tmp34_ = g_strdup (_tmp33_);
+               _vala_array_add5 (&args, &args_length1, &_args_size_, _tmp34_);
+       }
+       _tmp37_ = option;
+       if (_tmp37_ != NULL) {
+               const gchar* _tmp38_;
+               _tmp38_ = option;
+               _tmp36_ = g_strcmp0 (_tmp38_, "") != 0;
+       } else {
+               _tmp36_ = FALSE;
+       }
+       _tmp39_ = _tmp36_;
+       if (_tmp39_) {
+               const gchar* _tmp40_;
+               _tmp40_ = option;
+               _tmp35_ = g_strcmp0 (_tmp40_, "default") != 0;
+       } else {
+               _tmp35_ = FALSE;
+       }
+       _tmp41_ = _tmp35_;
+       if (_tmp41_) {
+               gchar** _tmp42_;
+               gint _tmp42__length1;
+               gchar* _tmp43_;
+               gchar** _tmp44_;
+               gint _tmp44__length1;
+               gchar* _tmp45_;
+               gchar** _tmp46_;
+               gint _tmp46__length1;
+               const gchar* _tmp47_;
+               gchar* _tmp48_;
+               _tmp42_ = args;
+               _tmp42__length1 = args_length1;
+               _tmp43_ = g_strdup ("-option");
+               _vala_array_add6 (&args, &args_length1, &_args_size_, _tmp43_);
+               _tmp44_ = args;
+               _tmp44__length1 = args_length1;
+               _tmp45_ = g_strdup ("-option");
+               _vala_array_add7 (&args, &args_length1, &_args_size_, _tmp45_);
+               _tmp46_ = args;
+               _tmp46__length1 = args_length1;
+               _tmp47_ = option;
+               _tmp48_ = g_strdup (_tmp47_);
+               _vala_array_add8 (&args, &args_length1, &_args_size_, _tmp48_);
+       }
+       _tmp49_ = args;
+       _tmp49__length1 = args_length1;
+       if (_tmp49__length1 == 1) {
+               result = EXIT_FAILURE;
+               args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+               _g_free0 (standard_error);
+               _g_free0 (option);
+               _g_free0 (variant);
+               _g_free0 (layout);
+               return result;
+       }
+       {
+               gchar** _tmp50_;
+               gint _tmp50__length1;
+               gchar* _tmp51_ = NULL;
+               gint _tmp52_ = 0;
+               gboolean _tmp53_ = FALSE;
+               gboolean _tmp54_;
+               _tmp50_ = args;
+               _tmp50__length1 = args_length1;
+               _tmp53_ = g_spawn_sync (NULL, _tmp50_, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &_tmp51_, &_tmp52_, &_inner_error_);
+               _g_free0 (standard_error);
+               standard_error = _tmp51_;
+               exit_status = _tmp52_;
+               _tmp54_ = _tmp53_;
+               if (_inner_error_ != NULL) {
+                       if (_inner_error_->domain == G_SPAWN_ERROR) {
+                               goto __catch1_g_spawn_error;
+                       }
+                       args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+                       _g_free0 (standard_error);
+                       _g_free0 (option);
+                       _g_free0 (variant);
+                       _g_free0 (layout);
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return 0;
+               }
+               if (!_tmp54_) {
+                       IBusEngineDesc* _tmp55_;
+                       const gchar* _tmp56_ = NULL;
+                       _tmp55_ = engine;
+                       _tmp56_ = ibus_engine_desc_get_layout (_tmp55_);
+                       g_warning ("main.vala:126: Switch xkb layout to %s failed.", _tmp56_);
+                       result = EXIT_FAILURE;
+                       args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+                       _g_free0 (standard_error);
+                       _g_free0 (option);
+                       _g_free0 (variant);
+                       _g_free0 (layout);
+                       return result;
+               }
+       }
+       goto __finally1;
+       __catch1_g_spawn_error:
+       {
+               GError* e = NULL;
+               GError* _tmp57_;
+               const gchar* _tmp58_;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               _tmp57_ = e;
+               _tmp58_ = _tmp57_->message;
+               g_warning ("main.vala:131: Execute setxkbmap failed: %s", _tmp58_);
+               result = EXIT_FAILURE;
+               _g_error_free0 (e);
+               args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+               _g_free0 (standard_error);
+               _g_free0 (option);
+               _g_free0 (variant);
+               _g_free0 (layout);
+               return result;
+       }
+       __finally1:
+       if (_inner_error_ != NULL) {
+               args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+               _g_free0 (standard_error);
+               _g_free0 (option);
+               _g_free0 (variant);
+               _g_free0 (layout);
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return 0;
+       }
+       _tmp59_ = exit_status;
+       if (_tmp59_ != 0) {
+               const gchar* _tmp60_;
+               gchar* _tmp61_;
+               gchar* _tmp62_;
+               const gchar* _tmp63_;
+               const gchar* _tmp65_;
+               _tmp60_ = standard_error;
+               _tmp61_ = g_strdup (_tmp60_);
+               _tmp62_ = _tmp61_;
+               _tmp63_ = _tmp62_;
+               if (_tmp63_ == NULL) {
+                       gchar* _tmp64_;
+                       _tmp64_ = g_strdup ("(null)");
+                       _g_free0 (_tmp62_);
+                       _tmp62_ = _tmp64_;
+               }
+               _tmp65_ = _tmp62_;
+               g_warning ("main.vala:136: Execute setxkbmap failed: %s", _tmp65_);
+               result = EXIT_FAILURE;
+               _g_free0 (_tmp62_);
+               args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+               _g_free0 (standard_error);
+               _g_free0 (option);
+               _g_free0 (variant);
+               _g_free0 (layout);
+               return result;
+       }
+       result = EXIT_SUCCESS;
+       args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+       _g_free0 (standard_error);
+       _g_free0 (option);
+       _g_free0 (variant);
+       _g_free0 (layout);
+       return result;
+}
+
+
+gint get_set_engine (gchar** argv, int argv_length1) {
+       gint result = 0;
+       IBusBus* _tmp0_ = NULL;
+       IBusBus* bus;
+       gchar* engine;
+       gchar** _tmp1_;
+       gint _tmp1__length1;
+       const gchar* _tmp5_;
+       IBusBus* _tmp14_;
+       const gchar* _tmp15_;
+       gboolean _tmp16_ = FALSE;
+       IBusBus* _tmp19_;
+       IBusEngineDesc* _tmp20_ = NULL;
+       IBusEngineDesc* _tmp21_;
+       IBusEngineDesc* desc;
+       IBusEngineDesc* _tmp22_;
+       IBusEngineDesc* _tmp25_;
+       gint _tmp26_ = 0;
+       _tmp0_ = get_bus ();
+       bus = _tmp0_;
+       engine = NULL;
+       _tmp1_ = argv;
+       _tmp1__length1 = argv_length1;
+       if (_tmp1__length1 > 1) {
+               gchar** _tmp2_;
+               gint _tmp2__length1;
+               const gchar* _tmp3_;
+               gchar* _tmp4_;
+               _tmp2_ = argv;
+               _tmp2__length1 = argv_length1;
+               _tmp3_ = _tmp2_[1];
+               _tmp4_ = g_strdup (_tmp3_);
+               _g_free0 (engine);
+               engine = _tmp4_;
+       }
+       _tmp5_ = engine;
+       if (_tmp5_ == NULL) {
+               IBusBus* _tmp6_;
+               IBusEngineDesc* _tmp7_ = NULL;
+               IBusEngineDesc* _tmp8_;
+               IBusEngineDesc* desc;
+               IBusEngineDesc* _tmp9_;
+               IBusEngineDesc* _tmp12_;
+               const gchar* _tmp13_ = NULL;
+               _tmp6_ = bus;
+               _tmp7_ = ibus_bus_get_global_engine (_tmp6_);
+               _tmp8_ = _g_object_ref0 (_tmp7_);
+               desc = _tmp8_;
+               _tmp9_ = desc;
+               if (_tmp9_ == NULL) {
+                       FILE* _tmp10_;
+                       const gchar* _tmp11_ = NULL;
+                       _tmp10_ = stderr;
+                       _tmp11_ = _ ("No engine is set.\n");
+                       fprintf (_tmp10_, "%s", _tmp11_);
+                       result = EXIT_FAILURE;
+                       _g_object_unref0 (desc);
+                       _g_free0 (engine);
+                       _g_object_unref0 (bus);
+                       return result;
+               }
+               _tmp12_ = desc;
+               _tmp13_ = ibus_engine_desc_get_name (_tmp12_);
+               g_print ("%s\n", _tmp13_);
+               result = EXIT_SUCCESS;
+               _g_object_unref0 (desc);
+               _g_free0 (engine);
+               _g_object_unref0 (bus);
+               return result;
+       }
+       _tmp14_ = bus;
+       _tmp15_ = engine;
+       _tmp16_ = ibus_bus_set_global_engine (_tmp14_, _tmp15_);
+       if (!_tmp16_) {
+               FILE* _tmp17_;
+               const gchar* _tmp18_ = NULL;
+               _tmp17_ = stderr;
+               _tmp18_ = _ ("Set global engine failed.\n");
+               fprintf (_tmp17_, "%s", _tmp18_);
+               result = EXIT_FAILURE;
+               _g_free0 (engine);
+               _g_object_unref0 (bus);
+               return result;
+       }
+       _tmp19_ = bus;
+       _tmp20_ = ibus_bus_get_global_engine (_tmp19_);
+       _tmp21_ = _g_object_ref0 (_tmp20_);
+       desc = _tmp21_;
+       _tmp22_ = desc;
+       if (_tmp22_ == NULL) {
+               FILE* _tmp23_;
+               const gchar* _tmp24_ = NULL;
+               _tmp23_ = stderr;
+               _tmp24_ = _ ("Get global engine failed.\n");
+               fprintf (_tmp23_, "%s", _tmp24_);
+               result = EXIT_FAILURE;
+               _g_object_unref0 (desc);
+               _g_free0 (engine);
+               _g_object_unref0 (bus);
+               return result;
+       }
+       _tmp25_ = desc;
+       _tmp26_ = exec_setxkbmap (_tmp25_);
+       result = _tmp26_;
+       _g_object_unref0 (desc);
+       _g_free0 (engine);
+       _g_object_unref0 (bus);
+       return result;
+}
+
+
+gint message_watch (gchar** argv, int argv_length1) {
+       gint result = 0;
+       result = EXIT_SUCCESS;
+       return result;
+}
+
+
+gint restart_daemon (gchar** argv, int argv_length1) {
+       gint result = 0;
+       IBusBus* _tmp0_ = NULL;
+       IBusBus* bus;
+       IBusBus* _tmp1_;
+       IBusBus* _tmp4_;
+       _tmp0_ = get_bus ();
+       bus = _tmp0_;
+       _tmp1_ = bus;
+       if (_tmp1_ == NULL) {
+               FILE* _tmp2_;
+               const gchar* _tmp3_ = NULL;
+               _tmp2_ = stderr;
+               _tmp3_ = _ ("Can't connect to IBus.\n");
+               fprintf (_tmp2_, "%s", _tmp3_);
+               result = EXIT_FAILURE;
+               _g_object_unref0 (bus);
+               return result;
+       }
+       _tmp4_ = bus;
+       ibus_bus_exit (_tmp4_, TRUE);
+       result = EXIT_SUCCESS;
+       _g_object_unref0 (bus);
+       return result;
+}
+
+
+gint exit_daemon (gchar** argv, int argv_length1) {
+       gint result = 0;
+       IBusBus* _tmp0_ = NULL;
+       IBusBus* bus;
+       IBusBus* _tmp1_;
+       IBusBus* _tmp4_;
+       _tmp0_ = get_bus ();
+       bus = _tmp0_;
+       _tmp1_ = bus;
+       if (_tmp1_ == NULL) {
+               FILE* _tmp2_;
+               const gchar* _tmp3_ = NULL;
+               _tmp2_ = stderr;
+               _tmp3_ = _ ("Can't connect to IBus.\n");
+               fprintf (_tmp2_, "%s", _tmp3_);
+               result = EXIT_FAILURE;
+               _g_object_unref0 (bus);
+               return result;
+       }
+       _tmp4_ = bus;
+       ibus_bus_exit (_tmp4_, FALSE);
+       result = EXIT_SUCCESS;
+       _g_object_unref0 (bus);
+       return result;
+}
+
+
+gint print_version (gchar** argv, int argv_length1) {
+       gint result = 0;
+       g_print ("IBus %s\n", PACKAGE_VERSION);
+       result = EXIT_SUCCESS;
+       return result;
+}
+
+
+gint read_cache (gchar** argv, int argv_length1) {
+       gint result = 0;
+       static const GOptionEntry options[] = {{"system", (gchar) 0, 0, G_OPTION_ARG_NONE, &is_system, "Read the system registry cache.", NULL}, {"file", (gchar) 0, 0, G_OPTION_ARG_STRING, &cache_file, "Read the registry cache FILE.", "FILE"}, {NULL}};
+       GOptionContext* _tmp0_;
+       GOptionContext* option;
+       GOptionContext* _tmp1_;
+       IBusRegistry* _tmp6_;
+       IBusRegistry* registry;
+       const gchar* _tmp7_;
+       GString* _tmp18_;
+       GString* output;
+       IBusRegistry* _tmp19_;
+       GString* _tmp20_;
+       GString* _tmp21_;
+       const gchar* _tmp22_;
+       GError * _inner_error_ = NULL;
+       _tmp0_ = g_option_context_new (NULL);
+       option = _tmp0_;
+       _tmp1_ = option;
+       g_option_context_add_main_entries (_tmp1_, options, GETTEXT_PACKAGE);
+       {
+               GOptionContext* _tmp2_;
+               _tmp2_ = option;
+               g_option_context_parse (_tmp2_, &argv_length1, &argv, &_inner_error_);
+               if (_inner_error_ != NULL) {
+                       if (_inner_error_->domain == G_OPTION_ERROR) {
+                               goto __catch2_g_option_error;
+                       }
+                       _g_option_context_free0 (option);
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return 0;
+               }
+       }
+       goto __finally2;
+       __catch2_g_option_error:
+       {
+               GError* e = NULL;
+               FILE* _tmp3_;
+               GError* _tmp4_;
+               const gchar* _tmp5_;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               _tmp3_ = stderr;
+               _tmp4_ = e;
+               _tmp5_ = _tmp4_->message;
+               fprintf (_tmp3_, "%s\n", _tmp5_);
+               result = EXIT_FAILURE;
+               _g_error_free0 (e);
+               _g_option_context_free0 (option);
+               return result;
+       }
+       __finally2:
+       if (_inner_error_ != NULL) {
+               _g_option_context_free0 (option);
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return 0;
+       }
+       _tmp6_ = ibus_registry_new ();
+       g_object_ref_sink (_tmp6_);
+       registry = _tmp6_;
+       _tmp7_ = cache_file;
+       if (_tmp7_ != NULL) {
+               IBusRegistry* _tmp8_;
+               const gchar* _tmp9_;
+               gboolean _tmp10_ = FALSE;
+               _tmp8_ = registry;
+               _tmp9_ = cache_file;
+               _tmp10_ = ibus_registry_load_cache_file (_tmp8_, _tmp9_);
+               if (!_tmp10_) {
+                       FILE* _tmp11_;
+                       const gchar* _tmp12_ = NULL;
+                       _tmp11_ = stderr;
+                       _tmp12_ = _ ("The registry cache is invalid.\n");
+                       fprintf (_tmp11_, "%s", _tmp12_);
+                       result = EXIT_FAILURE;
+                       _g_object_unref0 (registry);
+                       _g_option_context_free0 (option);
+                       return result;
+               }
+       } else {
+               IBusRegistry* _tmp13_;
+               gboolean _tmp14_;
+               gboolean _tmp15_ = FALSE;
+               _tmp13_ = registry;
+               _tmp14_ = is_system;
+               _tmp15_ = ibus_registry_load_cache (_tmp13_, !_tmp14_);
+               if (!_tmp15_) {
+                       FILE* _tmp16_;
+                       const gchar* _tmp17_ = NULL;
+                       _tmp16_ = stderr;
+                       _tmp17_ = _ ("The registry cache is invalid.\n");
+                       fprintf (_tmp16_, "%s", _tmp17_);
+                       result = EXIT_FAILURE;
+                       _g_object_unref0 (registry);
+                       _g_option_context_free0 (option);
+                       return result;
+               }
+       }
+       _tmp18_ = g_string_new ("");
+       output = _tmp18_;
+       _tmp19_ = registry;
+       _tmp20_ = output;
+       ibus_registry_output (_tmp19_, _tmp20_, 1);
+       _tmp21_ = output;
+       _tmp22_ = _tmp21_->str;
+       g_print ("%s\n", _tmp22_);
+       result = EXIT_SUCCESS;
+       _g_string_free0 (output);
+       _g_object_unref0 (registry);
+       _g_option_context_free0 (option);
+       return result;
+}
+
+
+gint write_cache (gchar** argv, int argv_length1) {
+       gint result = 0;
+       static const GOptionEntry options[] = {{"system", (gchar) 0, 0, G_OPTION_ARG_NONE, &is_system, "Write the system registry cache.", NULL}, {"file", (gchar) 0, 0, G_OPTION_ARG_STRING, &cache_file, "Write the registry cache FILE.", "FILE"}, {NULL}};
+       GOptionContext* _tmp0_;
+       GOptionContext* option;
+       GOptionContext* _tmp1_;
+       IBusRegistry* _tmp6_;
+       IBusRegistry* registry;
+       IBusRegistry* _tmp7_;
+       const gchar* _tmp8_;
+       gint _tmp14_ = 0;
+       IBusRegistry* _tmp15_;
+       gboolean _tmp16_;
+       gboolean _tmp17_ = FALSE;
+       gint _tmp18_;
+       GError * _inner_error_ = NULL;
+       _tmp0_ = g_option_context_new (NULL);
+       option = _tmp0_;
+       _tmp1_ = option;
+       g_option_context_add_main_entries (_tmp1_, options, GETTEXT_PACKAGE);
+       {
+               GOptionContext* _tmp2_;
+               _tmp2_ = option;
+               g_option_context_parse (_tmp2_, &argv_length1, &argv, &_inner_error_);
+               if (_inner_error_ != NULL) {
+                       if (_inner_error_->domain == G_OPTION_ERROR) {
+                               goto __catch3_g_option_error;
+                       }
+                       _g_option_context_free0 (option);
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return 0;
+               }
+       }
+       goto __finally3;
+       __catch3_g_option_error:
+       {
+               GError* e = NULL;
+               FILE* _tmp3_;
+               GError* _tmp4_;
+               const gchar* _tmp5_;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               _tmp3_ = stderr;
+               _tmp4_ = e;
+               _tmp5_ = _tmp4_->message;
+               fprintf (_tmp3_, "%s\n", _tmp5_);
+               result = EXIT_FAILURE;
+               _g_error_free0 (e);
+               _g_option_context_free0 (option);
+               return result;
+       }
+       __finally3:
+       if (_inner_error_ != NULL) {
+               _g_option_context_free0 (option);
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return 0;
+       }
+       _tmp6_ = ibus_registry_new ();
+       g_object_ref_sink (_tmp6_);
+       registry = _tmp6_;
+       _tmp7_ = registry;
+       ibus_registry_load (_tmp7_);
+       _tmp8_ = cache_file;
+       if (_tmp8_ != NULL) {
+               gint _tmp9_ = 0;
+               IBusRegistry* _tmp10_;
+               const gchar* _tmp11_;
+               gboolean _tmp12_ = FALSE;
+               gint _tmp13_;
+               _tmp10_ = registry;
+               _tmp11_ = cache_file;
+               _tmp12_ = ibus_registry_save_cache_file (_tmp10_, _tmp11_);
+               if (_tmp12_) {
+                       _tmp9_ = EXIT_SUCCESS;
+               } else {
+                       _tmp9_ = EXIT_FAILURE;
+               }
+               _tmp13_ = _tmp9_;
+               result = _tmp13_;
+               _g_object_unref0 (registry);
+               _g_option_context_free0 (option);
+               return result;
+       }
+       _tmp15_ = registry;
+       _tmp16_ = is_system;
+       _tmp17_ = ibus_registry_save_cache (_tmp15_, !_tmp16_);
+       if (_tmp17_) {
+               _tmp14_ = EXIT_SUCCESS;
+       } else {
+               _tmp14_ = EXIT_FAILURE;
+       }
+       _tmp18_ = _tmp14_;
+       result = _tmp18_;
+       _g_object_unref0 (registry);
+       _g_option_context_free0 (option);
+       return result;
+}
+
+
+gint print_address (gchar** argv, int argv_length1) {
+       gint result = 0;
+       const gchar* _tmp0_ = NULL;
+       _tmp0_ = ibus_get_address ();
+       g_print ("%s\n", _tmp0_);
+       result = EXIT_SUCCESS;
+       return result;
+}
+
+
+gint print_help (gchar** argv, int argv_length1) {
+       gint result = 0;
+       FILE* _tmp0_;
+       _tmp0_ = stdout;
+       print_usage (_tmp0_);
+       result = EXIT_SUCCESS;
+       return result;
+}
+
+
+CommandEntry* command_entry_dup (const CommandEntry* self) {
+       CommandEntry* dup;
+       dup = g_new0 (CommandEntry, 1);
+       memcpy (dup, self, sizeof (CommandEntry));
+       return dup;
+}
+
+
+void command_entry_free (CommandEntry* self) {
+       g_free (self);
+}
+
+
+GType command_entry_get_type (void) {
+       static volatile gsize command_entry_type_id__volatile = 0;
+       if (g_once_init_enter (&command_entry_type_id__volatile)) {
+               GType command_entry_type_id;
+               command_entry_type_id = g_boxed_type_register_static ("CommandEntry", (GBoxedCopyFunc) command_entry_dup, (GBoxedFreeFunc) command_entry_free);
+               g_once_init_leave (&command_entry_type_id__volatile, command_entry_type_id);
+       }
+       return command_entry_type_id__volatile;
+}
+
+
+static gint _get_set_engine_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = get_set_engine (argv, argv_length1);
+       return result;
+}
+
+
+static gint _exit_daemon_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = exit_daemon (argv, argv_length1);
+       return result;
+}
+
+
+static gint _list_engine_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = list_engine (argv, argv_length1);
+       return result;
+}
+
+
+static gint _message_watch_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = message_watch (argv, argv_length1);
+       return result;
+}
+
+
+static gint _restart_daemon_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = restart_daemon (argv, argv_length1);
+       return result;
+}
+
+
+static gint _print_version_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = print_version (argv, argv_length1);
+       return result;
+}
+
+
+static gint _read_cache_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = read_cache (argv, argv_length1);
+       return result;
+}
+
+
+static gint _write_cache_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = write_cache (argv, argv_length1);
+       return result;
+}
+
+
+static gint _print_address_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = print_address (argv, argv_length1);
+       return result;
+}
+
+
+static gint _print_help_entry_func (gchar** argv, int argv_length1, gpointer self) {
+       gint result;
+       result = print_help (argv, argv_length1);
+       return result;
+}
+
+
+void print_usage (FILE* stream) {
+       FILE* _tmp0_;
+       const gchar* _tmp1_ = NULL;
+       const gchar* _tmp2_;
+       FILE* _tmp3_;
+       const gchar* _tmp4_ = NULL;
+       g_return_if_fail (stream != NULL);
+       _tmp0_ = stream;
+       _tmp1_ = _ ("Usage: %s COMMAND [OPTION...]\n\n");
+       _tmp2_ = program_name;
+       fprintf (_tmp0_, _tmp1_, _tmp2_);
+       _tmp3_ = stream;
+       _tmp4_ = _ ("Commands:\n");
+       fprintf (_tmp3_, "%s", _tmp4_);
+       {
+               gint i;
+               i = 0;
+               {
+                       gboolean _tmp5_;
+                       _tmp5_ = TRUE;
+                       while (TRUE) {
+                               gboolean _tmp6_;
+                               gint _tmp8_;
+                               FILE* _tmp9_;
+                               gint _tmp10_;
+                               CommandEntry _tmp11_;
+                               const gchar* _tmp12_;
+                               gint _tmp13_;
+                               CommandEntry _tmp14_;
+                               const gchar* _tmp15_;
+                               const gchar* _tmp16_ = NULL;
+                               _tmp6_ = _tmp5_;
+                               if (!_tmp6_) {
+                                       gint _tmp7_;
+                                       _tmp7_ = i;
+                                       i = _tmp7_ + 1;
+                               }
+                               _tmp5_ = FALSE;
+                               _tmp8_ = i;
+                               if (!(_tmp8_ < G_N_ELEMENTS (commands))) {
+                                       break;
+                               }
+                               _tmp9_ = stream;
+                               _tmp10_ = i;
+                               _tmp11_ = commands[_tmp10_];
+                               _tmp12_ = _tmp11_.name;
+                               _tmp13_ = i;
+                               _tmp14_ = commands[_tmp13_];
+                               _tmp15_ = _tmp14_.description;
+                               _tmp16_ = g_dgettext (NULL, _tmp15_);
+                               fprintf (_tmp9_, "  %-11s    %s\n", _tmp12_, _tmp16_);
+                       }
+               }
+       }
+}
+
+
+static gchar** _vala_array_dup1 (gchar** self, int length) {
+       gchar** result;
+       int i;
+       result = g_new0 (gchar*, length + 1);
+       for (i = 0; i < length; i++) {
+               gchar* _tmp0_;
+               _tmp0_ = g_strdup (self[i]);
+               result[i] = _tmp0_;
+       }
+       return result;
+}
+
+
+gint _vala_main (gchar** argv, int argv_length1) {
+       gint result = 0;
+       gchar** _tmp0_;
+       gint _tmp0__length1;
+       const gchar* _tmp1_;
+       gchar* _tmp2_ = NULL;
+       gchar** _tmp3_;
+       gint _tmp3__length1;
+       gchar** _tmp5_;
+       gint _tmp5__length1;
+       gchar** _tmp6_;
+       gint _tmp6__length1;
+       gchar** _tmp7_;
+       gint _tmp7__length1;
+       gchar** new_argv;
+       gint new_argv_length1;
+       gint _new_argv_size_;
+       gchar** _tmp8_;
+       gint _tmp8__length1;
+       const gchar* _tmp9_;
+       gchar** _tmp10_;
+       gint _tmp10__length1;
+       const gchar* _tmp11_;
+       gchar* _tmp12_ = NULL;
+       gchar* _tmp13_;
+       FILE* _tmp28_;
+       const gchar* _tmp29_ = NULL;
+       gchar** _tmp30_;
+       gint _tmp30__length1;
+       const gchar* _tmp31_;
+       FILE* _tmp32_;
+       setlocale (LC_ALL, "");
+       bindtextdomain (GETTEXT_PACKAGE, GLIB_LOCALE_DIR);
+       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+       textdomain (GETTEXT_PACKAGE);
+       ibus_init ();
+       _tmp0_ = argv;
+       _tmp0__length1 = argv_length1;
+       _tmp1_ = _tmp0_[0];
+       _tmp2_ = g_path_get_basename (_tmp1_);
+       _g_free0 (program_name);
+       program_name = _tmp2_;
+       _tmp3_ = argv;
+       _tmp3__length1 = argv_length1;
+       if (_tmp3__length1 < 2) {
+               FILE* _tmp4_;
+               _tmp4_ = stderr;
+               print_usage (_tmp4_);
+               result = EXIT_FAILURE;
+               return result;
+       }
+       _tmp5_ = argv;
+       _tmp5__length1 = argv_length1;
+       _tmp6_ = argv;
+       _tmp6__length1 = argv_length1;
+       _tmp7_ = ((_tmp5_ + 1) != NULL) ? _vala_array_dup1 (_tmp5_ + 1, _tmp6__length1 - 1) : ((gpointer) (_tmp5_ + 1));
+       _tmp7__length1 = _tmp6__length1 - 1;
+       new_argv = _tmp7_;
+       new_argv_length1 = _tmp7__length1;
+       _new_argv_size_ = new_argv_length1;
+       _tmp8_ = new_argv;
+       _tmp8__length1 = new_argv_length1;
+       _tmp9_ = program_name;
+       _tmp10_ = new_argv;
+       _tmp10__length1 = new_argv_length1;
+       _tmp11_ = _tmp10_[0];
+       _tmp12_ = g_strdup_printf ("%s %s", _tmp9_, _tmp11_);
+       _g_free0 (_tmp8_[0]);
+       _tmp8_[0] = _tmp12_;
+       _tmp13_ = _tmp8_[0];
+       {
+               gint i;
+               i = 0;
+               {
+                       gboolean _tmp14_;
+                       _tmp14_ = TRUE;
+                       while (TRUE) {
+                               gboolean _tmp15_;
+                               gint _tmp17_;
+                               gint _tmp18_;
+                               CommandEntry _tmp19_;
+                               const gchar* _tmp20_;
+                               gchar** _tmp21_;
+                               gint _tmp21__length1;
+                               const gchar* _tmp22_;
+                               _tmp15_ = _tmp14_;
+                               if (!_tmp15_) {
+                                       gint _tmp16_;
+                                       _tmp16_ = i;
+                                       i = _tmp16_ + 1;
+                               }
+                               _tmp14_ = FALSE;
+                               _tmp17_ = i;
+                               if (!(_tmp17_ < G_N_ELEMENTS (commands))) {
+                                       break;
+                               }
+                               _tmp18_ = i;
+                               _tmp19_ = commands[_tmp18_];
+                               _tmp20_ = _tmp19_.name;
+                               _tmp21_ = argv;
+                               _tmp21__length1 = argv_length1;
+                               _tmp22_ = _tmp21_[1];
+                               if (g_strcmp0 (_tmp20_, _tmp22_) == 0) {
+                                       gint _tmp23_;
+                                       CommandEntry _tmp24_;
+                                       EntryFunc _tmp25_;
+                                       void* _tmp25__target;
+                                       gchar** _tmp26_;
+                                       gint _tmp26__length1;
+                                       gint _tmp27_ = 0;
+                                       _tmp23_ = i;
+                                       _tmp24_ = commands[_tmp23_];
+                                       _tmp25_ = _tmp24_.entry;
+                                       _tmp25__target = _tmp24_.entry_target;
+                                       _tmp26_ = new_argv;
+                                       _tmp26__length1 = new_argv_length1;
+                                       _tmp27_ = _tmp25_ (_tmp26_, _tmp26__length1, _tmp25__target);
+                                       result = _tmp27_;
+                                       new_argv = (_vala_array_free (new_argv, new_argv_length1, (GDestroyNotify) g_free), NULL);
+                                       return result;
+                               }
+                       }
+               }
+       }
+       _tmp28_ = stderr;
+       _tmp29_ = _ ("%s is unknown command!\n");
+       _tmp30_ = argv;
+       _tmp30__length1 = argv_length1;
+       _tmp31_ = _tmp30_[1];
+       fprintf (_tmp28_, _tmp29_, _tmp31_);
+       _tmp32_ = stderr;
+       print_usage (_tmp32_);
+       result = EXIT_FAILURE;
+       new_argv = (_vala_array_free (new_argv, new_argv_length1, (GDestroyNotify) g_free), NULL);
+       return result;
+}
+
+
+int main (int argc, char ** argv) {
+       g_type_init ();
+       return _vala_main (argv, argc);
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       if ((array != NULL) && (destroy_func != NULL)) {
+               int i;
+               for (i = 0; i < array_length; i = i + 1) {
+                       if (((gpointer*) array)[i] != NULL) {
+                               destroy_func (((gpointer*) array)[i]);
+                       }
+               }
+       }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       _vala_array_destroy (array, array_length, destroy_func);
+       g_free (array);
+}
+
+
+
diff --git a/ui/Makefile.in b/ui/Makefile.in
new file mode 100644 (file)
index 0000000..f9e8c3e
--- /dev/null
@@ -0,0 +1,762 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = ui
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = gtk3
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@ENABLE_GTK3_TRUE@GTK3_UI = gtk3
+SUBDIRS = \
+       $(GTK3_UI) \
+       $(NULL)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ui/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu ui/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/ui/gtk2/Makefile.am b/ui/gtk2/Makefile.am
deleted file mode 100644 (file)
index 7824bfe..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-# vim:set noet ts=4:
-#
-# ibus - The Input Bus
-#
-# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright (c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-ui_gtk_PYTHON = \
-       candidatepanel.py \
-       handle.py \
-       i18n.py \
-       icon.py \
-       languagebar.py \
-       main.py \
-       menu.py \
-       notifications.py \
-       panel.py \
-       propitem.py \
-       toolitem.py \
-       engineabout.py \
-       $(NULL)
-ui_gtkdir = $(pkgdatadir)/ui/gtk
-
-libexec_SCRIPTS = \
-       ibus-ui-gtk \
-       $(NULL)
-
-component_DATA = \
-       gtkpanel.xml \
-       $(NULL)
-componentdir = $(pkgdatadir)/component
-
-CLEANFILES = \
-       gtkpanel.xml \
-       *.pyc \
-       $(NULL)
-
-EXTRA_DIST = \
-       ibus-ui-gtk.in \
-       gtkpanel.xml.in \
-       $(NULL)
-
-gtkpanel.xml: gtkpanel.xml.in
-       $(AM_V_GEN) sed \
-               -e 's|@VERSION[@]|$(VERSION)|g' \
-               -e 's|@libexecdir[@]|$(libexecdir)|g' $< > $@.tmp && \
-               mv $@.tmp $@
-
-test:
-       $(ENV) DBUS_DEBUG=true \
-               IBUS_PREFIX=@prefix@ \
-               IBUS_DATAROOTDIR=@datarootdir@ \
-               IBUS_LOCALEDIR=@localedir@ \
-               PYTHONPATH=$(top_srcdir) \
-               $(PYTHON) $(srcdir)/main.py --replace
-
--include $(top_srcdir)/git.mk
diff --git a/ui/gtk2/candidatepanel.py b/ui/gtk2/candidatepanel.py
deleted file mode 100644 (file)
index 374f964..0000000
+++ /dev/null
@@ -1,524 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright(c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import operator
-import gtk
-import gtk.gdk as gdk
-import gobject
-import pango
-import ibus
-from ibus._gtk import PangoAttrList
-from handle import Handle
-from i18n import _, N_
-
-class EventBox(gtk.EventBox):
-    __gtype_name__ = "IBusEventBox"
-    def __init__(self):
-        super(EventBox, self).__init__()
-        self.connect("realize", self.__realize_cb)
-
-    def __realize_cb(self, widget):
-        widget.window.set_cursor(gdk.Cursor(gdk.HAND2))
-
-class Label(gtk.Label):
-    __gtype_name__ = "IBusCandidateLabel"
-
-class HSeparator(gtk.HBox):
-    __gtype_name__ = "IBusHSeparator"
-    def __init__(self):
-        super(HSeparator, self).__init__()
-        self.pack_start(gtk.HSeparator(), True, True, 4)
-
-class VSeparator(gtk.VBox):
-    __gtype_name__ = "IBusVSeparator"
-    def __init__(self):
-        super(VSeparator, self).__init__()
-        self.pack_start(gtk.VSeparator(), True, True, 4)
-
-class CandidateArea(gtk.HBox):
-    __gtype_name__ = "IBusCandidateArea"
-    __gsignals__ = {
-        "candidate-clicked" : (
-            gobject.SIGNAL_RUN_FIRST,
-            gobject.TYPE_NONE,
-            (gobject.TYPE_UINT, gobject.TYPE_UINT, gobject.TYPE_UINT )),
-    }
-
-    def __init__(self, orientation):
-        super(CandidateArea, self).__init__()
-        self.set_name("IBusCandidateArea")
-        self.__orientation = orientation
-        self.__labels = []
-        self.__candidates = []
-        self.__create_ui()
-
-    def __create_ui(self):
-        if self.__orientation == ibus.ORIENTATION_VERTICAL:
-            self.__vbox1 = gtk.VBox()
-            self.__vbox1.set_homogeneous(True)
-            self.__vbox2 = gtk.VBox()
-            self.__vbox2.set_homogeneous(True)
-            self.pack_start(self.__vbox1, False, False, 4)
-            self.pack_start(VSeparator(), False, False, 0)
-            self.pack_start(self.__vbox2, True, True, 4)
-
-        for i in range(0, 16):
-            label1 = Label("%c." % ("1234567890abcdef"[i]))
-            label1.set_alignment(0.0, 0.5)
-            label1.show()
-
-            label2 = Label()
-            label2.set_alignment(0.0, 0.5)
-            label1.show()
-
-            if self.__orientation == ibus.ORIENTATION_VERTICAL:
-                label1.set_property("xpad", 8)
-                label2.set_property("xpad", 8)
-                ebox1 = EventBox()
-                ebox1.set_no_show_all(True)
-                ebox1.add(label1)
-                ebox2 = EventBox()
-                ebox2.set_no_show_all(True)
-                ebox2.add(label2)
-                self.__vbox1.pack_start(ebox1, False, False, 2)
-                self.__vbox2.pack_start(ebox2, False, False, 2)
-                self.__candidates.append((ebox1, ebox2))
-            else:
-                hbox = gtk.HBox()
-                hbox.show()
-                hbox.pack_start(label1, False, False, 1)
-                hbox.pack_start(label2, False, False, 1)
-                ebox = EventBox()
-                ebox.set_no_show_all(True)
-                ebox.add(hbox)
-                self.pack_start(ebox, False, False, 4)
-                self.__candidates.append((ebox,))
-
-            self.__labels.append((label1, label2))
-
-        for i, ws in enumerate(self.__candidates):
-            for w in ws:
-                w.connect("button-press-event", lambda w, e, i:self.emit("candidate-clicked", i, e.button, e.state), i)
-
-    def set_labels(self, labels):
-        if not labels:
-            for i in xrange(0, 16):
-                self.__labels[i][0].set_text("%c." % ("1234567890abcdef"[i]))
-                self.__labels[i][0].set_property("attributes", None)
-            return
-
-        i = 0
-        for text, attrs in labels:
-            self.__labels[i][0].set_text(text)
-            self.__labels[i][0].set_property("attributes", attrs)
-            i += 1
-            if i >= 16:
-                break
-
-    def set_candidates(self, candidates, focus_candidate = 0, show_cursor = True):
-        assert len(candidates) <= len(self.__labels)
-        for i, (text, attrs) in enumerate(candidates):
-            if i == focus_candidate and show_cursor:
-                if attrs == None:
-                    attrs = pango.AttrList()
-                color = self.__labels[i][1].style.base[gtk.STATE_SELECTED]
-                end_index = len(text.encode("utf8"))
-                attr = pango.AttrBackground(color.red, color.green, color.blue, 0, end_index)
-                attrs.change(attr)
-                color = self.__labels[i][1].style.text[gtk.STATE_SELECTED]
-                attr = pango.AttrForeground(color.red, color.green, color.blue, 0, end_index)
-                attrs.insert(attr)
-
-            self.__labels[i][1].set_text(text)
-            self.__labels[i][1].show()
-            self.__labels[i][1].set_property("attributes", attrs)
-            for w in self.__candidates[i]:
-                w.show()
-
-        for w in reduce(operator.add, self.__candidates[len(candidates):]):
-            w.hide()
-
-class CandidatePanel(gtk.VBox):
-    __gtype_name__ = "IBusCandidate"
-    __gsignals__ = {
-        "cursor-up" : (
-            gobject.SIGNAL_RUN_FIRST,
-            gobject.TYPE_NONE,
-            ()),
-        "cursor-down" : (
-            gobject.SIGNAL_RUN_FIRST,
-            gobject.TYPE_NONE,
-            ()),
-        "page-up" : (
-            gobject.SIGNAL_RUN_FIRST,
-            gobject.TYPE_NONE,
-            ()),
-        "page-down" : (
-            gobject.SIGNAL_RUN_FIRST,
-            gobject.TYPE_NONE,
-            ()),
-        "candidate-clicked" : (
-            gobject.SIGNAL_RUN_FIRST,
-            gobject.TYPE_NONE,
-            (gobject.TYPE_UINT, gobject.TYPE_UINT, gobject.TYPE_UINT)),
-    }
-
-    def __init__(self):
-        super(CandidatePanel, self).__init__()
-        self.set_name("IBusCandidate")
-
-        self.__toplevel = gtk.Window(gtk.WINDOW_POPUP)
-        self.__viewport = gtk.Viewport()
-        self.__viewport.set_shadow_type(gtk.SHADOW_IN)
-        self.__toplevel.add(self.__viewport)
-
-        hbox = gtk.HBox()
-        handle = Handle()
-        handle.connect("move-end", self.__handle_move_end_cb)
-        hbox.pack_start(handle)
-        hbox.pack_start(self)
-
-        self.__viewport.add(hbox)
-        self.__toplevel.add_events(
-            gdk.BUTTON_PRESS_MASK | \
-            gdk.BUTTON_RELEASE_MASK | \
-            gdk.BUTTON1_MOTION_MASK)
-        self.__toplevel.connect("size-allocate", lambda w, a: self.__check_position())
-
-        self.__orientation = ibus.ORIENTATION_VERTICAL
-        self.__current_orientation = self.__orientation
-        self.__preedit_visible = False
-        self.__aux_string_visible = False
-        self.__lookup_table_visible = False
-        self.__preedit_string = ""
-        self.__preedit_attrs = pango.AttrList()
-        self.__aux_string = ""
-        self.__aux_attrs = pango.AttrList()
-        self.__lookup_table = None
-
-        self.__cursor_location = (0, 0, 0, 0)
-        self.__moved_cursor_location = None
-
-        self.__recreate_ui()
-
-    def __handle_move_end_cb(self, handle):
-        # store moved location
-        self.__moved_cursor_location = self.__toplevel.get_position() + (self.__cursor_location[2], self.__cursor_location[3])
-
-    def __recreate_ui(self):
-        for w in self:
-            self.remove(w)
-            w.destroy()
-        # create preedit label
-        self.__preedit_label = Label(self.__preedit_string)
-        self.__preedit_label.set_attributes(self.__preedit_attrs)
-        self.__preedit_label.set_alignment(0.0, 0.5)
-        self.__preedit_label.set_padding(8, 0)
-        self.__preedit_label.set_no_show_all(True)
-        if self.__preedit_visible:
-            self.__preedit_label.show()
-
-        # create aux label
-        self.__aux_label = Label(self.__aux_string)
-        self.__aux_label.set_attributes(self.__aux_attrs)
-        self.__aux_label.set_alignment(0.0, 0.5)
-        self.__aux_label.set_padding(8, 0)
-        self.__aux_label.set_no_show_all(True)
-        if self.__aux_string_visible:
-            self.__aux_label.show()
-
-        # create candidates area
-        self.__candidate_area = CandidateArea(self.__current_orientation)
-        self.__candidate_area.set_no_show_all(True)
-        self.__candidate_area.connect("candidate-clicked", lambda x, i, b, s: self.emit("candidate-clicked", i, b, s))
-        # self.update_lookup_table(self.__lookup_table, self.__lookup_table_visible)
-
-        # create state label
-        self.__state_label = Label()
-        self.__state_label.set_size_request(20, -1)
-
-        # create buttons
-        self.__prev_button = gtk.Button()
-        self.__prev_button.connect("clicked", lambda x: self.emit("page-up"))
-        self.__prev_button.set_relief(gtk.RELIEF_NONE)
-        self.__prev_button.set_tooltip_text(_("Previous page"))
-
-        self.__next_button = gtk.Button()
-        self.__next_button.connect("clicked", lambda x: self.emit("page-down"))
-        self.__next_button.set_relief(gtk.RELIEF_NONE)
-        self.__next_button.set_tooltip_text(_("Next page"))
-
-        self.__pack_all_widgets()
-
-    def __pack_all_widgets(self):
-        if self.__current_orientation == ibus.ORIENTATION_VERTICAL:
-            # package all widgets in vertical mode
-            image = gtk.Image()
-            image.set_from_stock(gtk.STOCK_GO_UP, gtk.ICON_SIZE_MENU)
-            self.__prev_button.set_image(image)
-
-            image = gtk.Image()
-            image.set_from_stock(gtk.STOCK_GO_DOWN, gtk.ICON_SIZE_MENU)
-            self.__next_button.set_image(image)
-
-            vbox = gtk.VBox()
-            vbox.pack_start(self.__preedit_label, False, False, 0)
-            vbox.pack_start(self.__aux_label, False, False, 0)
-            self.pack_start(vbox, False, False, 5)
-            self.pack_start(HSeparator(), False, False)
-            self.pack_start(self.__candidate_area, False, False, 2)
-            self.pack_start(HSeparator(), False, False)
-            hbox= gtk.HBox()
-            hbox.pack_start(self.__state_label, True, True)
-            hbox.pack_start(VSeparator(), False, False)
-            hbox.pack_start(self.__prev_button, False, False, 2)
-            hbox.pack_start(self.__next_button, False, False, 2)
-            self.pack_start(hbox, False, False)
-        else:
-            # package all widgets in HORIZONTAL mode
-            image = gtk.Image()
-            image.set_from_stock(gtk.STOCK_GO_UP, gtk.ICON_SIZE_MENU)
-            self.__prev_button.set_image(image)
-
-            image = gtk.Image()
-            image.set_from_stock(gtk.STOCK_GO_DOWN, gtk.ICON_SIZE_MENU)
-            self.__next_button.set_image(image)
-
-            vbox = gtk.VBox()
-            vbox.pack_start(self.__preedit_label, False, False, 0)
-            vbox.pack_start(self.__aux_label, False, False, 0)
-            self.pack_start(vbox, False, False, 5)
-            self.pack_start(HSeparator(), False, False)
-            hbox = gtk.HBox()
-            hbox.pack_start(self.__candidate_area, True, True, 2)
-            hbox.pack_start(VSeparator(), False, False)
-            hbox.pack_start(self.__prev_button, False, False, 2)
-            hbox.pack_start(self.__next_button, False, False, 2)
-            self.pack_start(hbox, False, False)
-
-        # self.hide_all()
-        # self.show_all()
-
-    def show_preedit_text(self):
-        self.__preedit_visible = True
-        self.__preedit_label.show()
-        self.__check_show_states()
-
-    def hide_preedit_text(self):
-        self.__preedit_visible = False
-        self.__preedit_label.hide()
-        self.__check_show_states()
-
-    def update_preedit_text(self, text, cursor_pos, visible):
-        attrs = PangoAttrList(text.attributes, text.text)
-        if visible:
-            self.show_preedit_text()
-        else:
-            self.hide_preedit_text()
-        self.__preedit_stribg = text.text
-        self.__preedit_label.set_text(text.text)
-        self.__preedit_attrs = attrs
-        self.__preedit_label.set_attributes(attrs)
-
-    def show_auxiliary_text(self):
-        self.__aux_string_visible = True
-        self.__aux_label.show()
-        self.__check_show_states()
-
-    def hide_auxiliary_text(self):
-        self.__aux_string_visible = False
-        self.__aux_label.hide()
-        self.__check_show_states()
-
-    def update_auxiliary_text(self, text, show):
-        attrs = PangoAttrList(text.attributes, text.text)
-
-        if show:
-            self.show_auxiliary_text()
-        else:
-            self.hide_auxiliary_text()
-
-        self.__aux_string = text.text
-        self.__aux_label.set_text(text.text)
-        self.__aux_attrs = attrs
-        self.__aux_label.set_attributes(attrs)
-
-    def __refresh_labels(self):
-        labels = self.__lookup_table.get_labels()
-        if labels:
-            labels = map(lambda x: (x.text, PangoAttrList(x.attributes, x.text)), labels)
-        else:
-            labels = None
-        self.__candidate_area.set_labels(labels)
-
-
-    def __refresh_candidates(self):
-        candidates = self.__lookup_table.get_candidates_in_current_page()
-        candidates = map(lambda x: (x.text, PangoAttrList(x.attributes, x.text)), candidates)
-        self.__candidate_area.set_candidates(candidates,
-                self.__lookup_table.get_cursor_pos_in_current_page(),
-                self.__lookup_table.is_cursor_visible()
-                )
-
-    def update_lookup_table(self, lookup_table, visible):
-        # hide lookup table
-        if not visible:
-            self.hide_lookup_table()
-
-        self.__lookup_table = lookup_table or ibus.LookupTable()
-        orientation = self.__lookup_table.get_orientation()
-        if orientation not in (ibus.ORIENTATION_HORIZONTAL, ibus.ORIENTATION_VERTICAL):
-            orientation = self.__orientation
-        self.set_current_orientation(orientation)
-        self.__refresh_candidates()
-        self.__refresh_labels()
-
-        # show lookup table
-        if visible:
-            self.show_lookup_table()
-
-    def show_lookup_table(self):
-        self.__lookup_table_visible = True
-        self.__candidate_area.set_no_show_all(False)
-        self.__candidate_area.show_all()
-        self.__check_show_states()
-
-    def hide_lookup_table(self):
-        self.__lookup_table_visible = False
-        self.__candidate_area.hide_all()
-        self.__candidate_area.set_no_show_all(True)
-        self.__check_show_states()
-
-    def page_up_lookup_table(self):
-        self.__lookup_table.page_up()
-        self.__refresh_candidates()
-
-    def page_down_lookup_table(self):
-        self.__lookup_table.page_down()
-        self.__refresh_candidates()
-
-    def cursor_up_lookup_table(self):
-        self.__lookup_table.cursor_up()
-        self.__refresh_candidates()
-
-    def cursor_down_lookup_table(self):
-        self.__lookup_table.cursor_down()
-        self.__refresh_candidates()
-
-    def set_cursor_location(self, x, y, w, h):
-        # if cursor location is changed, we reset the moved cursor location
-        if self.__cursor_location != (x, y, w, h):
-            self.__cursor_location = (x, y, w, h)
-            self.__moved_cursor_location = None
-            self.__check_position()
-
-    def __check_show_states(self):
-        if self.__preedit_visible or \
-            self.__aux_string_visible or \
-            self.__lookup_table_visible:
-            self.show_all()
-            self.emit("show")
-        else:
-            self.hide_all()
-            self.emit("hide")
-
-    def reset(self):
-        self.update_preedit_text(ibus.Text(""), 0, False)
-        self.update_auxiliary_text(ibus.Text(""), False)
-        self.update_lookup_table(None, False)
-        self.hide()
-
-    def set_current_orientation(self, orientation):
-        if self.__current_orientation == orientation:
-            return
-        self.__current_orientation = orientation
-        self.__recreate_ui()
-        if self.__toplevel.flags() & gtk.VISIBLE:
-            self.show_all()
-
-    def set_orientation(self, orientation):
-        self.__orientation = orientation
-        self.update_lookup_table(self.__lookup_table, self.__lookup_table_visible)
-
-    def get_current_orientation(self):
-        return self.__current_orientation
-
-    # def do_expose_event(self, event):
-    #     self.style.paint_box(self.window,
-    #                 gtk.STATE_NORMAL,
-    #                 gtk.SHADOW_IN,
-    #                 event.area,
-    #                 self,
-    #                 "panel",
-    #                 self.allocation.x, self.allocation.y,
-    #                 self.allocation.width, self.allocation.height)
-
-    #     gtk.VBox.do_expose_event(self, event)
-
-    def do_size_request(self, requisition):
-        gtk.VBox.do_size_request(self, requisition)
-        self.__toplevel.resize(1, 1)
-
-    def __check_position(self):
-        cursor_location = self.__moved_cursor_location or self.__cursor_location
-
-        cursor_right = cursor_location[0] + cursor_location[2]
-        cursor_bottom = cursor_location[1] + cursor_location[3]
-
-        window_right = cursor_right + self.__toplevel.allocation.width
-        window_bottom = cursor_bottom + self.__toplevel.allocation.height
-
-        root_window = gdk.get_default_root_window()
-        sx, sy = root_window.get_size()
-
-        if window_right > sx:
-            x = sx - self.__toplevel.allocation.width
-        else:
-            x = cursor_right
-
-        if window_bottom > sy:
-            # move the window just above the cursor so the window and a preedit string do not overlap.
-            y = cursor_location[1] - self.__toplevel.allocation.height
-        else:
-            y = cursor_bottom
-
-        self.move(x, y)
-
-    def show_all(self):
-        gtk.VBox.show_all(self)
-        self.__toplevel.show_all()
-
-    def hide_all(self):
-        gtk.VBox.hide_all(self)
-        self.__toplevel.hide_all()
-
-    def move(self, x, y):
-        self.__toplevel.move(x, y)
-
-if __name__ == "__main__":
-    table = ibus.LookupTable()
-    table.append_candidate(ibus.Text("AAA"))
-    table.append_candidate(ibus.Text("BBB"))
-    cp = CandidatePanel()
-    cp.show_all()
-    cp.update_lookup_table(table, True)
-    gtk.main()
diff --git a/ui/gtk2/engineabout.py b/ui/gtk2/engineabout.py
deleted file mode 100644 (file)
index 0b6cd2d..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright (c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import gtk
-from gtk import gdk
-import pango
-import ibus
-
-from i18n import _, N_
-
-class EngineAbout(gtk.Dialog):
-    def __init__(self, enginedesc):
-        self.__engine_desc = enginedesc
-        super(EngineAbout, self).__init__(_("About"), None, gtk.DIALOG_MODAL, (gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
-
-        self.__init_ui()
-
-    def __init_ui(self):
-        self.set_icon_name("gtk-about")
-        sw = gtk.ScrolledWindow()
-        sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
-        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-        self.__text_view = gtk.TextView()
-        self.__text_view.set_size_request(400, 400)
-        self.__text_view.set_editable(False)
-        sw.add(self.__text_view)
-        sw.show_all()
-        self.vbox.pack_start(sw)
-
-        self.__fill_text_view()
-
-    def __fill_text_view(self):
-        text_buffer = self.__text_view.get_buffer()
-        self.__create_tags(text_buffer)
-        
-        iter = text_buffer.get_iter_at_offset(0)
-        text_buffer.insert_with_tags_by_name(iter, "\n ",
-                                             "left_margin_16")
-        text_buffer.insert_pixbuf(iter, self.__load_icon(self.__engine_desc.icon))
-        text_buffer.insert_with_tags_by_name(iter, "\n%s\n" % self.__engine_desc.longname,
-                                             "heading", "left_margin_16")
-        text_buffer.insert_with_tags_by_name(iter, _("Language: %s\n") % ibus.get_language_name(self.__engine_desc.language),
-                                            "small", "bold", "left_margin_16")
-        text_buffer.insert_with_tags_by_name(iter, _("Keyboard layout: %s\n") % self.__engine_desc.layout,
-                                            "small", "bold", "left_margin_16")
-        text_buffer.insert_with_tags_by_name(iter, _("Author: %s\n") % self.__engine_desc.author,
-                                            "small", "bold", "left_margin_16")
-        text_buffer.insert_with_tags_by_name(iter, _("Description:\n"),
-                                            "small", "bold", "left_margin_16")
-        text_buffer.insert_with_tags_by_name(iter, self.__engine_desc.description,
-                                            "wrap_text", "left_margin_32")
-
-
-    def __create_tags(self, text_buffer):
-        text_buffer.create_tag("heading",
-                        weight=pango.WEIGHT_BOLD,
-                        size = 16 * pango.SCALE)
-        text_buffer.create_tag("bold",
-                        weight=pango.WEIGHT_BOLD)
-        text_buffer.create_tag("italic",
-                        style=pango.STYLE_ITALIC)
-        text_buffer.create_tag("small",
-                        scale=pango.SCALE_SMALL)
-        text_buffer.create_tag("gray_foreground",
-                        foreground="dark gray")
-        text_buffer.create_tag("wrap_text",
-                        wrap_mode=gtk.WRAP_WORD)
-        text_buffer.create_tag("left_margin_16",
-                        left_margin=16)
-        text_buffer.create_tag("left_margin_32",
-                        left_margin=32)
-
-    def __load_icon(self, icon):
-        try:
-            pixbuf = gdk.pixbuf_new_from_file_at_scale(icon, 48, 48, True)
-        except:
-            theme = gtk.icon_theme_get_default()
-            icon = theme.lookup_icon("ibus-engine", 48, 0)
-            if icon == None:
-                icon = theme.lookup_icon("gtk-missing-image", 48, 0)
-            pixbuf = icon.load_icon()
-        return pixbuf
diff --git a/ui/gtk2/gtkpanel.xml.in b/ui/gtk2/gtkpanel.xml.in
deleted file mode 100644 (file)
index 5f25ddb..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- filename: gtkpanel.xml -->
-<component>
-       <name>org.freedesktop.IBus.Panel</name>
-       <description>Gtk Panel Component</description>
-       <exec>@libexecdir@/ibus-ui-gtk</exec>
-       <version>@VERSION@</version>
-       <author>Peng Huang &lt;shawn.p.huang@gmail.com&gt;</author>
-       <license>GPL</license>
-       <homepage>http://code.google.com/p/ibus</homepage>
-       <textdomain>ibus</textdomain>
-</component>
diff --git a/ui/gtk2/handle.py b/ui/gtk2/handle.py
deleted file mode 100644 (file)
index bb54949..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright(c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import gtk
-import gtk.gdk as gdk
-import gobject
-
-class Handle(gtk.EventBox):
-    __gtype_name__ = "IBusHandle"
-    __gsignals__ = {
-        "move-begin" : (
-            gobject.SIGNAL_RUN_LAST,
-            gobject.TYPE_NONE,
-            ()),
-        "move-end" : (
-            gobject.SIGNAL_RUN_LAST,
-            gobject.TYPE_NONE,
-            ()),
-        }
-
-    def __init__ (self):
-        super(Handle, self).__init__()
-        self.set_visible_window(False)
-        self.set_size_request(10, -1)
-        self.set_events(
-            gdk.EXPOSURE_MASK | \
-            gdk.BUTTON_PRESS_MASK | \
-            gdk.BUTTON_RELEASE_MASK | \
-            gdk.BUTTON1_MOTION_MASK)
-
-        self.__move_begined = False
-
-        root = gdk.get_default_root_window()
-
-    def do_button_press_event(self, event):
-        if event.button == 1:
-            root = gdk.get_default_root_window()
-            try:
-                desktop = root.property_get("_NET_CURRENT_DESKTOP")[2][0]
-                self.__workarea = root.property_get("_NET_WORKAREA")[2][desktop * 4: (desktop + 1) * 4]
-            except:
-                self.__workarea = None
-            self.__move_begined = True
-            toplevel = self.get_toplevel()
-            x, y = toplevel.get_position()
-            self.__press_pos = event.x_root - x, event.y_root - y
-            self.window.set_cursor(gdk.Cursor(gdk.FLEUR))
-            self.emit("move-begin")
-            return True
-        return False
-
-    def do_button_release_event(self, event):
-        if event.button == 1:
-            self.__move_begined = False
-            del self.__press_pos
-            del self.__workarea
-            self.window.set_cursor(gdk.Cursor(gdk.LEFT_PTR))
-            self.emit("move-end")
-            return True
-
-        return False
-
-    def do_motion_notify_event(self, event):
-        if not self.__move_begined:
-            return
-        toplevel = self.get_toplevel()
-        x, y = toplevel.get_position()
-        x  = int(event.x_root - self.__press_pos[0])
-        y  = int(event.y_root - self.__press_pos[1])
-
-        if self.__workarea == None:
-            toplevel.move(x, y)
-            return
-
-        if x < self.__workarea[0] and x > self.__workarea[0] - 16:
-            x = self.__workarea[0]
-        if y < self.__workarea[1] and y > self.__workarea[1] - 16:
-            y = self.__workarea[1]
-
-        w, h = toplevel.get_size()
-        if x + w > self.__workarea[0] + self.__workarea[2] and \
-            x + w < self.__workarea[0] + self.__workarea[2] + 16:
-            x = self.__workarea[0] + self.__workarea[2] - w
-        if y + h > self.__workarea[1] + self.__workarea[3] and \
-            y + h < self.__workarea[1] + self.__workarea[3] + 16:
-            y =  self.__workarea[1] + self.__workarea[3] - h
-
-        toplevel.move(x, y)
-
-    def do_expose_event(self, event):
-        self.style.paint_handle(
-                    self.window,
-                    gtk.STATE_NORMAL,
-                    gtk.SHADOW_OUT,
-                    event.area,
-                    self,
-                    "",
-                    self.allocation.x, self.allocation.y, 
-                    10, self.allocation.height,
-                    gtk.ORIENTATION_VERTICAL)
-        return True
-
diff --git a/ui/gtk2/i18n.py b/ui/gtk2/i18n.py
deleted file mode 100644 (file)
index 5a73eee..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright(c) 2007-2010 Google, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import locale
-import gettext
-import os
-
-DOMAINNAME = "ibus10"
-
-_ = lambda a: gettext.dgettext(DOMAINNAME, a)
-N_ = lambda a: a
-
-def init():
-    localedir = os.getenv("IBUS_LOCALEDIR")
-    # Python's locale module doesn't provide all methods on some
-    # operating systems like FreeBSD
-    try:
-        # for non-standard localedir
-        locale.bindtextdomain(DOMAINNAME, localedir)
-        locale.bind_textdomain_codeset(DOMAINNAME, "UTF-8")
-    except AttributeError:
-        pass
-    gettext.bindtextdomain(DOMAINNAME, localedir)
-    gettext.bind_textdomain_codeset(DOMAINNAME, "UTF-8")
diff --git a/ui/gtk2/ibus-ui-gtk.in b/ui/gtk2/ibus-ui-gtk.in
deleted file mode 100644 (file)
index 5e60b5e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-#
-# ibus - The Input Bus
-#
-# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright (c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-datarootdir=@datarootdir@
-export IBUS_PREFIX=@prefix@
-export IBUS_DATAROOTDIR=@datarootdir@
-export IBUS_LOCALEDIR=@localedir@
-
-exec @PYTHON@ @prefix@/share/ibus/ui/gtk/main.py $@
-
diff --git a/ui/gtk2/icon.py b/ui/gtk2/icon.py
deleted file mode 100644 (file)
index f58d9b7..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright (c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import gtk
-import gtk.gdk as gdk
-
-class IconWidget(gtk.Image):
-    def __init__(self, icon, size):
-        super(IconWidget, self).__init__()
-        pixbuf = None
-        try:
-            if icon.startswith("/"):
-                pixbuf = gdk.pixbuf_new_from_file(icon)
-            else:
-                theme = gtk.icon_theme_get_default()
-                pixbuf = theme.load_icon(icon, size, 0)
-        except:
-            theme = gtk.icon_theme_get_default()
-            pixbuf = theme.load_icon(gtk.STOCK_MISSING_IMAGE, size, 0)
-
-        width = pixbuf.get_width()
-        height = pixbuf.get_height()
-        scale = float(size) / float(max(width, height))
-        width = int(scale * width)
-        height = int(scale * height)
-        pixbuf = pixbuf.scale_simple(width, height, gdk.INTERP_BILINEAR)
-
-        self.set_from_pixbuf(pixbuf)
-        self.show()
diff --git a/ui/gtk2/languagebar.py b/ui/gtk2/languagebar.py
deleted file mode 100644 (file)
index 54a8431..0000000
+++ /dev/null
@@ -1,411 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright(c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import gtk
-import gtk.gdk as gdk
-import gobject
-import ibus
-import icon
-from handle import Handle
-from menu import menu_position,\
-    ImageMenuItem,\
-    Menu,\
-    CheckMenuItem,\
-    RadioMenuItem,\
-    SeparatorMenuItem
-from engineabout import EngineAbout
-from toolitem import ToolButton,\
-    ToggleToolButton, \
-    SeparatorToolItem, \
-    MenuToolButton
-
-from i18n import _, N_
-
-ICON_SIZE = gtk.ICON_SIZE_MENU
-
-class LanguageBar(gtk.Toolbar):
-    __gtype_name__ = "IBusLanguagePanel"
-    __gsignals__ = {
-        "property-activate" : (
-            gobject.SIGNAL_RUN_FIRST,
-            gobject.TYPE_NONE,
-            (gobject.TYPE_STRING, gobject.TYPE_INT)),
-        "get-im-menu" : (
-            gobject.SIGNAL_RUN_LAST,
-            gobject.TYPE_PYOBJECT,
-            ()),
-        "show-engine-about" : (
-            gobject.SIGNAL_RUN_LAST,
-            gobject.TYPE_PYOBJECT,
-            ()),
-        "position-changed" : (
-            gobject.SIGNAL_RUN_LAST,
-            gobject.TYPE_NONE,
-            (gobject.TYPE_INT, gobject.TYPE_INT)),
-        }
-
-    def __init__ (self):
-        super(LanguageBar, self).__init__()
-        self.__show = 0
-        self.__enabled = False
-        self.__has_focus = False
-        self.__show_im_name = False
-        self.__im_name = None
-        self.__props = None
-        self.__selected_menu_item = None
-        self.set_style(gtk.TOOLBAR_BOTH_HORIZ)
-        self.set_show_arrow(False)
-        self.set_property("icon-size", ICON_SIZE)
-        self.__create_ui()
-
-        self.__properties = []
-        self.__toplevel = gtk.Window(gtk.WINDOW_POPUP)
-        self.__toplevel.connect("size-allocate", self.__toplevel_size_allocate_cb)
-        self.__toplevel.add(self)
-        self.__screen = gdk.screen_get_default()
-        self.__screen.connect("size-changed", self.__screen_size_changed_cb)
-
-        self.set_position(-1, -1)
-
-    def __create_ui(self):
-        # create move handle
-        self.__handle = gtk.ToolItem()
-        handle = Handle()
-        self.__handle.add(handle)
-        self.insert(self.__handle, -1)
-        handle.connect("move-end", self.__handle_move_end_cb)
-
-        # create input methods menu
-        # prop = ibus.Property(key = "", type = ibus.PROP_TYPE_TOGGLE, icon = "ibus", tooltip = _("Switch input method"))
-        self.__im_menu = gtk.ToggleToolButton()
-        self.__im_menu.set_homogeneous(False)
-        self.__im_menu.connect("toggled", self.__im_menu_toggled_cb)
-        self.insert(self.__im_menu, -1)
-
-        self.__about_button = gtk.ToolButton(gtk.STOCK_ABOUT)
-        self.__about_button.set_no_show_all(True)
-        self.__about_button.set_tooltip_text(_("About the input method"))
-        self.__about_button.connect("clicked", self.__about_button_clicked_cb)
-        self.insert(self.__about_button, -1)
-
-    def __screen_size_changed_cb(self, screen):
-        self.set_position(*self.__position)
-
-    def __im_menu_toggled_cb(self, widget):
-        if self.__im_menu.get_active():
-            menu = self.emit("get-im-menu")
-            menu.connect("deactivate", self.__im_menu_deactivate_cb)
-            menu.popup(None, None,
-                menu_position,
-                0,
-                gtk.get_current_event_time(),
-                widget)
-
-    def __about_button_clicked_cb(self, widget):
-        if self.__enabled:
-            self.emit("show-engine-about")
-
-    def __im_menu_deactivate_cb(self, menu):
-        self.__im_menu.set_active(False)
-
-    def __handle_move_end_cb(self, handle):
-        x, y = self.__toplevel.get_position()
-        w, h = self.__toplevel.get_size()
-        self.__position = x + w, y + h
-        self.emit("position-changed", *self.__position)
-
-    def __toplevel_size_allocate_cb(self, toplevel, allocation):
-        x, y = self.__position
-        w, h = self.__screen.get_width(), self.__screen.get_height()
-        if x >= w - 80 or True:
-            self.__toplevel.move(x - allocation.width, y - allocation.height)
-
-    def __remove_properties(self):
-        # reset all properties
-        map(lambda i: i.destroy(), self.__properties)
-        self.__properties = []
-
-    def __set_opacity(self, opacity):
-        if self.__toplevel.window == None:
-            self.__toplevel.realize()
-        self.__toplevel.window.set_opacity(opacity)
-
-    def __replace_property(self, old_prop, new_prop):
-        old_prop.label = new_prop.label
-        old_prop.icon= new_prop.icon
-        old_prop.tooltip = new_prop.tooltip
-        old_prop.sensitive = new_prop.sensitive
-        old_prop.visible = new_prop.visible
-        old_prop.state = new_prop.state
-        old_prop.sub_props = new_prop.sub_props
-
-    def __label_select_cb(self, widget, data):
-            self.__selected_menu_item = widget
-
-    def __label_deselect_cb(self, widget, data):
-            self.__selected_menu_item = None
-
-    def __label_expose_cb(self, widget, event):
-            x = widget.allocation.x
-            y = widget.allocation.y
-            label = widget._prop.label.get_text()
-            if self.__selected_menu_item != widget:
-                gc = widget.style.fg_gc[gtk.STATE_NORMAL]
-            else:
-                gc = widget.style.bg_gc[gtk.STATE_NORMAL]
-            layout = widget.create_pango_layout(label)
-            widget.window.draw_layout(gc, x + 5, y + 2, layout)
-
-    def __set_item_icon(self, item, prop):
-        item.set_property("always-show-image", True)
-        if prop.icon:
-            size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
-            item.set_image(icon.IconWidget(prop.icon, size[0]))
-        elif prop.label and prop.label.get_text() != "":
-            item.set_label("")
-            item.connect_after("expose-event", self.__label_expose_cb)
-            item.connect("select", self.__label_select_cb, None)
-            item.connect("deselect", self.__label_deselect_cb, None)
-        else:
-            size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
-            item.set_image(icon.IconWidget("ibus", size[0]))
-
-    def do_show(self):
-        gtk.Toolbar.do_show(self)
-
-    def do_size_request(self, requisition):
-        gtk.Toolbar.do_size_request(self, requisition)
-        self.__toplevel.resize(1, 1)
-
-    def set_im_icon(self, icon_name):
-        widget = icon.IconWidget(icon_name, 18)
-        self.__im_menu.set_icon_widget(widget)
-
-    def set_show_im_name(self, show):
-        self.__show_im_name = show
-        self.set_im_name(self.__im_name)
-        self.__im_menu.set_is_important(show)
-
-    def set_im_name(self, text):
-        self.__im_name = text
-        if text:
-            self.__im_menu.set_tooltip_text(text)
-            self.__im_menu.set_label(text)
-        else:
-            self.__im_menu.set_tooltip_text(_("Switch input method"))
-            self.__im_menu.set_label("")
-
-    def reset(self):
-        self.__remove_properties()
-
-    def set_enabled(self, enabled):
-        self.__enabled = enabled
-        if self.__enabled:
-            self.__about_button.show()
-            self.__set_opacity(1.0)
-            if self.__has_focus:
-                if self.__show in (1, 2):
-                    self.show_all()
-        else:
-            self.__about_button.hide()
-            self.__set_opacity(0.5)
-            if self.__show in (1, 0):
-                self.hide_all()
-
-    def is_enabled(self):
-        return self.__enabled
-
-    def set_show(self, show):
-        if show not in (0, 1, 2):
-            show = 0
-        self.__show = show
-        if self.__has_focus:
-            self.focus_in()
-        else:
-            self.focus_out()
-
-    def set_position(self, x, y):
-        w, h = self.__screen.get_width(), self.__screen.get_height()
-        if x < 0 or y < 0:
-            x = w - 20
-            y = h - 40
-        if x > w:
-            x = w - 20
-        if y > h:
-            y = h - 40
-
-        self.__position = x, y
-        w, h = self.__toplevel.get_size()
-        self.__toplevel.move(self.__position[0] - w, self.__position[1] - h)
-
-    def get_show(self):
-        return self.__show
-
-    def register_properties(self, props):
-        self.__props = props
-        if self.__show == 0:
-            return
-        # refresh items on labguage bar
-        self.__remove_properties()
-        # create new properties
-        for i, prop in enumerate(props):
-            if prop.type == ibus.PROP_TYPE_NORMAL:
-                item = ToolButton(prop = prop)
-            elif prop.type == ibus.PROP_TYPE_TOGGLE:
-                item = ToggleToolButton(prop = prop)
-            elif prop.type == ibus.PROP_TYPE_MENU:
-                item = MenuToolButton(prop = prop)
-            elif prop.type == ibus.PROP_TYPE_SEPARATOR:
-                item = SeparatorToolItem()
-            else:
-                raise IBusException("Unknown property type = %d" % prop.type)
-
-            item.connect("property-activate",
-                        lambda w, n, s: self.emit("property-activate", n, s))
-
-            item.set_sensitive(prop.sensitive)
-
-            item.set_no_show_all(True)
-
-            if prop.visible:
-                item.show()
-            else:
-                item.hide()
-
-            self.__properties.append(item)
-            self.insert(item, i + 2)
-
-    def update_property(self, prop):
-        if self.__show == 0 and self.__props:
-            list = self.__props.get_properties()
-            for i, p in enumerate(list):
-                if p.key == prop.key and p.type == prop.type:
-                    self.__replace_property(p, prop)
-                    break
-        map(lambda x: x.update_property(prop), self.__properties)
-
-    def show_all(self):
-        self.__toplevel.show_all()
-        self.__toplevel.window.raise_()
-        gtk.Toolbar.show_all(self)
-
-    def hide_all(self):
-        try:
-            self.__toplevel.window.lower()
-            self.__toplevel.window.hide_all()
-        except:
-            pass
-        x, y = self.__toplevel.get_position()
-        self.__toplevel.hide_all()
-        gtk.Toolbar.hide_all(self)
-
-        # save bar position
-        self.__toplevel.move(x, y)
-
-    def focus_in(self):
-        self.__has_focus = True
-        self.__im_menu.set_sensitive(True)
-        if (self.__show == 1 and self.__enabled) or self.__show == 2:
-            self.show_all()
-        else:
-            self.hide_all()
-
-    def focus_out(self):
-        self.__has_focus = False
-        self.__im_menu.set_sensitive(False)
-        if self.__show == 2:
-            self.show_all()
-        else:
-            self.hide_all()
-
-    def create_im_menu(self, menu):
-        if not self.__enabled:
-            return
-        if self.__show != 0:
-            return
-        if not menu:
-            assert False
-        props = self.__props
-        if not props:
-            return
-
-        self.__remove_properties()
-        item = SeparatorMenuItem()
-        item.show()
-        self.__properties.append(item)
-        menu.insert(item, 0)
-
-        about_label = _("About") + " - " + (self.__im_name or "")
-        prop = ibus.Property(key=u"about",
-                             label=unicode(about_label),
-                             icon=unicode(gtk.STOCK_ABOUT),
-                             tooltip=unicode(_("About the Input Method")))
-        item = ImageMenuItem(prop = prop)
-        item.set_property("always-show-image", True)
-        item.set_no_show_all(True)
-        item.show()
-        self.__properties.append(item)
-        menu.insert(item, 0)
-        item.connect("property-activate",
-                     lambda w, n, s: self.emit("show-engine-about"))
-
-        list = props.get_properties()
-        list.reverse()
-        radio_group = None
-
-        for i, prop in enumerate(list):
-            if prop.type == ibus.PROP_TYPE_NORMAL:
-                item = ImageMenuItem(prop = prop)
-                self.__set_item_icon(item, prop)
-            elif prop.type == ibus.PROP_TYPE_TOGGLE:
-                item = CheckMenuItem(prop = prop)
-            elif prop.type == ibus.PROP_TYPE_RADIO:
-                item = RadioMenuItem(radio_group, prop = prop)
-                radio_group = item
-            elif prop.type == ibus.PROP_TYPE_SEPARATOR:
-                item = SeparatorMenuItem()
-                radio_group = None
-            elif prop.type == ibus.PROP_TYPE_MENU:
-                item = ImageMenuItem(prop = prop)
-                self.__set_item_icon(item, prop)
-                submenu = Menu(prop)
-                item.set_submenu(submenu)
-                submenu.connect("property-activate",
-                                lambda w, n, s: self.emit("property-activate", n, s))
-            else:
-                raise IBusException("Unknown property type = %d" % prop.type)
-
-            item.set_sensitive(prop.sensitive)
-
-            item.set_no_show_all(True)
-
-            if prop.visible:
-                item.show()
-            else:
-                item.hide()
-
-            self.__properties.append(item)
-            menu.insert(item, 0)
-
-            item.connect("property-activate",
-                         lambda w, n, s: self.emit("property-activate", n, s))
-
diff --git a/ui/gtk2/main.py b/ui/gtk2/main.py
deleted file mode 100644 (file)
index e142670..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright(c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-# try Cython
-# try:
-#     import pyximport
-#     pyximport.install(pyimport=True,build_in_temp=False)
-# except:
-#     pass
-
-import os
-import sys
-import getopt
-import ibus
-import gtk
-import gettext
-import panel
-import pynotify
-from i18n import _, N_
-
-class UIApplication:
-    def __init__ (self, replace):
-        pynotify.init("ibus")
-        self.__bus = ibus.Bus()
-        self.__bus.connect("disconnected", gtk.main_quit)
-        self.__bus.connect("registry-changed", self.__registry_changed_cb)
-
-        match_rule = "type='signal',\
-                      sender='org.freedesktop.IBus',\
-                      path='/org/freedesktop/IBus'"
-        self.__bus.add_match(match_rule)
-
-        self.__panel = panel.Panel(self.__bus)
-        flag = ibus.BUS_NAME_FLAG_ALLOW_REPLACEMENT
-        if replace:
-            flag = flag | ibus.BUS_NAME_FLAG_REPLACE_EXISTING
-        self.__bus.request_name(ibus.IBUS_SERVICE_PANEL, flag)
-        self.__bus.get_dbusconn().add_signal_receiver(self.__name_acquired_cb,
-                                                      signal_name="NameAcquired")
-        self.__bus.get_dbusconn().add_signal_receiver(self.__name_lost_cb,
-                                                      signal_name="NameLost")
-        self.__notify = pynotify.Notification("IBus", \
-                            _("Some input methods have been installed, removed or updated. " \
-                            "Please restart ibus input platform."), \
-                            "ibus")
-        self.__notify.set_timeout(10 * 1000)
-        self.__notify.add_action("restart", _("Restart Now"), self.__restart_cb, None)
-        self.__notify.add_action("ignore", _("Later"), lambda *args: None, None)
-
-    def __restart_cb(self, notify, action, data):
-        if action == "restart":
-            self.__bus.exit(True)
-
-    def __registry_changed_cb(self, bus):
-        self.__notify.show()
-
-    def __name_acquired_cb(self, name):
-        self.__panel.show()
-
-    def __name_lost_cb(self, name):
-        self.__panel.hide()
-
-    def run(self):
-        try:
-            gtk.main()
-        except KeyboardInterrupt:
-            pass
-
-def launch_panel(replace):
-    settings = gtk.settings_get_default()
-    if settings.get_property('gtk-fallback-icon-theme') == None:
-        settings.set_property('gtk-fallback-icon-theme', 'gnome')
-    # gtk.settings_get_default().props.gtk_theme_name = "/home/phuang/.themes/aud-Default/gtk-2.0/gtkrc"
-    # gtk.rc_parse("./themes/default/gtkrc")
-    UIApplication(replace).run()
-
-def print_help(out, v = 0):
-    print >> out, "-h, --help             show this message."
-    print >> out, "-d, --daemonize        daemonize ibus"
-    print >> out, "-r, --replace          replace existing ibus UI"
-    sys.exit(v)
-
-def main():
-    daemonize = False
-    replace = False
-    shortopt = "hdr"
-    longopt = ["help", "daemonize", "replace"]
-    try:
-        opts, args = getopt.getopt(sys.argv[1:], shortopt, longopt)
-    except getopt.GetoptError, err:
-        print_help(sys.stderr, 1)
-
-    for o, a in opts:
-        if o in("-h", "--help"):
-            print_help(sys.stdout)
-        elif o in("-d", "--daemonize"):
-            daemonize = True
-        elif o in("-r", "--replace"):
-            replace = True
-        else:
-            print >> sys.stderr, "Unknown argument: %s" % o
-            print_help(sys.stderr, 1)
-
-    if daemonize:
-        if os.fork():
-            sys.exit()
-
-    launch_panel(replace)
-
-if __name__ == "__main__":
-    import i18n
-    i18n.init()
-    main()
diff --git a/ui/gtk2/menu.py b/ui/gtk2/menu.py
deleted file mode 100644 (file)
index c229fa0..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright(c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import gtk
-import gobject
-import ibus
-import icon
-from propitem import PropItem
-
-class Menu(gtk.Menu, PropItem):
-    __gtype_name__ = "IBusMenu"
-    __gsignals__ = {
-    "property-activate" :(
-        gobject.SIGNAL_RUN_FIRST,
-        gobject.TYPE_NONE,
-       (gobject.TYPE_STRING, gobject.TYPE_INT)),
-    }
-
-    def __init__(self, prop):
-        gtk.Menu.__init__(self)
-        PropItem.__init__(self, prop)
-
-        self.set_take_focus(False)
-        self.__create_items(self._prop.sub_props)
-        self.show_all()
-        self.set_sensitive(prop.sensitive)
-
-    def __create_items(self, props):
-        radio_group = None
-
-        for prop in props:
-            if prop.type == ibus.PROP_TYPE_NORMAL:
-                item = ImageMenuItem(prop)
-            elif prop.type == ibus.PROP_TYPE_TOGGLE:
-                item = CheckMenuItem(prop)
-            elif prop.type == ibus.PROP_TYPE_RADIO:
-                item = RadioMenuItem(radio_group, prop)
-                radio_group = item
-            elif prop.type == ibus.PROP_TYPE_SEPARATOR:
-                item = SeparatorMenuItem()
-                radio_group = None
-            elif prop.type == ibus.PROP_TYPE_MENU:
-                item = ImageMenuItem(prop)
-                if prop.icon:
-                    size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
-                    item.set_image(icon.IconWidget(prop.icon, size[0]))
-                if prop.label:
-                    item.set_label(prop.label.text)
-                item.set_submenu(Menu(prop))
-            else:
-                assert Fasle
-
-            if prop.tooltip:
-                item.set_tooltip_text(prop.tooltip.text)
-            item.set_sensitive(prop.sensitive)
-            if prop.visible:
-                item.set_no_show_all(False)
-                item.show()
-            else:
-                item.set_no_show_all(True)
-                item.hide()
-
-            self.append(item)
-            self._sub_items.append(item)
-
-            if prop.type not in (ibus.PROP_TYPE_NORMAL, ibus.PROP_TYPE_TOGGLE, ibus.PROP_TYPE_RADIO):
-                continue
-            item.connect("property-activate",
-                lambda w,n,s: self.emit("property-activate", n, s))
-
-    def popup(self, button, active_time, widget):
-        gtk.Menu.popup(self, None, None, menu_position,
-                            button, active_time, widget)
-
-    def _property_clicked(self, item, prop):
-        pass
-
-
-class ImageMenuItem(gtk.ImageMenuItem, PropItem):
-    __gtype_name__ = "IBusImageMenuItem"
-    __gsignals__ = {
-    "property-activate" :(
-        gobject.SIGNAL_RUN_FIRST,
-        gobject.TYPE_NONE,
-       (gobject.TYPE_STRING, gobject.TYPE_INT)),
-    }
-
-    def __init__(self, prop):
-        gtk.ImageMenuItem.__init__(self)
-        PropItem.__init__(self, prop)
-
-        if self._prop.icon:
-            size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
-            self.set_image(icon.IconWidget(prop.icon, size[0]))
-        if self._prop.label:
-            self.set_label(prop.label.text)
-
-        if self._prop.visible:
-            self.set_no_show_all(False)
-            self.show_all()
-        else:
-            self.set_no_show_all(True)
-            self.hide_all()
-
-    def do_activate(self):
-        self.emit("property-activate", self._prop.key, self._prop.state)
-
-    def property_changed(self):
-        self.set_sensitive(self._prop.sensitive)
-        if self._prop.visible:
-            self.set_no_show_all(False)
-            self.show_all()
-        else:
-            self.set_no_show_all(True)
-            self.hide_all()
-
-
-class CheckMenuItem(gtk.CheckMenuItem, PropItem):
-    __gtype_name__ = "IBusCheckMenuItem"
-    __gsignals__ = {
-    "property-activate" :(
-        gobject.SIGNAL_RUN_FIRST,
-        gobject.TYPE_NONE,
-       (gobject.TYPE_STRING, gobject.TYPE_INT)),
-    }
-
-    def __init__(self, prop):
-        gtk.CheckMenuItem.__init__(self, label=prop.label.text)
-        PropItem.__init__(self, prop)
-
-        self.set_active(self._prop.state == ibus.PROP_STATE_CHECKED)
-
-        if self._prop.visible:
-            self.set_no_show_all(False)
-            self.show_all()
-        else:
-            self.set_no_show_all(True)
-            self.hide_all()
-
-    def do_toggled(self):
-        # Do not send property-activate to engine in case the event is
-        # sent from engine.
-        do_emit = False
-        if self.get_active():
-            if self._prop.state != ibus.PROP_STATE_CHECKED:
-                do_emit = True
-            self._prop.state = ibus.PROP_STATE_CHECKED
-        else:
-            if self._prop.state != ibus.PROP_STATE_UNCHECKED:
-                do_emit = True
-            self._prop.state = ibus.PROP_STATE_UNCHECKED
-        if do_emit:
-            self.emit("property-activate", self._prop.key, self._prop.state)
-
-    def property_changed(self):
-        self.set_active(self._prop.state == ibus.PROP_STATE_CHECKED)
-        self.set_sensitive(self._prop.sensitive)
-        if self._prop.visible:
-            self.set_no_show_all(False)
-            self.show_all()
-        else:
-            self.set_no_show_all(True)
-            self.hide_all()
-
-
-class RadioMenuItem(gtk.RadioMenuItem, PropItem):
-    __gtype_name__ = "IBusRadioMenuItem"
-    __gsignals__ = {
-    "property-activate" :(
-        gobject.SIGNAL_RUN_FIRST,
-        gobject.TYPE_NONE,
-       (gobject.TYPE_STRING, gobject.TYPE_INT)),
-    }
-
-    def __init__(self, group, prop):
-        gtk.RadioMenuItem.__init__(self, group, label = prop.label.text)
-        PropItem.__init__(self, prop)
-
-        self.set_active(self._prop.state == ibus.PROP_STATE_CHECKED)
-
-        if prop.visible:
-            self.set_no_show_all(False)
-            self.show_all()
-        else:
-            self.set_no_show_all(True)
-            self.hide_all()
-
-    def property_changed(self):
-        self.set_active(self._prop.state == ibus.PROP_STATE_CHECKED)
-        self.set_sensitive(self._prop.sensitive)
-        if self._prop.visible:
-            self.set_no_show_all(False)
-            self.show_all()
-        else:
-            self.set_no_show_all(True)
-            self.hide_all()
-
-    def do_toggled(self):
-        # Do not send property-activate to engine in case the event is
-        # sent from engine.
-        do_emit = False
-        if self.get_active():
-            if self._prop.state != ibus.PROP_STATE_CHECKED:
-                do_emit = True
-            self._prop.state = ibus.PROP_STATE_CHECKED
-        else:
-            if self._prop.state != ibus.PROP_STATE_UNCHECKED:
-                do_emit = True
-            self._prop.state = ibus.PROP_STATE_UNCHECKED
-        if do_emit:
-            self.emit("property-activate", self._prop.key, self._prop.state)
-
-class SeparatorMenuItem(gtk.SeparatorMenuItem, PropItem):
-    __gtype_name__ = "IBusSeparatorMenuItem"
-    __gsignals__ = {
-    "property-activate" :(
-        gobject.SIGNAL_RUN_FIRST,
-        gobject.TYPE_NONE,
-       (gobject.TYPE_STRING, gobject.TYPE_INT)),
-    }
-
-    def __init__(self):
-        gtk.SeparatorMenuItem.__init__(self)
-        PropItem.__init__(self, None)
-
-
-def menu_position(menu, button):
-    screen = button.get_screen()
-    monitor = screen.get_monitor_at_window(button.window)
-    monitor_allocation = screen.get_monitor_geometry(monitor)
-
-    x, y = button.window.get_origin()
-    x += button.allocation.x
-    y += button.allocation.y
-
-    menu_width, menu_height = menu.size_request()
-
-    if x + menu_width >= monitor_allocation.width:
-        x -= menu_width - button.allocation.width
-    elif x - menu_width <= 0:
-        pass
-    else:
-        if x <= monitor_allocation.width * 3 / 4:
-            pass
-        else:
-            x -= menu_width - button.allocation.width
-
-    if y + button.allocation.height + menu_height >= monitor_allocation.height:
-        y -= menu_height
-    elif y - menu_height <= 0:
-        y += button.allocation.height
-    else:
-        if y <= monitor_allocation.height * 3 / 4:
-            y += button.allocation.height
-        else:
-            y -= menu_height
-
-    return (x, y, False)
-
diff --git a/ui/gtk2/notifications.py b/ui/gtk2/notifications.py
deleted file mode 100644 (file)
index 887acd0..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright(c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import gtk
-import gtk.gdk as gdk
-import gobject
-import ibus
-import dbus
-import icon as _icon
-import os
-import sys
-from os import path
-from ibus import interface
-
-_  = ibus._
-N_ = lambda a : a
-
-class Notifications(ibus.NotificationsBase):
-    def __init__(self, bus):
-        super(Notifications, self).__init__(bus)
-        self.__bus = bus
-        try:
-            self.__dbus = dbus.SessionBus()
-            self.__dbus.watch_name_owner(ibus.IBUS_SERVICE_NOTIFICATIONS,
-                    self.__notifications_name_owner_changed_cb)
-        except:
-            self.__dbus = None
-        self.__notifications = None
-        self.__ids = set([])
-        self.__init_notifications()
-        self.__status_icons = None
-        self.__bus.request_name(ibus.IBUS_SERVICE_NOTIFICATIONS, 0)
-
-    def __notifications_name_owner_changed_cb(self, unique_name):
-        if unique_name:
-            self.__init_notifications()
-        else:
-            self.__notifications = None
-
-    def __init_notifications(self):
-        if self.__dbus == None:
-            return
-
-        try:
-            self.__notifications = self.__dbus.get_object(
-                    ibus.IBUS_SERVICE_NOTIFICATIONS, ibus.IBUS_PATH_NOTIFICATIONS)
-            self.__notifications.connect_to_signal("NotificationClosed",
-                    self.__notification_closed_cb,
-                    dbus_interface=ibus.IBUS_IFACE_NOTIFICATIONS)
-            self.__notifications.connect_to_signal("ActionInvoked",
-                    self.__action_invoked_cb,
-                    dbus_interface=ibus.IBUS_IFACE_NOTIFICATIONS)
-            self.__ids = set([])
-        except:
-            self.__notifications = None
-
-    def set_status_icon(self, status_icon):
-        self.__status_icon = status_icon
-
-    def notify(self, replaces_id, app_icon, summary, body, actions, expire_timeout):
-        if self.__notifications == None:
-            return 0
-        if app_icon == "":
-            app_icon = "ibus"
-        hints = dbus.Dictionary(signature="sv")
-        if self.__status_icon != None:
-            rect = self.__status_icon.get_geometry()[1]
-            hints["x"] = rect.x + rect.width / 2
-            hints["y"] = rect.y + rect.height / 2
-        id = self.__notifications.Notify("ibus",
-                        dbus.UInt32(replaces_id),
-                        app_icon,
-                        summary,
-                        body,
-                        actions,
-                        hints,
-                        expire_timeout)
-        self.__ids.add(id)
-        return id
-
-    def close_notification(self, id):
-        if self.__notifications == None:
-            return
-        return self.__notifications.CloseNotifications(id)
-
-    def __notification_closed_cb(self, id, reason):
-        if self.__notifications == None:
-            return
-        if id in self.__ids:
-            self.notification_closed(id, reason)
-
-    def __action_invoked_cb(self, id, action_key):
-        if self.__notifications == None:
-            return
-        if id in self.__ids:
-            self.action_invoked(id, action_key)
-
-if __name__ == "__main__":
-    import gtk
-    icon = gtk.StatusIcon()
-    icon.set_visible(True)
-    notify = Notifications(ibus.Bus())
-    notify.set_status_icon(icon)
-    while ibus.main_iteration(): pass
-    notify.notify(0, "", "Hello Summary", "Hello Body", ["NoAgain", "Do not show me again"], 5000)
-    ibus.main()
diff --git a/ui/gtk2/panel.py b/ui/gtk2/panel.py
deleted file mode 100644 (file)
index d00c5a5..0000000
+++ /dev/null
@@ -1,548 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright(c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import gtk
-import gtk.gdk as gdk
-import glib
-import gobject
-import ibus
-import icon as _icon
-import os
-import sys
-import signal
-from os import path
-from ibus import interface
-from languagebar import LanguageBar
-from candidatepanel import CandidatePanel
-from engineabout import EngineAbout
-
-from i18n import _, N_
-
-ICON_KEYBOARD = ibus.get_ICON_KEYBOARD()
-ICON_ENGINE = "ibus-engine"
-
-def show_uri(screen, link):
-    try:
-        gtk.show_uri(screen, link, 0)
-    except:
-        print >> sys.stderr, "pygtk do not support show_uri"
-
-def url_hook(about, link, user_data):
-    show_uri(about.get_screen(), link)
-
-def email_hook(about, email, user_data):
-    show_uri(about.get_screen(), "mailto:%s" % email)
-
-gtk.about_dialog_set_url_hook(url_hook, None)
-gtk.about_dialog_set_email_hook(email_hook, None)
-
-class Panel(ibus.PanelBase):
-    __gtype_name__ = "IBusPanel"
-    def __init__(self, bus):
-        super(Panel, self).__init__(bus)
-        self.__bus = bus
-        self.__config = self.__bus.get_config()
-        self.__focus_ic = None
-        self.__setup_pid = None
-        self.__prefix = os.getenv("IBUS_PREFIX")
-        self.__data_dir = path.join(self.__prefix, "share", "ibus")
-        # self.__icons_dir = path.join(self.__data_dir, "icons")
-        self.__setup_cmd = path.join(self.__prefix, "bin", "ibus-setup")
-
-        # connect bus signal
-        self.__config.connect("value-changed", self.__config_value_changed_cb)
-        self.__config.connect("reloaded", self.__config_reloaded_cb)
-        # self.__bus.config_add_watch("panel")
-
-        # add icon search path
-        # icon_theme = gtk.icon_theme_get_default()
-        # icon_theme.prepend_search_path(self.__icons_dir)
-
-        self.__language_bar = LanguageBar()
-        self.__language_bar.connect("property-activate",
-                        lambda widget, prop_name, prop_state: self.property_activate(prop_name, prop_state))
-        self.__language_bar.connect("get-im-menu",
-                        self.__get_im_menu_cb)
-        self.__language_bar.connect("show-engine-about",
-                        self.__show_engine_about_cb)
-        self.__language_bar.connect("position-changed",
-                        self.__position_changed_cb)
-        self.__language_bar.focus_out()
-        self.__language_bar.show_all()
-
-        self.__candidate_panel = CandidatePanel()
-        self.__candidate_panel.connect("cursor-up",
-                        lambda widget: self.cursor_up())
-        self.__candidate_panel.connect("cursor-down",
-                        lambda widget: self.cursor_down())
-        self.__candidate_panel.connect("page-up",
-                        lambda widget: self.page_up())
-        self.__candidate_panel.connect("page-down",
-                        lambda widget: self.page_down())
-        self.__candidate_panel.connect("candidate-clicked",
-                        lambda widget, index, button, state: self.candidate_clicked(index, button, state))
-
-
-        self.__status_icon = gtk.StatusIcon()
-        # gnome-shell checks XClassHint.res_class with ShellTrayIcon.
-        # gtk_status_icon_set_name() can set XClassHint.res_class .
-        # However gtk_status_icon_new() also calls gtk_window_realize() so
-        # gtk_status_icon_set_visible() needs to be called to set WM_CLASS
-        # so that gtk_window_realize() is called later again.
-        # set_title is for gnome-shell notificationDaemon in bottom right.
-        self.__status_icon.set_visible(False)
-        # gtk_status_icon_set_name() is not available in pygtk2 2.17
-        if hasattr(self.__status_icon, 'set_name'):
-            self.__status_icon.set_name('ibus-ui-gtk')
-        self.__status_icon.set_title(_("IBus Panel"))
-        # Hide icon until bus get the name owner.
-        #self.__status_icon.set_visible(True)
-        self.__status_icon.connect("popup-menu", self.__status_icon_popup_menu_cb)
-        self.__status_icon.connect("activate", self.__status_icon_activate_cb)
-        self.__status_icon.set_from_icon_name(ICON_KEYBOARD)
-        self.__status_icon.set_tooltip(_("IBus input method framework"))
-        # Hide icon until bus get the name owner.
-        #self.__status_icon.set_visible(True)
-
-        self.__config_load_lookup_table_orientation()
-        self.__config_load_show()
-        self.__config_load_position()
-        self.__config_load_custom_font()
-        # Hide icon until bus get the name owner.
-        #self.__config_load_show_icon_on_systray()
-        self.__config_load_show_im_name()
-        # self.__bus.request_name(ibus.panel.IBUS_SERVICE_PANEL, 0)
-
-    def set_cursor_location(self, x, y, w, h):
-        self.__candidate_panel.set_cursor_location(x, y, w, h)
-
-    def update_preedit_text(self, text, cursor_pos, visible):
-        self.__candidate_panel.update_preedit_text(text, cursor_pos, visible)
-
-    def show_preedit_text(self):
-        self.__candidate_panel.show_preedit_text()
-
-    def hide_preedit_text(self):
-        self.__candidate_panel.hide_preedit_text()
-
-    def update_auxiliary_text(self, text, visible):
-        self.__candidate_panel.update_auxiliary_text(text, visible)
-
-    def show_auxiliary_text(self):
-        self.__candidate_panel.show_auxiliary_text()
-
-    def hide_auxiliary_text(self):
-        self.__candidate_panel.hide_auxiliary_text()
-
-    def update_lookup_table(self, lookup_table, visible):
-        self.__candidate_panel.update_lookup_table(lookup_table, visible)
-
-    def show_lookup_table(self):
-        self.__candidate_panel.show_lookup_table()
-
-    def hide_lookup_table(self):
-        self.__candidate_panel.hide_lookup_table()
-
-    def page_up_lookup_table(self):
-        self.__candidate_panel.page_up_lookup_table()
-
-    def page_down_lookup_table(self):
-        self.__candidate_panel.page_down_lookup_table()
-
-    def cursor_up_lookup_table(self):
-        self.__candidate_panel.cursor_up_lookup_table()
-
-    def cursor_down_lookup_table(self):
-        self.__candidate_panel.cursor_down_lookup_table()
-
-    def show_candidate_window(self):
-        self.__candidate_panel.show_all()
-
-    def hide_candidate_window(self):
-        self.__candidate_panel.hide_all()
-
-    def show_language_bar(self):
-        self.__language_bar.show_all()
-
-    def hide_language_bar(self):
-        self.__language_bar.hide_all()
-
-    def register_properties(self, props):
-        self.__language_bar.register_properties(props)
-
-    def update_property(self, prop):
-        self.__language_bar.update_property(prop)
-
-    def get_status_icon(self):
-        return self.__status_icon
-
-    def hide(self):
-        if self.__status_icon == None:
-            return
-        self.__status_icon.set_visible(False)
-
-    def show(self):
-        if self.__status_icon == None:
-            return
-        self.__config_load_show_icon_on_systray()
-
-    def __set_im_icon(self, icon_name):
-        if not icon_name:
-            icon_name = ICON_ENGINE
-        self.__language_bar.set_im_icon(icon_name)
-        if icon_name.startswith("/"):
-            self.__status_icon.set_from_file(icon_name)
-        else:
-            self.__status_icon.set_from_icon_name(icon_name)
-
-    def __set_im_name(self, name):
-        self.__language_bar.set_im_name(name)
-
-    def focus_in(self, ic):
-        self.reset()
-        self.__focus_ic = ibus.InputContext(self.__bus, ic)
-        enabled = True or self.__focus_ic.is_enabled()
-        self.__language_bar.set_enabled(enabled)
-
-        if not enabled:
-            self.__set_im_icon(ICON_KEYBOARD)
-            self.__set_im_name(None)
-        else:
-            engine = self.__focus_ic.get_engine()
-            if engine:
-                self.__set_im_icon(engine.icon)
-                self.__set_im_name(engine.longname)
-            else:
-                self.__set_im_icon(ICON_KEYBOARD)
-                self.__set_im_name(None)
-        self.__language_bar.focus_in()
-
-    def focus_out(self, ic):
-        self.reset()
-        self.__focus_ic = None
-        self.__language_bar.set_enabled(False)
-        self.__language_bar.focus_out()
-        self.__set_im_icon(ICON_KEYBOARD)
-        self.__set_im_name(None)
-
-    def state_changed(self):
-        if not self.__focus_ic:
-            return
-
-        enabled = self.__focus_ic.is_enabled()
-        self.__language_bar.set_enabled(enabled)
-
-        if enabled == False:
-            self.reset()
-            self.__set_im_icon(ICON_KEYBOARD)
-            self.__set_im_name(None)
-        else:
-            engine = self.__focus_ic.get_engine()
-            if engine:
-                self.__set_im_icon(engine.icon)
-                self.__set_im_name(engine.longname)
-            else:
-                self.__set_im_icon(ICON_KEYBOARD)
-                self.__set_im_name(None)
-
-
-    def reset(self):
-        self.__candidate_panel.reset()
-        self.__language_bar.reset()
-
-    def start_setup(self):
-        self.__start_setup()
-
-    def do_destroy(self):
-        gtk.main_quit()
-
-    def __config_load_lookup_table_orientation(self):
-        value = self.__config.get_value("panel", "lookup_table_orientation", 0)
-        if value in (ibus.ORIENTATION_HORIZONTAL, ibus.ORIENTATION_VERTICAL):
-            orientation = value
-        else:
-            orientation = ibus.ORIENTATION_HORIZONTAL
-        self.__candidate_panel.set_orientation(orientation)
-
-    def __config_load_show(self):
-        show = self.__config.get_value("panel", "show", 0)
-        self.__language_bar.set_show(show)
-
-    def __config_load_position(self):
-        x = self.__config.get_value("panel", "x", -1)
-        y = self.__config.get_value("panel", "y", -1)
-        self.__language_bar.set_position(x, y)
-
-    def __config_load_custom_font(self):
-        use_custom_font = self.__config.get_value("panel", "use_custom_font", False)
-        font_name = gtk.settings_get_default().get_property("gtk-font-name")
-        font_name = unicode(font_name, "utf-8")
-        custom_font =  self.__config.get_value("panel", "custom_font", font_name)
-        style_string = 'style "custom-font" { font_name="%s" }\n' \
-            'class "IBusCandidateLabel" style "custom-font"\n'
-        if use_custom_font:
-            style_string = style_string % custom_font
-            gtk.rc_parse_string(style_string)
-        else:
-            style_string = style_string % ""
-            gtk.rc_parse_string(style_string)
-
-        settings = gtk.settings_get_default()
-        gtk.rc_reset_styles(settings)
-
-    def __config_load_show_icon_on_systray(self):
-        value = self.__config.get_value("panel", "show_icon_on_systray", True)
-        self.__status_icon.set_visible(True if value else False)
-
-    def __config_load_show_im_name(self):
-        value = self.__config.get_value("panel", "show_im_name", False)
-        self.__language_bar.set_show_im_name(value)
-
-    def __config_value_changed_cb(self, bus, section, name, value):
-        if section != "panel":
-            return
-        if name == "lookup_table_orientation":
-            self.__config_load_lookup_table_orientation()
-        elif name == "show":
-            self.__config_load_show()
-        elif name == "use_custom_font" or name == "custom_font":
-            self.__config_load_custom_font()
-        elif name == "show_icon_on_systray":
-            self.__config_load_show_icon_on_systray()
-        elif name == "show_im_name":
-            self.__config_load_show_im_name()
-        elif name == "x" or name == "y":
-            pass
-        else:
-            print >> sys.stderr, "Unknown config item [%s]" % name
-
-    def __config_reloaded_cb(self, bus):
-        pass
-
-    def __create_sys_menu(self):
-        menu = gtk.Menu()
-        item = gtk.ImageMenuItem(gtk.STOCK_PREFERENCES)
-        item.connect("activate",
-            self.__sys_menu_item_activate_cb, gtk.STOCK_PREFERENCES)
-        menu.add(item)
-        item = gtk.ImageMenuItem(gtk.STOCK_ABOUT)
-        item.connect("activate",
-            self.__sys_menu_item_activate_cb, gtk.STOCK_ABOUT)
-        menu.add(item)
-        menu.add(gtk.SeparatorMenuItem())
-        item = gtk.MenuItem(_("Restart"))
-        item.connect("activate",
-            self.__sys_menu_item_activate_cb, "Restart")
-        menu.add(item)
-        item = gtk.ImageMenuItem(gtk.STOCK_QUIT)
-        item.connect("activate",
-            self.__sys_menu_item_activate_cb, gtk.STOCK_QUIT)
-        menu.add(item)
-
-        menu.show_all()
-        menu.set_take_focus(False)
-        return menu
-
-    # def __create_im_menu(self):
-    #     menu = gtk.Menu()
-    #     engines = self.__bus.list_active_engines()
-
-    #     tmp = {}
-    #     for engine in engines:
-    #         lang = ibus.get_language_name(engine.language)
-    #         if lang not in tmp:
-    #             tmp[lang] = []
-    #         tmp[lang].append(engine)
-
-    #     langs = tmp.keys()
-    #     other = tmp.get(_("Other"), [])
-    #     if _("Other") in tmp:
-    #         langs.remove(_("Other"))
-    #         langs.append(_("Other"))
-
-    #     size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
-    #     for lang in langs:
-    #         if len(tmp[lang]) == 1:
-    #             engine = tmp[lang][0]
-    #             item = gtk.ImageMenuItem("%s - %s" % (lang, engine.longname))
-    #             if engine.icon:
-    #                 item.set_image(_icon.IconWidget(engine.icon, size[0]))
-    #             else:
-    #                 item.set_image(_icon.IconWidget(ICON_ENGINE, size[0]))
-    #             item.connect("activate", self.__im_menu_item_activate_cb, engine)
-    #             menu.add(item)
-    #         else:
-    #             item = gtk.MenuItem(lang)
-    #             menu.add(item)
-    #             submenu = gtk.Menu()
-    #             item.set_submenu(submenu)
-    #             for engine in tmp[lang]:
-    #                 item = gtk.ImageMenuItem(engine.longname)
-    #                 if engine.icon:
-    #                     item.set_image(_icon.IconWidget(engine.icon, size[0]))
-    #                 else:
-    #                     item.set_image(_icon.IconWidget(ICON_ENGINE, size[0]))
-    #                 item.connect("activate", self.__im_menu_item_activate_cb, engine)
-    #                 submenu.add(item)
-
-    #     item = gtk.ImageMenuItem(_("Turn off input method"))
-    #     item.set_image(_icon.IconWidget("gtk-close", size[0]))
-    #     item.connect("activate", self.__im_menu_item_activate_cb, None)
-    #     menu.add(item)
-
-    #     menu.show_all()
-    #     menu.set_take_focus(False)
-    #     return menu
-
-    def __create_im_menu(self):
-        # FIXME
-        # engines = self.__bus.list_engines()
-        names = self.__config.get_value("general", "preload_engines",
-                ["xkb:us::eng", "xkb:us:intl:eng", "pinyin"])
-        engines = self.__bus.get_engines_by_names(names)
-        current_engine = \
-            (self.__focus_ic != None and self.__focus_ic.get_engine()) or \
-            (engines and engines[0]) or \
-            None
-
-        size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
-        menu = gtk.Menu()
-        for i, engine in enumerate(engines):
-            lang = ibus.get_language_name(engine.language)
-            item = gtk.ImageMenuItem("%s - %s" % (lang, engine.longname))
-            if current_engine and current_engine.name == engine.name:
-                for widget in item.get_children():
-                    if isinstance(widget, gtk.Label):
-                        widget.set_markup("<b>%s</b>" % widget.get_text())
-            if engine.icon:
-                item.set_image(_icon.IconWidget(engine.icon, size[0]))
-            else:
-                item.set_image(_icon.IconWidget(ICON_ENGINE, size[0]))
-            item.connect("activate", self.__im_menu_item_activate_cb, engine)
-            menu.add(item)
-
-        item = gtk.ImageMenuItem(_("Turn off input method"))
-        item.set_image(_icon.IconWidget("gtk-close", size[0]))
-        item.connect("activate", self.__im_menu_item_activate_cb, None)
-        if self.__focus_ic == None:
-            item.set_sensitive(False)
-        menu.add(item)
-
-        menu.show_all()
-        menu.set_take_focus(False)
-        return menu
-
-    def __get_im_menu_cb(self, languagebar):
-        menu = self.__create_im_menu()
-        return menu
-
-    def __show_engine_about_cb(self, langagebar):
-        try:
-            engine = self.__focus_ic.get_engine()
-            dlg = EngineAbout(engine)
-            dlg.run()
-            dlg.destroy()
-        except:
-            pass
-
-    def __position_changed_cb(self, langagebar, x, y):
-        self.__config.set_value("panel", "x", x)
-        self.__config.set_value("panel", "y", y)
-
-    def __status_icon_popup_menu_cb(self, status_icon, button, active_time):
-        menu = self.__create_sys_menu()
-        menu.popup(None, None,
-                gtk.status_icon_position_menu,
-                button,
-                active_time,
-                self.__status_icon)
-
-    def __status_icon_activate_cb(self, status_icon):
-        if not self.__focus_ic:
-            menu = gtk.Menu()
-            item = gtk.ImageMenuItem(_("No input window"))
-            size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
-            item.set_image(_icon.IconWidget("gtk-dialog-info", size[0]))
-            menu.add(item)
-            menu.show_all()
-        else:
-            menu = self.__create_im_menu()
-            self.__language_bar.create_im_menu(menu)
-        menu.popup(None, None,
-                gtk.status_icon_position_menu,
-                0,
-                gtk.get_current_event_time(),
-                self.__status_icon)
-
-    def __im_menu_item_activate_cb(self, item, engine):
-        if not self.__focus_ic:
-            return
-        if engine:
-            self.__focus_ic.set_engine(engine)
-        else:
-            self.__focus_ic.disable()
-
-    def __sys_menu_item_activate_cb(self, item, command):
-        if command == gtk.STOCK_PREFERENCES:
-            self.__start_setup()
-        elif command == gtk.STOCK_ABOUT:
-            about_dialog = gtk.AboutDialog()
-            about_dialog.set_program_name("IBus")
-            about_dialog.set_version(ibus.get_version())
-            about_dialog.set_copyright(ibus.get_copyright())
-            about_dialog.set_license(ibus.get_license())
-            about_dialog.set_comments(_("IBus is an intelligent input bus for Linux/Unix."))
-            about_dialog.set_website("http://code.google.com/p/ibus")
-            about_dialog.set_authors(["Peng Huang <shawn.p.huang@gmail.com>"])
-            about_dialog.set_documenters(["Peng Huang <shawn.p.huang@gmail.com>"])
-            about_dialog.set_translator_credits(_("translator-credits"))
-            about_dialog.set_logo_icon_name("ibus")
-            about_dialog.set_icon_name("ibus")
-            about_dialog.run()
-            about_dialog.destroy()
-        elif command == gtk.STOCK_QUIT:
-            self.__bus.exit(False)
-        elif command == "Restart":
-            self.__bus.exit(True)
-        else:
-            print >> sys.stderr, "Unknown command %s" % command
-
-    def __child_watch_cb(self, pid, status):
-        if self.__setup_pid == pid:
-            self.__setup_pid.close()
-            self.__setup_pid = None
-
-    def __start_setup(self):
-        if self.__setup_pid != None:
-            try:
-                # if setup dialog is running, bring the dialog to front by SIGUSR1
-                os.kill(self.__setup_pid, signal.SIGUSR1)
-                return
-            except OSError:
-                # seems the setup dialog is not running anymore
-                self.__setup_pid.close()
-                self.__setup_pid = None
-
-        pid = glib.spawn_async(argv=[self.__setup_cmd, "ibus-setup"],
-                               flags=glib.SPAWN_DO_NOT_REAP_CHILD)[0]
-        self.__setup_pid = pid
-        glib.child_watch_add(self.__setup_pid, self.__child_watch_cb)
diff --git a/ui/gtk2/propitem.py b/ui/gtk2/propitem.py
deleted file mode 100644 (file)
index 97c87ac..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright(c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright(c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-class PropItem:
-    def __init__(self, prop):
-        self._prop = prop
-        self._sub_items = []
-
-    def update_property(self, prop):
-        if self._prop == None:
-            return False
-
-        retval = False
-
-        if self._prop.key == prop.key and self._prop.type == prop.type:
-            self._prop = prop
-            self.property_changed()
-            retval =  True
-
-        if any(map(lambda i: i.update_property(prop), self._sub_items)):
-            retval = True
-
-        return retval
-
-    def set_prop_label(self, label):
-        self._prop.label = label
-        self.property_changed()
-
-    def set_icon(self, icon):
-        self._prop.icon = icon
-        self.property_changed()
-
-    def set_tooltip(self, tooltip):
-        self._prop.tooltip = tooltip
-        self.property_changed()
-
-    def set_state(self, state):
-        self._prop.state = state
-        self.property_changed()
-
-    def property_changed(self):
-        pass
-
-
diff --git a/ui/gtk2/toolitem.py b/ui/gtk2/toolitem.py
deleted file mode 100644 (file)
index 743e7f0..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-# vim:set et sts=4 sw=4:
-#
-# ibus - The Input Bus
-#
-# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
-# Copyright (c) 2007-2010 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
-# USA
-
-import gtk
-import gtk.gdk as gdk
-import gobject
-import ibus
-from propitem import PropItem
-import icon
-from menu import *
-
-class ToolButton(gtk.ToolButton, PropItem):
-    __gtype_name__ = "IBusToolButton"
-    __gsignals__ = {
-        "property-activate" : (
-            gobject.SIGNAL_RUN_FIRST,
-            gobject.TYPE_NONE,
-            (gobject.TYPE_STRING, gobject.TYPE_INT)),
-        }
-
-    def __init__(self, prop):
-        gtk.ToolButton.__init__(self, label = prop.label.text)
-        self.set_homogeneous(False)
-        PropItem.__init__(self, prop)
-        self.property_changed()
-
-    def set_icon_name(self, icon_name):
-        if icon_name:
-            widget = icon.IconWidget(icon_name, 18)
-            gtk.ToolButton.set_icon_widget(self, widget)
-            self.set_is_important(False)
-        elif self._prop.label.text:
-            gtk.ToolButton.set_icon_widget(self, None)
-            self.set_is_important(True)
-        else:
-            widget = icon.IconWidget("ibus", 18)
-            gtk.ToolButton.set_icon_widget(self, widget)
-            self.set_is_important(False)
-
-        self._prop.icon = icon_name
-
-    def set_tooltip_text(self, text):
-        if text:
-            gtk.ToolButton.set_tooltip_text(self, text.text)
-        else:
-            gtk.ToolButton.set_tooltip_text(self, None)
-
-        self._prop.tooltip = text
-
-    def property_changed(self):
-        self.set_label(self._prop.label.text)
-        self.set_tooltip_text(self._prop.tooltip)
-        self.set_sensitive(self._prop.sensitive)
-        self.set_icon_name(self._prop.icon)
-
-        if self._prop.visible:
-            self.show()
-        else:
-            self.hide()
-
-    def do_clicked(self):
-        self.emit("property-activate", self._prop.key, self._prop.state)
-
-
-class ToggleToolButton(gtk.ToggleToolButton, PropItem):
-    __gtype_name__ = "IBusToggleToolButton"
-    __gsignals__ = {
-        "property-activate" : (
-            gobject.SIGNAL_RUN_FIRST,
-            gobject.TYPE_NONE,
-            (gobject.TYPE_STRING, gobject.TYPE_INT)),
-        }
-
-    def __init__(self, prop):
-        gtk.ToggleToolButton.__init__(self)
-        self.set_homogeneous(False)
-        PropItem.__init__(self, prop)
-        self.property_changed()
-
-    def set_icon_name(self, icon_name):
-        if icon_name:
-            widget = icon.IconWidget(icon_name, 18)
-            gtk.ToggleToolButton.set_icon_widget(self, widget)
-            self.set_is_important(False)
-        elif self._prop.label:
-            gtk.ToggleToolButton.set_icon_widget(self, None)
-            self.set_is_important(True)
-        else:
-            widget = icon.IconWidget("ibus", 18)
-            gtk.ToggleToolButton.set_icon_widget(self, widget)
-            self.set_is_important(False)
-
-        self._prop.icon = icon_name
-
-    def set_tooltip_text(self, text):
-        if text:
-            gtk.ToggleToolButton.set_tooltip_text(self, text.text)
-        else:
-            gtk.ToggleToolButton.set_tooltip_text(self, None)
-
-        self._prop.tooltip = text
-
-    def property_changed(self):
-        self.set_tooltip_text(self._prop.tooltip)
-        self.set_label(self._prop.label.text)
-        self.set_icon_name(self._prop.icon)
-        self.set_active(self._prop.state == ibus.PROP_STATE_CHECKED)
-        self.set_sensitive(self._prop.sensitive)
-        if self._prop.visible:
-            self.show()
-        else:
-            self.hide()
-
-    def do_toggled(self):
-        # Do not send property-activate to engine in case the event is
-        # sent from engine.
-        do_emit = False
-        if self.get_active():
-            if self._prop.state != ibus.PROP_STATE_CHECKED:
-                do_emit = True
-            self._prop.state = ibus.PROP_STATE_CHECKED
-        else:
-            if self._prop.state != ibus.PROP_STATE_UNCHECKED:
-                do_emit = True
-            self._prop.state = ibus.PROP_STATE_UNCHECKED
-        if do_emit:
-            self.emit("property-activate", self._prop.key, self._prop.state)
-
-class SeparatorToolItem(gtk.SeparatorToolItem, PropItem):
-    __gtype_name__ = "IBusSeparatorToolItem"
-    def __init__ (self, prop):
-        gtk.SeparatorToolItem.__init__(self)
-        self.set_homogeneous(False)
-        PropItem.__init__(self, prop)
-
-class MenuToolButton(ToggleToolButton):
-    __gtype_name__ = "IBusMenuToolButton"
-    # __gsignals__ = {
-    #        "property-activate" : (
-    #            gobject.SIGNAL_RUN_FIRST,
-    #            gobject.TYPE_NONE,
-    #            (gobject.TYPE_STRING, gobject.TYPE_INT)),
-    #        }
-
-    def __init__(self, prop):
-        super(MenuToolButton, self).__init__(prop)
-        self._menu = Menu(prop)
-        self._menu.connect("deactivate", lambda m: self.set_active(False))
-        self._menu.connect("property-activate", lambda w,n,s: self.emit("property-activate", n, s))
-
-    def update_property(self, prop):
-        PropItem.update_property(self, prop)
-        self._menu.update_property(prop)
-
-    def do_toggled(self):
-        if self.get_active():
-            self._menu.popup(0, gtk.get_current_event_time(), self)
-
-    def destroy(self):
-        self._menu.destroy()
-        self._menu = None
-        super(MenuToolButton, self).destroy()
diff --git a/ui/gtk3/Makefile.in b/ui/gtk3/Makefile.in
new file mode 100644 (file)
index 0000000..5201427
--- /dev/null
@@ -0,0 +1,1009 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2013 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-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
+# 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
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@ENABLE_LIBNOTIFY_TRUE@am__append_1 = \
+@ENABLE_LIBNOTIFY_TRUE@        @LIBNOTIFY_CFLAGS@ \
+@ENABLE_LIBNOTIFY_TRUE@        $(NULL)
+
+@ENABLE_LIBNOTIFY_TRUE@am__append_2 = \
+@ENABLE_LIBNOTIFY_TRUE@        @LIBNOTIFY_LIBS@ \
+@ENABLE_LIBNOTIFY_TRUE@        $(NULL)
+
+@ENABLE_LIBNOTIFY_TRUE@am__append_3 = \
+@ENABLE_LIBNOTIFY_TRUE@        --pkg=libnotify \
+@ENABLE_LIBNOTIFY_TRUE@        -D ENABLE_LIBNOTIFY \
+@ENABLE_LIBNOTIFY_TRUE@        $(NULL)
+
+libexec_PROGRAMS = ibus-ui-gtk3$(EXEEXT)
+subdir = ui/gtk3
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       application.c candidatearea.c candidatepanel.c handle.c \
+       iconwidget.c keybindingmanager.c panel.c pango.c property.c \
+       separator.c switcher.c $(top_srcdir)/depcomp \
+       $(srcdir)/ibus_ui_gtk3_vala.stamp
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(libexecdir)" \
+       "$(DESTDIR)$(componentdir)"
+PROGRAMS = $(libexec_PROGRAMS)
+am__objects_1 =
+am_ibus_ui_gtk3_OBJECTS = application.$(OBJEXT) \
+       candidatearea.$(OBJEXT) candidatepanel.$(OBJEXT) \
+       handle.$(OBJEXT) iconwidget.$(OBJEXT) \
+       keybindingmanager.$(OBJEXT) panel.$(OBJEXT) pango.$(OBJEXT) \
+       property.$(OBJEXT) separator.$(OBJEXT) switcher.$(OBJEXT) \
+       $(am__objects_1)
+ibus_ui_gtk3_OBJECTS = $(am_ibus_ui_gtk3_OBJECTS)
+am__DEPENDENCIES_1 =
+@ENABLE_LIBNOTIFY_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_3 = $(libibus) $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_2)
+ibus_ui_gtk3_DEPENDENCIES = $(am__DEPENDENCIES_3) \
+       $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+VALACOMPILE = $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS)
+LTVALACOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(VALAC) $(AM_VALAFLAGS) \
+       $(VALAFLAGS)
+AM_V_VALAC = $(am__v_VALAC_@AM_V@)
+am__v_VALAC_ = $(am__v_VALAC_@AM_DEFAULT_V@)
+am__v_VALAC_0 = @echo "  VALAC   " $@;
+am__v_VALAC_1 = 
+SOURCES = $(ibus_ui_gtk3_SOURCES)
+DIST_SOURCES = $(ibus_ui_gtk3_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+DATA = $(component_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+NULL = 
+libibus = $(top_builddir)/src/libibus-@IBUS_API_VERSION@.la
+component_DATA = \
+       gtkpanel.xml \
+       $(NULL)
+
+componentdir = $(pkgdatadir)/component
+
+# force include config.h before gi18n.h.
+AM_CPPFLAGS = \
+       -I$(top_srcdir)/src \
+       -I$(top_builddir)/src \
+       -include $(CONFIG_HEADER) \
+       $(NULL)
+
+USE_SYMBOL_ICON = FALSE
+AM_CFLAGS = @GLIB2_CFLAGS@ @GIO2_CFLAGS@ @GTHREAD2_CFLAGS@ \
+       @GTK3_CFLAGS@ @X11_CFLAGS@ -DG_LOG_DOMAIN=\"IBUS\" \
+       -DBINDIR=\"$(bindir)\" -DIBUS_DISABLE_DEPRECATED \
+       -DSWITCHER_USE_SYMBOL_ICON=$(USE_SYMBOL_ICON) \
+       -Wno-unused-variable -Wno-unused-but-set-variable \
+       -Wno-unused-function $(NULL) $(am__append_1)
+AM_LDADD = @GOBJECT2_LIBS@ @GLIB2_LIBS@ @GIO2_LIBS@ @GTHREAD2_LIBS@ \
+       @GTK3_LIBS@ @X11_LIBS@ -lXi $(libibus) $(NULL) $(am__append_2)
+AM_VALAFLAGS = --vapidir=$(top_builddir)/bindings/vala \
+       --vapidir=$(top_srcdir)/bindings/vala --pkg=posix \
+       --pkg=gtk+-3.0 --pkg=gdk-x11-3.0 --pkg=ibus-1.0 --pkg=config \
+       --pkg=xi --target-glib="$(VALA_TARGET_GLIB_VERSION)" $(NULL) \
+       $(am__append_3)
+ibus_ui_gtk3_SOURCES = \
+       application.vala \
+       candidatearea.vala \
+       candidatepanel.vala \
+       handle.vala \
+       iconwidget.vala \
+       keybindingmanager.vala \
+       panel.vala \
+       pango.vala \
+       property.vala \
+       separator.vala \
+       switcher.vala \
+       $(NULL)
+
+ibus_ui_gtk3_LDADD = \
+       $(AM_LDADD) \
+       $(NULL)
+
+CLEANFILES = \
+       gtkpanel.xml \
+       $(NULL)
+
+EXTRA_DIST = \
+       gtkpanel.xml.in \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ui/gtk3/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu ui/gtk3/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+       @$(NORMAL_INSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \
+       fi; \
+       for p in $$list; do echo "$$p $$p"; done | \
+       sed 's/$(EXEEXT)$$//' | \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
+       done | \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
+           -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+       sed 'N;N;N;s,\n, ,g' | \
+       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+           if ($$2 == $$4) files[d] = files[d] " " $$1; \
+           else { print "f", $$3 "/" $$4, $$1; } } \
+         END { for (d in files) print "f", d, files[d] }' | \
+       while read type dir files; do \
+           if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+           test -z "$$files" || { \
+           echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
+           $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
+           } \
+       ; done
+
+uninstall-libexecPROGRAMS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
+       files=`for p in $$list; do echo "$$p"; done | \
+         sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
+       test -n "$$list" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
+
+clean-libexecPROGRAMS:
+       @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
+       echo " rm -f" $$list; \
+       rm -f $$list || exit $$?; \
+       test -n "$(EXEEXT)" || exit 0; \
+       list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+       echo " rm -f" $$list; \
+       rm -f $$list
+
+ibus-ui-gtk3$(EXEEXT): $(ibus_ui_gtk3_OBJECTS) $(ibus_ui_gtk3_DEPENDENCIES) $(EXTRA_ibus_ui_gtk3_DEPENDENCIES) 
+       @rm -f ibus-ui-gtk3$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(ibus_ui_gtk3_OBJECTS) $(ibus_ui_gtk3_LDADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/application.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/candidatearea.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/candidatepanel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/handle.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconwidget.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keybindingmanager.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/panel.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pango.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/property.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/separator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/switcher.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+$(srcdir)/application.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/candidatearea.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/candidatepanel.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/handle.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/iconwidget.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/keybindingmanager.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/panel.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/pango.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/property.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/separator.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/switcher.c: $(srcdir)/ibus_ui_gtk3_vala.stamp
+       @if test -f $@; then :; else rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp; fi
+       @if test -f $@; then :; else \
+         $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/ibus_ui_gtk3_vala.stamp; \
+       fi
+$(srcdir)/ibus_ui_gtk3_vala.stamp: application.vala candidatearea.vala candidatepanel.vala handle.vala iconwidget.vala keybindingmanager.vala panel.vala pango.vala property.vala separator.vala switcher.vala
+       $(AM_V_at)rm -f $@ && echo stamp > $@-t
+       $(AM_V_VALAC)$(am__cd) $(srcdir) && $(VALAC) $(AM_VALAFLAGS) $(VALAFLAGS) -C application.vala candidatearea.vala candidatepanel.vala handle.vala iconwidget.vala keybindingmanager.vala panel.vala pango.vala property.vala separator.vala switcher.vala
+       $(AM_V_at)mv -f $@-t $@
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-componentDATA: $(component_DATA)
+       @$(NORMAL_INSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(componentdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(componentdir)" || exit 1; \
+       fi; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(componentdir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(componentdir)" || exit $$?; \
+       done
+
+uninstall-componentDATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(component_DATA)'; test -n "$(componentdir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       dir='$(DESTDIR)$(componentdir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA)
+installdirs:
+       for dir in "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(componentdir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+       -rm -f $(srcdir)/application.c
+       -rm -f $(srcdir)/candidatearea.c
+       -rm -f $(srcdir)/candidatepanel.c
+       -rm -f $(srcdir)/handle.c
+       -rm -f $(srcdir)/ibus_ui_gtk3_vala.stamp
+       -rm -f $(srcdir)/iconwidget.c
+       -rm -f $(srcdir)/keybindingmanager.c
+       -rm -f $(srcdir)/panel.c
+       -rm -f $(srcdir)/pango.c
+       -rm -f $(srcdir)/property.c
+       -rm -f $(srcdir)/separator.c
+       -rm -f $(srcdir)/switcher.c
+       -rm -f application.c
+       -rm -f candidatearea.c
+       -rm -f candidatepanel.c
+       -rm -f handle.c
+       -rm -f iconwidget.c
+       -rm -f keybindingmanager.c
+       -rm -f panel.c
+       -rm -f pango.c
+       -rm -f property.c
+       -rm -f separator.c
+       -rm -f switcher.c
+clean: clean-am
+
+clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-componentDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libexecPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-componentDATA uninstall-libexecPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-componentDATA \
+       install-data install-data-am install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-libexecPROGRAMS \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+       uninstall-am uninstall-componentDATA uninstall-libexecPROGRAMS
+
+
+gtkpanel.xml: gtkpanel.xml.in
+       $(AM_V_GEN) sed \
+               -e 's|@VERSION[@]|$(VERSION)|g' \
+               -e 's|@libexecdir[@]|$(libexecdir)|g' $< > $@.tmp && \
+               mv $@.tmp $@
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/ui/gtk3/application.c b/ui/gtk3/application.c
new file mode 100644 (file)
index 0000000..84972ff
--- /dev/null
@@ -0,0 +1,444 @@
+/* application.c generated by valac 0.20.1, the Vala compiler
+ * generated from application.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <ibus.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib/gi18n-lib.h>
+#include <config.h>
+#include <gtk/gtk.h>
+#include <gio/gio.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_APPLICATION (application_get_type ())
+#define APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_APPLICATION, Application))
+#define APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_APPLICATION, ApplicationClass))
+#define IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_APPLICATION))
+#define IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_APPLICATION))
+#define APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_APPLICATION, ApplicationClass))
+
+typedef struct _Application Application;
+typedef struct _ApplicationClass ApplicationClass;
+typedef struct _ApplicationPrivate ApplicationPrivate;
+
+#define TYPE_PANEL (panel_get_type ())
+#define PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PANEL, Panel))
+#define PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PANEL, PanelClass))
+#define IS_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PANEL))
+#define IS_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PANEL))
+#define PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PANEL, PanelClass))
+
+typedef struct _Panel Panel;
+typedef struct _PanelClass PanelClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _application_unref0(var) ((var == NULL) ? NULL : (var = (application_unref (var), NULL)))
+typedef struct _ParamSpecApplication ParamSpecApplication;
+
+struct _Application {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       ApplicationPrivate * priv;
+};
+
+struct _ApplicationClass {
+       GTypeClass parent_class;
+       void (*finalize) (Application *self);
+};
+
+struct _ApplicationPrivate {
+       IBusBus* m_bus;
+       Panel* m_panel;
+};
+
+struct _ParamSpecApplication {
+       GParamSpec parent_instance;
+};
+
+
+static gpointer application_parent_class = NULL;
+
+gpointer application_ref (gpointer instance);
+void application_unref (gpointer instance);
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_application (GValue* value, gpointer v_object);
+void value_take_application (GValue* value, gpointer v_object);
+gpointer value_get_application (const GValue* value);
+GType application_get_type (void) G_GNUC_CONST;
+GType panel_get_type (void) G_GNUC_CONST;
+#define APPLICATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_APPLICATION, ApplicationPrivate))
+enum  {
+       APPLICATION_DUMMY_PROPERTY
+};
+Application* application_new (gchar** argv, int argv_length1);
+Application* application_construct (GType object_type, gchar** argv, int argv_length1);
+static void application_bus_connected (Application* self, IBusBus* bus);
+static void _application_bus_connected_ibus_bus_connected (IBusBus* _sender, gpointer self);
+static void application_bus_disconnected (Application* self, IBusBus* bus);
+static void _application_bus_disconnected_ibus_bus_disconnected (IBusBus* _sender, gpointer self);
+static void application_init (Application* self);
+static void application_bus_name_acquired_cb (Application* self, GDBusConnection* connection, const gchar* sender_name, const gchar* object_path, const gchar* interface_name, const gchar* signal_name, GVariant* parameters);
+static void _application_bus_name_acquired_cb_gd_bus_signal_callback (GDBusConnection* connection, const gchar* sender_name, const gchar* object_path, const gchar* interface_name, const gchar* signal_name, GVariant* parameters, gpointer self);
+static void application_bus_name_lost_cb (Application* self, GDBusConnection* connection, const gchar* sender_name, const gchar* object_path, const gchar* interface_name, const gchar* signal_name, GVariant* parameters);
+static void _application_bus_name_lost_cb_gd_bus_signal_callback (GDBusConnection* connection, const gchar* sender_name, const gchar* object_path, const gchar* interface_name, const gchar* signal_name, GVariant* parameters, gpointer self);
+gint application_run (Application* self);
+Panel* panel_new (IBusBus* bus);
+Panel* panel_construct (GType object_type, IBusBus* bus);
+void panel_load_settings (Panel* self);
+void application_main (gchar** argv, int argv_length1);
+static void application_finalize (Application* obj);
+
+
+static void _application_bus_connected_ibus_bus_connected (IBusBus* _sender, gpointer self) {
+       application_bus_connected (self, _sender);
+}
+
+
+static void _application_bus_disconnected_ibus_bus_disconnected (IBusBus* _sender, gpointer self) {
+       application_bus_disconnected (self, _sender);
+}
+
+
+Application* application_construct (GType object_type, gchar** argv, int argv_length1) {
+       Application* self = NULL;
+       IBusBus* _tmp0_;
+       IBusBus* _tmp1_;
+       IBusBus* _tmp2_;
+       IBusBus* _tmp3_;
+       gboolean _tmp4_ = FALSE;
+       self = (Application*) g_type_create_instance (object_type);
+       bindtextdomain (GETTEXT_PACKAGE, GLIB_LOCALE_DIR);
+       bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+       ibus_init ();
+       gtk_init (&argv_length1, &argv);
+       _tmp0_ = ibus_bus_new ();
+       g_object_ref_sink (_tmp0_);
+       _g_object_unref0 (self->priv->m_bus);
+       self->priv->m_bus = _tmp0_;
+       _tmp1_ = self->priv->m_bus;
+       g_signal_connect (_tmp1_, "connected", (GCallback) _application_bus_connected_ibus_bus_connected, self);
+       _tmp2_ = self->priv->m_bus;
+       g_signal_connect (_tmp2_, "disconnected", (GCallback) _application_bus_disconnected_ibus_bus_disconnected, self);
+       _tmp3_ = self->priv->m_bus;
+       _tmp4_ = ibus_bus_is_connected (_tmp3_);
+       if (_tmp4_) {
+               application_init (self);
+       }
+       return self;
+}
+
+
+Application* application_new (gchar** argv, int argv_length1) {
+       return application_construct (TYPE_APPLICATION, argv, argv_length1);
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+static void _application_bus_name_acquired_cb_gd_bus_signal_callback (GDBusConnection* connection, const gchar* sender_name, const gchar* object_path, const gchar* interface_name, const gchar* signal_name, GVariant* parameters, gpointer self) {
+       application_bus_name_acquired_cb (self, connection, sender_name, object_path, interface_name, signal_name, parameters);
+}
+
+
+static void _application_bus_name_lost_cb_gd_bus_signal_callback (GDBusConnection* connection, const gchar* sender_name, const gchar* object_path, const gchar* interface_name, const gchar* signal_name, GVariant* parameters, gpointer self) {
+       application_bus_name_lost_cb (self, connection, sender_name, object_path, interface_name, signal_name, parameters);
+}
+
+
+static void application_init (Application* self) {
+       IBusBus* _tmp0_;
+       GDBusConnection* _tmp1_ = NULL;
+       GDBusConnection* _tmp2_;
+       GDBusConnection* connection;
+       IBusBusNameFlag flags;
+       IBusBus* _tmp3_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_bus;
+       _tmp1_ = ibus_bus_get_connection (_tmp0_);
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+       connection = _tmp2_;
+       g_dbus_connection_signal_subscribe (connection, "org.freedesktop.DBus", "org.freedesktop.DBus", "NameAcquired", "/org/freedesktop/DBus", IBUS_SERVICE_PANEL, G_DBUS_SIGNAL_FLAGS_NONE, _application_bus_name_acquired_cb_gd_bus_signal_callback, application_ref (self), application_unref);
+       g_dbus_connection_signal_subscribe (connection, "org.freedesktop.DBus", "org.freedesktop.DBus", "NameLost", "/org/freedesktop/DBus", IBUS_SERVICE_PANEL, G_DBUS_SIGNAL_FLAGS_NONE, _application_bus_name_lost_cb_gd_bus_signal_callback, application_ref (self), application_unref);
+       flags = IBUS_BUS_NAME_FLAG_ALLOW_REPLACEMENT | IBUS_BUS_NAME_FLAG_REPLACE_EXISTING;
+       _tmp3_ = self->priv->m_bus;
+       ibus_bus_request_name (_tmp3_, IBUS_SERVICE_PANEL, (guint32) flags);
+       _g_object_unref0 (connection);
+}
+
+
+gint application_run (Application* self) {
+       gint result = 0;
+       g_return_val_if_fail (self != NULL, 0);
+       gtk_main ();
+       result = 0;
+       return result;
+}
+
+
+static void application_bus_name_acquired_cb (Application* self, GDBusConnection* connection, const gchar* sender_name, const gchar* object_path, const gchar* interface_name, const gchar* signal_name, GVariant* parameters) {
+       const gchar* _tmp0_;
+       IBusBus* _tmp1_;
+       Panel* _tmp2_;
+       Panel* _tmp3_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (connection != NULL);
+       g_return_if_fail (sender_name != NULL);
+       g_return_if_fail (object_path != NULL);
+       g_return_if_fail (interface_name != NULL);
+       g_return_if_fail (signal_name != NULL);
+       g_return_if_fail (parameters != NULL);
+       _tmp0_ = signal_name;
+       g_debug ("application.vala:77: signal_name = %s", _tmp0_);
+       _tmp1_ = self->priv->m_bus;
+       _tmp2_ = panel_new (_tmp1_);
+       g_object_ref_sink (_tmp2_);
+       _g_object_unref0 (self->priv->m_panel);
+       self->priv->m_panel = _tmp2_;
+       _tmp3_ = self->priv->m_panel;
+       panel_load_settings (_tmp3_);
+}
+
+
+static void application_bus_name_lost_cb (Application* self, GDBusConnection* connection, const gchar* sender_name, const gchar* object_path, const gchar* interface_name, const gchar* signal_name, GVariant* parameters) {
+       const gchar* _tmp0_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (connection != NULL);
+       g_return_if_fail (sender_name != NULL);
+       g_return_if_fail (object_path != NULL);
+       g_return_if_fail (interface_name != NULL);
+       g_return_if_fail (signal_name != NULL);
+       g_return_if_fail (parameters != NULL);
+       _tmp0_ = signal_name;
+       g_debug ("application.vala:88: signal_name = %s", _tmp0_);
+       _g_object_unref0 (self->priv->m_panel);
+       self->priv->m_panel = NULL;
+}
+
+
+static void application_bus_disconnected (Application* self, IBusBus* bus) {
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (bus != NULL);
+       g_debug ("application.vala:93: connection is lost.");
+       gtk_main_quit ();
+}
+
+
+static void application_bus_connected (Application* self, IBusBus* bus) {
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (bus != NULL);
+       application_init (self);
+}
+
+
+void application_main (gchar** argv, int argv_length1) {
+       gchar** _tmp0_;
+       gint _tmp0__length1;
+       Application* _tmp1_;
+       Application* app;
+       _tmp0_ = argv;
+       _tmp0__length1 = argv_length1;
+       _tmp1_ = application_new (_tmp0_, _tmp0__length1);
+       app = _tmp1_;
+       application_run (app);
+       _application_unref0 (app);
+}
+
+
+int main (int argc, char ** argv) {
+       g_type_init ();
+       application_main (argv, argc);
+       return 0;
+}
+
+
+static void value_application_init (GValue* value) {
+       value->data[0].v_pointer = NULL;
+}
+
+
+static void value_application_free_value (GValue* value) {
+       if (value->data[0].v_pointer) {
+               application_unref (value->data[0].v_pointer);
+       }
+}
+
+
+static void value_application_copy_value (const GValue* src_value, GValue* dest_value) {
+       if (src_value->data[0].v_pointer) {
+               dest_value->data[0].v_pointer = application_ref (src_value->data[0].v_pointer);
+       } else {
+               dest_value->data[0].v_pointer = NULL;
+       }
+}
+
+
+static gpointer value_application_peek_pointer (const GValue* value) {
+       return value->data[0].v_pointer;
+}
+
+
+static gchar* value_application_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       if (collect_values[0].v_pointer) {
+               Application* object;
+               object = collect_values[0].v_pointer;
+               if (object->parent_instance.g_class == NULL) {
+                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               }
+               value->data[0].v_pointer = application_ref (object);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       return NULL;
+}
+
+
+static gchar* value_application_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       Application** object_p;
+       object_p = collect_values[0].v_pointer;
+       if (!object_p) {
+               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+       }
+       if (!value->data[0].v_pointer) {
+               *object_p = NULL;
+       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+               *object_p = value->data[0].v_pointer;
+       } else {
+               *object_p = application_ref (value->data[0].v_pointer);
+       }
+       return NULL;
+}
+
+
+GParamSpec* param_spec_application (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+       ParamSpecApplication* spec;
+       g_return_val_if_fail (g_type_is_a (object_type, TYPE_APPLICATION), NULL);
+       spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+       G_PARAM_SPEC (spec)->value_type = object_type;
+       return G_PARAM_SPEC (spec);
+}
+
+
+gpointer value_get_application (const GValue* value) {
+       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APPLICATION), NULL);
+       return value->data[0].v_pointer;
+}
+
+
+void value_set_application (GValue* value, gpointer v_object) {
+       Application* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APPLICATION));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APPLICATION));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+               application_ref (value->data[0].v_pointer);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               application_unref (old);
+       }
+}
+
+
+void value_take_application (GValue* value, gpointer v_object) {
+       Application* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_APPLICATION));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_APPLICATION));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               application_unref (old);
+       }
+}
+
+
+static void application_class_init (ApplicationClass * klass) {
+       application_parent_class = g_type_class_peek_parent (klass);
+       APPLICATION_CLASS (klass)->finalize = application_finalize;
+       g_type_class_add_private (klass, sizeof (ApplicationPrivate));
+}
+
+
+static void application_instance_init (Application * self) {
+       self->priv = APPLICATION_GET_PRIVATE (self);
+       self->ref_count = 1;
+}
+
+
+static void application_finalize (Application* obj) {
+       Application * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_APPLICATION, Application);
+       _g_object_unref0 (self->priv->m_bus);
+       _g_object_unref0 (self->priv->m_panel);
+}
+
+
+GType application_get_type (void) {
+       static volatile gsize application_type_id__volatile = 0;
+       if (g_once_init_enter (&application_type_id__volatile)) {
+               static const GTypeValueTable g_define_type_value_table = { value_application_init, value_application_free_value, value_application_copy_value, value_application_peek_pointer, "p", value_application_collect_value, "p", value_application_lcopy_value };
+               static const GTypeInfo g_define_type_info = { sizeof (ApplicationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) application_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Application), 0, (GInstanceInitFunc) application_instance_init, &g_define_type_value_table };
+               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+               GType application_type_id;
+               application_type_id = g_type_register_fundamental (g_type_fundamental_next (), "Application", &g_define_type_info, &g_define_type_fundamental_info, 0);
+               g_once_init_leave (&application_type_id__volatile, application_type_id);
+       }
+       return application_type_id__volatile;
+}
+
+
+gpointer application_ref (gpointer instance) {
+       Application* self;
+       self = instance;
+       g_atomic_int_inc (&self->ref_count);
+       return instance;
+}
+
+
+void application_unref (gpointer instance) {
+       Application* self;
+       self = instance;
+       if (g_atomic_int_dec_and_test (&self->ref_count)) {
+               APPLICATION_GET_CLASS (self)->finalize (self);
+               g_type_free_instance ((GTypeInstance *) self);
+       }
+}
+
+
+
diff --git a/ui/gtk3/candidatearea.c b/ui/gtk3/candidatearea.c
new file mode 100644 (file)
index 0000000..9aaf772
--- /dev/null
@@ -0,0 +1,1491 @@
+/* candidatearea.c generated by valac 0.20.1, the Vala compiler
+ * generated from candidatearea.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <gtk/gtk.h>
+#include <ibus.h>
+#include <stdlib.h>
+#include <string.h>
+#include <pango/pango.h>
+#include <gdk/gdk.h>
+
+
+#define TYPE_CANDIDATE_AREA (candidate_area_get_type ())
+#define CANDIDATE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CANDIDATE_AREA, CandidateArea))
+#define CANDIDATE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CANDIDATE_AREA, CandidateAreaClass))
+#define IS_CANDIDATE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CANDIDATE_AREA))
+#define IS_CANDIDATE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CANDIDATE_AREA))
+#define CANDIDATE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CANDIDATE_AREA, CandidateAreaClass))
+
+typedef struct _CandidateArea CandidateArea;
+typedef struct _CandidateAreaClass CandidateAreaClass;
+typedef struct _CandidateAreaPrivate CandidateAreaPrivate;
+#define _pango_attribute_destroy0(var) ((var == NULL) ? NULL : (var = (pango_attribute_destroy (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define __vala_PangoAttrList_free0(var) ((var == NULL) ? NULL : (var = (_vala_PangoAttrList_free (var), NULL)))
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+
+#define TYPE_VSEPARATOR (vseparator_get_type ())
+#define VSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VSEPARATOR, VSeparator))
+#define VSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VSEPARATOR, VSeparatorClass))
+#define IS_VSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VSEPARATOR))
+#define IS_VSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VSEPARATOR))
+#define VSEPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VSEPARATOR, VSeparatorClass))
+
+typedef struct _VSeparator VSeparator;
+typedef struct _VSeparatorClass VSeparatorClass;
+
+#define TYPE_HSEPARATOR (hseparator_get_type ())
+#define HSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HSEPARATOR, HSeparator))
+#define HSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HSEPARATOR, HSeparatorClass))
+#define IS_HSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HSEPARATOR))
+#define IS_HSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HSEPARATOR))
+#define HSEPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HSEPARATOR, HSeparatorClass))
+
+typedef struct _HSeparator HSeparator;
+typedef struct _HSeparatorClass HSeparatorClass;
+typedef struct _Block1Data Block1Data;
+typedef struct _Block2Data Block2Data;
+typedef struct _Block3Data Block3Data;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _CandidateArea {
+       GtkBox parent_instance;
+       CandidateAreaPrivate * priv;
+};
+
+struct _CandidateAreaClass {
+       GtkBoxClass parent_class;
+};
+
+struct _CandidateAreaPrivate {
+       gboolean m_vertical;
+       GtkLabel** m_labels;
+       gint m_labels_length1;
+       gint _m_labels_size_;
+       GtkLabel** m_candidates;
+       gint m_candidates_length1;
+       gint _m_candidates_size_;
+       GtkWidget** m_widgets;
+       gint m_widgets_length1;
+       gint _m_widgets_size_;
+       IBusText** m_ibus_candidates;
+       gint m_ibus_candidates_length1;
+       gint _m_ibus_candidates_size_;
+       guint m_focus_candidate;
+       gboolean m_show_cursor;
+};
+
+struct _Block1Data {
+       int _ref_count_;
+       CandidateArea * self;
+       gint i;
+};
+
+struct _Block2Data {
+       int _ref_count_;
+       Block1Data * _data1_;
+       gint index;
+};
+
+struct _Block3Data {
+       int _ref_count_;
+       CandidateArea * self;
+       gint index;
+};
+
+
+static gpointer candidate_area_parent_class = NULL;
+
+GType candidate_area_get_type (void) G_GNUC_CONST;
+#define CANDIDATE_AREA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CANDIDATE_AREA, CandidateAreaPrivate))
+enum  {
+       CANDIDATE_AREA_DUMMY_PROPERTY
+};
+CandidateArea* candidate_area_new (gboolean vertical);
+CandidateArea* candidate_area_construct (GType object_type, gboolean vertical);
+void candidate_area_set_vertical (CandidateArea* self, gboolean vertical, gboolean force);
+static void candidate_area_recreate_ui (CandidateArea* self);
+void candidate_area_set_candidates (CandidateArea* self, IBusText** candidates, int candidates_length1, guint focus_candidate, gboolean show_cursor);
+void candidate_area_set_labels (CandidateArea* self, IBusText** labels, int labels_length1);
+static IBusText** _vala_array_dup1 (IBusText** self, int length);
+PangoAttrList* get_pango_attr_list_from_ibus_text (IBusText* text);
+static void _vala_PangoAttrList_free (PangoAttrList* self);
+static void __lambda2_ (CandidateArea* self, GtkButton* b);
+static void ___lambda2__gtk_button_clicked (GtkButton* _sender, gpointer self);
+static void __lambda3_ (CandidateArea* self, GtkButton* b);
+static void ___lambda3__gtk_button_clicked (GtkButton* _sender, gpointer self);
+VSeparator* vseparator_new (void);
+VSeparator* vseparator_construct (GType object_type);
+GType vseparator_get_type (void) G_GNUC_CONST;
+HSeparator* hseparator_new (void);
+HSeparator* hseparator_construct (GType object_type);
+GType hseparator_get_type (void) G_GNUC_CONST;
+static Block1Data* block1_data_ref (Block1Data* _data1_);
+static void block1_data_unref (void * _userdata_);
+static Block2Data* block2_data_ref (Block2Data* _data2_);
+static void block2_data_unref (void * _userdata_);
+static void _vala_array_add1 (GtkLabel*** array, int* length, int* size, GtkLabel* value);
+static void _vala_array_add2 (GtkLabel*** array, int* length, int* size, GtkLabel* value);
+static gboolean ______lambda4_ (Block2Data* _data2_, GtkWidget* w, GdkEventButton* e);
+static gboolean _______lambda4__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static void _vala_array_add3 (GtkWidget*** array, int* length, int* size, GtkWidget* value);
+static gboolean ______lambda5_ (Block2Data* _data2_, GtkWidget* w, GdkEventButton* e);
+static gboolean _______lambda5__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static void _vala_array_add4 (GtkWidget*** array, int* length, int* size, GtkWidget* value);
+static Block3Data* block3_data_ref (Block3Data* _data3_);
+static void block3_data_unref (void * _userdata_);
+static void _vala_array_add5 (GtkLabel*** array, int* length, int* size, GtkLabel* value);
+static void _vala_array_add6 (GtkLabel*** array, int* length, int* size, GtkLabel* value);
+static gboolean ______lambda6_ (Block3Data* _data3_, GtkWidget* w, GdkEventButton* e);
+static gboolean _______lambda6__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static void _vala_array_add7 (GtkWidget*** array, int* length, int* size, GtkWidget* value);
+static void g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void candidate_area_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+static const gchar* CANDIDATE_AREA_LABELS[16] = {"1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "0.", "a.", "b.", "c.", "d.", "e.", "f."};
+static const gchar* CANDIDATE_AREA_PREV_PAGE_ICONS[2] = {GTK_STOCK_GO_BACK, GTK_STOCK_GO_UP};
+static const gchar* CANDIDATE_AREA_NEXT_PAGE_ICONS[2] = {GTK_STOCK_GO_FORWARD, GTK_STOCK_GO_DOWN};
+
+CandidateArea* candidate_area_construct (GType object_type, gboolean vertical) {
+       CandidateArea * self = NULL;
+       gboolean _tmp0_;
+       self = (CandidateArea*) g_object_new (object_type, NULL);
+       _tmp0_ = vertical;
+       candidate_area_set_vertical (self, _tmp0_, TRUE);
+       return self;
+}
+
+
+CandidateArea* candidate_area_new (gboolean vertical) {
+       return candidate_area_construct (TYPE_CANDIDATE_AREA, vertical);
+}
+
+
+void candidate_area_set_vertical (CandidateArea* self, gboolean vertical, gboolean force) {
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_;
+       gboolean _tmp4_;
+       gboolean _tmp5_;
+       GtkOrientation _tmp6_ = 0;
+       gboolean _tmp7_;
+       GtkOrientation _tmp8_;
+       IBusText** _tmp9_;
+       gint _tmp9__length1;
+       g_return_if_fail (self != NULL);
+       _tmp1_ = force;
+       if (!_tmp1_) {
+               gboolean _tmp2_;
+               gboolean _tmp3_;
+               _tmp2_ = self->priv->m_vertical;
+               _tmp3_ = vertical;
+               _tmp0_ = _tmp2_ == _tmp3_;
+       } else {
+               _tmp0_ = FALSE;
+       }
+       _tmp4_ = _tmp0_;
+       if (_tmp4_) {
+               return;
+       }
+       _tmp5_ = vertical;
+       self->priv->m_vertical = _tmp5_;
+       _tmp7_ = vertical;
+       if (_tmp7_) {
+               _tmp6_ = GTK_ORIENTATION_VERTICAL;
+       } else {
+               _tmp6_ = GTK_ORIENTATION_HORIZONTAL;
+       }
+       _tmp8_ = _tmp6_;
+       gtk_orientable_set_orientation ((GtkOrientable*) self, _tmp8_);
+       candidate_area_recreate_ui (self);
+       _tmp9_ = self->priv->m_ibus_candidates;
+       _tmp9__length1 = self->priv->m_ibus_candidates_length1;
+       if (_tmp9__length1 > 0) {
+               IBusText** _tmp10_;
+               gint _tmp10__length1;
+               IBusText** _tmp11_;
+               gint _tmp11__length1;
+               guint _tmp12_;
+               gboolean _tmp13_;
+               _tmp10_ = self->priv->m_ibus_candidates;
+               _tmp10__length1 = self->priv->m_ibus_candidates_length1;
+               self->priv->m_ibus_candidates = NULL;
+               _tmp11_ = _tmp10_;
+               _tmp11__length1 = _tmp10__length1;
+               _tmp12_ = self->priv->m_focus_candidate;
+               _tmp13_ = self->priv->m_show_cursor;
+               candidate_area_set_candidates (self, _tmp11_, _tmp10__length1, _tmp12_, _tmp13_);
+               _tmp11_ = (_vala_array_free (_tmp11_, _tmp11__length1, (GDestroyNotify) g_object_unref), NULL);
+               gtk_widget_show_all ((GtkWidget*) self);
+       }
+}
+
+
+void candidate_area_set_labels (CandidateArea* self, IBusText** labels, int labels_length1) {
+       gint i = 0;
+       g_return_if_fail (self != NULL);
+       {
+               gboolean _tmp0_;
+               i = 0;
+               _tmp0_ = TRUE;
+               while (TRUE) {
+                       gboolean _tmp1_;
+                       gint _tmp3_;
+                       IBusText** _tmp4_;
+                       gint _tmp4__length1;
+                       gint _tmp5_ = 0;
+                       GtkLabel** _tmp6_;
+                       gint _tmp6__length1;
+                       gint _tmp7_;
+                       GtkLabel* _tmp8_;
+                       IBusText** _tmp9_;
+                       gint _tmp9__length1;
+                       gint _tmp10_;
+                       IBusText* _tmp11_;
+                       const gchar* _tmp12_ = NULL;
+                       _tmp1_ = _tmp0_;
+                       if (!_tmp1_) {
+                               gint _tmp2_;
+                               _tmp2_ = i;
+                               i = _tmp2_ + 1;
+                       }
+                       _tmp0_ = FALSE;
+                       _tmp3_ = i;
+                       _tmp4_ = labels;
+                       _tmp4__length1 = labels_length1;
+                       _tmp5_ = MIN (16, _tmp4__length1);
+                       if (!(_tmp3_ < _tmp5_)) {
+                               break;
+                       }
+                       _tmp6_ = self->priv->m_labels;
+                       _tmp6__length1 = self->priv->m_labels_length1;
+                       _tmp7_ = i;
+                       _tmp8_ = _tmp6_[_tmp7_];
+                       _tmp9_ = labels;
+                       _tmp9__length1 = labels_length1;
+                       _tmp10_ = i;
+                       _tmp11_ = _tmp9_[_tmp10_];
+                       _tmp12_ = ibus_text_get_text (_tmp11_);
+                       gtk_label_set_text (_tmp8_, _tmp12_);
+               }
+       }
+       {
+               gboolean _tmp13_;
+               _tmp13_ = TRUE;
+               while (TRUE) {
+                       gboolean _tmp14_;
+                       gint _tmp16_;
+                       GtkLabel** _tmp17_;
+                       gint _tmp17__length1;
+                       gint _tmp18_;
+                       GtkLabel* _tmp19_;
+                       gint _tmp20_;
+                       const gchar* _tmp21_;
+                       _tmp14_ = _tmp13_;
+                       if (!_tmp14_) {
+                               gint _tmp15_;
+                               _tmp15_ = i;
+                               i = _tmp15_ + 1;
+                       }
+                       _tmp13_ = FALSE;
+                       _tmp16_ = i;
+                       if (!(_tmp16_ < 16)) {
+                               break;
+                       }
+                       _tmp17_ = self->priv->m_labels;
+                       _tmp17__length1 = self->priv->m_labels_length1;
+                       _tmp18_ = i;
+                       _tmp19_ = _tmp17_[_tmp18_];
+                       _tmp20_ = i;
+                       _tmp21_ = CANDIDATE_AREA_LABELS[_tmp20_];
+                       gtk_label_set_text (_tmp19_, _tmp21_);
+               }
+       }
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+static IBusText** _vala_array_dup1 (IBusText** self, int length) {
+       IBusText** result;
+       int i;
+       result = g_new0 (IBusText*, length + 1);
+       for (i = 0; i < length; i++) {
+               IBusText* _tmp0_;
+               _tmp0_ = _g_object_ref0 (self[i]);
+               result[i] = _tmp0_;
+       }
+       return result;
+}
+
+
+static void _vala_PangoAttrList_free (PangoAttrList* self) {
+       g_boxed_free (pango_attr_list_get_type (), self);
+}
+
+
+void candidate_area_set_candidates (CandidateArea* self, IBusText** candidates, int candidates_length1, guint focus_candidate, gboolean show_cursor) {
+       IBusText** _tmp0_;
+       gint _tmp0__length1;
+       IBusText** _tmp1_;
+       gint _tmp1__length1;
+       guint _tmp2_;
+       gboolean _tmp3_;
+       IBusText** _tmp4_;
+       gint _tmp4__length1;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = candidates;
+       _tmp0__length1 = candidates_length1;
+       _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup1 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+       _tmp1__length1 = _tmp0__length1;
+       self->priv->m_ibus_candidates = (_vala_array_free (self->priv->m_ibus_candidates, self->priv->m_ibus_candidates_length1, (GDestroyNotify) g_object_unref), NULL);
+       self->priv->m_ibus_candidates = _tmp1_;
+       self->priv->m_ibus_candidates_length1 = _tmp1__length1;
+       self->priv->_m_ibus_candidates_size_ = self->priv->m_ibus_candidates_length1;
+       _tmp2_ = focus_candidate;
+       self->priv->m_focus_candidate = _tmp2_;
+       _tmp3_ = show_cursor;
+       self->priv->m_show_cursor = _tmp3_;
+       _tmp4_ = candidates;
+       _tmp4__length1 = candidates_length1;
+       _vala_assert (_tmp4__length1 < 16, "candidates.length < 16");
+       {
+               gint i;
+               i = 0;
+               {
+                       gboolean _tmp5_;
+                       _tmp5_ = TRUE;
+                       while (TRUE) {
+                               gboolean _tmp6_;
+                               gint _tmp8_;
+                               GtkLabel** _tmp9_;
+                               gint _tmp9__length1;
+                               gint _tmp10_;
+                               GtkLabel* _tmp11_;
+                               GtkLabel* _tmp12_;
+                               GtkLabel* label;
+                               gboolean visible;
+                               gint _tmp13_;
+                               IBusText** _tmp14_;
+                               gint _tmp14__length1;
+                               gboolean _tmp84_;
+                               _tmp6_ = _tmp5_;
+                               if (!_tmp6_) {
+                                       gint _tmp7_;
+                                       _tmp7_ = i;
+                                       i = _tmp7_ + 1;
+                               }
+                               _tmp5_ = FALSE;
+                               _tmp8_ = i;
+                               if (!(_tmp8_ < 16)) {
+                                       break;
+                               }
+                               _tmp9_ = self->priv->m_candidates;
+                               _tmp9__length1 = self->priv->m_candidates_length1;
+                               _tmp10_ = i;
+                               _tmp11_ = _tmp9_[_tmp10_];
+                               _tmp12_ = _g_object_ref0 (_tmp11_);
+                               label = _tmp12_;
+                               visible = FALSE;
+                               _tmp13_ = i;
+                               _tmp14_ = candidates;
+                               _tmp14__length1 = candidates_length1;
+                               if (_tmp13_ < _tmp14__length1) {
+                                       IBusText** _tmp15_;
+                                       gint _tmp15__length1;
+                                       gint _tmp16_;
+                                       IBusText* _tmp17_;
+                                       PangoAttrList* _tmp18_ = NULL;
+                                       PangoAttrList* attrs;
+                                       gboolean _tmp19_ = FALSE;
+                                       gint _tmp20_;
+                                       guint _tmp21_;
+                                       gboolean _tmp23_;
+                                       GtkLabel* _tmp73_;
+                                       IBusText** _tmp74_;
+                                       gint _tmp74__length1;
+                                       gint _tmp75_;
+                                       IBusText* _tmp76_;
+                                       const gchar* _tmp77_ = NULL;
+                                       GtkLabel* _tmp78_;
+                                       PangoAttrList* _tmp79_;
+                                       _tmp15_ = candidates;
+                                       _tmp15__length1 = candidates_length1;
+                                       _tmp16_ = i;
+                                       _tmp17_ = _tmp15_[_tmp16_];
+                                       _tmp18_ = get_pango_attr_list_from_ibus_text (_tmp17_);
+                                       attrs = _tmp18_;
+                                       _tmp20_ = i;
+                                       _tmp21_ = focus_candidate;
+                                       if (((guint) _tmp20_) == _tmp21_) {
+                                               gboolean _tmp22_;
+                                               _tmp22_ = show_cursor;
+                                               _tmp19_ = _tmp22_;
+                                       } else {
+                                               _tmp19_ = FALSE;
+                                       }
+                                       _tmp23_ = _tmp19_;
+                                       if (_tmp23_) {
+                                               GtkLabel** _tmp24_;
+                                               gint _tmp24__length1;
+                                               gint _tmp25_;
+                                               GtkLabel* _tmp26_;
+                                               GtkStyleContext* _tmp27_ = NULL;
+                                               GtkStyleContext* _tmp28_;
+                                               GtkStyleContext* context;
+                                               GtkStyleContext* _tmp29_;
+                                               GdkRGBA _tmp30_ = {0};
+                                               GdkRGBA color;
+                                               GdkRGBA _tmp31_;
+                                               gdouble _tmp32_;
+                                               guint16 _tmp33_;
+                                               GdkRGBA _tmp34_;
+                                               gdouble _tmp35_;
+                                               guint16 _tmp36_;
+                                               GdkRGBA _tmp37_;
+                                               gdouble _tmp38_;
+                                               guint16 _tmp39_;
+                                               PangoAttribute* _tmp40_ = NULL;
+                                               PangoAttribute* pango_attr;
+                                               PangoAttribute* _tmp41_;
+                                               PangoAttribute* _tmp42_;
+                                               IBusText** _tmp43_;
+                                               gint _tmp43__length1;
+                                               gint _tmp44_;
+                                               IBusText* _tmp45_;
+                                               const gchar* _tmp46_ = NULL;
+                                               gint _tmp47_;
+                                               gint _tmp48_;
+                                               PangoAttrList* _tmp49_;
+                                               PangoAttribute* _tmp50_;
+                                               GtkStyleContext* _tmp51_;
+                                               GdkRGBA _tmp52_ = {0};
+                                               GdkRGBA _tmp53_;
+                                               gdouble _tmp54_;
+                                               guint16 _tmp55_;
+                                               GdkRGBA _tmp56_;
+                                               gdouble _tmp57_;
+                                               guint16 _tmp58_;
+                                               GdkRGBA _tmp59_;
+                                               gdouble _tmp60_;
+                                               guint16 _tmp61_;
+                                               PangoAttribute* _tmp62_ = NULL;
+                                               PangoAttribute* _tmp63_;
+                                               PangoAttribute* _tmp64_;
+                                               IBusText** _tmp65_;
+                                               gint _tmp65__length1;
+                                               gint _tmp66_;
+                                               IBusText* _tmp67_;
+                                               const gchar* _tmp68_ = NULL;
+                                               gint _tmp69_;
+                                               gint _tmp70_;
+                                               PangoAttrList* _tmp71_;
+                                               PangoAttribute* _tmp72_;
+                                               _tmp24_ = self->priv->m_candidates;
+                                               _tmp24__length1 = self->priv->m_candidates_length1;
+                                               _tmp25_ = i;
+                                               _tmp26_ = _tmp24_[_tmp25_];
+                                               _tmp27_ = gtk_widget_get_style_context ((GtkWidget*) _tmp26_);
+                                               _tmp28_ = _g_object_ref0 (_tmp27_);
+                                               context = _tmp28_;
+                                               _tmp29_ = context;
+                                               gtk_style_context_get_color (_tmp29_, GTK_STATE_FLAG_SELECTED, &_tmp30_);
+                                               color = _tmp30_;
+                                               _tmp31_ = color;
+                                               _tmp32_ = _tmp31_.red;
+                                               _tmp33_ = G_MAXUINT16;
+                                               _tmp34_ = color;
+                                               _tmp35_ = _tmp34_.green;
+                                               _tmp36_ = G_MAXUINT16;
+                                               _tmp37_ = color;
+                                               _tmp38_ = _tmp37_.blue;
+                                               _tmp39_ = G_MAXUINT16;
+                                               _tmp40_ = pango_attr_foreground_new ((guint16) (_tmp32_ * _tmp33_), (guint16) (_tmp35_ * _tmp36_), (guint16) (_tmp38_ * _tmp39_));
+                                               pango_attr = _tmp40_;
+                                               _tmp41_ = pango_attr;
+                                               _tmp41_->start_index = (guint) 0;
+                                               _tmp42_ = pango_attr;
+                                               _tmp43_ = candidates;
+                                               _tmp43__length1 = candidates_length1;
+                                               _tmp44_ = i;
+                                               _tmp45_ = _tmp43_[_tmp44_];
+                                               _tmp46_ = ibus_text_get_text (_tmp45_);
+                                               _tmp47_ = strlen (_tmp46_);
+                                               _tmp48_ = _tmp47_;
+                                               _tmp42_->end_index = (guint) _tmp48_;
+                                               _tmp49_ = attrs;
+                                               _tmp50_ = pango_attr;
+                                               pango_attr = NULL;
+                                               pango_attr_list_insert (_tmp49_, _tmp50_);
+                                               _tmp51_ = context;
+                                               gtk_style_context_get_background_color (_tmp51_, GTK_STATE_FLAG_SELECTED, &_tmp52_);
+                                               color = _tmp52_;
+                                               _tmp53_ = color;
+                                               _tmp54_ = _tmp53_.red;
+                                               _tmp55_ = G_MAXUINT16;
+                                               _tmp56_ = color;
+                                               _tmp57_ = _tmp56_.green;
+                                               _tmp58_ = G_MAXUINT16;
+                                               _tmp59_ = color;
+                                               _tmp60_ = _tmp59_.blue;
+                                               _tmp61_ = G_MAXUINT16;
+                                               _tmp62_ = pango_attr_background_new ((guint16) (_tmp54_ * _tmp55_), (guint16) (_tmp57_ * _tmp58_), (guint16) (_tmp60_ * _tmp61_));
+                                               _pango_attribute_destroy0 (pango_attr);
+                                               pango_attr = _tmp62_;
+                                               _tmp63_ = pango_attr;
+                                               _tmp63_->start_index = (guint) 0;
+                                               _tmp64_ = pango_attr;
+                                               _tmp65_ = candidates;
+                                               _tmp65__length1 = candidates_length1;
+                                               _tmp66_ = i;
+                                               _tmp67_ = _tmp65_[_tmp66_];
+                                               _tmp68_ = ibus_text_get_text (_tmp67_);
+                                               _tmp69_ = strlen (_tmp68_);
+                                               _tmp70_ = _tmp69_;
+                                               _tmp64_->end_index = (guint) _tmp70_;
+                                               _tmp71_ = attrs;
+                                               _tmp72_ = pango_attr;
+                                               pango_attr = NULL;
+                                               pango_attr_list_insert (_tmp71_, _tmp72_);
+                                               _pango_attribute_destroy0 (pango_attr);
+                                               _g_object_unref0 (context);
+                                       }
+                                       _tmp73_ = label;
+                                       _tmp74_ = candidates;
+                                       _tmp74__length1 = candidates_length1;
+                                       _tmp75_ = i;
+                                       _tmp76_ = _tmp74_[_tmp75_];
+                                       _tmp77_ = ibus_text_get_text (_tmp76_);
+                                       gtk_label_set_text (_tmp73_, _tmp77_);
+                                       _tmp78_ = label;
+                                       _tmp79_ = attrs;
+                                       gtk_label_set_attributes (_tmp78_, _tmp79_);
+                                       visible = TRUE;
+                                       __vala_PangoAttrList_free0 (attrs);
+                               } else {
+                                       GtkLabel* _tmp80_;
+                                       GtkLabel* _tmp81_;
+                                       PangoAttrList* _tmp82_;
+                                       PangoAttrList* _tmp83_;
+                                       _tmp80_ = label;
+                                       gtk_label_set_text (_tmp80_, "");
+                                       _tmp81_ = label;
+                                       _tmp82_ = pango_attr_list_new ();
+                                       _tmp83_ = _tmp82_;
+                                       gtk_label_set_attributes (_tmp81_, _tmp83_);
+                                       __vala_PangoAttrList_free0 (_tmp83_);
+                               }
+                               _tmp84_ = self->priv->m_vertical;
+                               if (_tmp84_) {
+                                       GtkWidget** _tmp85_;
+                                       gint _tmp85__length1;
+                                       gint _tmp86_;
+                                       GtkWidget* _tmp87_;
+                                       gboolean _tmp88_;
+                                       GtkWidget** _tmp89_;
+                                       gint _tmp89__length1;
+                                       gint _tmp90_;
+                                       GtkWidget* _tmp91_;
+                                       gboolean _tmp92_;
+                                       _tmp85_ = self->priv->m_widgets;
+                                       _tmp85__length1 = self->priv->m_widgets_length1;
+                                       _tmp86_ = i;
+                                       _tmp87_ = _tmp85_[_tmp86_ * 2];
+                                       _tmp88_ = visible;
+                                       gtk_widget_set_visible (_tmp87_, _tmp88_);
+                                       _tmp89_ = self->priv->m_widgets;
+                                       _tmp89__length1 = self->priv->m_widgets_length1;
+                                       _tmp90_ = i;
+                                       _tmp91_ = _tmp89_[(_tmp90_ * 2) + 1];
+                                       _tmp92_ = visible;
+                                       gtk_widget_set_visible (_tmp91_, _tmp92_);
+                               } else {
+                                       GtkWidget** _tmp93_;
+                                       gint _tmp93__length1;
+                                       gint _tmp94_;
+                                       GtkWidget* _tmp95_;
+                                       gboolean _tmp96_;
+                                       _tmp93_ = self->priv->m_widgets;
+                                       _tmp93__length1 = self->priv->m_widgets_length1;
+                                       _tmp94_ = i;
+                                       _tmp95_ = _tmp93_[_tmp94_];
+                                       _tmp96_ = visible;
+                                       gtk_widget_set_visible (_tmp95_, _tmp96_);
+                               }
+                               _g_object_unref0 (label);
+                       }
+               }
+       }
+}
+
+
+static void __lambda2_ (CandidateArea* self, GtkButton* b) {
+       g_return_if_fail (b != NULL);
+       g_signal_emit_by_name (self, "page-up");
+}
+
+
+static void ___lambda2__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+       __lambda2_ (self, _sender);
+}
+
+
+static void __lambda3_ (CandidateArea* self, GtkButton* b) {
+       g_return_if_fail (b != NULL);
+       g_signal_emit_by_name (self, "page-down");
+}
+
+
+static void ___lambda3__gtk_button_clicked (GtkButton* _sender, gpointer self) {
+       __lambda3_ (self, _sender);
+}
+
+
+static Block1Data* block1_data_ref (Block1Data* _data1_) {
+       g_atomic_int_inc (&_data1_->_ref_count_);
+       return _data1_;
+}
+
+
+static void block1_data_unref (void * _userdata_) {
+       Block1Data* _data1_;
+       _data1_ = (Block1Data*) _userdata_;
+       if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
+               CandidateArea * self;
+               self = _data1_->self;
+               _g_object_unref0 (self);
+               g_slice_free (Block1Data, _data1_);
+       }
+}
+
+
+static Block2Data* block2_data_ref (Block2Data* _data2_) {
+       g_atomic_int_inc (&_data2_->_ref_count_);
+       return _data2_;
+}
+
+
+static void block2_data_unref (void * _userdata_) {
+       Block2Data* _data2_;
+       _data2_ = (Block2Data*) _userdata_;
+       if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
+               CandidateArea * self;
+               self = _data2_->_data1_->self;
+               block1_data_unref (_data2_->_data1_);
+               _data2_->_data1_ = NULL;
+               g_slice_free (Block2Data, _data2_);
+       }
+}
+
+
+static void _vala_array_add1 (GtkLabel*** array, int* length, int* size, GtkLabel* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (GtkLabel*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add2 (GtkLabel*** array, int* length, int* size, GtkLabel* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (GtkLabel*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static gboolean ______lambda4_ (Block2Data* _data2_, GtkWidget* w, GdkEventButton* e) {
+       Block1Data* _data1_;
+       CandidateArea * self;
+       gboolean result = FALSE;
+       gint _tmp0_;
+       GdkEventButton _tmp1_;
+       guint _tmp2_;
+       GdkEventButton _tmp3_;
+       GdkModifierType _tmp4_;
+       _data1_ = _data2_->_data1_;
+       self = _data1_->self;
+       g_return_val_if_fail (w != NULL, FALSE);
+       g_return_val_if_fail (e != NULL, FALSE);
+       _tmp0_ = _data1_->i;
+       _tmp1_ = *e;
+       _tmp2_ = _tmp1_.button;
+       _tmp3_ = *e;
+       _tmp4_ = _tmp3_.state;
+       g_signal_emit_by_name (self, "candidate-clicked", (guint) _tmp0_, _tmp2_, (guint) _tmp4_);
+       result = TRUE;
+       return result;
+}
+
+
+static gboolean _______lambda4__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+       gboolean result;
+       result = ______lambda4_ (self, _sender, event);
+       return result;
+}
+
+
+static void _vala_array_add3 (GtkWidget*** array, int* length, int* size, GtkWidget* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (GtkWidget*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static gboolean ______lambda5_ (Block2Data* _data2_, GtkWidget* w, GdkEventButton* e) {
+       Block1Data* _data1_;
+       CandidateArea * self;
+       gboolean result = FALSE;
+       gint _tmp0_;
+       GdkEventButton _tmp1_;
+       guint _tmp2_;
+       GdkEventButton _tmp3_;
+       GdkModifierType _tmp4_;
+       _data1_ = _data2_->_data1_;
+       self = _data1_->self;
+       g_return_val_if_fail (w != NULL, FALSE);
+       g_return_val_if_fail (e != NULL, FALSE);
+       _tmp0_ = _data2_->index;
+       _tmp1_ = *e;
+       _tmp2_ = _tmp1_.button;
+       _tmp3_ = *e;
+       _tmp4_ = _tmp3_.state;
+       g_signal_emit_by_name (self, "candidate-clicked", (guint) _tmp0_, _tmp2_, (guint) _tmp4_);
+       result = TRUE;
+       return result;
+}
+
+
+static gboolean _______lambda5__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+       gboolean result;
+       result = ______lambda5_ (self, _sender, event);
+       return result;
+}
+
+
+static void _vala_array_add4 (GtkWidget*** array, int* length, int* size, GtkWidget* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (GtkWidget*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static Block3Data* block3_data_ref (Block3Data* _data3_) {
+       g_atomic_int_inc (&_data3_->_ref_count_);
+       return _data3_;
+}
+
+
+static void block3_data_unref (void * _userdata_) {
+       Block3Data* _data3_;
+       _data3_ = (Block3Data*) _userdata_;
+       if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
+               CandidateArea * self;
+               self = _data3_->self;
+               _g_object_unref0 (self);
+               g_slice_free (Block3Data, _data3_);
+       }
+}
+
+
+static void _vala_array_add5 (GtkLabel*** array, int* length, int* size, GtkLabel* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (GtkLabel*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add6 (GtkLabel*** array, int* length, int* size, GtkLabel* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (GtkLabel*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static gboolean ______lambda6_ (Block3Data* _data3_, GtkWidget* w, GdkEventButton* e) {
+       CandidateArea * self;
+       gboolean result = FALSE;
+       gint _tmp0_;
+       GdkEventButton _tmp1_;
+       guint _tmp2_;
+       GdkEventButton _tmp3_;
+       GdkModifierType _tmp4_;
+       self = _data3_->self;
+       g_return_val_if_fail (w != NULL, FALSE);
+       g_return_val_if_fail (e != NULL, FALSE);
+       _tmp0_ = _data3_->index;
+       _tmp1_ = *e;
+       _tmp2_ = _tmp1_.button;
+       _tmp3_ = *e;
+       _tmp4_ = _tmp3_.state;
+       g_signal_emit_by_name (self, "candidate-clicked", (guint) _tmp0_, _tmp2_, (guint) _tmp4_);
+       result = TRUE;
+       return result;
+}
+
+
+static gboolean _______lambda6__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+       gboolean result;
+       result = ______lambda6_ (self, _sender, event);
+       return result;
+}
+
+
+static void _vala_array_add7 (GtkWidget*** array, int* length, int* size, GtkWidget* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (GtkWidget*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void candidate_area_recreate_ui (CandidateArea* self) {
+       GList* _tmp0_ = NULL;
+       GtkButton* _tmp3_;
+       GtkButton* prev_button;
+       GtkButton* _tmp4_;
+       GtkButton* _tmp5_;
+       GtkOrientation _tmp6_;
+       GtkOrientation _tmp7_;
+       const gchar* _tmp8_;
+       GtkImage* _tmp9_;
+       GtkImage* _tmp10_;
+       GtkButton* _tmp11_;
+       GtkButton* _tmp12_;
+       GtkButton* next_button;
+       GtkButton* _tmp13_;
+       GtkButton* _tmp14_;
+       GtkOrientation _tmp15_;
+       GtkOrientation _tmp16_;
+       const gchar* _tmp17_;
+       GtkImage* _tmp18_;
+       GtkImage* _tmp19_;
+       GtkButton* _tmp20_;
+       gboolean _tmp21_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = gtk_container_get_children ((GtkContainer*) self);
+       {
+               GList* w_collection = NULL;
+               GList* w_it = NULL;
+               w_collection = _tmp0_;
+               for (w_it = w_collection; w_it != NULL; w_it = w_it->next) {
+                       GtkWidget* _tmp1_;
+                       GtkWidget* w = NULL;
+                       _tmp1_ = _g_object_ref0 ((GtkWidget*) w_it->data);
+                       w = _tmp1_;
+                       {
+                               GtkWidget* _tmp2_;
+                               _tmp2_ = w;
+                               gtk_widget_destroy (_tmp2_);
+                               _g_object_unref0 (w);
+                       }
+               }
+               _g_list_free0 (w_collection);
+       }
+       _tmp3_ = (GtkButton*) gtk_button_new ();
+       g_object_ref_sink (_tmp3_);
+       prev_button = _tmp3_;
+       _tmp4_ = prev_button;
+       g_signal_connect_object (_tmp4_, "clicked", (GCallback) ___lambda2__gtk_button_clicked, self, 0);
+       _tmp5_ = prev_button;
+       _tmp6_ = gtk_orientable_get_orientation ((GtkOrientable*) self);
+       _tmp7_ = _tmp6_;
+       _tmp8_ = CANDIDATE_AREA_PREV_PAGE_ICONS[_tmp7_];
+       _tmp9_ = (GtkImage*) gtk_image_new_from_stock (_tmp8_, GTK_ICON_SIZE_MENU);
+       g_object_ref_sink (_tmp9_);
+       _tmp10_ = _tmp9_;
+       gtk_button_set_image (_tmp5_, (GtkWidget*) _tmp10_);
+       _g_object_unref0 (_tmp10_);
+       _tmp11_ = prev_button;
+       gtk_button_set_relief (_tmp11_, GTK_RELIEF_NONE);
+       _tmp12_ = (GtkButton*) gtk_button_new ();
+       g_object_ref_sink (_tmp12_);
+       next_button = _tmp12_;
+       _tmp13_ = next_button;
+       g_signal_connect_object (_tmp13_, "clicked", (GCallback) ___lambda3__gtk_button_clicked, self, 0);
+       _tmp14_ = next_button;
+       _tmp15_ = gtk_orientable_get_orientation ((GtkOrientable*) self);
+       _tmp16_ = _tmp15_;
+       _tmp17_ = CANDIDATE_AREA_NEXT_PAGE_ICONS[_tmp16_];
+       _tmp18_ = (GtkImage*) gtk_image_new_from_stock (_tmp17_, GTK_ICON_SIZE_MENU);
+       g_object_ref_sink (_tmp18_);
+       _tmp19_ = _tmp18_;
+       gtk_button_set_image (_tmp14_, (GtkWidget*) _tmp19_);
+       _g_object_unref0 (_tmp19_);
+       _tmp20_ = next_button;
+       gtk_button_set_relief (_tmp20_, GTK_RELIEF_NONE);
+       _tmp21_ = self->priv->m_vertical;
+       if (_tmp21_) {
+               GtkBox* _tmp22_;
+               GtkBox* candidates_hbox;
+               GtkBox* _tmp23_;
+               GtkBox* _tmp24_;
+               GtkBox* labels_vbox;
+               GtkBox* _tmp25_;
+               GtkBox* _tmp26_;
+               GtkBox* candidates_vbox;
+               GtkBox* _tmp27_;
+               GtkBox* _tmp28_;
+               GtkBox* _tmp29_;
+               GtkBox* _tmp30_;
+               VSeparator* _tmp31_;
+               VSeparator* _tmp32_;
+               GtkBox* _tmp33_;
+               GtkBox* _tmp34_;
+               HSeparator* _tmp35_;
+               HSeparator* _tmp36_;
+               GtkBox* _tmp37_;
+               GtkBox* buttons_hbox;
+               GtkLabel* _tmp38_;
+               GtkLabel* state_label;
+               GtkLabel* _tmp39_;
+               GtkBox* _tmp40_;
+               GtkLabel* _tmp41_;
+               GtkBox* _tmp42_;
+               GtkButton* _tmp43_;
+               GtkBox* _tmp44_;
+               GtkButton* _tmp45_;
+               GtkBox* _tmp46_;
+               GtkLabel** _tmp47_ = NULL;
+               GtkLabel** _tmp48_ = NULL;
+               GtkWidget** _tmp49_ = NULL;
+               _tmp22_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+               g_object_ref_sink (_tmp22_);
+               candidates_hbox = _tmp22_;
+               _tmp23_ = candidates_hbox;
+               gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp23_, FALSE, FALSE, (guint) 0);
+               _tmp24_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+               g_object_ref_sink (_tmp24_);
+               labels_vbox = _tmp24_;
+               _tmp25_ = labels_vbox;
+               gtk_box_set_homogeneous (_tmp25_, TRUE);
+               _tmp26_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+               g_object_ref_sink (_tmp26_);
+               candidates_vbox = _tmp26_;
+               _tmp27_ = candidates_vbox;
+               gtk_box_set_homogeneous (_tmp27_, TRUE);
+               _tmp28_ = candidates_hbox;
+               _tmp29_ = labels_vbox;
+               gtk_box_pack_start (_tmp28_, (GtkWidget*) _tmp29_, FALSE, FALSE, (guint) 4);
+               _tmp30_ = candidates_hbox;
+               _tmp31_ = vseparator_new ();
+               g_object_ref_sink (_tmp31_);
+               _tmp32_ = _tmp31_;
+               gtk_box_pack_start (_tmp30_, (GtkWidget*) _tmp32_, FALSE, FALSE, (guint) 0);
+               _g_object_unref0 (_tmp32_);
+               _tmp33_ = candidates_hbox;
+               _tmp34_ = candidates_vbox;
+               gtk_box_pack_start (_tmp33_, (GtkWidget*) _tmp34_, TRUE, TRUE, (guint) 4);
+               _tmp35_ = hseparator_new ();
+               g_object_ref_sink (_tmp35_);
+               _tmp36_ = _tmp35_;
+               gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp36_, FALSE, FALSE, (guint) 0);
+               _g_object_unref0 (_tmp36_);
+               _tmp37_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+               g_object_ref_sink (_tmp37_);
+               buttons_hbox = _tmp37_;
+               _tmp38_ = (GtkLabel*) gtk_label_new (NULL);
+               g_object_ref_sink (_tmp38_);
+               state_label = _tmp38_;
+               _tmp39_ = state_label;
+               gtk_widget_set_size_request ((GtkWidget*) _tmp39_, 20, -1);
+               _tmp40_ = buttons_hbox;
+               _tmp41_ = state_label;
+               gtk_box_pack_start (_tmp40_, (GtkWidget*) _tmp41_, TRUE, TRUE, (guint) 0);
+               _tmp42_ = buttons_hbox;
+               _tmp43_ = prev_button;
+               gtk_box_pack_start (_tmp42_, (GtkWidget*) _tmp43_, FALSE, FALSE, (guint) 0);
+               _tmp44_ = buttons_hbox;
+               _tmp45_ = next_button;
+               gtk_box_pack_start (_tmp44_, (GtkWidget*) _tmp45_, FALSE, FALSE, (guint) 0);
+               _tmp46_ = buttons_hbox;
+               gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp46_, FALSE, FALSE, (guint) 0);
+               _tmp47_ = g_new0 (GtkLabel*, 0 + 1);
+               self->priv->m_labels = (_vala_array_free (self->priv->m_labels, self->priv->m_labels_length1, (GDestroyNotify) g_object_unref), NULL);
+               self->priv->m_labels = _tmp47_;
+               self->priv->m_labels_length1 = 0;
+               self->priv->_m_labels_size_ = self->priv->m_labels_length1;
+               _tmp48_ = g_new0 (GtkLabel*, 0 + 1);
+               self->priv->m_candidates = (_vala_array_free (self->priv->m_candidates, self->priv->m_candidates_length1, (GDestroyNotify) g_object_unref), NULL);
+               self->priv->m_candidates = _tmp48_;
+               self->priv->m_candidates_length1 = 0;
+               self->priv->_m_candidates_size_ = self->priv->m_candidates_length1;
+               _tmp49_ = g_new0 (GtkWidget*, 0 + 1);
+               self->priv->m_widgets = (_vala_array_free (self->priv->m_widgets, self->priv->m_widgets_length1, (GDestroyNotify) g_object_unref), NULL);
+               self->priv->m_widgets = _tmp49_;
+               self->priv->m_widgets_length1 = 0;
+               self->priv->_m_widgets_size_ = self->priv->m_widgets_length1;
+               {
+                       Block1Data* _data1_;
+                       _data1_ = g_slice_new0 (Block1Data);
+                       _data1_->_ref_count_ = 1;
+                       _data1_->self = g_object_ref (self);
+                       _data1_->i = 0;
+                       {
+                               gboolean _tmp50_;
+                               _tmp50_ = TRUE;
+                               while (TRUE) {
+                                       Block2Data* _data2_;
+                                       gboolean _tmp51_;
+                                       gint _tmp53_;
+                                       gint _tmp54_;
+                                       const gchar* _tmp55_;
+                                       GtkLabel* _tmp56_;
+                                       GtkLabel* label;
+                                       GtkLabel* _tmp57_;
+                                       GtkLabel* _tmp58_;
+                                       GtkLabel** _tmp59_;
+                                       gint _tmp59__length1;
+                                       GtkLabel* _tmp60_;
+                                       GtkLabel* _tmp61_;
+                                       GtkLabel* _tmp62_;
+                                       GtkLabel* candidate;
+                                       GtkLabel* _tmp63_;
+                                       GtkLabel* _tmp64_;
+                                       GtkLabel** _tmp65_;
+                                       gint _tmp65__length1;
+                                       GtkLabel* _tmp66_;
+                                       GtkLabel* _tmp67_;
+                                       GtkLabel* _tmp68_;
+                                       GValue _tmp69_ = {0};
+                                       GtkLabel* _tmp70_;
+                                       GValue _tmp71_ = {0};
+                                       gint _tmp72_;
+                                       GtkEventBox* _tmp73_;
+                                       GtkEventBox* label_ebox;
+                                       GtkEventBox* _tmp74_;
+                                       GtkEventBox* _tmp75_;
+                                       GtkEventBox* _tmp76_;
+                                       GtkLabel* _tmp77_;
+                                       GtkBox* _tmp78_;
+                                       GtkEventBox* _tmp79_;
+                                       GtkWidget** _tmp80_;
+                                       gint _tmp80__length1;
+                                       GtkEventBox* _tmp81_;
+                                       GtkWidget* _tmp82_;
+                                       GtkEventBox* _tmp83_;
+                                       GtkEventBox* candidate_ebox;
+                                       GtkEventBox* _tmp84_;
+                                       GtkEventBox* _tmp85_;
+                                       GtkEventBox* _tmp86_;
+                                       GtkLabel* _tmp87_;
+                                       GtkBox* _tmp88_;
+                                       GtkEventBox* _tmp89_;
+                                       GtkWidget** _tmp90_;
+                                       gint _tmp90__length1;
+                                       GtkEventBox* _tmp91_;
+                                       GtkWidget* _tmp92_;
+                                       _data2_ = g_slice_new0 (Block2Data);
+                                       _data2_->_ref_count_ = 1;
+                                       _data2_->_data1_ = block1_data_ref (_data1_);
+                                       _tmp51_ = _tmp50_;
+                                       if (!_tmp51_) {
+                                               gint _tmp52_;
+                                               _tmp52_ = _data1_->i;
+                                               _data1_->i = _tmp52_ + 1;
+                                       }
+                                       _tmp50_ = FALSE;
+                                       _tmp53_ = _data1_->i;
+                                       if (!(_tmp53_ < 16)) {
+                                               block2_data_unref (_data2_);
+                                               _data2_ = NULL;
+                                               break;
+                                       }
+                                       _tmp54_ = _data1_->i;
+                                       _tmp55_ = CANDIDATE_AREA_LABELS[_tmp54_];
+                                       _tmp56_ = (GtkLabel*) gtk_label_new (_tmp55_);
+                                       g_object_ref_sink (_tmp56_);
+                                       label = _tmp56_;
+                                       _tmp57_ = label;
+                                       gtk_misc_set_alignment ((GtkMisc*) _tmp57_, 0.0f, 0.5f);
+                                       _tmp58_ = label;
+                                       gtk_widget_show ((GtkWidget*) _tmp58_);
+                                       _tmp59_ = self->priv->m_labels;
+                                       _tmp59__length1 = self->priv->m_labels_length1;
+                                       _tmp60_ = label;
+                                       _tmp61_ = _g_object_ref0 (_tmp60_);
+                                       _vala_array_add1 (&self->priv->m_labels, &self->priv->m_labels_length1, &self->priv->_m_labels_size_, _tmp61_);
+                                       _tmp62_ = (GtkLabel*) gtk_label_new ("test");
+                                       g_object_ref_sink (_tmp62_);
+                                       candidate = _tmp62_;
+                                       _tmp63_ = candidate;
+                                       gtk_misc_set_alignment ((GtkMisc*) _tmp63_, 0.0f, 0.5f);
+                                       _tmp64_ = candidate;
+                                       gtk_widget_show ((GtkWidget*) _tmp64_);
+                                       _tmp65_ = self->priv->m_candidates;
+                                       _tmp65__length1 = self->priv->m_candidates_length1;
+                                       _tmp66_ = candidate;
+                                       _tmp67_ = _g_object_ref0 (_tmp66_);
+                                       _vala_array_add2 (&self->priv->m_candidates, &self->priv->m_candidates_length1, &self->priv->_m_candidates_size_, _tmp67_);
+                                       _tmp68_ = label;
+                                       g_value_init (&_tmp69_, G_TYPE_INT);
+                                       g_value_set_int (&_tmp69_, 8);
+                                       g_object_set_property ((GObject*) _tmp68_, "xpad", &_tmp69_);
+                                       G_IS_VALUE (&_tmp69_) ? (g_value_unset (&_tmp69_), NULL) : NULL;
+                                       _tmp70_ = candidate;
+                                       g_value_init (&_tmp71_, G_TYPE_INT);
+                                       g_value_set_int (&_tmp71_, 8);
+                                       g_object_set_property ((GObject*) _tmp70_, "xpad", &_tmp71_);
+                                       G_IS_VALUE (&_tmp71_) ? (g_value_unset (&_tmp71_), NULL) : NULL;
+                                       _tmp72_ = _data1_->i;
+                                       _data2_->index = _tmp72_;
+                                       _tmp73_ = (GtkEventBox*) gtk_event_box_new ();
+                                       g_object_ref_sink (_tmp73_);
+                                       label_ebox = _tmp73_;
+                                       _tmp74_ = label_ebox;
+                                       gtk_widget_set_no_show_all ((GtkWidget*) _tmp74_, TRUE);
+                                       _tmp75_ = label_ebox;
+                                       g_signal_connect_data ((GtkWidget*) _tmp75_, "button-press-event", (GCallback) _______lambda4__gtk_widget_button_press_event, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0);
+                                       _tmp76_ = label_ebox;
+                                       _tmp77_ = label;
+                                       gtk_container_add ((GtkContainer*) _tmp76_, (GtkWidget*) _tmp77_);
+                                       _tmp78_ = labels_vbox;
+                                       _tmp79_ = label_ebox;
+                                       gtk_box_pack_start (_tmp78_, (GtkWidget*) _tmp79_, FALSE, FALSE, (guint) 2);
+                                       _tmp80_ = self->priv->m_widgets;
+                                       _tmp80__length1 = self->priv->m_widgets_length1;
+                                       _tmp81_ = label_ebox;
+                                       _tmp82_ = _g_object_ref0 ((GtkWidget*) _tmp81_);
+                                       _vala_array_add3 (&self->priv->m_widgets, &self->priv->m_widgets_length1, &self->priv->_m_widgets_size_, _tmp82_);
+                                       _tmp83_ = (GtkEventBox*) gtk_event_box_new ();
+                                       g_object_ref_sink (_tmp83_);
+                                       candidate_ebox = _tmp83_;
+                                       _tmp84_ = candidate_ebox;
+                                       gtk_widget_set_no_show_all ((GtkWidget*) _tmp84_, TRUE);
+                                       _tmp85_ = candidate_ebox;
+                                       g_signal_connect_data ((GtkWidget*) _tmp85_, "button-press-event", (GCallback) _______lambda5__gtk_widget_button_press_event, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0);
+                                       _tmp86_ = candidate_ebox;
+                                       _tmp87_ = candidate;
+                                       gtk_container_add ((GtkContainer*) _tmp86_, (GtkWidget*) _tmp87_);
+                                       _tmp88_ = candidates_vbox;
+                                       _tmp89_ = candidate_ebox;
+                                       gtk_box_pack_start (_tmp88_, (GtkWidget*) _tmp89_, FALSE, FALSE, (guint) 2);
+                                       _tmp90_ = self->priv->m_widgets;
+                                       _tmp90__length1 = self->priv->m_widgets_length1;
+                                       _tmp91_ = candidate_ebox;
+                                       _tmp92_ = _g_object_ref0 ((GtkWidget*) _tmp91_);
+                                       _vala_array_add4 (&self->priv->m_widgets, &self->priv->m_widgets_length1, &self->priv->_m_widgets_size_, _tmp92_);
+                                       _g_object_unref0 (candidate_ebox);
+                                       _g_object_unref0 (label_ebox);
+                                       _g_object_unref0 (candidate);
+                                       _g_object_unref0 (label);
+                                       block2_data_unref (_data2_);
+                                       _data2_ = NULL;
+                               }
+                       }
+                       block1_data_unref (_data1_);
+                       _data1_ = NULL;
+               }
+               _g_object_unref0 (state_label);
+               _g_object_unref0 (buttons_hbox);
+               _g_object_unref0 (candidates_vbox);
+               _g_object_unref0 (labels_vbox);
+               _g_object_unref0 (candidates_hbox);
+       } else {
+               GtkBox* _tmp93_;
+               GtkBox* hbox;
+               GtkBox* _tmp94_;
+               GtkLabel** _tmp95_ = NULL;
+               GtkLabel** _tmp96_ = NULL;
+               GtkWidget** _tmp97_ = NULL;
+               GtkBox* _tmp133_;
+               VSeparator* _tmp134_;
+               VSeparator* _tmp135_;
+               GtkBox* _tmp136_;
+               GtkButton* _tmp137_;
+               GtkBox* _tmp138_;
+               GtkButton* _tmp139_;
+               _tmp93_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+               g_object_ref_sink (_tmp93_);
+               hbox = _tmp93_;
+               _tmp94_ = hbox;
+               gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp94_);
+               _tmp95_ = g_new0 (GtkLabel*, 0 + 1);
+               self->priv->m_labels = (_vala_array_free (self->priv->m_labels, self->priv->m_labels_length1, (GDestroyNotify) g_object_unref), NULL);
+               self->priv->m_labels = _tmp95_;
+               self->priv->m_labels_length1 = 0;
+               self->priv->_m_labels_size_ = self->priv->m_labels_length1;
+               _tmp96_ = g_new0 (GtkLabel*, 0 + 1);
+               self->priv->m_candidates = (_vala_array_free (self->priv->m_candidates, self->priv->m_candidates_length1, (GDestroyNotify) g_object_unref), NULL);
+               self->priv->m_candidates = _tmp96_;
+               self->priv->m_candidates_length1 = 0;
+               self->priv->_m_candidates_size_ = self->priv->m_candidates_length1;
+               _tmp97_ = g_new0 (GtkWidget*, 0 + 1);
+               self->priv->m_widgets = (_vala_array_free (self->priv->m_widgets, self->priv->m_widgets_length1, (GDestroyNotify) g_object_unref), NULL);
+               self->priv->m_widgets = _tmp97_;
+               self->priv->m_widgets_length1 = 0;
+               self->priv->_m_widgets_size_ = self->priv->m_widgets_length1;
+               {
+                       gint i;
+                       i = 0;
+                       {
+                               gboolean _tmp98_;
+                               _tmp98_ = TRUE;
+                               while (TRUE) {
+                                       Block3Data* _data3_;
+                                       gboolean _tmp99_;
+                                       gint _tmp101_;
+                                       gint _tmp102_;
+                                       const gchar* _tmp103_;
+                                       GtkLabel* _tmp104_;
+                                       GtkLabel* label;
+                                       GtkLabel* _tmp105_;
+                                       GtkLabel* _tmp106_;
+                                       GtkLabel** _tmp107_;
+                                       gint _tmp107__length1;
+                                       GtkLabel* _tmp108_;
+                                       GtkLabel* _tmp109_;
+                                       GtkLabel* _tmp110_;
+                                       GtkLabel* candidate;
+                                       GtkLabel* _tmp111_;
+                                       GtkLabel* _tmp112_;
+                                       GtkLabel** _tmp113_;
+                                       gint _tmp113__length1;
+                                       GtkLabel* _tmp114_;
+                                       GtkLabel* _tmp115_;
+                                       GtkBox* _tmp116_;
+                                       GtkBox* candidate_hbox;
+                                       GtkBox* _tmp117_;
+                                       GtkBox* _tmp118_;
+                                       GtkLabel* _tmp119_;
+                                       GtkBox* _tmp120_;
+                                       GtkLabel* _tmp121_;
+                                       gint _tmp122_;
+                                       GtkEventBox* _tmp123_;
+                                       GtkEventBox* ebox;
+                                       GtkEventBox* _tmp124_;
+                                       GtkEventBox* _tmp125_;
+                                       GtkEventBox* _tmp126_;
+                                       GtkBox* _tmp127_;
+                                       GtkBox* _tmp128_;
+                                       GtkEventBox* _tmp129_;
+                                       GtkWidget** _tmp130_;
+                                       gint _tmp130__length1;
+                                       GtkEventBox* _tmp131_;
+                                       GtkWidget* _tmp132_;
+                                       _data3_ = g_slice_new0 (Block3Data);
+                                       _data3_->_ref_count_ = 1;
+                                       _data3_->self = g_object_ref (self);
+                                       _tmp99_ = _tmp98_;
+                                       if (!_tmp99_) {
+                                               gint _tmp100_;
+                                               _tmp100_ = i;
+                                               i = _tmp100_ + 1;
+                                       }
+                                       _tmp98_ = FALSE;
+                                       _tmp101_ = i;
+                                       if (!(_tmp101_ < 16)) {
+                                               block3_data_unref (_data3_);
+                                               _data3_ = NULL;
+                                               break;
+                                       }
+                                       _tmp102_ = i;
+                                       _tmp103_ = CANDIDATE_AREA_LABELS[_tmp102_];
+                                       _tmp104_ = (GtkLabel*) gtk_label_new (_tmp103_);
+                                       g_object_ref_sink (_tmp104_);
+                                       label = _tmp104_;
+                                       _tmp105_ = label;
+                                       gtk_misc_set_alignment ((GtkMisc*) _tmp105_, 0.0f, 0.5f);
+                                       _tmp106_ = label;
+                                       gtk_widget_show ((GtkWidget*) _tmp106_);
+                                       _tmp107_ = self->priv->m_labels;
+                                       _tmp107__length1 = self->priv->m_labels_length1;
+                                       _tmp108_ = label;
+                                       _tmp109_ = _g_object_ref0 (_tmp108_);
+                                       _vala_array_add5 (&self->priv->m_labels, &self->priv->m_labels_length1, &self->priv->_m_labels_size_, _tmp109_);
+                                       _tmp110_ = (GtkLabel*) gtk_label_new ("test");
+                                       g_object_ref_sink (_tmp110_);
+                                       candidate = _tmp110_;
+                                       _tmp111_ = candidate;
+                                       gtk_misc_set_alignment ((GtkMisc*) _tmp111_, 0.0f, 0.5f);
+                                       _tmp112_ = candidate;
+                                       gtk_widget_show ((GtkWidget*) _tmp112_);
+                                       _tmp113_ = self->priv->m_candidates;
+                                       _tmp113__length1 = self->priv->m_candidates_length1;
+                                       _tmp114_ = candidate;
+                                       _tmp115_ = _g_object_ref0 (_tmp114_);
+                                       _vala_array_add6 (&self->priv->m_candidates, &self->priv->m_candidates_length1, &self->priv->_m_candidates_size_, _tmp115_);
+                                       _tmp116_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+                                       g_object_ref_sink (_tmp116_);
+                                       candidate_hbox = _tmp116_;
+                                       _tmp117_ = candidate_hbox;
+                                       gtk_widget_show ((GtkWidget*) _tmp117_);
+                                       _tmp118_ = candidate_hbox;
+                                       _tmp119_ = label;
+                                       gtk_box_pack_start (_tmp118_, (GtkWidget*) _tmp119_, FALSE, FALSE, (guint) 2);
+                                       _tmp120_ = candidate_hbox;
+                                       _tmp121_ = candidate;
+                                       gtk_box_pack_start (_tmp120_, (GtkWidget*) _tmp121_, FALSE, FALSE, (guint) 2);
+                                       _tmp122_ = i;
+                                       _data3_->index = _tmp122_;
+                                       _tmp123_ = (GtkEventBox*) gtk_event_box_new ();
+                                       g_object_ref_sink (_tmp123_);
+                                       ebox = _tmp123_;
+                                       _tmp124_ = ebox;
+                                       gtk_widget_set_no_show_all ((GtkWidget*) _tmp124_, TRUE);
+                                       _tmp125_ = ebox;
+                                       g_signal_connect_data ((GtkWidget*) _tmp125_, "button-press-event", (GCallback) _______lambda6__gtk_widget_button_press_event, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
+                                       _tmp126_ = ebox;
+                                       _tmp127_ = candidate_hbox;
+                                       gtk_container_add ((GtkContainer*) _tmp126_, (GtkWidget*) _tmp127_);
+                                       _tmp128_ = hbox;
+                                       _tmp129_ = ebox;
+                                       gtk_box_pack_start (_tmp128_, (GtkWidget*) _tmp129_, FALSE, FALSE, (guint) 4);
+                                       _tmp130_ = self->priv->m_widgets;
+                                       _tmp130__length1 = self->priv->m_widgets_length1;
+                                       _tmp131_ = ebox;
+                                       _tmp132_ = _g_object_ref0 ((GtkWidget*) _tmp131_);
+                                       _vala_array_add7 (&self->priv->m_widgets, &self->priv->m_widgets_length1, &self->priv->_m_widgets_size_, _tmp132_);
+                                       _g_object_unref0 (ebox);
+                                       _g_object_unref0 (candidate_hbox);
+                                       _g_object_unref0 (candidate);
+                                       _g_object_unref0 (label);
+                                       block3_data_unref (_data3_);
+                                       _data3_ = NULL;
+                               }
+                       }
+               }
+               _tmp133_ = hbox;
+               _tmp134_ = vseparator_new ();
+               g_object_ref_sink (_tmp134_);
+               _tmp135_ = _tmp134_;
+               gtk_box_pack_start (_tmp133_, (GtkWidget*) _tmp135_, FALSE, FALSE, (guint) 0);
+               _g_object_unref0 (_tmp135_);
+               _tmp136_ = hbox;
+               _tmp137_ = prev_button;
+               gtk_box_pack_start (_tmp136_, (GtkWidget*) _tmp137_, FALSE, FALSE, (guint) 0);
+               _tmp138_ = hbox;
+               _tmp139_ = next_button;
+               gtk_box_pack_start (_tmp138_, (GtkWidget*) _tmp139_, FALSE, FALSE, (guint) 0);
+               _g_object_unref0 (hbox);
+       }
+       _g_object_unref0 (next_button);
+       _g_object_unref0 (prev_button);
+}
+
+
+static void g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+       typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT) (gpointer data1, guint arg_1, guint arg_2, guint arg_3, gpointer data2);
+       register GMarshalFunc_VOID__UINT_UINT_UINT callback;
+       register GCClosure * cc;
+       register gpointer data1;
+       register gpointer data2;
+       cc = (GCClosure *) closure;
+       g_return_if_fail (n_param_values == 4);
+       if (G_CCLOSURE_SWAP_DATA (closure)) {
+               data1 = closure->data;
+               data2 = param_values->data[0].v_pointer;
+       } else {
+               data1 = param_values->data[0].v_pointer;
+               data2 = closure->data;
+       }
+       callback = (GMarshalFunc_VOID__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+       callback (data1, g_value_get_uint (param_values + 1), g_value_get_uint (param_values + 2), g_value_get_uint (param_values + 3), data2);
+}
+
+
+static void candidate_area_class_init (CandidateAreaClass * klass) {
+       candidate_area_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (CandidateAreaPrivate));
+       G_OBJECT_CLASS (klass)->finalize = candidate_area_finalize;
+       g_signal_new ("candidate_clicked", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__UINT_UINT_UINT, G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
+       g_signal_new ("page_up", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+       g_signal_new ("page_down", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+       g_signal_new ("cursor_up", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+       g_signal_new ("cursor_down", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+}
+
+
+static void candidate_area_instance_init (CandidateArea * self) {
+       self->priv = CANDIDATE_AREA_GET_PRIVATE (self);
+}
+
+
+static void candidate_area_finalize (GObject* obj) {
+       CandidateArea * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CANDIDATE_AREA, CandidateArea);
+       self->priv->m_labels = (_vala_array_free (self->priv->m_labels, self->priv->m_labels_length1, (GDestroyNotify) g_object_unref), NULL);
+       self->priv->m_candidates = (_vala_array_free (self->priv->m_candidates, self->priv->m_candidates_length1, (GDestroyNotify) g_object_unref), NULL);
+       self->priv->m_widgets = (_vala_array_free (self->priv->m_widgets, self->priv->m_widgets_length1, (GDestroyNotify) g_object_unref), NULL);
+       self->priv->m_ibus_candidates = (_vala_array_free (self->priv->m_ibus_candidates, self->priv->m_ibus_candidates_length1, (GDestroyNotify) g_object_unref), NULL);
+       G_OBJECT_CLASS (candidate_area_parent_class)->finalize (obj);
+}
+
+
+GType candidate_area_get_type (void) {
+       static volatile gsize candidate_area_type_id__volatile = 0;
+       if (g_once_init_enter (&candidate_area_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (CandidateAreaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) candidate_area_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CandidateArea), 0, (GInstanceInitFunc) candidate_area_instance_init, NULL };
+               GType candidate_area_type_id;
+               candidate_area_type_id = g_type_register_static (GTK_TYPE_BOX, "CandidateArea", &g_define_type_info, 0);
+               g_once_init_leave (&candidate_area_type_id__volatile, candidate_area_type_id);
+       }
+       return candidate_area_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       if ((array != NULL) && (destroy_func != NULL)) {
+               int i;
+               for (i = 0; i < array_length; i = i + 1) {
+                       if (((gpointer*) array)[i] != NULL) {
+                               destroy_func (((gpointer*) array)[i]);
+                       }
+               }
+       }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       _vala_array_destroy (array, array_length, destroy_func);
+       g_free (array);
+}
+
+
+
diff --git a/ui/gtk3/candidatepanel.c b/ui/gtk3/candidatepanel.c
new file mode 100644 (file)
index 0000000..61df9b2
--- /dev/null
@@ -0,0 +1,1167 @@
+/* candidatepanel.c generated by valac 0.20.1, the Vala compiler
+ * generated from candidatepanel.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <ibus.h>
+#include <string.h>
+#include <cairo.h>
+
+
+#define TYPE_CANDIDATE_PANEL (candidate_panel_get_type ())
+#define CANDIDATE_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CANDIDATE_PANEL, CandidatePanel))
+#define CANDIDATE_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CANDIDATE_PANEL, CandidatePanelClass))
+#define IS_CANDIDATE_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CANDIDATE_PANEL))
+#define IS_CANDIDATE_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CANDIDATE_PANEL))
+#define CANDIDATE_PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CANDIDATE_PANEL, CandidatePanelClass))
+
+typedef struct _CandidatePanel CandidatePanel;
+typedef struct _CandidatePanelClass CandidatePanelClass;
+typedef struct _CandidatePanelPrivate CandidatePanelPrivate;
+
+#define TYPE_CANDIDATE_AREA (candidate_area_get_type ())
+#define CANDIDATE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CANDIDATE_AREA, CandidateArea))
+#define CANDIDATE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CANDIDATE_AREA, CandidateAreaClass))
+#define IS_CANDIDATE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CANDIDATE_AREA))
+#define IS_CANDIDATE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CANDIDATE_AREA))
+#define CANDIDATE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CANDIDATE_AREA, CandidateAreaClass))
+
+typedef struct _CandidateArea CandidateArea;
+typedef struct _CandidateAreaClass CandidateAreaClass;
+
+#define TYPE_HSEPARATOR (hseparator_get_type ())
+#define HSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HSEPARATOR, HSeparator))
+#define HSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HSEPARATOR, HSeparatorClass))
+#define IS_HSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HSEPARATOR))
+#define IS_HSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HSEPARATOR))
+#define HSEPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HSEPARATOR, HSeparatorClass))
+
+typedef struct _HSeparator HSeparator;
+typedef struct _HSeparatorClass HSeparatorClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_HANDLE (handle_get_type ())
+#define HANDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HANDLE, Handle))
+#define HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HANDLE, HandleClass))
+#define IS_HANDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HANDLE))
+#define IS_HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HANDLE))
+#define HANDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HANDLE, HandleClass))
+
+typedef struct _Handle Handle;
+typedef struct _HandleClass HandleClass;
+
+struct _CandidatePanel {
+       GtkHBox parent_instance;
+       CandidatePanelPrivate * priv;
+};
+
+struct _CandidatePanelClass {
+       GtkHBoxClass parent_class;
+};
+
+struct _CandidatePanelPrivate {
+       gboolean m_vertical;
+       GtkWindow* m_toplevel;
+       GtkBox* m_vbox;
+       GtkLabel* m_preedit_label;
+       GtkLabel* m_aux_label;
+       CandidateArea* m_candidate_area;
+       HSeparator* m_hseparator;
+       GdkRectangle m_cursor_location;
+};
+
+
+static gpointer candidate_panel_parent_class = NULL;
+
+GType candidate_panel_get_type (void) G_GNUC_CONST;
+GType candidate_area_get_type (void) G_GNUC_CONST;
+GType hseparator_get_type (void) G_GNUC_CONST;
+#define CANDIDATE_PANEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CANDIDATE_PANEL, CandidatePanelPrivate))
+enum  {
+       CANDIDATE_PANEL_DUMMY_PROPERTY
+};
+CandidatePanel* candidate_panel_new (void);
+CandidatePanel* candidate_panel_construct (GType object_type);
+static gboolean __lambda7_ (CandidatePanel* self, GtkWidget* w, GdkEventButton* e);
+void candidate_panel_set_vertical (CandidatePanel* self, gboolean vertical);
+static gboolean ___lambda7__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+Handle* handle_new (void);
+Handle* handle_construct (GType object_type);
+GType handle_get_type (void) G_GNUC_CONST;
+static void candidate_panel_create_ui (CandidatePanel* self);
+void candidate_area_set_vertical (CandidateArea* self, gboolean vertical, gboolean force);
+static void candidate_panel_set_orientation (CandidatePanel* self, IBusOrientation orientation);
+void candidate_panel_set_cursor_location (CandidatePanel* self, gint x, gint y, gint width, gint height);
+static gboolean _cairo_rectangle_int_equal (const cairo_rectangle_int_t* s1, const cairo_rectangle_int_t* s2);
+static void candidate_panel_adjust_window_position (CandidatePanel* self);
+static void candidate_panel_set_labels (CandidatePanel* self, IBusText** labels, int labels_length1);
+void candidate_area_set_labels (CandidateArea* self, IBusText** labels, int labels_length1);
+void candidate_panel_set_preedit_text (CandidatePanel* self, IBusText* text, guint cursor);
+static void candidate_panel_update (CandidatePanel* self);
+void candidate_panel_set_auxiliary_text (CandidatePanel* self, IBusText* text);
+void candidate_panel_set_lookup_table (CandidatePanel* self, IBusLookupTable* table);
+static void _vala_array_add8 (IBusText*** array, int* length, int* size, IBusText* value);
+static void _vala_array_add9 (IBusText*** array, int* length, int* size, IBusText* value);
+void candidate_area_set_candidates (CandidateArea* self, IBusText** candidates, int candidates_length1, guint focus_candidate, gboolean show_cursor);
+static void candidate_panel_real_get_preferred_width (GtkWidget* base, gint* minimum_width, gint* natural_width);
+static void candidate_panel_real_get_preferred_height (GtkWidget* base, gint* minimum_width, gint* natural_width);
+CandidateArea* candidate_area_new (gboolean vertical);
+CandidateArea* candidate_area_construct (GType object_type, gboolean vertical);
+static void __lambda8_ (CandidatePanel* self, CandidateArea* w, guint i, guint b, guint s);
+static void ___lambda8__candidate_area_candidate_clicked (CandidateArea* _sender, guint index, guint button, guint state, gpointer self);
+static void __lambda9_ (CandidatePanel* self, CandidateArea* c);
+static void ___lambda9__candidate_area_page_up (CandidateArea* _sender, gpointer self);
+static void __lambda10_ (CandidatePanel* self, CandidateArea* c);
+static void ___lambda10__candidate_area_page_down (CandidateArea* _sender, gpointer self);
+static void __lambda11_ (CandidatePanel* self, CandidateArea* c);
+static void ___lambda11__candidate_area_cursor_up (CandidateArea* _sender, gpointer self);
+static void __lambda12_ (CandidatePanel* self, CandidateArea* c);
+static void ___lambda12__candidate_area_cursor_down (CandidateArea* _sender, gpointer self);
+HSeparator* hseparator_new (void);
+HSeparator* hseparator_construct (GType object_type);
+static void candidate_panel_pack_all_widgets (CandidatePanel* self);
+void candidate_panel_show (CandidatePanel* self);
+void candidate_panel_hide (CandidatePanel* self);
+static void candidate_panel_move (CandidatePanel* self, gint x, gint y);
+static void g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void candidate_panel_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gboolean __lambda7_ (CandidatePanel* self, GtkWidget* w, GdkEventButton* e) {
+       gboolean result = FALSE;
+       gboolean _tmp0_ = FALSE;
+       GdkEventButton _tmp1_;
+       guint _tmp2_;
+       gboolean _tmp5_;
+       gboolean _tmp6_;
+       g_return_val_if_fail (w != NULL, FALSE);
+       g_return_val_if_fail (e != NULL, FALSE);
+       _tmp1_ = *e;
+       _tmp2_ = _tmp1_.button;
+       if (_tmp2_ != ((guint) 1)) {
+               _tmp0_ = TRUE;
+       } else {
+               GdkEventButton _tmp3_;
+               GdkModifierType _tmp4_;
+               _tmp3_ = *e;
+               _tmp4_ = _tmp3_.state;
+               _tmp0_ = (_tmp4_ & GDK_CONTROL_MASK) == 0;
+       }
+       _tmp5_ = _tmp0_;
+       if (_tmp5_) {
+               result = FALSE;
+               return result;
+       }
+       _tmp6_ = self->priv->m_vertical;
+       candidate_panel_set_vertical (self, !_tmp6_);
+       result = TRUE;
+       return result;
+}
+
+
+static gboolean ___lambda7__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+       gboolean result;
+       result = __lambda7_ (self, _sender, event);
+       return result;
+}
+
+
+CandidatePanel* candidate_panel_construct (GType object_type) {
+       CandidatePanel * self = NULL;
+       GtkWindow* _tmp0_;
+       GtkWindow* _tmp1_;
+       GtkWindow* _tmp2_;
+       Handle* _tmp3_;
+       Handle* handle;
+       GtkBox* _tmp4_;
+       GtkBox* _tmp5_;
+       GtkBox* _tmp6_;
+       GtkWindow* _tmp7_;
+       self = (CandidatePanel*) g_object_new (object_type, "name", "IBusCandidate", "visible", TRUE, NULL);
+       _tmp0_ = (GtkWindow*) gtk_window_new (GTK_WINDOW_POPUP);
+       g_object_ref_sink (_tmp0_);
+       _g_object_unref0 (self->priv->m_toplevel);
+       self->priv->m_toplevel = _tmp0_;
+       _tmp1_ = self->priv->m_toplevel;
+       gtk_widget_add_events ((GtkWidget*) _tmp1_, (gint) GDK_BUTTON_PRESS_MASK);
+       _tmp2_ = self->priv->m_toplevel;
+       g_signal_connect_object ((GtkWidget*) _tmp2_, "button-press-event", (GCallback) ___lambda7__gtk_widget_button_press_event, self, 0);
+       _tmp3_ = handle_new ();
+       g_object_ref_sink (_tmp3_);
+       handle = _tmp3_;
+       gtk_widget_set_visible ((GtkWidget*) handle, TRUE);
+       gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) handle, FALSE, FALSE, (guint) 0);
+       _tmp4_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+       g_object_ref_sink (_tmp4_);
+       _g_object_unref0 (self->priv->m_vbox);
+       self->priv->m_vbox = _tmp4_;
+       _tmp5_ = self->priv->m_vbox;
+       gtk_widget_set_visible ((GtkWidget*) _tmp5_, TRUE);
+       _tmp6_ = self->priv->m_vbox;
+       gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp6_, FALSE, FALSE, (guint) 0);
+       _tmp7_ = self->priv->m_toplevel;
+       gtk_container_add ((GtkContainer*) _tmp7_, (GtkWidget*) self);
+       candidate_panel_create_ui (self);
+       _g_object_unref0 (handle);
+       return self;
+}
+
+
+CandidatePanel* candidate_panel_new (void) {
+       return candidate_panel_construct (TYPE_CANDIDATE_PANEL);
+}
+
+
+void candidate_panel_set_vertical (CandidatePanel* self, gboolean vertical) {
+       gboolean _tmp0_;
+       gboolean _tmp1_;
+       gboolean _tmp2_;
+       CandidateArea* _tmp3_;
+       gboolean _tmp4_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_vertical;
+       _tmp1_ = vertical;
+       if (_tmp0_ == _tmp1_) {
+               return;
+       }
+       _tmp2_ = vertical;
+       self->priv->m_vertical = _tmp2_;
+       _tmp3_ = self->priv->m_candidate_area;
+       _tmp4_ = vertical;
+       candidate_area_set_vertical (_tmp3_, _tmp4_, FALSE);
+}
+
+
+static void candidate_panel_set_orientation (CandidatePanel* self, IBusOrientation orientation) {
+       IBusOrientation _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = orientation;
+       switch (_tmp0_) {
+               case IBUS_ORIENTATION_VERTICAL:
+               {
+                       CandidateArea* _tmp1_;
+                       _tmp1_ = self->priv->m_candidate_area;
+                       candidate_area_set_vertical (_tmp1_, TRUE, FALSE);
+                       break;
+               }
+               case IBUS_ORIENTATION_HORIZONTAL:
+               {
+                       CandidateArea* _tmp2_;
+                       _tmp2_ = self->priv->m_candidate_area;
+                       candidate_area_set_vertical (_tmp2_, FALSE, FALSE);
+                       break;
+               }
+               case IBUS_ORIENTATION_SYSTEM:
+               {
+                       CandidateArea* _tmp3_;
+                       gboolean _tmp4_;
+                       _tmp3_ = self->priv->m_candidate_area;
+                       _tmp4_ = self->priv->m_vertical;
+                       candidate_area_set_vertical (_tmp3_, _tmp4_, FALSE);
+                       break;
+               }
+               default:
+               break;
+       }
+}
+
+
+static gboolean _cairo_rectangle_int_equal (const cairo_rectangle_int_t* s1, const cairo_rectangle_int_t* s2) {
+       if (s1 == s2) {
+               return TRUE;
+       }
+       if (s1 == NULL) {
+               return FALSE;
+       }
+       if (s2 == NULL) {
+               return FALSE;
+       }
+       if (s1->x != s2->x) {
+               return FALSE;
+       }
+       if (s1->y != s2->y) {
+               return FALSE;
+       }
+       if (s1->width != s2->width) {
+               return FALSE;
+       }
+       if (s1->height != s2->height) {
+               return FALSE;
+       }
+       return TRUE;
+}
+
+
+void candidate_panel_set_cursor_location (CandidatePanel* self, gint x, gint y, gint width, gint height) {
+       gint _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       gint _tmp3_;
+       GdkRectangle _tmp4_ = {0};
+       GdkRectangle location;
+       GdkRectangle _tmp5_;
+       GdkRectangle _tmp6_;
+       GdkRectangle _tmp7_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = x;
+       _tmp1_ = y;
+       _tmp2_ = width;
+       _tmp3_ = height;
+       memset (&_tmp4_, 0, sizeof (GdkRectangle));
+       _tmp4_.x = _tmp0_;
+       _tmp4_.y = _tmp1_;
+       _tmp4_.width = _tmp2_;
+       _tmp4_.height = _tmp3_;
+       location = _tmp4_;
+       _tmp5_ = self->priv->m_cursor_location;
+       _tmp6_ = location;
+       if (_cairo_rectangle_int_equal (&_tmp5_, &_tmp6_) == TRUE) {
+               return;
+       }
+       _tmp7_ = location;
+       self->priv->m_cursor_location = _tmp7_;
+       candidate_panel_adjust_window_position (self);
+}
+
+
+static void candidate_panel_set_labels (CandidatePanel* self, IBusText** labels, int labels_length1) {
+       CandidateArea* _tmp0_;
+       IBusText** _tmp1_;
+       gint _tmp1__length1;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_candidate_area;
+       _tmp1_ = labels;
+       _tmp1__length1 = labels_length1;
+       candidate_area_set_labels (_tmp0_, _tmp1_, _tmp1__length1);
+}
+
+
+void candidate_panel_set_preedit_text (CandidatePanel* self, IBusText* text, guint cursor) {
+       IBusText* _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = text;
+       if (_tmp0_ != NULL) {
+               GtkLabel* _tmp1_;
+               IBusText* _tmp2_;
+               const gchar* _tmp3_ = NULL;
+               GtkLabel* _tmp4_;
+               _tmp1_ = self->priv->m_preedit_label;
+               _tmp2_ = text;
+               _tmp3_ = ibus_text_get_text (_tmp2_);
+               gtk_label_set_text (_tmp1_, _tmp3_);
+               _tmp4_ = self->priv->m_preedit_label;
+               gtk_widget_show ((GtkWidget*) _tmp4_);
+       } else {
+               GtkLabel* _tmp5_;
+               GtkLabel* _tmp6_;
+               _tmp5_ = self->priv->m_preedit_label;
+               gtk_label_set_text (_tmp5_, "");
+               _tmp6_ = self->priv->m_preedit_label;
+               gtk_widget_hide ((GtkWidget*) _tmp6_);
+       }
+       candidate_panel_update (self);
+}
+
+
+void candidate_panel_set_auxiliary_text (CandidatePanel* self, IBusText* text) {
+       IBusText* _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = text;
+       if (_tmp0_ != NULL) {
+               GtkLabel* _tmp1_;
+               IBusText* _tmp2_;
+               const gchar* _tmp3_ = NULL;
+               GtkLabel* _tmp4_;
+               _tmp1_ = self->priv->m_aux_label;
+               _tmp2_ = text;
+               _tmp3_ = ibus_text_get_text (_tmp2_);
+               gtk_label_set_text (_tmp1_, _tmp3_);
+               _tmp4_ = self->priv->m_aux_label;
+               gtk_widget_show ((GtkWidget*) _tmp4_);
+       } else {
+               GtkLabel* _tmp5_;
+               GtkLabel* _tmp6_;
+               _tmp5_ = self->priv->m_aux_label;
+               gtk_label_set_text (_tmp5_, "");
+               _tmp6_ = self->priv->m_aux_label;
+               gtk_widget_hide ((GtkWidget*) _tmp6_);
+       }
+       candidate_panel_update (self);
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+static void _vala_array_add8 (IBusText*** array, int* length, int* size, IBusText* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (IBusText*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add9 (IBusText*** array, int* length, int* size, IBusText* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (IBusText*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+void candidate_panel_set_lookup_table (CandidatePanel* self, IBusLookupTable* table) {
+       IBusText** _tmp0_ = NULL;
+       IBusText** candidates;
+       gint candidates_length1;
+       gint _candidates_size_;
+       guint cursor_in_page;
+       gboolean show_cursor;
+       IBusText** _tmp1_ = NULL;
+       IBusText** labels;
+       gint labels_length1;
+       gint _labels_size_;
+       IBusOrientation orientation;
+       IBusLookupTable* _tmp2_;
+       CandidateArea* _tmp46_;
+       IBusText** _tmp47_;
+       gint _tmp47__length1;
+       guint _tmp48_;
+       gboolean _tmp49_;
+       IBusText** _tmp50_;
+       gint _tmp50__length1;
+       IBusLookupTable* _tmp51_;
+       IBusText** _tmp53_;
+       gint _tmp53__length1;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = g_new0 (IBusText*, 0 + 1);
+       candidates = _tmp0_;
+       candidates_length1 = 0;
+       _candidates_size_ = candidates_length1;
+       cursor_in_page = (guint) 0;
+       show_cursor = TRUE;
+       _tmp1_ = g_new0 (IBusText*, 0 + 1);
+       labels = _tmp1_;
+       labels_length1 = 0;
+       _labels_size_ = labels_length1;
+       orientation = IBUS_ORIENTATION_SYSTEM;
+       _tmp2_ = table;
+       if (_tmp2_ != NULL) {
+               IBusLookupTable* _tmp3_;
+               guint _tmp4_ = 0U;
+               guint page_size;
+               IBusLookupTable* _tmp5_;
+               guint _tmp6_ = 0U;
+               guint ncandidates;
+               IBusLookupTable* _tmp7_;
+               guint _tmp8_ = 0U;
+               guint cursor;
+               IBusLookupTable* _tmp9_;
+               guint _tmp10_ = 0U;
+               IBusLookupTable* _tmp11_;
+               gboolean _tmp12_ = FALSE;
+               guint _tmp13_;
+               guint _tmp14_;
+               guint _tmp15_;
+               guint page_start_pos;
+               guint _tmp16_;
+               guint _tmp17_;
+               guint _tmp18_;
+               guint _tmp19_ = 0U;
+               guint page_end_pos;
+               IBusLookupTable* _tmp44_;
+               gint _tmp45_ = 0;
+               _tmp3_ = table;
+               _tmp4_ = ibus_lookup_table_get_page_size (_tmp3_);
+               page_size = _tmp4_;
+               _tmp5_ = table;
+               _tmp6_ = ibus_lookup_table_get_number_of_candidates (_tmp5_);
+               ncandidates = _tmp6_;
+               _tmp7_ = table;
+               _tmp8_ = ibus_lookup_table_get_cursor_pos (_tmp7_);
+               cursor = _tmp8_;
+               _tmp9_ = table;
+               _tmp10_ = ibus_lookup_table_get_cursor_in_page (_tmp9_);
+               cursor_in_page = _tmp10_;
+               _tmp11_ = table;
+               _tmp12_ = ibus_lookup_table_is_cursor_visible (_tmp11_);
+               show_cursor = _tmp12_;
+               _tmp13_ = cursor;
+               _tmp14_ = page_size;
+               _tmp15_ = page_size;
+               page_start_pos = (_tmp13_ / _tmp14_) * _tmp15_;
+               _tmp16_ = page_start_pos;
+               _tmp17_ = page_size;
+               _tmp18_ = ncandidates;
+               _tmp19_ = MIN (_tmp16_ + _tmp17_, _tmp18_);
+               page_end_pos = _tmp19_;
+               {
+                       guint _tmp20_;
+                       guint i;
+                       _tmp20_ = page_start_pos;
+                       i = _tmp20_;
+                       {
+                               gboolean _tmp21_;
+                               _tmp21_ = TRUE;
+                               while (TRUE) {
+                                       gboolean _tmp22_;
+                                       guint _tmp24_;
+                                       guint _tmp25_;
+                                       IBusText** _tmp26_;
+                                       gint _tmp26__length1;
+                                       IBusLookupTable* _tmp27_;
+                                       guint _tmp28_;
+                                       IBusText* _tmp29_ = NULL;
+                                       IBusText* _tmp30_;
+                                       _tmp22_ = _tmp21_;
+                                       if (!_tmp22_) {
+                                               guint _tmp23_;
+                                               _tmp23_ = i;
+                                               i = _tmp23_ + 1;
+                                       }
+                                       _tmp21_ = FALSE;
+                                       _tmp24_ = i;
+                                       _tmp25_ = page_end_pos;
+                                       if (!(_tmp24_ < _tmp25_)) {
+                                               break;
+                                       }
+                                       _tmp26_ = candidates;
+                                       _tmp26__length1 = candidates_length1;
+                                       _tmp27_ = table;
+                                       _tmp28_ = i;
+                                       _tmp29_ = ibus_lookup_table_get_candidate (_tmp27_, _tmp28_);
+                                       _tmp30_ = _g_object_ref0 (_tmp29_);
+                                       _vala_array_add8 (&candidates, &candidates_length1, &_candidates_size_, _tmp30_);
+                               }
+                       }
+               }
+               {
+                       guint i;
+                       i = (guint) 0;
+                       {
+                               gboolean _tmp31_;
+                               _tmp31_ = TRUE;
+                               while (TRUE) {
+                                       gboolean _tmp32_;
+                                       guint _tmp34_;
+                                       guint _tmp35_;
+                                       IBusLookupTable* _tmp36_;
+                                       guint _tmp37_;
+                                       IBusText* _tmp38_ = NULL;
+                                       IBusText* _tmp39_;
+                                       IBusText* label;
+                                       IBusText* _tmp40_;
+                                       _tmp32_ = _tmp31_;
+                                       if (!_tmp32_) {
+                                               guint _tmp33_;
+                                               _tmp33_ = i;
+                                               i = _tmp33_ + 1;
+                                       }
+                                       _tmp31_ = FALSE;
+                                       _tmp34_ = i;
+                                       _tmp35_ = page_size;
+                                       if (!(_tmp34_ < _tmp35_)) {
+                                               break;
+                                       }
+                                       _tmp36_ = table;
+                                       _tmp37_ = i;
+                                       _tmp38_ = ibus_lookup_table_get_label (_tmp36_, _tmp37_);
+                                       _tmp39_ = _g_object_ref0 (_tmp38_);
+                                       label = _tmp39_;
+                                       _tmp40_ = label;
+                                       if (_tmp40_ != NULL) {
+                                               IBusText** _tmp41_;
+                                               gint _tmp41__length1;
+                                               IBusText* _tmp42_;
+                                               IBusText* _tmp43_;
+                                               _tmp41_ = labels;
+                                               _tmp41__length1 = labels_length1;
+                                               _tmp42_ = label;
+                                               _tmp43_ = _g_object_ref0 (_tmp42_);
+                                               _vala_array_add9 (&labels, &labels_length1, &_labels_size_, _tmp43_);
+                                       }
+                                       _g_object_unref0 (label);
+                               }
+                       }
+               }
+               _tmp44_ = table;
+               _tmp45_ = ibus_lookup_table_get_orientation (_tmp44_);
+               orientation = (IBusOrientation) _tmp45_;
+       }
+       _tmp46_ = self->priv->m_candidate_area;
+       _tmp47_ = candidates;
+       _tmp47__length1 = candidates_length1;
+       _tmp48_ = cursor_in_page;
+       _tmp49_ = show_cursor;
+       candidate_area_set_candidates (_tmp46_, _tmp47_, _tmp47__length1, _tmp48_, _tmp49_);
+       _tmp50_ = labels;
+       _tmp50__length1 = labels_length1;
+       candidate_panel_set_labels (self, _tmp50_, _tmp50__length1);
+       _tmp51_ = table;
+       if (_tmp51_ != NULL) {
+               IBusOrientation _tmp52_;
+               _tmp52_ = orientation;
+               candidate_panel_set_orientation (self, _tmp52_);
+       }
+       _tmp53_ = candidates;
+       _tmp53__length1 = candidates_length1;
+       if (_tmp53__length1 != 0) {
+               CandidateArea* _tmp54_;
+               _tmp54_ = self->priv->m_candidate_area;
+               gtk_widget_show_all ((GtkWidget*) _tmp54_);
+       } else {
+               CandidateArea* _tmp55_;
+               _tmp55_ = self->priv->m_candidate_area;
+               gtk_widget_hide ((GtkWidget*) _tmp55_);
+       }
+       candidate_panel_update (self);
+       labels = (_vala_array_free (labels, labels_length1, (GDestroyNotify) g_object_unref), NULL);
+       candidates = (_vala_array_free (candidates, candidates_length1, (GDestroyNotify) g_object_unref), NULL);
+}
+
+
+static void candidate_panel_update (CandidatePanel* self) {
+       gboolean _tmp0_ = FALSE;
+       gboolean _tmp1_ = FALSE;
+       CandidateArea* _tmp2_;
+       gboolean _tmp3_ = FALSE;
+       gboolean _tmp6_;
+       gboolean _tmp9_;
+       gboolean _tmp12_ = FALSE;
+       GtkLabel* _tmp13_;
+       gboolean _tmp14_ = FALSE;
+       gboolean _tmp21_;
+       g_return_if_fail (self != NULL);
+       _tmp2_ = self->priv->m_candidate_area;
+       _tmp3_ = gtk_widget_get_visible ((GtkWidget*) _tmp2_);
+       if (_tmp3_) {
+               _tmp1_ = TRUE;
+       } else {
+               GtkLabel* _tmp4_;
+               gboolean _tmp5_ = FALSE;
+               _tmp4_ = self->priv->m_preedit_label;
+               _tmp5_ = gtk_widget_get_visible ((GtkWidget*) _tmp4_);
+               _tmp1_ = _tmp5_;
+       }
+       _tmp6_ = _tmp1_;
+       if (_tmp6_) {
+               _tmp0_ = TRUE;
+       } else {
+               GtkLabel* _tmp7_;
+               gboolean _tmp8_ = FALSE;
+               _tmp7_ = self->priv->m_aux_label;
+               _tmp8_ = gtk_widget_get_visible ((GtkWidget*) _tmp7_);
+               _tmp0_ = _tmp8_;
+       }
+       _tmp9_ = _tmp0_;
+       if (_tmp9_) {
+               GtkWindow* _tmp10_;
+               _tmp10_ = self->priv->m_toplevel;
+               gtk_widget_show ((GtkWidget*) _tmp10_);
+       } else {
+               GtkWindow* _tmp11_;
+               _tmp11_ = self->priv->m_toplevel;
+               gtk_widget_hide ((GtkWidget*) _tmp11_);
+       }
+       _tmp13_ = self->priv->m_aux_label;
+       _tmp14_ = gtk_widget_get_visible ((GtkWidget*) _tmp13_);
+       if (_tmp14_) {
+               gboolean _tmp15_ = FALSE;
+               CandidateArea* _tmp16_;
+               gboolean _tmp17_ = FALSE;
+               gboolean _tmp20_;
+               _tmp16_ = self->priv->m_candidate_area;
+               _tmp17_ = gtk_widget_get_visible ((GtkWidget*) _tmp16_);
+               if (_tmp17_) {
+                       _tmp15_ = TRUE;
+               } else {
+                       GtkLabel* _tmp18_;
+                       gboolean _tmp19_ = FALSE;
+                       _tmp18_ = self->priv->m_preedit_label;
+                       _tmp19_ = gtk_widget_get_visible ((GtkWidget*) _tmp18_);
+                       _tmp15_ = _tmp19_;
+               }
+               _tmp20_ = _tmp15_;
+               _tmp12_ = _tmp20_;
+       } else {
+               _tmp12_ = FALSE;
+       }
+       _tmp21_ = _tmp12_;
+       if (_tmp21_) {
+               HSeparator* _tmp22_;
+               _tmp22_ = self->priv->m_hseparator;
+               gtk_widget_show ((GtkWidget*) _tmp22_);
+       } else {
+               HSeparator* _tmp23_;
+               _tmp23_ = self->priv->m_hseparator;
+               gtk_widget_hide ((GtkWidget*) _tmp23_);
+       }
+}
+
+
+static void candidate_panel_real_get_preferred_width (GtkWidget* base, gint* minimum_width, gint* natural_width) {
+       CandidatePanel * self;
+       gint _vala_minimum_width = 0;
+       gint _vala_natural_width = 0;
+       gint _tmp0_ = 0;
+       gint _tmp1_ = 0;
+       GtkWindow* _tmp2_;
+       self = (CandidatePanel*) base;
+       GTK_WIDGET_CLASS (candidate_panel_parent_class)->get_preferred_width ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, GTK_TYPE_HBOX, GtkHBox), &_tmp0_, &_tmp1_);
+       _vala_minimum_width = _tmp0_;
+       _vala_natural_width = _tmp1_;
+       _tmp2_ = self->priv->m_toplevel;
+       gtk_window_resize (_tmp2_, 1, 1);
+       if (minimum_width) {
+               *minimum_width = _vala_minimum_width;
+       }
+       if (natural_width) {
+               *natural_width = _vala_natural_width;
+       }
+}
+
+
+static void candidate_panel_real_get_preferred_height (GtkWidget* base, gint* minimum_width, gint* natural_width) {
+       CandidatePanel * self;
+       gint _vala_minimum_width = 0;
+       gint _vala_natural_width = 0;
+       gint _tmp0_ = 0;
+       gint _tmp1_ = 0;
+       GtkWindow* _tmp2_;
+       self = (CandidatePanel*) base;
+       GTK_WIDGET_CLASS (candidate_panel_parent_class)->get_preferred_height ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, GTK_TYPE_HBOX, GtkHBox), &_tmp0_, &_tmp1_);
+       _vala_minimum_width = _tmp0_;
+       _vala_natural_width = _tmp1_;
+       _tmp2_ = self->priv->m_toplevel;
+       gtk_window_resize (_tmp2_, 1, 1);
+       if (minimum_width) {
+               *minimum_width = _vala_minimum_width;
+       }
+       if (natural_width) {
+               *natural_width = _vala_natural_width;
+       }
+}
+
+
+static void __lambda8_ (CandidatePanel* self, CandidateArea* w, guint i, guint b, guint s) {
+       guint _tmp0_;
+       guint _tmp1_;
+       guint _tmp2_;
+       g_return_if_fail (w != NULL);
+       _tmp0_ = i;
+       _tmp1_ = b;
+       _tmp2_ = s;
+       g_signal_emit_by_name (self, "candidate-clicked", _tmp0_, _tmp1_, _tmp2_);
+}
+
+
+static void ___lambda8__candidate_area_candidate_clicked (CandidateArea* _sender, guint index, guint button, guint state, gpointer self) {
+       __lambda8_ (self, _sender, index, button, state);
+}
+
+
+static void __lambda9_ (CandidatePanel* self, CandidateArea* c) {
+       g_return_if_fail (c != NULL);
+       g_signal_emit_by_name (self, "page-up");
+}
+
+
+static void ___lambda9__candidate_area_page_up (CandidateArea* _sender, gpointer self) {
+       __lambda9_ (self, _sender);
+}
+
+
+static void __lambda10_ (CandidatePanel* self, CandidateArea* c) {
+       g_return_if_fail (c != NULL);
+       g_signal_emit_by_name (self, "page-down");
+}
+
+
+static void ___lambda10__candidate_area_page_down (CandidateArea* _sender, gpointer self) {
+       __lambda10_ (self, _sender);
+}
+
+
+static void __lambda11_ (CandidatePanel* self, CandidateArea* c) {
+       g_return_if_fail (c != NULL);
+       g_signal_emit_by_name (self, "cursor-up");
+}
+
+
+static void ___lambda11__candidate_area_cursor_up (CandidateArea* _sender, gpointer self) {
+       __lambda11_ (self, _sender);
+}
+
+
+static void __lambda12_ (CandidatePanel* self, CandidateArea* c) {
+       g_return_if_fail (c != NULL);
+       g_signal_emit_by_name (self, "cursor-down");
+}
+
+
+static void ___lambda12__candidate_area_cursor_down (CandidateArea* _sender, gpointer self) {
+       __lambda12_ (self, _sender);
+}
+
+
+static void candidate_panel_create_ui (CandidatePanel* self) {
+       GtkLabel* _tmp0_;
+       GtkLabel* _tmp1_;
+       GtkLabel* _tmp2_;
+       GtkLabel* _tmp3_;
+       GtkLabel* _tmp4_;
+       GtkLabel* _tmp5_;
+       GtkLabel* _tmp6_;
+       GtkLabel* _tmp7_;
+       GtkLabel* _tmp8_;
+       GtkLabel* _tmp9_;
+       gboolean _tmp10_;
+       CandidateArea* _tmp11_;
+       CandidateArea* _tmp12_;
+       CandidateArea* _tmp13_;
+       CandidateArea* _tmp14_;
+       CandidateArea* _tmp15_;
+       CandidateArea* _tmp16_;
+       HSeparator* _tmp17_;
+       HSeparator* _tmp18_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = (GtkLabel*) gtk_label_new (NULL);
+       g_object_ref_sink (_tmp0_);
+       _g_object_unref0 (self->priv->m_preedit_label);
+       self->priv->m_preedit_label = _tmp0_;
+       _tmp1_ = self->priv->m_preedit_label;
+       gtk_widget_set_size_request ((GtkWidget*) _tmp1_, 20, -1);
+       _tmp2_ = self->priv->m_preedit_label;
+       gtk_misc_set_alignment ((GtkMisc*) _tmp2_, 0.0f, 0.5f);
+       _tmp3_ = self->priv->m_preedit_label;
+       gtk_misc_set_padding ((GtkMisc*) _tmp3_, 8, 0);
+       _tmp4_ = self->priv->m_preedit_label;
+       gtk_widget_set_no_show_all ((GtkWidget*) _tmp4_, TRUE);
+       _tmp5_ = (GtkLabel*) gtk_label_new (NULL);
+       g_object_ref_sink (_tmp5_);
+       _g_object_unref0 (self->priv->m_aux_label);
+       self->priv->m_aux_label = _tmp5_;
+       _tmp6_ = self->priv->m_aux_label;
+       gtk_widget_set_size_request ((GtkWidget*) _tmp6_, 20, -1);
+       _tmp7_ = self->priv->m_aux_label;
+       gtk_misc_set_alignment ((GtkMisc*) _tmp7_, 0.0f, 0.5f);
+       _tmp8_ = self->priv->m_aux_label;
+       gtk_misc_set_padding ((GtkMisc*) _tmp8_, 8, 0);
+       _tmp9_ = self->priv->m_aux_label;
+       gtk_widget_set_no_show_all ((GtkWidget*) _tmp9_, TRUE);
+       _tmp10_ = self->priv->m_vertical;
+       _tmp11_ = candidate_area_new (_tmp10_);
+       g_object_ref_sink (_tmp11_);
+       _g_object_unref0 (self->priv->m_candidate_area);
+       self->priv->m_candidate_area = _tmp11_;
+       _tmp12_ = self->priv->m_candidate_area;
+       g_signal_connect_object (_tmp12_, "candidate-clicked", (GCallback) ___lambda8__candidate_area_candidate_clicked, self, 0);
+       _tmp13_ = self->priv->m_candidate_area;
+       g_signal_connect_object (_tmp13_, "page-up", (GCallback) ___lambda9__candidate_area_page_up, self, 0);
+       _tmp14_ = self->priv->m_candidate_area;
+       g_signal_connect_object (_tmp14_, "page-down", (GCallback) ___lambda10__candidate_area_page_down, self, 0);
+       _tmp15_ = self->priv->m_candidate_area;
+       g_signal_connect_object (_tmp15_, "cursor-up", (GCallback) ___lambda11__candidate_area_cursor_up, self, 0);
+       _tmp16_ = self->priv->m_candidate_area;
+       g_signal_connect_object (_tmp16_, "cursor-down", (GCallback) ___lambda12__candidate_area_cursor_down, self, 0);
+       _tmp17_ = hseparator_new ();
+       g_object_ref_sink (_tmp17_);
+       _g_object_unref0 (self->priv->m_hseparator);
+       self->priv->m_hseparator = _tmp17_;
+       _tmp18_ = self->priv->m_hseparator;
+       gtk_widget_set_visible ((GtkWidget*) _tmp18_, TRUE);
+       candidate_panel_pack_all_widgets (self);
+}
+
+
+static void candidate_panel_pack_all_widgets (CandidatePanel* self) {
+       GtkBox* _tmp0_;
+       GtkLabel* _tmp1_;
+       GtkBox* _tmp2_;
+       GtkLabel* _tmp3_;
+       GtkBox* _tmp4_;
+       HSeparator* _tmp5_;
+       GtkBox* _tmp6_;
+       CandidateArea* _tmp7_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_vbox;
+       _tmp1_ = self->priv->m_preedit_label;
+       gtk_box_pack_start (_tmp0_, (GtkWidget*) _tmp1_, FALSE, FALSE, (guint) 4);
+       _tmp2_ = self->priv->m_vbox;
+       _tmp3_ = self->priv->m_aux_label;
+       gtk_box_pack_start (_tmp2_, (GtkWidget*) _tmp3_, FALSE, FALSE, (guint) 4);
+       _tmp4_ = self->priv->m_vbox;
+       _tmp5_ = self->priv->m_hseparator;
+       gtk_box_pack_start (_tmp4_, (GtkWidget*) _tmp5_, FALSE, FALSE, (guint) 0);
+       _tmp6_ = self->priv->m_vbox;
+       _tmp7_ = self->priv->m_candidate_area;
+       gtk_box_pack_start (_tmp6_, (GtkWidget*) _tmp7_, FALSE, FALSE, (guint) 0);
+}
+
+
+void candidate_panel_show (CandidatePanel* self) {
+       GtkWindow* _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_toplevel;
+       gtk_widget_show_all ((GtkWidget*) _tmp0_);
+}
+
+
+void candidate_panel_hide (CandidatePanel* self) {
+       GtkWindow* _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_toplevel;
+       gtk_widget_hide ((GtkWidget*) _tmp0_);
+}
+
+
+static void candidate_panel_move (CandidatePanel* self, gint x, gint y) {
+       GtkWindow* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_toplevel;
+       _tmp1_ = x;
+       _tmp2_ = y;
+       gtk_window_move (_tmp0_, _tmp1_, _tmp2_);
+}
+
+
+static void candidate_panel_adjust_window_position (CandidatePanel* self) {
+       GdkRectangle _tmp0_;
+       gint _tmp1_;
+       GdkRectangle _tmp2_;
+       gint _tmp3_;
+       GdkRectangle _tmp4_;
+       gint _tmp5_;
+       GdkRectangle _tmp6_;
+       gint _tmp7_;
+       GdkPoint _tmp8_ = {0};
+       GdkPoint cursor_right_bottom;
+       GtkAllocation allocation = {0};
+       GtkWindow* _tmp9_;
+       GtkAllocation _tmp10_ = {0};
+       GdkPoint _tmp11_;
+       gint _tmp12_;
+       GtkAllocation _tmp13_;
+       gint _tmp14_;
+       GdkPoint _tmp15_;
+       gint _tmp16_;
+       GtkAllocation _tmp17_;
+       gint _tmp18_;
+       GdkPoint _tmp19_ = {0};
+       GdkPoint window_right_bottom;
+       GdkWindow* _tmp20_ = NULL;
+       GdkWindow* _tmp21_;
+       GdkWindow* root;
+       GdkWindow* _tmp22_;
+       gint _tmp23_ = 0;
+       gint root_width;
+       GdkWindow* _tmp24_;
+       gint _tmp25_ = 0;
+       gint root_height;
+       gint x = 0;
+       gint y = 0;
+       GdkPoint _tmp26_;
+       gint _tmp27_;
+       gint _tmp28_;
+       GdkPoint _tmp34_;
+       gint _tmp35_;
+       gint _tmp36_;
+       gint _tmp43_;
+       gint _tmp44_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_cursor_location;
+       _tmp1_ = _tmp0_.x;
+       _tmp2_ = self->priv->m_cursor_location;
+       _tmp3_ = _tmp2_.width;
+       _tmp4_ = self->priv->m_cursor_location;
+       _tmp5_ = _tmp4_.y;
+       _tmp6_ = self->priv->m_cursor_location;
+       _tmp7_ = _tmp6_.height;
+       _tmp8_.x = _tmp1_ + _tmp3_;
+       _tmp8_.y = _tmp5_ + _tmp7_;
+       cursor_right_bottom = _tmp8_;
+       _tmp9_ = self->priv->m_toplevel;
+       gtk_widget_get_allocation ((GtkWidget*) _tmp9_, &_tmp10_);
+       allocation = _tmp10_;
+       _tmp11_ = cursor_right_bottom;
+       _tmp12_ = _tmp11_.x;
+       _tmp13_ = allocation;
+       _tmp14_ = _tmp13_.width;
+       _tmp15_ = cursor_right_bottom;
+       _tmp16_ = _tmp15_.y;
+       _tmp17_ = allocation;
+       _tmp18_ = _tmp17_.height;
+       _tmp19_.x = _tmp12_ + _tmp14_;
+       _tmp19_.y = _tmp16_ + _tmp18_;
+       window_right_bottom = _tmp19_;
+       _tmp20_ = gdk_get_default_root_window ();
+       _tmp21_ = _g_object_ref0 (_tmp20_);
+       root = _tmp21_;
+       _tmp22_ = root;
+       _tmp23_ = gdk_window_get_width (_tmp22_);
+       root_width = _tmp23_;
+       _tmp24_ = root;
+       _tmp25_ = gdk_window_get_height (_tmp24_);
+       root_height = _tmp25_;
+       _tmp26_ = window_right_bottom;
+       _tmp27_ = _tmp26_.x;
+       _tmp28_ = root_width;
+       if (_tmp27_ > _tmp28_) {
+               gint _tmp29_;
+               GtkAllocation _tmp30_;
+               gint _tmp31_;
+               _tmp29_ = root_width;
+               _tmp30_ = allocation;
+               _tmp31_ = _tmp30_.width;
+               x = _tmp29_ - _tmp31_;
+       } else {
+               GdkPoint _tmp32_;
+               gint _tmp33_;
+               _tmp32_ = cursor_right_bottom;
+               _tmp33_ = _tmp32_.x;
+               x = _tmp33_;
+       }
+       _tmp34_ = window_right_bottom;
+       _tmp35_ = _tmp34_.y;
+       _tmp36_ = root_height;
+       if (_tmp35_ > _tmp36_) {
+               GdkRectangle _tmp37_;
+               gint _tmp38_;
+               GtkAllocation _tmp39_;
+               gint _tmp40_;
+               _tmp37_ = self->priv->m_cursor_location;
+               _tmp38_ = _tmp37_.y;
+               _tmp39_ = allocation;
+               _tmp40_ = _tmp39_.height;
+               y = _tmp38_ - _tmp40_;
+       } else {
+               GdkPoint _tmp41_;
+               gint _tmp42_;
+               _tmp41_ = cursor_right_bottom;
+               _tmp42_ = _tmp41_.y;
+               y = _tmp42_;
+       }
+       _tmp43_ = x;
+       _tmp44_ = y;
+       candidate_panel_move (self, _tmp43_, _tmp44_);
+       _g_object_unref0 (root);
+}
+
+
+static void g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+       typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT) (gpointer data1, guint arg_1, guint arg_2, guint arg_3, gpointer data2);
+       register GMarshalFunc_VOID__UINT_UINT_UINT callback;
+       register GCClosure * cc;
+       register gpointer data1;
+       register gpointer data2;
+       cc = (GCClosure *) closure;
+       g_return_if_fail (n_param_values == 4);
+       if (G_CCLOSURE_SWAP_DATA (closure)) {
+               data1 = closure->data;
+               data2 = param_values->data[0].v_pointer;
+       } else {
+               data1 = param_values->data[0].v_pointer;
+               data2 = closure->data;
+       }
+       callback = (GMarshalFunc_VOID__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+       callback (data1, g_value_get_uint (param_values + 1), g_value_get_uint (param_values + 2), g_value_get_uint (param_values + 3), data2);
+}
+
+
+static void candidate_panel_class_init (CandidatePanelClass * klass) {
+       candidate_panel_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (CandidatePanelPrivate));
+       GTK_WIDGET_CLASS (klass)->get_preferred_width = candidate_panel_real_get_preferred_width;
+       GTK_WIDGET_CLASS (klass)->get_preferred_height = candidate_panel_real_get_preferred_height;
+       G_OBJECT_CLASS (klass)->finalize = candidate_panel_finalize;
+       g_signal_new ("cursor_up", TYPE_CANDIDATE_PANEL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+       g_signal_new ("cursor_down", TYPE_CANDIDATE_PANEL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+       g_signal_new ("page_up", TYPE_CANDIDATE_PANEL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+       g_signal_new ("page_down", TYPE_CANDIDATE_PANEL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+       g_signal_new ("candidate_clicked", TYPE_CANDIDATE_PANEL, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__UINT_UINT_UINT, G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT);
+}
+
+
+static void candidate_panel_instance_init (CandidatePanel * self) {
+       self->priv = CANDIDATE_PANEL_GET_PRIVATE (self);
+       self->priv->m_vertical = TRUE;
+}
+
+
+static void candidate_panel_finalize (GObject* obj) {
+       CandidatePanel * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CANDIDATE_PANEL, CandidatePanel);
+       _g_object_unref0 (self->priv->m_toplevel);
+       _g_object_unref0 (self->priv->m_vbox);
+       _g_object_unref0 (self->priv->m_preedit_label);
+       _g_object_unref0 (self->priv->m_aux_label);
+       _g_object_unref0 (self->priv->m_candidate_area);
+       _g_object_unref0 (self->priv->m_hseparator);
+       G_OBJECT_CLASS (candidate_panel_parent_class)->finalize (obj);
+}
+
+
+GType candidate_panel_get_type (void) {
+       static volatile gsize candidate_panel_type_id__volatile = 0;
+       if (g_once_init_enter (&candidate_panel_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (CandidatePanelClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) candidate_panel_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CandidatePanel), 0, (GInstanceInitFunc) candidate_panel_instance_init, NULL };
+               GType candidate_panel_type_id;
+               candidate_panel_type_id = g_type_register_static (GTK_TYPE_HBOX, "CandidatePanel", &g_define_type_info, 0);
+               g_once_init_leave (&candidate_panel_type_id__volatile, candidate_panel_type_id);
+       }
+       return candidate_panel_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       if ((array != NULL) && (destroy_func != NULL)) {
+               int i;
+               for (i = 0; i < array_length; i = i + 1) {
+                       if (((gpointer*) array)[i] != NULL) {
+                               destroy_func (((gpointer*) array)[i]);
+                       }
+               }
+       }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       _vala_array_destroy (array, array_length, destroy_func);
+       g_free (array);
+}
+
+
+
diff --git a/ui/gtk3/handle.c b/ui/gtk3/handle.c
new file mode 100644 (file)
index 0000000..dc08935
--- /dev/null
@@ -0,0 +1,833 @@
+/* handle.c generated by valac 0.20.1, the Vala compiler
+ * generated from handle.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <string.h>
+#include <cairo.h>
+#include <float.h>
+#include <math.h>
+
+
+#define TYPE_HANDLE (handle_get_type ())
+#define HANDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HANDLE, Handle))
+#define HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HANDLE, HandleClass))
+#define IS_HANDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HANDLE))
+#define IS_HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HANDLE))
+#define HANDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HANDLE, HandleClass))
+
+typedef struct _Handle Handle;
+typedef struct _HandleClass HandleClass;
+typedef struct _HandlePrivate HandlePrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+struct _Handle {
+       GtkEventBox parent_instance;
+       HandlePrivate * priv;
+};
+
+struct _HandleClass {
+       GtkEventBoxClass parent_class;
+};
+
+struct _HandlePrivate {
+       gboolean m_move_begined;
+       GdkRectangle m_workarea;
+       GdkPoint m_press_pos;
+};
+
+
+static gpointer handle_parent_class = NULL;
+
+GType handle_get_type (void) G_GNUC_CONST;
+#define HANDLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_HANDLE, HandlePrivate))
+enum  {
+       HANDLE_DUMMY_PROPERTY
+};
+Handle* handle_new (void);
+Handle* handle_construct (GType object_type);
+static void handle_real_realize (GtkWidget* base);
+static gboolean handle_real_button_press_event (GtkWidget* base, GdkEventButton* event);
+static gboolean handle_real_button_release_event (GtkWidget* base, GdkEventButton* event);
+static gboolean handle_real_motion_notify_event (GtkWidget* base, GdkEventMotion* event);
+static gboolean handle_real_draw (GtkWidget* base, cairo_t* cr);
+static void handle_finalize (GObject* obj);
+
+
+Handle* handle_construct (GType object_type) {
+       Handle * self = NULL;
+       GdkEventMask mask;
+       self = (Handle*) g_object_new (object_type, NULL);
+       gtk_widget_set_size_request ((GtkWidget*) self, 6, -1);
+       mask = ((GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK) | GDK_BUTTON_RELEASE_MASK) | GDK_BUTTON1_MOTION_MASK;
+       gtk_widget_set_events ((GtkWidget*) self, (gint) mask);
+       self->priv->m_move_begined = FALSE;
+       return self;
+}
+
+
+Handle* handle_new (void) {
+       return handle_construct (TYPE_HANDLE);
+}
+
+
+static void handle_real_realize (GtkWidget* base) {
+       Handle * self;
+       self = (Handle*) base;
+       GTK_WIDGET_CLASS (handle_parent_class)->realize ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, GTK_TYPE_EVENT_BOX, GtkEventBox));
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+static gboolean handle_real_button_press_event (GtkWidget* base, GdkEventButton* event) {
+       Handle * self;
+       gboolean result = FALSE;
+       GdkEventButton _tmp0_;
+       guint _tmp1_;
+       gint _tmp2_;
+       gint _tmp3_;
+       GdkRectangle _tmp4_ = {0};
+       GdkRectangle _tmp5_;
+       gint x = 0;
+       gint y = 0;
+       GtkWidget* _tmp115_ = NULL;
+       GtkWindow* _tmp116_;
+       GtkWindow* toplevel;
+       GtkWindow* _tmp117_;
+       gint _tmp118_ = 0;
+       gint _tmp119_ = 0;
+       GdkEventButton _tmp120_;
+       gdouble _tmp121_;
+       gint _tmp122_;
+       GdkEventButton _tmp123_;
+       gdouble _tmp124_;
+       gint _tmp125_;
+       self = (Handle*) base;
+       g_return_val_if_fail (event != NULL, FALSE);
+       _tmp0_ = *event;
+       _tmp1_ = _tmp0_.button;
+       if (_tmp1_ != ((guint) 1)) {
+               result = FALSE;
+               return result;
+       }
+       _tmp2_ = G_MAXINT;
+       _tmp3_ = G_MAXINT;
+       memset (&_tmp4_, 0, sizeof (GdkRectangle));
+       _tmp4_.x = 0;
+       _tmp4_.y = 0;
+       _tmp4_.width = _tmp2_;
+       _tmp4_.height = _tmp3_;
+       self->priv->m_workarea = _tmp4_;
+       _tmp5_ = self->priv->m_workarea;
+       {
+               gboolean _tmp6_;
+               _tmp6_ = TRUE;
+               while (TRUE) {
+                       gboolean _tmp7_;
+                       GdkWindow* _tmp8_ = NULL;
+                       GdkWindow* _tmp9_;
+                       GdkWindow* root;
+                       GdkAtom _tmp10_ = 0U;
+                       GdkAtom property;
+                       GdkAtom _tmp11_ = 0U;
+                       GdkAtom type;
+                       GdkAtom actual_type = 0U;
+                       gint format = 0;
+                       guchar* data = NULL;
+                       gint data_length1 = 0;
+                       gint _data_size_ = 0;
+                       gboolean _result_ = FALSE;
+                       GdkWindow* _tmp12_;
+                       GdkAtom _tmp13_;
+                       GdkAtom _tmp14_;
+                       glong _tmp15_;
+                       GdkAtom _tmp16_ = 0U;
+                       gint _tmp17_ = 0;
+                       guint8* _tmp18_ = NULL;
+                       gint _tmp19_ = 0;
+                       gboolean _tmp20_ = FALSE;
+                       gboolean _tmp21_ = FALSE;
+                       gboolean _tmp22_ = FALSE;
+                       gboolean _tmp23_ = FALSE;
+                       gboolean _tmp24_;
+                       gboolean _tmp27_;
+                       gboolean _tmp29_;
+                       gboolean _tmp31_;
+                       guchar* _tmp32_;
+                       gint _tmp32__length1;
+                       guchar _tmp33_;
+                       guchar* _tmp34_;
+                       gint _tmp34__length1;
+                       guchar _tmp35_;
+                       guchar* _tmp36_;
+                       gint _tmp36__length1;
+                       guchar _tmp37_;
+                       guchar* _tmp38_;
+                       gint _tmp38__length1;
+                       guchar _tmp39_;
+                       gint index;
+                       GdkAtom _tmp40_ = 0U;
+                       GdkAtom _tmp41_ = 0U;
+                       GdkWindow* _tmp42_;
+                       GdkAtom _tmp43_;
+                       GdkAtom _tmp44_;
+                       glong _tmp45_;
+                       GdkAtom _tmp46_ = 0U;
+                       gint _tmp47_ = 0;
+                       guint8* _tmp48_ = NULL;
+                       gint _tmp49_ = 0;
+                       gboolean _tmp50_ = FALSE;
+                       gboolean _tmp51_ = FALSE;
+                       gboolean _tmp52_ = FALSE;
+                       gboolean _tmp53_ = FALSE;
+                       gboolean _tmp54_;
+                       gboolean _tmp57_;
+                       gboolean _tmp59_;
+                       gboolean _tmp62_;
+                       gint _tmp63_;
+                       gint i;
+                       guchar* _tmp64_;
+                       gint _tmp64__length1;
+                       gint _tmp65_;
+                       guchar _tmp66_;
+                       guchar* _tmp67_;
+                       gint _tmp67__length1;
+                       gint _tmp68_;
+                       guchar _tmp69_;
+                       guchar* _tmp70_;
+                       gint _tmp70__length1;
+                       gint _tmp71_;
+                       guchar _tmp72_;
+                       guchar* _tmp73_;
+                       gint _tmp73__length1;
+                       gint _tmp74_;
+                       guchar _tmp75_;
+                       gint _tmp76_;
+                       guchar* _tmp77_;
+                       gint _tmp77__length1;
+                       gint _tmp78_;
+                       guchar _tmp79_;
+                       guchar* _tmp80_;
+                       gint _tmp80__length1;
+                       gint _tmp81_;
+                       guchar _tmp82_;
+                       guchar* _tmp83_;
+                       gint _tmp83__length1;
+                       gint _tmp84_;
+                       guchar _tmp85_;
+                       guchar* _tmp86_;
+                       gint _tmp86__length1;
+                       gint _tmp87_;
+                       guchar _tmp88_;
+                       gint _tmp89_;
+                       guchar* _tmp90_;
+                       gint _tmp90__length1;
+                       gint _tmp91_;
+                       guchar _tmp92_;
+                       guchar* _tmp93_;
+                       gint _tmp93__length1;
+                       gint _tmp94_;
+                       guchar _tmp95_;
+                       guchar* _tmp96_;
+                       gint _tmp96__length1;
+                       gint _tmp97_;
+                       guchar _tmp98_;
+                       guchar* _tmp99_;
+                       gint _tmp99__length1;
+                       gint _tmp100_;
+                       guchar _tmp101_;
+                       gint _tmp102_;
+                       guchar* _tmp103_;
+                       gint _tmp103__length1;
+                       gint _tmp104_;
+                       guchar _tmp105_;
+                       guchar* _tmp106_;
+                       gint _tmp106__length1;
+                       gint _tmp107_;
+                       guchar _tmp108_;
+                       guchar* _tmp109_;
+                       gint _tmp109__length1;
+                       gint _tmp110_;
+                       guchar _tmp111_;
+                       guchar* _tmp112_;
+                       gint _tmp112__length1;
+                       gint _tmp113_;
+                       guchar _tmp114_;
+                       _tmp7_ = _tmp6_;
+                       if (!_tmp7_) {
+                               if (!FALSE) {
+                                       break;
+                               }
+                       }
+                       _tmp6_ = FALSE;
+                       _tmp8_ = gdk_get_default_root_window ();
+                       _tmp9_ = _g_object_ref0 (_tmp8_);
+                       root = _tmp9_;
+                       _tmp10_ = gdk_atom_intern ("_NET_CURRENT_DESKTOP", FALSE);
+                       property = _tmp10_;
+                       _tmp11_ = gdk_atom_intern ("CARDINAL", FALSE);
+                       type = _tmp11_;
+                       _tmp12_ = root;
+                       _tmp13_ = property;
+                       _tmp14_ = type;
+                       _tmp15_ = G_MAXLONG;
+                       _tmp20_ = gdk_property_get (_tmp12_, _tmp13_, _tmp14_, (gulong) 0, (gulong) _tmp15_, 0, &_tmp16_, &_tmp17_, &_tmp19_, &_tmp18_);
+                       actual_type = _tmp16_;
+                       format = _tmp17_;
+                       data = (g_free (data), NULL);
+                       data = _tmp18_;
+                       data_length1 = _tmp19_;
+                       _data_size_ = data_length1;
+                       _result_ = _tmp20_;
+                       _tmp24_ = _result_;
+                       if (!_tmp24_) {
+                               _tmp23_ = TRUE;
+                       } else {
+                               GdkAtom _tmp25_;
+                               GdkAtom _tmp26_;
+                               _tmp25_ = actual_type;
+                               _tmp26_ = type;
+                               _tmp23_ = _tmp25_ != _tmp26_;
+                       }
+                       _tmp27_ = _tmp23_;
+                       if (_tmp27_) {
+                               _tmp22_ = TRUE;
+                       } else {
+                               gint _tmp28_;
+                               _tmp28_ = format;
+                               _tmp22_ = _tmp28_ != 32;
+                       }
+                       _tmp29_ = _tmp22_;
+                       if (_tmp29_) {
+                               _tmp21_ = TRUE;
+                       } else {
+                               guchar* _tmp30_;
+                               gint _tmp30__length1;
+                               _tmp30_ = data;
+                               _tmp30__length1 = data_length1;
+                               _tmp21_ = _tmp30__length1 != 4;
+                       }
+                       _tmp31_ = _tmp21_;
+                       if (_tmp31_) {
+                               data = (g_free (data), NULL);
+                               _g_object_unref0 (root);
+                               break;
+                       }
+                       _tmp32_ = data;
+                       _tmp32__length1 = data_length1;
+                       _tmp33_ = _tmp32_[0];
+                       _tmp34_ = data;
+                       _tmp34__length1 = data_length1;
+                       _tmp35_ = _tmp34_[1];
+                       _tmp36_ = data;
+                       _tmp36__length1 = data_length1;
+                       _tmp37_ = _tmp36_[2];
+                       _tmp38_ = data;
+                       _tmp38__length1 = data_length1;
+                       _tmp39_ = _tmp38_[3];
+                       index = (gint) (((_tmp33_ | (_tmp35_ << 8)) | (_tmp37_ << 16)) | (_tmp39_ << 24));
+                       _tmp40_ = gdk_atom_intern ("_NET_WORKAREA", FALSE);
+                       property = _tmp40_;
+                       _tmp41_ = gdk_atom_intern ("CARDINAL", FALSE);
+                       type = _tmp41_;
+                       _tmp42_ = root;
+                       _tmp43_ = property;
+                       _tmp44_ = type;
+                       _tmp45_ = G_MAXLONG;
+                       _tmp50_ = gdk_property_get (_tmp42_, _tmp43_, _tmp44_, (gulong) 0, (gulong) _tmp45_, 0, &_tmp46_, &_tmp47_, &_tmp49_, &_tmp48_);
+                       actual_type = _tmp46_;
+                       format = _tmp47_;
+                       data = (g_free (data), NULL);
+                       data = _tmp48_;
+                       data_length1 = _tmp49_;
+                       _data_size_ = data_length1;
+                       _result_ = _tmp50_;
+                       _tmp54_ = _result_;
+                       if (!_tmp54_) {
+                               _tmp53_ = TRUE;
+                       } else {
+                               GdkAtom _tmp55_;
+                               GdkAtom _tmp56_;
+                               _tmp55_ = actual_type;
+                               _tmp56_ = type;
+                               _tmp53_ = _tmp55_ != _tmp56_;
+                       }
+                       _tmp57_ = _tmp53_;
+                       if (_tmp57_) {
+                               _tmp52_ = TRUE;
+                       } else {
+                               gint _tmp58_;
+                               _tmp58_ = format;
+                               _tmp52_ = _tmp58_ != 32;
+                       }
+                       _tmp59_ = _tmp52_;
+                       if (_tmp59_) {
+                               _tmp51_ = TRUE;
+                       } else {
+                               guchar* _tmp60_;
+                               gint _tmp60__length1;
+                               gint _tmp61_;
+                               _tmp60_ = data;
+                               _tmp60__length1 = data_length1;
+                               _tmp61_ = index;
+                               _tmp51_ = _tmp60__length1 < ((_tmp61_ + 1) * 16);
+                       }
+                       _tmp62_ = _tmp51_;
+                       if (_tmp62_) {
+                               data = (g_free (data), NULL);
+                               _g_object_unref0 (root);
+                               break;
+                       }
+                       _tmp63_ = index;
+                       i = (_tmp63_ * 4) * 4;
+                       _tmp64_ = data;
+                       _tmp64__length1 = data_length1;
+                       _tmp65_ = i;
+                       _tmp66_ = _tmp64_[_tmp65_];
+                       _tmp67_ = data;
+                       _tmp67__length1 = data_length1;
+                       _tmp68_ = i;
+                       _tmp69_ = _tmp67_[_tmp68_ + 1];
+                       _tmp70_ = data;
+                       _tmp70__length1 = data_length1;
+                       _tmp71_ = i;
+                       _tmp72_ = _tmp70_[_tmp71_ + 2];
+                       _tmp73_ = data;
+                       _tmp73__length1 = data_length1;
+                       _tmp74_ = i;
+                       _tmp75_ = _tmp73_[_tmp74_ + 3];
+                       self->priv->m_workarea.x = (gint) (((_tmp66_ | (_tmp69_ << 8)) | (_tmp72_ << 16)) | (_tmp75_ << 24));
+                       _tmp76_ = i;
+                       i = _tmp76_ + 4;
+                       _tmp77_ = data;
+                       _tmp77__length1 = data_length1;
+                       _tmp78_ = i;
+                       _tmp79_ = _tmp77_[_tmp78_];
+                       _tmp80_ = data;
+                       _tmp80__length1 = data_length1;
+                       _tmp81_ = i;
+                       _tmp82_ = _tmp80_[_tmp81_ + 1];
+                       _tmp83_ = data;
+                       _tmp83__length1 = data_length1;
+                       _tmp84_ = i;
+                       _tmp85_ = _tmp83_[_tmp84_ + 2];
+                       _tmp86_ = data;
+                       _tmp86__length1 = data_length1;
+                       _tmp87_ = i;
+                       _tmp88_ = _tmp86_[_tmp87_ + 3];
+                       self->priv->m_workarea.y = (gint) (((_tmp79_ | (_tmp82_ << 8)) | (_tmp85_ << 16)) | (_tmp88_ << 24));
+                       _tmp89_ = i;
+                       i = _tmp89_ + 4;
+                       _tmp90_ = data;
+                       _tmp90__length1 = data_length1;
+                       _tmp91_ = i;
+                       _tmp92_ = _tmp90_[_tmp91_];
+                       _tmp93_ = data;
+                       _tmp93__length1 = data_length1;
+                       _tmp94_ = i;
+                       _tmp95_ = _tmp93_[_tmp94_ + 1];
+                       _tmp96_ = data;
+                       _tmp96__length1 = data_length1;
+                       _tmp97_ = i;
+                       _tmp98_ = _tmp96_[_tmp97_ + 2];
+                       _tmp99_ = data;
+                       _tmp99__length1 = data_length1;
+                       _tmp100_ = i;
+                       _tmp101_ = _tmp99_[_tmp100_ + 3];
+                       self->priv->m_workarea.width = (gint) (((_tmp92_ | (_tmp95_ << 8)) | (_tmp98_ << 16)) | (_tmp101_ << 24));
+                       _tmp102_ = i;
+                       i = _tmp102_ + 4;
+                       _tmp103_ = data;
+                       _tmp103__length1 = data_length1;
+                       _tmp104_ = i;
+                       _tmp105_ = _tmp103_[_tmp104_];
+                       _tmp106_ = data;
+                       _tmp106__length1 = data_length1;
+                       _tmp107_ = i;
+                       _tmp108_ = _tmp106_[_tmp107_ + 1];
+                       _tmp109_ = data;
+                       _tmp109__length1 = data_length1;
+                       _tmp110_ = i;
+                       _tmp111_ = _tmp109_[_tmp110_ + 2];
+                       _tmp112_ = data;
+                       _tmp112__length1 = data_length1;
+                       _tmp113_ = i;
+                       _tmp114_ = _tmp112_[_tmp113_ + 3];
+                       self->priv->m_workarea.height = (gint) (((_tmp105_ | (_tmp108_ << 8)) | (_tmp111_ << 16)) | (_tmp114_ << 24));
+                       data = (g_free (data), NULL);
+                       _g_object_unref0 (root);
+               }
+       }
+       self->priv->m_move_begined = TRUE;
+       _tmp115_ = gtk_widget_get_toplevel ((GtkWidget*) self);
+       _tmp116_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp115_, GTK_TYPE_WINDOW, GtkWindow));
+       toplevel = _tmp116_;
+       _tmp117_ = toplevel;
+       gtk_window_get_position (_tmp117_, &_tmp118_, &_tmp119_);
+       x = _tmp118_;
+       y = _tmp119_;
+       _tmp120_ = *event;
+       _tmp121_ = _tmp120_.x_root;
+       _tmp122_ = x;
+       self->priv->m_press_pos.x = ((gint) _tmp121_) - _tmp122_;
+       _tmp123_ = *event;
+       _tmp124_ = _tmp123_.y_root;
+       _tmp125_ = y;
+       self->priv->m_press_pos.y = ((gint) _tmp124_) - _tmp125_;
+       g_signal_emit_by_name (self, "move-begin");
+       result = TRUE;
+       _g_object_unref0 (toplevel);
+       return result;
+}
+
+
+static gboolean handle_real_button_release_event (GtkWidget* base, GdkEventButton* event) {
+       Handle * self;
+       gboolean result = FALSE;
+       GdkEventButton _tmp0_;
+       guint _tmp1_;
+       GdkWindow* _tmp2_ = NULL;
+       GdkCursor* _tmp3_;
+       GdkCursor* _tmp4_;
+       self = (Handle*) base;
+       g_return_val_if_fail (event != NULL, FALSE);
+       _tmp0_ = *event;
+       _tmp1_ = _tmp0_.button;
+       if (_tmp1_ != ((guint) 1)) {
+               result = FALSE;
+               return result;
+       }
+       self->priv->m_move_begined = FALSE;
+       self->priv->m_press_pos.x = 0;
+       self->priv->m_press_pos.y = 0;
+       _tmp2_ = gtk_widget_get_window ((GtkWidget*) self);
+       _tmp3_ = gdk_cursor_new (GDK_LEFT_PTR);
+       _tmp4_ = _tmp3_;
+       gdk_window_set_cursor (_tmp2_, _tmp4_);
+       _g_object_unref0 (_tmp4_);
+       g_signal_emit_by_name (self, "move-end");
+       result = TRUE;
+       return result;
+}
+
+
+static gboolean handle_real_motion_notify_event (GtkWidget* base, GdkEventMotion* event) {
+       Handle * self;
+       gboolean result = FALSE;
+       gboolean _tmp0_;
+       GtkWidget* _tmp1_ = NULL;
+       GtkWindow* _tmp2_;
+       GtkWindow* toplevel;
+       GdkEventMotion _tmp3_;
+       gdouble _tmp4_;
+       GdkPoint _tmp5_;
+       gint _tmp6_;
+       gint x;
+       GdkEventMotion _tmp7_;
+       gdouble _tmp8_;
+       GdkPoint _tmp9_;
+       gint _tmp10_;
+       gint y;
+       gboolean _tmp11_ = FALSE;
+       gint _tmp12_;
+       GdkRectangle _tmp13_;
+       gint _tmp14_;
+       gboolean _tmp18_;
+       gboolean _tmp21_ = FALSE;
+       gint _tmp22_;
+       GdkRectangle _tmp23_;
+       gint _tmp24_;
+       gboolean _tmp28_;
+       gint w = 0;
+       gint h = 0;
+       GtkWindow* _tmp31_;
+       gint _tmp32_ = 0;
+       gint _tmp33_ = 0;
+       gboolean _tmp34_ = FALSE;
+       gint _tmp35_;
+       gint _tmp36_;
+       GdkRectangle _tmp37_;
+       gint _tmp38_;
+       GdkRectangle _tmp39_;
+       gint _tmp40_;
+       gboolean _tmp47_;
+       gboolean _tmp53_ = FALSE;
+       gint _tmp54_;
+       gint _tmp55_;
+       GdkRectangle _tmp56_;
+       gint _tmp57_;
+       GdkRectangle _tmp58_;
+       gint _tmp59_;
+       gboolean _tmp66_;
+       GtkWindow* _tmp72_;
+       gint _tmp73_;
+       gint _tmp74_;
+       self = (Handle*) base;
+       g_return_val_if_fail (event != NULL, FALSE);
+       _tmp0_ = self->priv->m_move_begined;
+       if (!_tmp0_) {
+               result = FALSE;
+               return result;
+       }
+       _tmp1_ = gtk_widget_get_toplevel ((GtkWidget*) self);
+       _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, GTK_TYPE_WINDOW, GtkWindow));
+       toplevel = _tmp2_;
+       _tmp3_ = *event;
+       _tmp4_ = _tmp3_.x_root;
+       _tmp5_ = self->priv->m_press_pos;
+       _tmp6_ = _tmp5_.x;
+       x = (gint) (_tmp4_ - _tmp6_);
+       _tmp7_ = *event;
+       _tmp8_ = _tmp7_.y_root;
+       _tmp9_ = self->priv->m_press_pos;
+       _tmp10_ = _tmp9_.y;
+       y = (gint) (_tmp8_ - _tmp10_);
+       _tmp12_ = x;
+       _tmp13_ = self->priv->m_workarea;
+       _tmp14_ = _tmp13_.x;
+       if (_tmp12_ < _tmp14_) {
+               gint _tmp15_;
+               GdkRectangle _tmp16_;
+               gint _tmp17_;
+               _tmp15_ = x;
+               _tmp16_ = self->priv->m_workarea;
+               _tmp17_ = _tmp16_.x;
+               _tmp11_ = _tmp15_ > (_tmp17_ - 16);
+       } else {
+               _tmp11_ = FALSE;
+       }
+       _tmp18_ = _tmp11_;
+       if (_tmp18_) {
+               GdkRectangle _tmp19_;
+               gint _tmp20_;
+               _tmp19_ = self->priv->m_workarea;
+               _tmp20_ = _tmp19_.x;
+               x = _tmp20_;
+       }
+       _tmp22_ = y;
+       _tmp23_ = self->priv->m_workarea;
+       _tmp24_ = _tmp23_.y;
+       if (_tmp22_ < _tmp24_) {
+               gint _tmp25_;
+               GdkRectangle _tmp26_;
+               gint _tmp27_;
+               _tmp25_ = y;
+               _tmp26_ = self->priv->m_workarea;
+               _tmp27_ = _tmp26_.y;
+               _tmp21_ = _tmp25_ > (_tmp27_ - 16);
+       } else {
+               _tmp21_ = FALSE;
+       }
+       _tmp28_ = _tmp21_;
+       if (_tmp28_) {
+               GdkRectangle _tmp29_;
+               gint _tmp30_;
+               _tmp29_ = self->priv->m_workarea;
+               _tmp30_ = _tmp29_.y;
+               y = _tmp30_;
+       }
+       _tmp31_ = toplevel;
+       gtk_window_get_size (_tmp31_, &_tmp32_, &_tmp33_);
+       w = _tmp32_;
+       h = _tmp33_;
+       _tmp35_ = x;
+       _tmp36_ = w;
+       _tmp37_ = self->priv->m_workarea;
+       _tmp38_ = _tmp37_.x;
+       _tmp39_ = self->priv->m_workarea;
+       _tmp40_ = _tmp39_.width;
+       if ((_tmp35_ + _tmp36_) > (_tmp38_ + _tmp40_)) {
+               gint _tmp41_;
+               gint _tmp42_;
+               GdkRectangle _tmp43_;
+               gint _tmp44_;
+               GdkRectangle _tmp45_;
+               gint _tmp46_;
+               _tmp41_ = x;
+               _tmp42_ = w;
+               _tmp43_ = self->priv->m_workarea;
+               _tmp44_ = _tmp43_.x;
+               _tmp45_ = self->priv->m_workarea;
+               _tmp46_ = _tmp45_.width;
+               _tmp34_ = (_tmp41_ + _tmp42_) < ((_tmp44_ + _tmp46_) + 16);
+       } else {
+               _tmp34_ = FALSE;
+       }
+       _tmp47_ = _tmp34_;
+       if (_tmp47_) {
+               GdkRectangle _tmp48_;
+               gint _tmp49_;
+               GdkRectangle _tmp50_;
+               gint _tmp51_;
+               gint _tmp52_;
+               _tmp48_ = self->priv->m_workarea;
+               _tmp49_ = _tmp48_.x;
+               _tmp50_ = self->priv->m_workarea;
+               _tmp51_ = _tmp50_.width;
+               _tmp52_ = w;
+               x = (_tmp49_ + _tmp51_) - _tmp52_;
+       }
+       _tmp54_ = y;
+       _tmp55_ = h;
+       _tmp56_ = self->priv->m_workarea;
+       _tmp57_ = _tmp56_.y;
+       _tmp58_ = self->priv->m_workarea;
+       _tmp59_ = _tmp58_.height;
+       if ((_tmp54_ + _tmp55_) > (_tmp57_ + _tmp59_)) {
+               gint _tmp60_;
+               gint _tmp61_;
+               GdkRectangle _tmp62_;
+               gint _tmp63_;
+               GdkRectangle _tmp64_;
+               gint _tmp65_;
+               _tmp60_ = y;
+               _tmp61_ = h;
+               _tmp62_ = self->priv->m_workarea;
+               _tmp63_ = _tmp62_.y;
+               _tmp64_ = self->priv->m_workarea;
+               _tmp65_ = _tmp64_.height;
+               _tmp53_ = (_tmp60_ + _tmp61_) < ((_tmp63_ + _tmp65_) + 16);
+       } else {
+               _tmp53_ = FALSE;
+       }
+       _tmp66_ = _tmp53_;
+       if (_tmp66_) {
+               GdkRectangle _tmp67_;
+               gint _tmp68_;
+               GdkRectangle _tmp69_;
+               gint _tmp70_;
+               gint _tmp71_;
+               _tmp67_ = self->priv->m_workarea;
+               _tmp68_ = _tmp67_.y;
+               _tmp69_ = self->priv->m_workarea;
+               _tmp70_ = _tmp69_.height;
+               _tmp71_ = w;
+               y = (_tmp68_ + _tmp70_) - _tmp71_;
+       }
+       _tmp72_ = toplevel;
+       _tmp73_ = x;
+       _tmp74_ = y;
+       gtk_window_move (_tmp72_, _tmp73_, _tmp74_);
+       result = TRUE;
+       _g_object_unref0 (toplevel);
+       return result;
+}
+
+
+static gboolean handle_real_draw (GtkWidget* base, cairo_t* cr) {
+       Handle * self;
+       gboolean result = FALSE;
+       cairo_t* _tmp0_;
+       GdkWindow* _tmp1_ = NULL;
+       gboolean _tmp2_ = FALSE;
+       self = (Handle*) base;
+       g_return_val_if_fail (cr != NULL, FALSE);
+       _tmp0_ = cr;
+       _tmp1_ = gtk_widget_get_window ((GtkWidget*) self);
+       _tmp2_ = gtk_cairo_should_draw_window (_tmp0_, _tmp1_);
+       if (_tmp2_) {
+               GtkStyleContext* _tmp3_ = NULL;
+               GtkStyleContext* _tmp4_;
+               GtkStyleContext* context;
+               GtkAllocation allocation = {0};
+               GtkAllocation _tmp5_ = {0};
+               GtkStyleContext* _tmp6_;
+               cairo_t* _tmp7_;
+               GtkAllocation _tmp8_;
+               gint _tmp9_;
+               GtkAllocation _tmp10_;
+               gint _tmp11_;
+               GtkAllocation _tmp12_;
+               gint _tmp13_;
+               GtkAllocation _tmp14_;
+               gint _tmp15_;
+               _tmp3_ = gtk_widget_get_style_context ((GtkWidget*) self);
+               _tmp4_ = _g_object_ref0 (_tmp3_);
+               context = _tmp4_;
+               gtk_widget_get_allocation ((GtkWidget*) self, &_tmp5_);
+               allocation = _tmp5_;
+               _tmp6_ = context;
+               _tmp7_ = cr;
+               _tmp8_ = allocation;
+               _tmp9_ = _tmp8_.x;
+               _tmp10_ = allocation;
+               _tmp11_ = _tmp10_.y;
+               _tmp12_ = allocation;
+               _tmp13_ = _tmp12_.height;
+               _tmp14_ = allocation;
+               _tmp15_ = _tmp14_.width;
+               gtk_render_handle (_tmp6_, _tmp7_, (gdouble) _tmp9_, (gdouble) (_tmp11_ + ((_tmp13_ - 40) / 2)), (gdouble) _tmp15_, 40.0);
+               _g_object_unref0 (context);
+       }
+       result = FALSE;
+       return result;
+}
+
+
+static void handle_class_init (HandleClass * klass) {
+       handle_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (HandlePrivate));
+       GTK_WIDGET_CLASS (klass)->realize = handle_real_realize;
+       GTK_WIDGET_CLASS (klass)->button_press_event = handle_real_button_press_event;
+       GTK_WIDGET_CLASS (klass)->button_release_event = handle_real_button_release_event;
+       GTK_WIDGET_CLASS (klass)->motion_notify_event = handle_real_motion_notify_event;
+       GTK_WIDGET_CLASS (klass)->draw = handle_real_draw;
+       G_OBJECT_CLASS (klass)->finalize = handle_finalize;
+       g_signal_new ("move_begin", TYPE_HANDLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+       g_signal_new ("move_end", TYPE_HANDLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+}
+
+
+static void handle_instance_init (Handle * self) {
+       self->priv = HANDLE_GET_PRIVATE (self);
+}
+
+
+static void handle_finalize (GObject* obj) {
+       Handle * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_HANDLE, Handle);
+       G_OBJECT_CLASS (handle_parent_class)->finalize (obj);
+}
+
+
+GType handle_get_type (void) {
+       static volatile gsize handle_type_id__volatile = 0;
+       if (g_once_init_enter (&handle_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (HandleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) handle_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Handle), 0, (GInstanceInitFunc) handle_instance_init, NULL };
+               GType handle_type_id;
+               handle_type_id = g_type_register_static (GTK_TYPE_EVENT_BOX, "Handle", &g_define_type_info, 0);
+               g_once_init_leave (&handle_type_id__volatile, handle_type_id);
+       }
+       return handle_type_id__volatile;
+}
+
+
+
diff --git a/ui/gtk3/ibus_ui_gtk3_vala.stamp b/ui/gtk3/ibus_ui_gtk3_vala.stamp
new file mode 100644 (file)
index 0000000..859afb1
--- /dev/null
@@ -0,0 +1 @@
+stamp
diff --git a/ui/gtk3/iconwidget.c b/ui/gtk3/iconwidget.c
new file mode 100644 (file)
index 0000000..8f4aaa7
--- /dev/null
@@ -0,0 +1,307 @@
+/* iconwidget.c generated by valac 0.20.1, the Vala compiler
+ * generated from iconwidget.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <float.h>
+#include <math.h>
+
+
+#define TYPE_ICON_WIDGET (icon_widget_get_type ())
+#define ICON_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ICON_WIDGET, IconWidget))
+#define ICON_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ICON_WIDGET, IconWidgetClass))
+#define IS_ICON_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ICON_WIDGET))
+#define IS_ICON_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ICON_WIDGET))
+#define ICON_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ICON_WIDGET, IconWidgetClass))
+
+typedef struct _IconWidget IconWidget;
+typedef struct _IconWidgetClass IconWidgetClass;
+typedef struct _IconWidgetPrivate IconWidgetPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+struct _IconWidget {
+       GtkImage parent_instance;
+       IconWidgetPrivate * priv;
+};
+
+struct _IconWidgetClass {
+       GtkImageClass parent_class;
+};
+
+
+static gpointer icon_widget_parent_class = NULL;
+
+GType icon_widget_get_type (void) G_GNUC_CONST;
+enum  {
+       ICON_WIDGET_DUMMY_PROPERTY
+};
+IconWidget* icon_widget_new (const gchar* icon_name_or_path, GtkIconSize size);
+IconWidget* icon_widget_construct (GType object_type, const gchar* icon_name_or_path, GtkIconSize size);
+
+
+/**
+     * IconWidget:
+     * @icon_name_or_path: Can be a name or path but not stock id
+     *     because gtk_icon_theme_load_icon() cannot fallback the
+     *     stock id to a real file name against
+     *     gtk_image_new_from_stock().
+     * @size: #Gtk.IconSize
+     */
+static gchar string_get (const gchar* self, glong index) {
+       gchar result = '\0';
+       glong _tmp0_;
+       gchar _tmp1_;
+       g_return_val_if_fail (self != NULL, '\0');
+       _tmp0_ = index;
+       _tmp1_ = ((gchar*) self)[_tmp0_];
+       result = _tmp1_;
+       return result;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+IconWidget* icon_widget_construct (GType object_type, const gchar* icon_name_or_path, GtkIconSize size) {
+       IconWidget * self = NULL;
+       GdkPixbuf* pixbuf;
+       gint fixed_width = 0;
+       gint fixed_height = 0;
+       GtkIconSize _tmp0_;
+       gint _tmp1_ = 0;
+       gint _tmp2_ = 0;
+       GdkPixbuf* _tmp22_;
+       GdkPixbuf* _tmp23_;
+       gint _tmp24_ = 0;
+       gfloat width;
+       GdkPixbuf* _tmp25_;
+       gint _tmp26_ = 0;
+       gfloat height;
+       gfloat _tmp27_ = 0.0F;
+       gfloat _tmp28_;
+       gfloat _tmp29_;
+       gint _tmp32_;
+       gfloat _tmp33_;
+       gfloat scale;
+       gfloat _tmp34_;
+       gfloat _tmp35_;
+       gfloat _tmp36_;
+       gfloat _tmp37_;
+       GdkPixbuf* _tmp38_;
+       gfloat _tmp39_;
+       gfloat _tmp40_;
+       GdkPixbuf* _tmp41_ = NULL;
+       GdkPixbuf* _tmp42_;
+       GError * _inner_error_ = NULL;
+       g_return_val_if_fail (icon_name_or_path != NULL, NULL);
+       self = (IconWidget*) g_object_new (object_type, NULL);
+       pixbuf = NULL;
+       _tmp0_ = size;
+       gtk_icon_size_lookup (_tmp0_, &_tmp1_, &_tmp2_);
+       fixed_width = _tmp1_;
+       fixed_height = _tmp2_;
+       {
+               const gchar* _tmp3_;
+               gchar _tmp4_ = '\0';
+               _tmp3_ = icon_name_or_path;
+               _tmp4_ = string_get (_tmp3_, (glong) 0);
+               if (_tmp4_ == '/') {
+                       const gchar* _tmp5_;
+                       GdkPixbuf* _tmp6_;
+                       GdkPixbuf* _tmp7_;
+                       _tmp5_ = icon_name_or_path;
+                       _tmp6_ = gdk_pixbuf_new_from_file (_tmp5_, &_inner_error_);
+                       _tmp7_ = _tmp6_;
+                       if (_inner_error_ != NULL) {
+                               goto __catch0_g_error;
+                       }
+                       _g_object_unref0 (pixbuf);
+                       pixbuf = _tmp7_;
+               } else {
+                       GtkIconTheme* _tmp8_ = NULL;
+                       GtkIconTheme* _tmp9_;
+                       GtkIconTheme* theme;
+                       GtkIconTheme* _tmp10_;
+                       const gchar* _tmp11_;
+                       gint _tmp12_;
+                       GdkPixbuf* _tmp13_ = NULL;
+                       GdkPixbuf* _tmp14_;
+                       _tmp8_ = gtk_icon_theme_get_default ();
+                       _tmp9_ = _g_object_ref0 (_tmp8_);
+                       theme = _tmp9_;
+                       _tmp10_ = theme;
+                       _tmp11_ = icon_name_or_path;
+                       _tmp12_ = fixed_width;
+                       _tmp13_ = gtk_icon_theme_load_icon (_tmp10_, _tmp11_, _tmp12_, 0, &_inner_error_);
+                       _tmp14_ = _tmp13_;
+                       if (_inner_error_ != NULL) {
+                               _g_object_unref0 (theme);
+                               goto __catch0_g_error;
+                       }
+                       _g_object_unref0 (pixbuf);
+                       pixbuf = _tmp14_;
+                       _g_object_unref0 (theme);
+               }
+       }
+       goto __finally0;
+       __catch0_g_error:
+       {
+               GError* e = NULL;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               {
+                       GtkIconTheme* _tmp15_ = NULL;
+                       GtkIconTheme* _tmp16_;
+                       GtkIconTheme* theme;
+                       GtkIconTheme* _tmp17_;
+                       gint _tmp18_;
+                       GdkPixbuf* _tmp19_ = NULL;
+                       GdkPixbuf* _tmp20_;
+                       _tmp15_ = gtk_icon_theme_get_default ();
+                       _tmp16_ = _g_object_ref0 (_tmp15_);
+                       theme = _tmp16_;
+                       _tmp17_ = theme;
+                       _tmp18_ = fixed_width;
+                       _tmp19_ = gtk_icon_theme_load_icon (_tmp17_, "ibus-engine", _tmp18_, 0, &_inner_error_);
+                       _tmp20_ = _tmp19_;
+                       if (_inner_error_ != NULL) {
+                               _g_object_unref0 (theme);
+                               goto __catch1_g_error;
+                       }
+                       _g_object_unref0 (pixbuf);
+                       pixbuf = _tmp20_;
+                       _g_object_unref0 (theme);
+               }
+               goto __finally1;
+               __catch1_g_error:
+               {
+                       GError* e = NULL;
+                       GtkIconSize _tmp21_;
+                       e = _inner_error_;
+                       _inner_error_ = NULL;
+                       _tmp21_ = size;
+                       gtk_image_set_from_stock ((GtkImage*) self, GTK_STOCK_MISSING_IMAGE, _tmp21_);
+                       _g_error_free0 (e);
+                       _g_error_free0 (e);
+                       _g_object_unref0 (pixbuf);
+                       return self;
+               }
+               __finally1:
+               if (_inner_error_ != NULL) {
+                       _g_error_free0 (e);
+                       _g_error_free0 (e);
+                       _g_object_unref0 (pixbuf);
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return NULL;
+               }
+               _g_error_free0 (e);
+       }
+       __finally0:
+       if (_inner_error_ != NULL) {
+               _g_object_unref0 (pixbuf);
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return NULL;
+       }
+       _tmp22_ = pixbuf;
+       if (_tmp22_ == NULL) {
+               _g_object_unref0 (pixbuf);
+               return self;
+       }
+       _tmp23_ = pixbuf;
+       _tmp24_ = gdk_pixbuf_get_width (_tmp23_);
+       width = (gfloat) _tmp24_;
+       _tmp25_ = pixbuf;
+       _tmp26_ = gdk_pixbuf_get_height (_tmp25_);
+       height = (gfloat) _tmp26_;
+       _tmp28_ = width;
+       _tmp29_ = height;
+       if (_tmp28_ > _tmp29_) {
+               gfloat _tmp30_;
+               _tmp30_ = width;
+               _tmp27_ = _tmp30_;
+       } else {
+               gfloat _tmp31_;
+               _tmp31_ = height;
+               _tmp27_ = _tmp31_;
+       }
+       _tmp32_ = fixed_width;
+       _tmp33_ = _tmp27_;
+       scale = _tmp32_ / _tmp33_;
+       _tmp34_ = width;
+       _tmp35_ = scale;
+       width = _tmp34_ * _tmp35_;
+       _tmp36_ = height;
+       _tmp37_ = scale;
+       height = _tmp36_ * _tmp37_;
+       _tmp38_ = pixbuf;
+       _tmp39_ = width;
+       _tmp40_ = height;
+       _tmp41_ = gdk_pixbuf_scale_simple (_tmp38_, (gint) _tmp39_, (gint) _tmp40_, GDK_INTERP_BILINEAR);
+       _g_object_unref0 (pixbuf);
+       pixbuf = _tmp41_;
+       _tmp42_ = pixbuf;
+       gtk_image_set_from_pixbuf ((GtkImage*) self, _tmp42_);
+       gtk_widget_show ((GtkWidget*) self);
+       _g_object_unref0 (pixbuf);
+       return self;
+}
+
+
+IconWidget* icon_widget_new (const gchar* icon_name_or_path, GtkIconSize size) {
+       return icon_widget_construct (TYPE_ICON_WIDGET, icon_name_or_path, size);
+}
+
+
+static void icon_widget_class_init (IconWidgetClass * klass) {
+       icon_widget_parent_class = g_type_class_peek_parent (klass);
+}
+
+
+static void icon_widget_instance_init (IconWidget * self) {
+}
+
+
+GType icon_widget_get_type (void) {
+       static volatile gsize icon_widget_type_id__volatile = 0;
+       if (g_once_init_enter (&icon_widget_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (IconWidgetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) icon_widget_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IconWidget), 0, (GInstanceInitFunc) icon_widget_instance_init, NULL };
+               GType icon_widget_type_id;
+               icon_widget_type_id = g_type_register_static (GTK_TYPE_IMAGE, "IconWidget", &g_define_type_info, 0);
+               g_once_init_leave (&icon_widget_type_id__volatile, icon_widget_type_id);
+       }
+       return icon_widget_type_id__volatile;
+}
+
+
+
diff --git a/ui/gtk3/keybindingmanager.c b/ui/gtk3/keybindingmanager.c
new file mode 100644 (file)
index 0000000..c7a43a9
--- /dev/null
@@ -0,0 +1,1268 @@
+/* keybindingmanager.c generated by valac 0.20.1, the Vala compiler
+ * generated from keybindingmanager.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+valac --pkg gtk+-2.0 --pkg x11 --pkg gdk-x11-2.0 --pkg gee-1.0 keybinding-manager.vala
+*/
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gdk/gdk.h>
+#include <gdk/gdkx.h>
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/Xutil.h>
+#include <X11/Xregion.h>
+#include <gtk/gtk.h>
+#include <X11/extensions/XInput2.h>
+#include <string.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_KEYBINDING_MANAGER (keybinding_manager_get_type ())
+#define KEYBINDING_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEYBINDING_MANAGER, KeybindingManager))
+#define KEYBINDING_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEYBINDING_MANAGER, KeybindingManagerClass))
+#define IS_KEYBINDING_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEYBINDING_MANAGER))
+#define IS_KEYBINDING_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEYBINDING_MANAGER))
+#define KEYBINDING_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEYBINDING_MANAGER, KeybindingManagerClass))
+
+typedef struct _KeybindingManager KeybindingManager;
+typedef struct _KeybindingManagerClass KeybindingManagerClass;
+typedef struct _KeybindingManagerPrivate KeybindingManagerPrivate;
+
+#define KEYBINDING_MANAGER_TYPE_KEYBINDING (keybinding_manager_keybinding_get_type ())
+#define KEYBINDING_MANAGER_KEYBINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), KEYBINDING_MANAGER_TYPE_KEYBINDING, KeybindingManagerKeybinding))
+#define KEYBINDING_MANAGER_KEYBINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), KEYBINDING_MANAGER_TYPE_KEYBINDING, KeybindingManagerKeybindingClass))
+#define KEYBINDING_MANAGER_IS_KEYBINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), KEYBINDING_MANAGER_TYPE_KEYBINDING))
+#define KEYBINDING_MANAGER_IS_KEYBINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), KEYBINDING_MANAGER_TYPE_KEYBINDING))
+#define KEYBINDING_MANAGER_KEYBINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), KEYBINDING_MANAGER_TYPE_KEYBINDING, KeybindingManagerKeybindingClass))
+
+typedef struct _KeybindingManagerKeybinding KeybindingManagerKeybinding;
+typedef struct _KeybindingManagerKeybindingClass KeybindingManagerKeybindingClass;
+#define __g_list_free__keybinding_manager_keybinding_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__keybinding_manager_keybinding_unref0_ (var), NULL)))
+#define _keybinding_manager_keybinding_unref0(var) ((var == NULL) ? NULL : (var = (keybinding_manager_keybinding_unref (var), NULL)))
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+typedef struct _KeybindingManagerKeybindingPrivate KeybindingManagerKeybindingPrivate;
+typedef struct _KeybindingManagerParamSpecKeybinding KeybindingManagerParamSpecKeybinding;
+
+struct _KeybindingManager {
+       GObject parent_instance;
+       KeybindingManagerPrivate * priv;
+};
+
+struct _KeybindingManagerClass {
+       GObjectClass parent_class;
+};
+
+struct _KeybindingManagerPrivate {
+       GList* m_bindings;
+};
+
+typedef void (*KeybindingManagerKeybindingHandlerFunc) (GdkEvent* event, void* user_data);
+struct _KeybindingManagerKeybinding {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       KeybindingManagerKeybindingPrivate * priv;
+};
+
+struct _KeybindingManagerKeybindingClass {
+       GTypeClass parent_class;
+       void (*finalize) (KeybindingManagerKeybinding *self);
+};
+
+struct _KeybindingManagerKeybindingPrivate {
+       guint _keysym;
+       GdkModifierType _modifiers;
+       KeybindingManagerKeybindingHandlerFunc _handler;
+       gpointer _handler_target;
+};
+
+struct _KeybindingManagerParamSpecKeybinding {
+       GParamSpec parent_instance;
+};
+
+
+static gpointer keybinding_manager_parent_class = NULL;
+static KeybindingManager* keybinding_manager_m_instance;
+static KeybindingManager* keybinding_manager_m_instance = NULL;
+static gpointer keybinding_manager_keybinding_parent_class = NULL;
+
+GType keybinding_manager_get_type (void) G_GNUC_CONST;
+static gpointer keybinding_manager_keybinding_ref (gpointer instance);
+static void keybinding_manager_keybinding_unref (gpointer instance);
+static GParamSpec* keybinding_manager_param_spec_keybinding (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void keybinding_manager_value_set_keybinding (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void keybinding_manager_value_take_keybinding (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer keybinding_manager_value_get_keybinding (const GValue* value) G_GNUC_UNUSED;
+static GType keybinding_manager_keybinding_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define KEYBINDING_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_KEYBINDING_MANAGER, KeybindingManagerPrivate))
+enum  {
+       KEYBINDING_MANAGER_DUMMY_PROPERTY
+};
+static void _keybinding_manager_keybinding_unref0_ (gpointer var);
+static void _g_list_free__keybinding_manager_keybinding_unref0_ (GList* self);
+#define KEYBINDING_MANAGER_MODIFIER_FILTER ((guint) (GDK_MODIFIER_MASK & (~(((((((((GDK_LOCK_MASK | GDK_MOD2_MASK) | GDK_BUTTON1_MASK) | GDK_BUTTON2_MASK) | GDK_BUTTON3_MASK) | GDK_BUTTON4_MASK) | GDK_BUTTON5_MASK) | GDK_SUPER_MASK) | GDK_HYPER_MASK) | GDK_META_MASK))))
+static KeybindingManager* keybinding_manager_new (void);
+static KeybindingManager* keybinding_manager_construct (GType object_type);
+static void keybinding_manager_event_handler (KeybindingManager* self, GdkEvent* event);
+static void _keybinding_manager_event_handler_gdk_event_func (GdkEvent* event, gpointer self);
+gboolean keybinding_manager_bind (KeybindingManager* self, guint keysym, GdkModifierType modifiers, KeybindingManagerKeybindingHandlerFunc handler, void* handler_target);
+static gboolean keybinding_manager_grab_keycode (KeybindingManager* self, GdkDisplay* display, guint keyval, guint modifiers);
+static KeybindingManagerKeybinding* keybinding_manager_keybinding_new (guint keysym, GdkModifierType modifiers, KeybindingManagerKeybindingHandlerFunc handler, void* handler_target);
+static KeybindingManagerKeybinding* keybinding_manager_keybinding_construct (GType object_type, guint keysym, GdkModifierType modifiers, KeybindingManagerKeybindingHandlerFunc handler, void* handler_target);
+void keybinding_manager_unbind (KeybindingManager* self, guint keysym, GdkModifierType modifiers);
+static guint keybinding_manager_keybinding_get_keysym (KeybindingManagerKeybinding* self);
+static GdkModifierType keybinding_manager_keybinding_get_modifiers (KeybindingManagerKeybinding* self);
+static gboolean keybinding_manager_ungrab_keycode (KeybindingManager* self, GdkDisplay* display, guint keyval, guint modifiers);
+KeybindingManager* keybinding_manager_get_instance (void);
+GdkModifierType keybinding_manager_get_primary_modifier (guint binding_mask);
+gboolean keybinding_manager_primary_modifier_still_pressed (GdkEvent* event, guint primary_modifier);
+guint keybinding_manager_keyval_to_modifier (guint keyval);
+static KeybindingManagerKeybindingHandlerFunc keybinding_manager_keybinding_get_handler (KeybindingManagerKeybinding* self, gpointer* result_target);
+static XIGrabModifiers* keybinding_manager_get_grab_modifiers (KeybindingManager* self, guint modifiers, int* result_length1);
+static void _vala_array_add10 (gint** array, int* length, int* size, gint value);
+static void _vala_array_add11 (gint** array, int* length, int* size, gint value);
+static void _vala_array_add12 (gint** array, int* length, int* size, gint value);
+static void _vala_array_add13 (XIGrabModifiers** array, int* length, int* size, const XIGrabModifiers* value);
+static void _vala_XIGrabModifiers_array_free (XIGrabModifiers* array, gint array_length);
+#define KEYBINDING_MANAGER_KEYBINDING_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), KEYBINDING_MANAGER_TYPE_KEYBINDING, KeybindingManagerKeybindingPrivate))
+enum  {
+       KEYBINDING_MANAGER_KEYBINDING_DUMMY_PROPERTY
+};
+static void keybinding_manager_keybinding_set_keysym (KeybindingManagerKeybinding* self, guint value);
+static void keybinding_manager_keybinding_set_modifiers (KeybindingManagerKeybinding* self, GdkModifierType value);
+static void keybinding_manager_keybinding_set_handler (KeybindingManagerKeybinding* self, KeybindingManagerKeybindingHandlerFunc value, gpointer value_target);
+static void keybinding_manager_keybinding_finalize (KeybindingManagerKeybinding* obj);
+static void keybinding_manager_finalize (GObject* obj);
+
+
+static void _keybinding_manager_keybinding_unref0_ (gpointer var) {
+       (var == NULL) ? NULL : (var = (keybinding_manager_keybinding_unref (var), NULL));
+}
+
+
+static void _g_list_free__keybinding_manager_keybinding_unref0_ (GList* self) {
+       g_list_foreach (self, (GFunc) _keybinding_manager_keybinding_unref0_, NULL);
+       g_list_free (self);
+}
+
+
+static void _keybinding_manager_event_handler_gdk_event_func (GdkEvent* event, gpointer self) {
+       keybinding_manager_event_handler (self, event);
+}
+
+
+static KeybindingManager* keybinding_manager_construct (GType object_type) {
+       KeybindingManager * self = NULL;
+       self = (KeybindingManager*) g_object_new (object_type, NULL);
+       gdk_event_handler_set (_keybinding_manager_event_handler_gdk_event_func, g_object_ref (self), g_object_unref);
+       return self;
+}
+
+
+static KeybindingManager* keybinding_manager_new (void) {
+       return keybinding_manager_construct (TYPE_KEYBINDING_MANAGER);
+}
+
+
+/**
+     * Bind accelerator to given handler
+     *
+     * @param keysym
+     * @param modifiers
+     * @param handler handler called when given accelerator is pressed
+     */
+static gpointer _keybinding_manager_keybinding_ref0 (gpointer self) {
+       return self ? keybinding_manager_keybinding_ref (self) : NULL;
+}
+
+
+gboolean keybinding_manager_bind (KeybindingManager* self, guint keysym, GdkModifierType modifiers, KeybindingManagerKeybindingHandlerFunc handler, void* handler_target) {
+       gboolean result = FALSE;
+       Display* _tmp0_ = NULL;
+       Display* display;
+       Display* _tmp1_;
+       guint _tmp2_;
+       guchar _tmp3_ = '\0';
+       gint keycode;
+       gint _tmp4_;
+       GdkDisplay* _tmp5_ = NULL;
+       guint _tmp6_;
+       GdkModifierType _tmp7_;
+       guint _tmp8_;
+       GdkModifierType _tmp9_;
+       KeybindingManagerKeybindingHandlerFunc _tmp10_;
+       void* _tmp10__target;
+       KeybindingManagerKeybinding* _tmp11_;
+       KeybindingManagerKeybinding* binding;
+       KeybindingManagerKeybinding* _tmp12_;
+       KeybindingManagerKeybinding* _tmp13_;
+       g_return_val_if_fail (self != NULL, FALSE);
+       _tmp0_ = gdk_x11_get_default_xdisplay ();
+       display = _tmp0_;
+       _tmp1_ = display;
+       _tmp2_ = keysym;
+       _tmp3_ = XKeysymToKeycode (_tmp1_, (gulong) _tmp2_);
+       keycode = (gint) _tmp3_;
+       _tmp4_ = keycode;
+       if (_tmp4_ == 0) {
+               result = FALSE;
+               return result;
+       }
+       _tmp5_ = gdk_display_get_default ();
+       _tmp6_ = keysym;
+       _tmp7_ = modifiers;
+       keybinding_manager_grab_keycode (self, _tmp5_, _tmp6_, (guint) _tmp7_);
+       _tmp8_ = keysym;
+       _tmp9_ = modifiers;
+       _tmp10_ = handler;
+       _tmp10__target = handler_target;
+       _tmp11_ = keybinding_manager_keybinding_new (_tmp8_, _tmp9_, _tmp10_, _tmp10__target);
+       binding = _tmp11_;
+       _tmp12_ = binding;
+       _tmp13_ = _keybinding_manager_keybinding_ref0 (_tmp12_);
+       self->priv->m_bindings = g_list_append (self->priv->m_bindings, _tmp13_);
+       result = TRUE;
+       _keybinding_manager_keybinding_unref0 (binding);
+       return result;
+}
+
+
+/**
+     * Unbind given accelerator.
+     *
+     * @param keysym
+     * @param modifiers
+     */
+void keybinding_manager_unbind (KeybindingManager* self, guint keysym, GdkModifierType modifiers) {
+       GList* remove_bindings;
+       GList* _tmp0_;
+       GList* _tmp21_;
+       g_return_if_fail (self != NULL);
+       remove_bindings = NULL;
+       _tmp0_ = self->priv->m_bindings;
+       {
+               GList* binding_collection = NULL;
+               GList* binding_it = NULL;
+               binding_collection = _tmp0_;
+               for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
+                       KeybindingManagerKeybinding* _tmp1_;
+                       KeybindingManagerKeybinding* binding = NULL;
+                       _tmp1_ = _keybinding_manager_keybinding_ref0 ((KeybindingManagerKeybinding*) binding_it->data);
+                       binding = _tmp1_;
+                       {
+                               gboolean _tmp2_ = FALSE;
+                               KeybindingManagerKeybinding* _tmp3_;
+                               guint _tmp4_;
+                               guint _tmp5_;
+                               guint _tmp6_;
+                               gboolean _tmp11_;
+                               _tmp3_ = binding;
+                               _tmp4_ = keybinding_manager_keybinding_get_keysym (_tmp3_);
+                               _tmp5_ = _tmp4_;
+                               _tmp6_ = keysym;
+                               if (_tmp5_ == _tmp6_) {
+                                       KeybindingManagerKeybinding* _tmp7_;
+                                       GdkModifierType _tmp8_;
+                                       GdkModifierType _tmp9_;
+                                       GdkModifierType _tmp10_;
+                                       _tmp7_ = binding;
+                                       _tmp8_ = keybinding_manager_keybinding_get_modifiers (_tmp7_);
+                                       _tmp9_ = _tmp8_;
+                                       _tmp10_ = modifiers;
+                                       _tmp2_ = _tmp9_ == _tmp10_;
+                               } else {
+                                       _tmp2_ = FALSE;
+                               }
+                               _tmp11_ = _tmp2_;
+                               if (_tmp11_) {
+                                       GdkDisplay* _tmp12_ = NULL;
+                                       KeybindingManagerKeybinding* _tmp13_;
+                                       guint _tmp14_;
+                                       guint _tmp15_;
+                                       KeybindingManagerKeybinding* _tmp16_;
+                                       GdkModifierType _tmp17_;
+                                       GdkModifierType _tmp18_;
+                                       KeybindingManagerKeybinding* _tmp19_;
+                                       KeybindingManagerKeybinding* _tmp20_;
+                                       _tmp12_ = gdk_display_get_default ();
+                                       _tmp13_ = binding;
+                                       _tmp14_ = keybinding_manager_keybinding_get_keysym (_tmp13_);
+                                       _tmp15_ = _tmp14_;
+                                       _tmp16_ = binding;
+                                       _tmp17_ = keybinding_manager_keybinding_get_modifiers (_tmp16_);
+                                       _tmp18_ = _tmp17_;
+                                       keybinding_manager_ungrab_keycode (self, _tmp12_, _tmp15_, (guint) _tmp18_);
+                                       _tmp19_ = binding;
+                                       _tmp20_ = _keybinding_manager_keybinding_ref0 (_tmp19_);
+                                       remove_bindings = g_list_append (remove_bindings, _tmp20_);
+                               }
+                               _keybinding_manager_keybinding_unref0 (binding);
+                       }
+               }
+       }
+       _tmp21_ = remove_bindings;
+       {
+               GList* binding_collection = NULL;
+               GList* binding_it = NULL;
+               binding_collection = _tmp21_;
+               for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
+                       KeybindingManagerKeybinding* _tmp22_;
+                       KeybindingManagerKeybinding* binding = NULL;
+                       _tmp22_ = _keybinding_manager_keybinding_ref0 ((KeybindingManagerKeybinding*) binding_it->data);
+                       binding = _tmp22_;
+                       {
+                               KeybindingManagerKeybinding* _tmp23_;
+                               _tmp23_ = binding;
+                               self->priv->m_bindings = g_list_remove (self->priv->m_bindings, _tmp23_);
+                               _keybinding_manager_keybinding_unref0 (binding);
+                       }
+               }
+       }
+       __g_list_free__keybinding_manager_keybinding_unref0_0 (remove_bindings);
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+KeybindingManager* keybinding_manager_get_instance (void) {
+       KeybindingManager* result = NULL;
+       KeybindingManager* _tmp0_;
+       KeybindingManager* _tmp2_;
+       KeybindingManager* _tmp3_;
+       _tmp0_ = keybinding_manager_m_instance;
+       if (_tmp0_ == NULL) {
+               KeybindingManager* _tmp1_;
+               _tmp1_ = keybinding_manager_new ();
+               _g_object_unref0 (keybinding_manager_m_instance);
+               keybinding_manager_m_instance = _tmp1_;
+       }
+       _tmp2_ = keybinding_manager_m_instance;
+       _tmp3_ = _g_object_ref0 (_tmp2_);
+       result = _tmp3_;
+       return result;
+}
+
+
+GdkModifierType keybinding_manager_get_primary_modifier (guint binding_mask) {
+       GdkModifierType result = 0;
+       static const GdkModifierType masks[] = {GDK_MOD5_MASK, GDK_MOD4_MASK, GDK_MOD3_MASK, GDK_MOD2_MASK, GDK_MOD1_MASK, GDK_CONTROL_MASK, GDK_SHIFT_MASK, GDK_LOCK_MASK};
+       {
+               gint i;
+               i = 0;
+               {
+                       gboolean _tmp0_;
+                       _tmp0_ = TRUE;
+                       while (TRUE) {
+                               gboolean _tmp1_;
+                               gint _tmp3_;
+                               gint _tmp4_;
+                               GdkModifierType _tmp5_;
+                               GdkModifierType mask;
+                               guint _tmp6_;
+                               GdkModifierType _tmp7_;
+                               GdkModifierType _tmp8_;
+                               _tmp1_ = _tmp0_;
+                               if (!_tmp1_) {
+                                       gint _tmp2_;
+                                       _tmp2_ = i;
+                                       i = _tmp2_ + 1;
+                               }
+                               _tmp0_ = FALSE;
+                               _tmp3_ = i;
+                               if (!(_tmp3_ < G_N_ELEMENTS (masks))) {
+                                       break;
+                               }
+                               _tmp4_ = i;
+                               _tmp5_ = masks[_tmp4_];
+                               mask = _tmp5_;
+                               _tmp6_ = binding_mask;
+                               _tmp7_ = mask;
+                               _tmp8_ = mask;
+                               if ((_tmp6_ & _tmp7_) == ((guint) _tmp8_)) {
+                                       result = mask;
+                                       return result;
+                               }
+                       }
+               }
+       }
+       result = 0;
+       return result;
+}
+
+
+gboolean keybinding_manager_primary_modifier_still_pressed (GdkEvent* event, guint primary_modifier) {
+       gboolean result = FALSE;
+       GdkEvent* _tmp0_;
+       GdkEventKey _tmp1_;
+       GdkEventKey keyevent;
+       guint _tmp2_;
+       GdkEvent* _tmp3_;
+       GdkDevice* _tmp4_ = NULL;
+       GdkDevice* _tmp5_;
+       GdkDevice* device;
+       GdkDevice* pointer = NULL;
+       GdkDevice* _tmp6_;
+       GdkInputSource _tmp7_ = 0;
+       guint modifier;
+       GdkDevice* _tmp13_;
+       GdkEventKey _tmp14_;
+       GdkWindow* _tmp15_;
+       GdkModifierType _tmp16_ = 0;
+       guint _tmp17_;
+       guint _tmp18_;
+       guint _tmp19_;
+       g_return_val_if_fail (event != NULL, FALSE);
+       _tmp0_ = event;
+       _tmp1_ = _tmp0_->key;
+       keyevent = _tmp1_;
+       _tmp2_ = primary_modifier;
+       if (_tmp2_ == ((guint) 0)) {
+               result = FALSE;
+               return result;
+       }
+       _tmp3_ = event;
+       _tmp4_ = gdk_event_get_device (_tmp3_);
+       _tmp5_ = _g_object_ref0 (_tmp4_);
+       device = _tmp5_;
+       _tmp6_ = device;
+       _tmp7_ = gdk_device_get_source (_tmp6_);
+       if (_tmp7_ == GDK_SOURCE_KEYBOARD) {
+               GdkDevice* _tmp8_;
+               GdkDevice* _tmp9_ = NULL;
+               GdkDevice* _tmp10_;
+               _tmp8_ = device;
+               _tmp9_ = gdk_device_get_associated_device (_tmp8_);
+               _tmp10_ = _g_object_ref0 (_tmp9_);
+               _g_object_unref0 (pointer);
+               pointer = _tmp10_;
+       } else {
+               GdkDevice* _tmp11_;
+               GdkDevice* _tmp12_;
+               _tmp11_ = device;
+               _tmp12_ = _g_object_ref0 (_tmp11_);
+               _g_object_unref0 (pointer);
+               pointer = _tmp12_;
+       }
+       modifier = (guint) 0;
+       _tmp13_ = pointer;
+       _tmp14_ = keyevent;
+       _tmp15_ = _tmp14_.window;
+       gdk_device_get_state (_tmp13_, _tmp15_, (gdouble*) NULL, &_tmp16_);
+       modifier = (guint) _tmp16_;
+       _tmp17_ = primary_modifier;
+       _tmp18_ = modifier;
+       _tmp19_ = primary_modifier;
+       if ((_tmp17_ & _tmp18_) == _tmp19_) {
+               result = TRUE;
+               _g_object_unref0 (pointer);
+               _g_object_unref0 (device);
+               return result;
+       }
+       result = FALSE;
+       _g_object_unref0 (pointer);
+       _g_object_unref0 (device);
+       return result;
+}
+
+
+guint keybinding_manager_keyval_to_modifier (guint keyval) {
+       guint result = 0U;
+       guint _tmp0_;
+       _tmp0_ = keyval;
+       switch (_tmp0_) {
+               case 0xffe3:
+               case 0xffe4:
+               {
+                       result = (guint) GDK_CONTROL_MASK;
+                       return result;
+               }
+               case 0xffe1:
+               case 0xffe2:
+               {
+                       result = (guint) GDK_SHIFT_MASK;
+                       return result;
+               }
+               case 0xffe5:
+               {
+                       result = (guint) GDK_LOCK_MASK;
+                       return result;
+               }
+               case 0xffe9:
+               case 0xffea:
+               {
+                       result = (guint) GDK_MOD1_MASK;
+                       return result;
+               }
+               case 0xffe7:
+               case 0xffe8:
+               {
+                       result = (guint) GDK_META_MASK;
+                       return result;
+               }
+               case 0xffeb:
+               case 0xffec:
+               {
+                       result = (guint) GDK_SUPER_MASK;
+                       return result;
+               }
+               case 0xffed:
+               case 0xffee:
+               {
+                       result = (guint) GDK_HYPER_MASK;
+                       return result;
+               }
+               default:
+               {
+                       result = (guint) 0;
+                       return result;
+               }
+       }
+}
+
+
+static void keybinding_manager_event_handler (KeybindingManager* self, GdkEvent* event) {
+       GdkEvent* _tmp29_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (event != NULL);
+       {
+               gboolean _tmp0_;
+               _tmp0_ = TRUE;
+               while (TRUE) {
+                       gboolean _tmp1_;
+                       GdkEvent* _tmp2_;
+                       GdkEventAny _tmp3_;
+                       GdkWindow* _tmp4_;
+                       GdkWindow* _tmp5_ = NULL;
+                       GdkEvent* _tmp6_;
+                       GdkEventType _tmp7_;
+                       _tmp1_ = _tmp0_;
+                       if (!_tmp1_) {
+                               if (!FALSE) {
+                                       break;
+                               }
+                       }
+                       _tmp0_ = FALSE;
+                       _tmp2_ = event;
+                       _tmp3_ = _tmp2_->any;
+                       _tmp4_ = _tmp3_.window;
+                       _tmp5_ = gdk_get_default_root_window ();
+                       if (_tmp4_ != _tmp5_) {
+                               break;
+                       }
+                       _tmp6_ = event;
+                       _tmp7_ = _tmp6_->type;
+                       if (_tmp7_ == GDK_KEY_PRESS) {
+                               GdkEvent* _tmp8_;
+                               GdkEventKey _tmp9_;
+                               GdkModifierType _tmp10_;
+                               guint modifiers;
+                               GList* _tmp11_;
+                               _tmp8_ = event;
+                               _tmp9_ = _tmp8_->key;
+                               _tmp10_ = _tmp9_.state;
+                               modifiers = (guint) (_tmp10_ & KEYBINDING_MANAGER_MODIFIER_FILTER);
+                               _tmp11_ = self->priv->m_bindings;
+                               {
+                                       GList* binding_collection = NULL;
+                                       GList* binding_it = NULL;
+                                       binding_collection = _tmp11_;
+                                       for (binding_it = binding_collection; binding_it != NULL; binding_it = binding_it->next) {
+                                               KeybindingManagerKeybinding* _tmp12_;
+                                               KeybindingManagerKeybinding* binding = NULL;
+                                               _tmp12_ = _keybinding_manager_keybinding_ref0 ((KeybindingManagerKeybinding*) binding_it->data);
+                                               binding = _tmp12_;
+                                               {
+                                                       gboolean _tmp13_ = FALSE;
+                                                       GdkEvent* _tmp14_;
+                                                       GdkEventKey _tmp15_;
+                                                       guint _tmp16_;
+                                                       KeybindingManagerKeybinding* _tmp17_;
+                                                       guint _tmp18_;
+                                                       guint _tmp19_;
+                                                       gboolean _tmp24_;
+                                                       KeybindingManagerKeybinding* _tmp25_;
+                                                       KeybindingManagerKeybindingHandlerFunc _tmp26_;
+                                                       void* _tmp26__target;
+                                                       KeybindingManagerKeybindingHandlerFunc _tmp27_;
+                                                       void* _tmp27__target;
+                                                       GdkEvent* _tmp28_;
+                                                       _tmp14_ = event;
+                                                       _tmp15_ = _tmp14_->key;
+                                                       _tmp16_ = _tmp15_.keyval;
+                                                       _tmp17_ = binding;
+                                                       _tmp18_ = keybinding_manager_keybinding_get_keysym (_tmp17_);
+                                                       _tmp19_ = _tmp18_;
+                                                       if (_tmp16_ != _tmp19_) {
+                                                               _tmp13_ = TRUE;
+                                                       } else {
+                                                               guint _tmp20_;
+                                                               KeybindingManagerKeybinding* _tmp21_;
+                                                               GdkModifierType _tmp22_;
+                                                               GdkModifierType _tmp23_;
+                                                               _tmp20_ = modifiers;
+                                                               _tmp21_ = binding;
+                                                               _tmp22_ = keybinding_manager_keybinding_get_modifiers (_tmp21_);
+                                                               _tmp23_ = _tmp22_;
+                                                               _tmp13_ = _tmp20_ != ((guint) _tmp23_);
+                                                       }
+                                                       _tmp24_ = _tmp13_;
+                                                       if (_tmp24_) {
+                                                               _keybinding_manager_keybinding_unref0 (binding);
+                                                               continue;
+                                                       }
+                                                       _tmp25_ = binding;
+                                                       _tmp26_ = keybinding_manager_keybinding_get_handler (_tmp25_, &_tmp26__target);
+                                                       _tmp27_ = _tmp26_;
+                                                       _tmp27__target = _tmp26__target;
+                                                       _tmp28_ = event;
+                                                       _tmp27_ (_tmp28_, _tmp27__target);
+                                                       _keybinding_manager_keybinding_unref0 (binding);
+                                                       return;
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+       _tmp29_ = event;
+       gtk_main_do_event (_tmp29_);
+}
+
+
+static void _vala_array_add10 (gint** array, int* length, int* size, gint value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gint, *array, *size);
+       }
+       (*array)[(*length)++] = value;
+}
+
+
+static void _vala_array_add11 (gint** array, int* length, int* size, gint value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gint, *array, *size);
+       }
+       (*array)[(*length)++] = value;
+}
+
+
+static void _vala_array_add12 (gint** array, int* length, int* size, gint value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gint, *array, *size);
+       }
+       (*array)[(*length)++] = value;
+}
+
+
+static void _vala_array_add13 (XIGrabModifiers** array, int* length, int* size, const XIGrabModifiers* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (XIGrabModifiers, *array, *size);
+       }
+       (*array)[(*length)++] = *value;
+}
+
+
+static void _vala_XIGrabModifiers_array_free (XIGrabModifiers* array, gint array_length) {
+       if (array != NULL) {
+               int i;
+               for (i = 0; i < array_length; i = i + 1) {
+                        (&array[i]);
+               }
+       }
+       g_free (array);
+}
+
+
+static XIGrabModifiers* keybinding_manager_get_grab_modifiers (KeybindingManager* self, guint modifiers, int* result_length1) {
+       XIGrabModifiers* result = NULL;
+       static const gint ignored_modifiers[] = {(gint) LockMask, (gint) Mod2Mask, (gint) Mod5Mask};
+       gint* _tmp0_ = NULL;
+       gint* masks;
+       gint masks_length1;
+       gint _masks_size_;
+       gint* _tmp20_;
+       gint _tmp20__length1;
+       XIGrabModifiers* _tmp21_ = NULL;
+       XIGrabModifiers* ximodifiers;
+       gint ximodifiers_length1;
+       gint _ximodifiers_size_;
+       gint* _tmp22_;
+       gint _tmp22__length1;
+       XIGrabModifiers* _tmp27_;
+       gint _tmp27__length1;
+       g_return_val_if_fail (self != NULL, NULL);
+       _tmp0_ = g_new0 (gint, 0);
+       masks = _tmp0_;
+       masks_length1 = 0;
+       _masks_size_ = masks_length1;
+       {
+               gint i;
+               i = 0;
+               {
+                       gboolean _tmp1_;
+                       _tmp1_ = TRUE;
+                       while (TRUE) {
+                               gboolean _tmp2_;
+                               gint _tmp4_;
+                               gint _tmp5_;
+                               gint _tmp6_;
+                               gint modifier;
+                               gint* _tmp7_;
+                               gint _tmp7__length1;
+                               gint _tmp8_;
+                               gint* _tmp9_;
+                               gint _tmp9__length1;
+                               gint length;
+                               _tmp2_ = _tmp1_;
+                               if (!_tmp2_) {
+                                       gint _tmp3_;
+                                       _tmp3_ = i;
+                                       i = _tmp3_ + 1;
+                               }
+                               _tmp1_ = FALSE;
+                               _tmp4_ = i;
+                               if (!(_tmp4_ < G_N_ELEMENTS (ignored_modifiers))) {
+                                       break;
+                               }
+                               _tmp5_ = i;
+                               _tmp6_ = ignored_modifiers[_tmp5_];
+                               modifier = _tmp6_;
+                               _tmp7_ = masks;
+                               _tmp7__length1 = masks_length1;
+                               _tmp8_ = modifier;
+                               _vala_array_add10 (&masks, &masks_length1, &_masks_size_, _tmp8_);
+                               _tmp9_ = masks;
+                               _tmp9__length1 = masks_length1;
+                               length = _tmp9__length1;
+                               {
+                                       gint j;
+                                       j = 0;
+                                       {
+                                               gboolean _tmp10_;
+                                               _tmp10_ = TRUE;
+                                               while (TRUE) {
+                                                       gboolean _tmp11_;
+                                                       gint _tmp13_;
+                                                       gint _tmp14_;
+                                                       gint* _tmp15_;
+                                                       gint _tmp15__length1;
+                                                       gint* _tmp16_;
+                                                       gint _tmp16__length1;
+                                                       gint _tmp17_;
+                                                       gint _tmp18_;
+                                                       gint _tmp19_;
+                                                       _tmp11_ = _tmp10_;
+                                                       if (!_tmp11_) {
+                                                               gint _tmp12_;
+                                                               _tmp12_ = j;
+                                                               j = _tmp12_ + 1;
+                                                       }
+                                                       _tmp10_ = FALSE;
+                                                       _tmp13_ = j;
+                                                       _tmp14_ = length;
+                                                       if (!(_tmp13_ < (_tmp14_ - 1))) {
+                                                               break;
+                                                       }
+                                                       _tmp15_ = masks;
+                                                       _tmp15__length1 = masks_length1;
+                                                       _tmp16_ = masks;
+                                                       _tmp16__length1 = masks_length1;
+                                                       _tmp17_ = j;
+                                                       _tmp18_ = _tmp16_[_tmp17_];
+                                                       _tmp19_ = modifier;
+                                                       _vala_array_add11 (&masks, &masks_length1, &_masks_size_, _tmp18_ | _tmp19_);
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+       _tmp20_ = masks;
+       _tmp20__length1 = masks_length1;
+       _vala_array_add12 (&masks, &masks_length1, &_masks_size_, 0);
+       _tmp21_ = g_new0 (XIGrabModifiers, 0);
+       ximodifiers = _tmp21_;
+       ximodifiers_length1 = 0;
+       _ximodifiers_size_ = ximodifiers_length1;
+       _tmp22_ = masks;
+       _tmp22__length1 = masks_length1;
+       {
+               gint* mask_collection = NULL;
+               gint mask_collection_length1 = 0;
+               gint _mask_collection_size_ = 0;
+               gint mask_it = 0;
+               mask_collection = _tmp22_;
+               mask_collection_length1 = _tmp22__length1;
+               for (mask_it = 0; mask_it < _tmp22__length1; mask_it = mask_it + 1) {
+                       gint mask = 0;
+                       mask = mask_collection[mask_it];
+                       {
+                               XIGrabModifiers* _tmp23_;
+                               gint _tmp23__length1;
+                               gint _tmp24_;
+                               guint _tmp25_;
+                               XIGrabModifiers _tmp26_ = {0};
+                               _tmp23_ = ximodifiers;
+                               _tmp23__length1 = ximodifiers_length1;
+                               _tmp24_ = mask;
+                               _tmp25_ = modifiers;
+                               memset (&_tmp26_, 0, sizeof (XIGrabModifiers));
+                               _tmp26_.modifiers = _tmp24_ | _tmp25_;
+                               _tmp26_.status = 0;
+                               _vala_array_add13 (&ximodifiers, &ximodifiers_length1, &_ximodifiers_size_, &_tmp26_);
+                       }
+               }
+       }
+       _tmp27_ = ximodifiers;
+       _tmp27__length1 = ximodifiers_length1;
+       if (result_length1) {
+               *result_length1 = _tmp27__length1;
+       }
+       result = _tmp27_;
+       masks = (g_free (masks), NULL);
+       return result;
+}
+
+
+static gboolean keybinding_manager_grab_keycode (KeybindingManager* self, GdkDisplay* display, guint keyval, guint modifiers) {
+       gboolean result = FALSE;
+       GdkDisplay* _tmp0_;
+       Display* _tmp1_ = NULL;
+       Display* xdisplay;
+       Display* _tmp2_;
+       guint _tmp3_;
+       guchar _tmp4_ = '\0';
+       gint keycode;
+       gint _tmp5_;
+       guchar* _tmp7_ = NULL;
+       XIEventMask _tmp8_ = {0};
+       XIEventMask evmask;
+       XIEventMask _tmp9_;
+       guchar* _tmp10_;
+       gint _tmp10__length1;
+       XIEventMask _tmp11_;
+       guchar* _tmp12_;
+       gint _tmp12__length1;
+       Display* _tmp13_;
+       gint _tmp14_;
+       Display* _tmp15_;
+       Window _tmp16_ = 0;
+       XIEventMask _tmp17_;
+       guint _tmp18_;
+       gint _tmp19_ = 0;
+       XIGrabModifiers* _tmp20_ = NULL;
+       XIGrabModifiers* _tmp21_;
+       gint _tmp21__length1;
+       gint _tmp22_ = 0;
+       gint _tmp23_;
+       gint retval;
+       gint _tmp24_;
+       g_return_val_if_fail (self != NULL, FALSE);
+       g_return_val_if_fail (display != NULL, FALSE);
+       _tmp0_ = display;
+       _tmp1_ = gdk_x11_display_get_xdisplay (_tmp0_);
+       xdisplay = _tmp1_;
+       _tmp2_ = xdisplay;
+       _tmp3_ = keyval;
+       _tmp4_ = XKeysymToKeycode (_tmp2_, (gulong) _tmp3_);
+       keycode = (gint) _tmp4_;
+       _tmp5_ = keycode;
+       if (_tmp5_ == 0) {
+               guint _tmp6_;
+               _tmp6_ = keyval;
+               g_warning ("keybindingmanager.vala:245: Can not convert keyval=%u to keycode!", _tmp6_);
+               result = FALSE;
+               return result;
+       }
+       _tmp7_ = g_new0 (guchar, (XI_LASTEVENT + 7) / 8);
+       memset (&_tmp8_, 0, sizeof (XIEventMask));
+       _tmp8_.deviceid = XIAllMasterDevices;
+       _tmp8_.mask = (g_free (_tmp8_.mask), NULL);
+       _tmp8_.mask = _tmp7_;
+       _tmp8_.mask_len = (XI_LASTEVENT + 7) / 8;
+       evmask = _tmp8_;
+       _tmp9_ = evmask;
+       _tmp10_ = _tmp9_.mask;
+       _tmp10__length1 = _tmp9_.mask_len;
+       XISetMask (_tmp10_, XI_KeyPress);
+       _tmp11_ = evmask;
+       _tmp12_ = _tmp11_.mask;
+       _tmp12__length1 = _tmp11_.mask_len;
+       XISetMask (_tmp12_, XI_KeyRelease);
+       _tmp13_ = xdisplay;
+       _tmp14_ = keycode;
+       _tmp15_ = xdisplay;
+       _tmp16_ = DefaultRootWindow (_tmp15_);
+       _tmp17_ = evmask;
+       _tmp18_ = modifiers;
+       _tmp20_ = keybinding_manager_get_grab_modifiers (self, _tmp18_, &_tmp19_);
+       _tmp21_ = _tmp20_;
+       _tmp21__length1 = _tmp19_;
+       _tmp22_ = XIGrabKeycode (_tmp13_, XIAllMasterDevices, _tmp14_, _tmp16_, (gint) GrabModeAsync, (gint) GrabModeAsync, TRUE, &_tmp17_, _tmp19_, _tmp21_);
+       _tmp23_ = _tmp22_;
+       _tmp21_ = (_vala_XIGrabModifiers_array_free (_tmp21_, _tmp21__length1), NULL);
+       retval = _tmp23_;
+       _tmp24_ = retval;
+       result = _tmp24_ == 0;
+        (&evmask);
+       return result;
+}
+
+
+static gboolean keybinding_manager_ungrab_keycode (KeybindingManager* self, GdkDisplay* display, guint keyval, guint modifiers) {
+       gboolean result = FALSE;
+       GdkDisplay* _tmp0_;
+       Display* _tmp1_ = NULL;
+       Display* xdisplay;
+       Display* _tmp2_;
+       guint _tmp3_;
+       guchar _tmp4_ = '\0';
+       gint keycode;
+       gint _tmp5_;
+       Display* _tmp7_;
+       gint _tmp8_;
+       Display* _tmp9_;
+       Window _tmp10_ = 0;
+       guint _tmp11_;
+       gint _tmp12_ = 0;
+       XIGrabModifiers* _tmp13_ = NULL;
+       XIGrabModifiers* _tmp14_;
+       gint _tmp14__length1;
+       gint _tmp15_ = 0;
+       gint _tmp16_;
+       gint retval;
+       gint _tmp17_;
+       g_return_val_if_fail (self != NULL, FALSE);
+       g_return_val_if_fail (display != NULL, FALSE);
+       _tmp0_ = display;
+       _tmp1_ = gdk_x11_display_get_xdisplay (_tmp0_);
+       xdisplay = _tmp1_;
+       _tmp2_ = xdisplay;
+       _tmp3_ = keyval;
+       _tmp4_ = XKeysymToKeycode (_tmp2_, (gulong) _tmp3_);
+       keycode = (gint) _tmp4_;
+       _tmp5_ = keycode;
+       if (_tmp5_ == 0) {
+               guint _tmp6_;
+               _tmp6_ = keyval;
+               g_warning ("keybindingmanager.vala:273: Can not convert keyval=%u to keycode!", _tmp6_);
+               result = FALSE;
+               return result;
+       }
+       _tmp7_ = xdisplay;
+       _tmp8_ = keycode;
+       _tmp9_ = xdisplay;
+       _tmp10_ = DefaultRootWindow (_tmp9_);
+       _tmp11_ = modifiers;
+       _tmp13_ = keybinding_manager_get_grab_modifiers (self, _tmp11_, &_tmp12_);
+       _tmp14_ = _tmp13_;
+       _tmp14__length1 = _tmp12_;
+       _tmp15_ = XIUngrabKeycode (_tmp7_, XIAllMasterDevices, _tmp8_, _tmp10_, _tmp12_, _tmp14_);
+       _tmp16_ = _tmp15_;
+       _tmp14_ = (_vala_XIGrabModifiers_array_free (_tmp14_, _tmp14__length1), NULL);
+       retval = _tmp16_;
+       _tmp17_ = retval;
+       result = _tmp17_ == 0;
+       return result;
+}
+
+
+static KeybindingManagerKeybinding* keybinding_manager_keybinding_construct (GType object_type, guint keysym, GdkModifierType modifiers, KeybindingManagerKeybindingHandlerFunc handler, void* handler_target) {
+       KeybindingManagerKeybinding* self = NULL;
+       guint _tmp0_;
+       GdkModifierType _tmp1_;
+       KeybindingManagerKeybindingHandlerFunc _tmp2_;
+       void* _tmp2__target;
+       self = (KeybindingManagerKeybinding*) g_type_create_instance (object_type);
+       _tmp0_ = keysym;
+       keybinding_manager_keybinding_set_keysym (self, _tmp0_);
+       _tmp1_ = modifiers;
+       keybinding_manager_keybinding_set_modifiers (self, _tmp1_);
+       _tmp2_ = handler;
+       _tmp2__target = handler_target;
+       keybinding_manager_keybinding_set_handler (self, _tmp2_, _tmp2__target);
+       return self;
+}
+
+
+static KeybindingManagerKeybinding* keybinding_manager_keybinding_new (guint keysym, GdkModifierType modifiers, KeybindingManagerKeybindingHandlerFunc handler, void* handler_target) {
+       return keybinding_manager_keybinding_construct (KEYBINDING_MANAGER_TYPE_KEYBINDING, keysym, modifiers, handler, handler_target);
+}
+
+
+static guint keybinding_manager_keybinding_get_keysym (KeybindingManagerKeybinding* self) {
+       guint result;
+       guint _tmp0_;
+       g_return_val_if_fail (self != NULL, 0U);
+       _tmp0_ = self->priv->_keysym;
+       result = _tmp0_;
+       return result;
+}
+
+
+static void keybinding_manager_keybinding_set_keysym (KeybindingManagerKeybinding* self, guint value) {
+       guint _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = value;
+       self->priv->_keysym = _tmp0_;
+}
+
+
+static GdkModifierType keybinding_manager_keybinding_get_modifiers (KeybindingManagerKeybinding* self) {
+       GdkModifierType result;
+       GdkModifierType _tmp0_;
+       g_return_val_if_fail (self != NULL, 0);
+       _tmp0_ = self->priv->_modifiers;
+       result = _tmp0_;
+       return result;
+}
+
+
+static void keybinding_manager_keybinding_set_modifiers (KeybindingManagerKeybinding* self, GdkModifierType value) {
+       GdkModifierType _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = value;
+       self->priv->_modifiers = _tmp0_;
+}
+
+
+static KeybindingManagerKeybindingHandlerFunc keybinding_manager_keybinding_get_handler (KeybindingManagerKeybinding* self, gpointer* result_target) {
+       KeybindingManagerKeybindingHandlerFunc result;
+       KeybindingManagerKeybindingHandlerFunc _tmp0_;
+       void* _tmp0__target;
+       KeybindingManagerKeybindingHandlerFunc _tmp1_;
+       void* _tmp1__target;
+       g_return_val_if_fail (self != NULL, NULL);
+       _tmp0_ = self->priv->_handler;
+       _tmp0__target = self->priv->_handler_target;
+       _tmp1_ = _tmp0_;
+       _tmp1__target = _tmp0__target;
+       *result_target = _tmp1__target;
+       result = _tmp1_;
+       return result;
+}
+
+
+static void keybinding_manager_keybinding_set_handler (KeybindingManagerKeybinding* self, KeybindingManagerKeybindingHandlerFunc value, gpointer value_target) {
+       KeybindingManagerKeybindingHandlerFunc _tmp0_;
+       void* _tmp0__target;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = value;
+       _tmp0__target = value_target;
+       self->priv->_handler = _tmp0_;
+       self->priv->_handler_target = _tmp0__target;
+}
+
+
+static void keybinding_manager_value_keybinding_init (GValue* value) {
+       value->data[0].v_pointer = NULL;
+}
+
+
+static void keybinding_manager_value_keybinding_free_value (GValue* value) {
+       if (value->data[0].v_pointer) {
+               keybinding_manager_keybinding_unref (value->data[0].v_pointer);
+       }
+}
+
+
+static void keybinding_manager_value_keybinding_copy_value (const GValue* src_value, GValue* dest_value) {
+       if (src_value->data[0].v_pointer) {
+               dest_value->data[0].v_pointer = keybinding_manager_keybinding_ref (src_value->data[0].v_pointer);
+       } else {
+               dest_value->data[0].v_pointer = NULL;
+       }
+}
+
+
+static gpointer keybinding_manager_value_keybinding_peek_pointer (const GValue* value) {
+       return value->data[0].v_pointer;
+}
+
+
+static gchar* keybinding_manager_value_keybinding_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       if (collect_values[0].v_pointer) {
+               KeybindingManagerKeybinding* object;
+               object = collect_values[0].v_pointer;
+               if (object->parent_instance.g_class == NULL) {
+                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               }
+               value->data[0].v_pointer = keybinding_manager_keybinding_ref (object);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       return NULL;
+}
+
+
+static gchar* keybinding_manager_value_keybinding_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       KeybindingManagerKeybinding** object_p;
+       object_p = collect_values[0].v_pointer;
+       if (!object_p) {
+               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+       }
+       if (!value->data[0].v_pointer) {
+               *object_p = NULL;
+       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+               *object_p = value->data[0].v_pointer;
+       } else {
+               *object_p = keybinding_manager_keybinding_ref (value->data[0].v_pointer);
+       }
+       return NULL;
+}
+
+
+static GParamSpec* keybinding_manager_param_spec_keybinding (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+       KeybindingManagerParamSpecKeybinding* spec;
+       g_return_val_if_fail (g_type_is_a (object_type, KEYBINDING_MANAGER_TYPE_KEYBINDING), NULL);
+       spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+       G_PARAM_SPEC (spec)->value_type = object_type;
+       return G_PARAM_SPEC (spec);
+}
+
+
+static gpointer keybinding_manager_value_get_keybinding (const GValue* value) {
+       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, KEYBINDING_MANAGER_TYPE_KEYBINDING), NULL);
+       return value->data[0].v_pointer;
+}
+
+
+static void keybinding_manager_value_set_keybinding (GValue* value, gpointer v_object) {
+       KeybindingManagerKeybinding* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, KEYBINDING_MANAGER_TYPE_KEYBINDING));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, KEYBINDING_MANAGER_TYPE_KEYBINDING));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+               keybinding_manager_keybinding_ref (value->data[0].v_pointer);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               keybinding_manager_keybinding_unref (old);
+       }
+}
+
+
+static void keybinding_manager_value_take_keybinding (GValue* value, gpointer v_object) {
+       KeybindingManagerKeybinding* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, KEYBINDING_MANAGER_TYPE_KEYBINDING));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, KEYBINDING_MANAGER_TYPE_KEYBINDING));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               keybinding_manager_keybinding_unref (old);
+       }
+}
+
+
+static void keybinding_manager_keybinding_class_init (KeybindingManagerKeybindingClass * klass) {
+       keybinding_manager_keybinding_parent_class = g_type_class_peek_parent (klass);
+       KEYBINDING_MANAGER_KEYBINDING_CLASS (klass)->finalize = keybinding_manager_keybinding_finalize;
+       g_type_class_add_private (klass, sizeof (KeybindingManagerKeybindingPrivate));
+}
+
+
+static void keybinding_manager_keybinding_instance_init (KeybindingManagerKeybinding * self) {
+       self->priv = KEYBINDING_MANAGER_KEYBINDING_GET_PRIVATE (self);
+       self->ref_count = 1;
+}
+
+
+static void keybinding_manager_keybinding_finalize (KeybindingManagerKeybinding* obj) {
+       KeybindingManagerKeybinding * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, KEYBINDING_MANAGER_TYPE_KEYBINDING, KeybindingManagerKeybinding);
+}
+
+
+/**
+     * Helper class to store keybinding
+     */
+static GType keybinding_manager_keybinding_get_type (void) {
+       static volatile gsize keybinding_manager_keybinding_type_id__volatile = 0;
+       if (g_once_init_enter (&keybinding_manager_keybinding_type_id__volatile)) {
+               static const GTypeValueTable g_define_type_value_table = { keybinding_manager_value_keybinding_init, keybinding_manager_value_keybinding_free_value, keybinding_manager_value_keybinding_copy_value, keybinding_manager_value_keybinding_peek_pointer, "p", keybinding_manager_value_keybinding_collect_value, "p", keybinding_manager_value_keybinding_lcopy_value };
+               static const GTypeInfo g_define_type_info = { sizeof (KeybindingManagerKeybindingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) keybinding_manager_keybinding_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KeybindingManagerKeybinding), 0, (GInstanceInitFunc) keybinding_manager_keybinding_instance_init, &g_define_type_value_table };
+               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+               GType keybinding_manager_keybinding_type_id;
+               keybinding_manager_keybinding_type_id = g_type_register_fundamental (g_type_fundamental_next (), "KeybindingManagerKeybinding", &g_define_type_info, &g_define_type_fundamental_info, 0);
+               g_once_init_leave (&keybinding_manager_keybinding_type_id__volatile, keybinding_manager_keybinding_type_id);
+       }
+       return keybinding_manager_keybinding_type_id__volatile;
+}
+
+
+static gpointer keybinding_manager_keybinding_ref (gpointer instance) {
+       KeybindingManagerKeybinding* self;
+       self = instance;
+       g_atomic_int_inc (&self->ref_count);
+       return instance;
+}
+
+
+static void keybinding_manager_keybinding_unref (gpointer instance) {
+       KeybindingManagerKeybinding* self;
+       self = instance;
+       if (g_atomic_int_dec_and_test (&self->ref_count)) {
+               KEYBINDING_MANAGER_KEYBINDING_GET_CLASS (self)->finalize (self);
+               g_type_free_instance ((GTypeInstance *) self);
+       }
+}
+
+
+static void keybinding_manager_class_init (KeybindingManagerClass * klass) {
+       keybinding_manager_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (KeybindingManagerPrivate));
+       G_OBJECT_CLASS (klass)->finalize = keybinding_manager_finalize;
+}
+
+
+static void keybinding_manager_instance_init (KeybindingManager * self) {
+       self->priv = KEYBINDING_MANAGER_GET_PRIVATE (self);
+       self->priv->m_bindings = NULL;
+}
+
+
+static void keybinding_manager_finalize (GObject* obj) {
+       KeybindingManager * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_KEYBINDING_MANAGER, KeybindingManager);
+       __g_list_free__keybinding_manager_keybinding_unref0_0 (self->priv->m_bindings);
+       G_OBJECT_CLASS (keybinding_manager_parent_class)->finalize (obj);
+}
+
+
+/**
+ * This class is in charge to grab keybindings on the X11 display
+ * and filter X11-events and passing on such events to the registed
+ * handler methods.
+ *
+ * @author Oliver Sauder <os@esite.ch>
+ */
+GType keybinding_manager_get_type (void) {
+       static volatile gsize keybinding_manager_type_id__volatile = 0;
+       if (g_once_init_enter (&keybinding_manager_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (KeybindingManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) keybinding_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (KeybindingManager), 0, (GInstanceInitFunc) keybinding_manager_instance_init, NULL };
+               GType keybinding_manager_type_id;
+               keybinding_manager_type_id = g_type_register_static (G_TYPE_OBJECT, "KeybindingManager", &g_define_type_info, 0);
+               g_once_init_leave (&keybinding_manager_type_id__volatile, keybinding_manager_type_id);
+       }
+       return keybinding_manager_type_id__volatile;
+}
+
+
+
diff --git a/ui/gtk3/panel.c b/ui/gtk3/panel.c
new file mode 100644 (file)
index 0000000..960a246
--- /dev/null
@@ -0,0 +1,3956 @@
+/* panel.c generated by valac 0.20.1, the Vala compiler
+ * generated from panel.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011-2013 Peng Huang <shawn.p.huang@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-object.h>
+#include <ibus.h>
+#include <gio/gio.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gdk/gdk.h>
+#include <libnotify/notify.h>
+#include <glib/gi18n-lib.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <config.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_PANEL (panel_get_type ())
+#define PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PANEL, Panel))
+#define PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PANEL, PanelClass))
+#define IS_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PANEL))
+#define IS_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PANEL))
+#define PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PANEL, PanelClass))
+
+typedef struct _Panel Panel;
+typedef struct _PanelClass PanelClass;
+typedef struct _PanelPrivate PanelPrivate;
+
+#define TYPE_CANDIDATE_PANEL (candidate_panel_get_type ())
+#define CANDIDATE_PANEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CANDIDATE_PANEL, CandidatePanel))
+#define CANDIDATE_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CANDIDATE_PANEL, CandidatePanelClass))
+#define IS_CANDIDATE_PANEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CANDIDATE_PANEL))
+#define IS_CANDIDATE_PANEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CANDIDATE_PANEL))
+#define CANDIDATE_PANEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CANDIDATE_PANEL, CandidatePanelClass))
+
+typedef struct _CandidatePanel CandidatePanel;
+typedef struct _CandidatePanelClass CandidatePanelClass;
+
+#define TYPE_SWITCHER (switcher_get_type ())
+#define SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SWITCHER, Switcher))
+#define SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SWITCHER, SwitcherClass))
+#define IS_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SWITCHER))
+#define IS_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SWITCHER))
+#define SWITCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SWITCHER, SwitcherClass))
+
+typedef struct _Switcher Switcher;
+typedef struct _SwitcherClass SwitcherClass;
+
+#define TYPE_PROPERTY_MANAGER (property_manager_get_type ())
+#define PROPERTY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROPERTY_MANAGER, PropertyManager))
+#define PROPERTY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROPERTY_MANAGER, PropertyManagerClass))
+#define IS_PROPERTY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROPERTY_MANAGER))
+#define IS_PROPERTY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROPERTY_MANAGER))
+#define PROPERTY_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROPERTY_MANAGER, PropertyManagerClass))
+
+typedef struct _PropertyManager PropertyManager;
+typedef struct _PropertyManagerClass PropertyManagerClass;
+
+#define PANEL_TYPE_KEYBINDING (panel_keybinding_get_type ())
+#define PANEL_KEYBINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PANEL_TYPE_KEYBINDING, PanelKeybinding))
+#define PANEL_KEYBINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANEL_TYPE_KEYBINDING, PanelKeybindingClass))
+#define PANEL_IS_KEYBINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PANEL_TYPE_KEYBINDING))
+#define PANEL_IS_KEYBINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANEL_TYPE_KEYBINDING))
+#define PANEL_KEYBINDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANEL_TYPE_KEYBINDING, PanelKeybindingClass))
+
+typedef struct _PanelKeybinding PanelKeybinding;
+typedef struct _PanelKeybindingClass PanelKeybindingClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _property_manager_unref0(var) ((var == NULL) ? NULL : (var = (property_manager_unref (var), NULL)))
+#define __g_list_free__panel_keybinding_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__panel_keybinding_unref0_ (var), NULL)))
+
+#define TYPE_KEYBINDING_MANAGER (keybinding_manager_get_type ())
+#define KEYBINDING_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_KEYBINDING_MANAGER, KeybindingManager))
+#define KEYBINDING_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_KEYBINDING_MANAGER, KeybindingManagerClass))
+#define IS_KEYBINDING_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_KEYBINDING_MANAGER))
+#define IS_KEYBINDING_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_KEYBINDING_MANAGER))
+#define KEYBINDING_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_KEYBINDING_MANAGER, KeybindingManagerClass))
+
+typedef struct _KeybindingManager KeybindingManager;
+typedef struct _KeybindingManagerClass KeybindingManagerClass;
+#define _panel_keybinding_unref0(var) ((var == NULL) ? NULL : (var = (panel_keybinding_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
+typedef struct _Block4Data Block4Data;
+
+#define TYPE_ICON_WIDGET (icon_widget_get_type ())
+#define ICON_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ICON_WIDGET, IconWidget))
+#define ICON_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ICON_WIDGET, IconWidgetClass))
+#define IS_ICON_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ICON_WIDGET))
+#define IS_ICON_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ICON_WIDGET))
+#define ICON_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ICON_WIDGET, IconWidgetClass))
+
+typedef struct _IconWidget IconWidget;
+typedef struct _IconWidgetClass IconWidgetClass;
+#define _gtk_icon_info_free0(var) ((var == NULL) ? NULL : (var = (gtk_icon_info_free (var), NULL)))
+typedef struct _PanelKeybindingPrivate PanelKeybindingPrivate;
+typedef struct _PanelParamSpecKeybinding PanelParamSpecKeybinding;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Panel {
+       IBusPanelService parent_instance;
+       PanelPrivate * priv;
+};
+
+struct _PanelClass {
+       IBusPanelServiceClass parent_class;
+};
+
+struct _PanelPrivate {
+       IBusBus* m_bus;
+       GSettings* m_settings_general;
+       GSettings* m_settings_hotkey;
+       GSettings* m_settings_panel;
+       GtkStatusIcon* m_status_icon;
+       GtkMenu* m_ime_menu;
+       GtkMenu* m_sys_menu;
+       IBusEngineDesc** m_engines;
+       gint m_engines_length1;
+       gint _m_engines_size_;
+       GHashTable* m_engine_contexts;
+       gchar* m_current_context_path;
+       gboolean m_use_global_engine;
+       CandidatePanel* m_candidate_panel;
+       Switcher* m_switcher;
+       gboolean m_switcher_is_running;
+       PropertyManager* m_property_manager;
+       GPid m_setup_pid;
+       GtkAboutDialog* m_about_dialog;
+       GtkCssProvider* m_css_provider;
+       gint m_switcher_delay_time;
+       gboolean m_use_system_keyboard_layout;
+       GList* m_keybindings;
+};
+
+typedef void (*KeybindingManagerKeybindingHandlerFunc) (GdkEvent* event, void* user_data);
+struct _Block4Data {
+       int _ref_count_;
+       Panel * self;
+       IBusEngineDesc* e;
+};
+
+struct _PanelKeybinding {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       PanelKeybindingPrivate * priv;
+};
+
+struct _PanelKeybindingClass {
+       GTypeClass parent_class;
+       void (*finalize) (PanelKeybinding *self);
+};
+
+struct _PanelKeybindingPrivate {
+       guint _keysym;
+       GdkModifierType _modifiers;
+       gboolean _reverse;
+};
+
+struct _PanelParamSpecKeybinding {
+       GParamSpec parent_instance;
+};
+
+
+static gpointer panel_parent_class = NULL;
+static gpointer panel_keybinding_parent_class = NULL;
+
+GType panel_get_type (void) G_GNUC_CONST;
+GType candidate_panel_get_type (void) G_GNUC_CONST;
+GType switcher_get_type (void) G_GNUC_CONST;
+gpointer property_manager_ref (gpointer instance);
+void property_manager_unref (gpointer instance);
+GParamSpec* param_spec_property_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_property_manager (GValue* value, gpointer v_object);
+void value_take_property_manager (GValue* value, gpointer v_object);
+gpointer value_get_property_manager (const GValue* value);
+GType property_manager_get_type (void) G_GNUC_CONST;
+static gpointer panel_keybinding_ref (gpointer instance);
+static void panel_keybinding_unref (gpointer instance);
+static GParamSpec* panel_param_spec_keybinding (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
+static void panel_value_set_keybinding (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static void panel_value_take_keybinding (GValue* value, gpointer v_object) G_GNUC_UNUSED;
+static gpointer panel_value_get_keybinding (const GValue* value) G_GNUC_UNUSED;
+static GType panel_keybinding_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define PANEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PANEL, PanelPrivate))
+enum  {
+       PANEL_DUMMY_PROPERTY
+};
+static void panel_unbind_switch_shortcut (Panel* self);
+static void _g_free0_ (gpointer var);
+static void _g_object_unref0_ (gpointer var);
+static void _panel_keybinding_unref0_ (gpointer var);
+static void _g_list_free__panel_keybinding_unref0_ (GList* self);
+Panel* panel_new (IBusBus* bus);
+Panel* panel_construct (GType object_type, IBusBus* bus);
+static void panel_init_settings (Panel* self);
+static void panel_status_icon_popup_menu_cb (Panel* self, GtkStatusIcon* status_icon, guint button, guint activate_time);
+static void _panel_status_icon_popup_menu_cb_gtk_status_icon_popup_menu (GtkStatusIcon* _sender, guint button, guint activate_time, gpointer self);
+static void panel_status_icon_activate_cb (Panel* self, GtkStatusIcon* status_icon);
+static void _panel_status_icon_activate_cb_gtk_status_icon_activate (GtkStatusIcon* _sender, gpointer self);
+CandidatePanel* candidate_panel_new (void);
+CandidatePanel* candidate_panel_construct (GType object_type);
+static void __lambda34_ (Panel* self, CandidatePanel* w);
+static void ___lambda34__candidate_panel_page_up (CandidatePanel* _sender, gpointer self);
+static void __lambda35_ (Panel* self, CandidatePanel* w);
+static void ___lambda35__candidate_panel_page_down (CandidatePanel* _sender, gpointer self);
+static void __lambda36_ (Panel* self, CandidatePanel* w, guint i, guint b, guint s);
+static void ___lambda36__candidate_panel_candidate_clicked (CandidatePanel* _sender, guint index, guint button, guint state, gpointer self);
+Switcher* switcher_new (void);
+Switcher* switcher_construct (GType object_type);
+static void panel_bind_switch_shortcut (Panel* self);
+void switcher_set_popup_delay_time (Switcher* self, guint popup_delay_time);
+PropertyManager* property_manager_new (void);
+PropertyManager* property_manager_construct (GType object_type);
+static void __lambda37_ (Panel* self, const gchar* k, gint s);
+static void ___lambda37__property_manager_property_activate (PropertyManager* _sender, const gchar* key, gint state, gpointer self);
+static void __lambda17_ (Panel* self, const gchar* key);
+static void panel_update_engines (Panel* self, gchar** unowned_engine_names, int unowned_engine_names_length1, gchar** order_names, int order_names_length1);
+static void ___lambda17__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void __lambda18_ (Panel* self, const gchar* key);
+static void panel_set_switcher_delay_time (Panel* self);
+static void ___lambda18__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void __lambda19_ (Panel* self, const gchar* key);
+static void panel_set_use_system_keyboard_layout (Panel* self);
+static void ___lambda19__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void __lambda20_ (Panel* self, const gchar* key);
+static void panel_set_embed_preedit_text (Panel* self);
+static void ___lambda20__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void __lambda21_ (Panel* self, const gchar* key);
+static void panel_set_use_global_engine (Panel* self);
+static void ___lambda21__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void __lambda22_ (Panel* self, const gchar* key);
+static void ___lambda22__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void __lambda25_ (Panel* self, const gchar* key);
+static void panel_set_custom_font (Panel* self);
+static void ___lambda25__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void __lambda26_ (Panel* self, const gchar* key);
+static void ___lambda26__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+static void __lambda27_ (Panel* self, const gchar* key);
+static void panel_set_show_icon_on_systray (Panel* self);
+static void ___lambda27__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self);
+GType keybinding_manager_get_type (void) G_GNUC_CONST;
+static void panel_keybinding_manager_bind (Panel* self, KeybindingManager* keybinding_manager, const gchar* accelerator);
+static PanelKeybinding* panel_keybinding_new (guint keysym, GdkModifierType modifiers, gboolean reverse);
+static PanelKeybinding* panel_keybinding_construct (GType object_type, guint keysym, GdkModifierType modifiers, gboolean reverse);
+gboolean keybinding_manager_bind (KeybindingManager* self, guint keysym, GdkModifierType modifiers, KeybindingManagerKeybindingHandlerFunc handler, void* handler_target);
+static void __lambda23_ (Panel* self, GdkEvent* e);
+static void panel_handle_engine_switch (Panel* self, GdkEvent* event, gboolean revert);
+static void ___lambda23__keybinding_manager_keybinding_handler_func (GdkEvent* event, gpointer self);
+static void __lambda24_ (Panel* self, GdkEvent* e);
+static void ___lambda24__keybinding_manager_keybinding_handler_func (GdkEvent* event, gpointer self);
+KeybindingManager* keybinding_manager_get_instance (void);
+void keybinding_manager_unbind (KeybindingManager* self, guint keysym, GdkModifierType modifiers);
+static guint panel_keybinding_get_keysym (PanelKeybinding* self);
+static GdkModifierType panel_keybinding_get_modifiers (PanelKeybinding* self);
+static gint panel_compare_versions (Panel* self, const gchar* version1, const gchar* version2);
+static void panel_update_version_1_5_3 (Panel* self);
+static void panel_set_version (Panel* self);
+void panel_load_settings (Panel* self);
+static void panel_exec_setxkbmap (Panel* self, IBusEngineDesc* engine);
+static void _vala_array_add14 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add15 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add16 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add17 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add18 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add19 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add20 (gchar*** array, int* length, int* size, gchar* value);
+static void panel_engine_contexts_insert (Panel* self, IBusEngineDesc* engine);
+static void panel_set_engine (Panel* self, IBusEngineDesc* engine);
+static void panel_switch_engine (Panel* self, gint i, gboolean force);
+#define KEYBINDING_MANAGER_MODIFIER_FILTER ((guint) (GDK_MODIFIER_MASK & (~(((((((((GDK_LOCK_MASK | GDK_MOD2_MASK) | GDK_BUTTON1_MASK) | GDK_BUTTON2_MASK) | GDK_BUTTON3_MASK) | GDK_BUTTON4_MASK) | GDK_BUTTON5_MASK) | GDK_SUPER_MASK) | GDK_HYPER_MASK) | GDK_META_MASK))))
+GdkModifierType keybinding_manager_get_primary_modifier (guint binding_mask);
+gboolean keybinding_manager_primary_modifier_still_pressed (GdkEvent* event, guint primary_modifier);
+gint switcher_run (Switcher* self, guint keyval, guint state, GdkEvent* event, IBusEngineDesc** engines, int engines_length1, gint index);
+static void panel_run_preload_engines (Panel* self, IBusEngineDesc** engines, int engines_length1, gint index);
+static void _vala_array_add21 (gchar*** array, int* length, int* size, gchar* value);
+static gchar** _vala_array_dup2 (gchar** self, int length);
+static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle);
+static void _vala_array_add22 (gchar*** array, int* length, int* size, gchar* value);
+static void _vala_array_add23 (gchar*** array, int* length, int* size, gchar* value);
+static IBusEngineDesc** _vala_array_dup3 (IBusEngineDesc** self, int length);
+static IBusEngineDesc** _vala_array_dup4 (IBusEngineDesc** self, int length);
+static void panel_show_setup_dialog (Panel* self);
+static void __lambda29_ (Panel* self, GPid pid, gint state);
+static void ___lambda29__gchild_watch_func (GPid pid, gint status, gpointer self);
+static void panel_show_about_dialog (Panel* self);
+static void ___lambda28_ (Panel* self, GtkMenuItem* i);
+static void ____lambda28__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void ___lambda30_ (Panel* self, GtkMenuItem* i);
+static void ____lambda30__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void ___lambda31_ (Panel* self, GtkMenuItem* i);
+static void ____lambda31__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void ___lambda32_ (Panel* self, GtkMenuItem* i);
+static void ____lambda32__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void _gtk_status_icon_position_menu_gtk_menu_position_func (GtkMenu* menu, gint* x, gint* y, gboolean* push_in, gpointer self);
+gint property_manager_create_menu_items (PropertyManager* self, GtkMenu* menu);
+static Block4Data* block4_data_ref (Block4Data* _data4_);
+static void block4_data_unref (void * _userdata_);
+IconWidget* icon_widget_new (const gchar* icon_name_or_path, GtkIconSize size);
+IconWidget* icon_widget_construct (GType object_type, const gchar* icon_name_or_path, GtkIconSize size);
+GType icon_widget_get_type (void) G_GNUC_CONST;
+static void ____lambda33_ (Block4Data* _data4_, GtkMenuItem* item);
+static void _____lambda33__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self);
+static void panel_real_set_cursor_location (IBusPanelService* base, gint x, gint y, gint width, gint height);
+void candidate_panel_set_cursor_location (CandidatePanel* self, gint x, gint y, gint width, gint height);
+static void panel_real_focus_in (IBusPanelService* base, const gchar* input_context_path);
+static void panel_real_focus_out (IBusPanelService* base, const gchar* input_context_path);
+static void panel_real_destroy_context (IBusPanelService* base, const gchar* input_context_path);
+static void panel_real_register_properties (IBusPanelService* base, IBusPropList* props);
+void property_manager_set_properties (PropertyManager* self, IBusPropList* props);
+static void panel_real_update_property (IBusPanelService* base, IBusProperty* prop);
+void property_manager_update_property (PropertyManager* self, IBusProperty* prop);
+static void panel_real_update_preedit_text (IBusPanelService* base, IBusText* text, guint cursor_pos, gboolean visible);
+void candidate_panel_set_preedit_text (CandidatePanel* self, IBusText* text, guint cursor);
+static void panel_real_hide_preedit_text (IBusPanelService* base);
+static void panel_real_update_auxiliary_text (IBusPanelService* base, IBusText* text, gboolean visible);
+void candidate_panel_set_auxiliary_text (CandidatePanel* self, IBusText* text);
+static void panel_real_hide_auxiliary_text (IBusPanelService* base);
+static void panel_real_update_lookup_table (IBusPanelService* base, IBusLookupTable* table, gboolean visible);
+void candidate_panel_set_lookup_table (CandidatePanel* self, IBusLookupTable* table);
+static void panel_real_hide_lookup_table (IBusPanelService* base);
+static void panel_real_state_changed (IBusPanelService* base);
+static void _vala_array_add24 (gchar*** array, int* length, int* size, gchar* value);
+#define PANEL_KEYBINDING_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PANEL_TYPE_KEYBINDING, PanelKeybindingPrivate))
+enum  {
+       PANEL_KEYBINDING_DUMMY_PROPERTY
+};
+static void panel_keybinding_set_keysym (PanelKeybinding* self, guint value);
+static void panel_keybinding_set_modifiers (PanelKeybinding* self, GdkModifierType value);
+static void panel_keybinding_set_reverse (PanelKeybinding* self, gboolean value);
+static gboolean panel_keybinding_get_reverse (PanelKeybinding* self);
+static void panel_keybinding_finalize (PanelKeybinding* obj);
+static void panel_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static gint _vala_array_length (gpointer array);
+
+
+static void _g_free0_ (gpointer var) {
+       var = (g_free (var), NULL);
+}
+
+
+static void _g_object_unref0_ (gpointer var) {
+       (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
+}
+
+
+static void _panel_keybinding_unref0_ (gpointer var) {
+       (var == NULL) ? NULL : (var = (panel_keybinding_unref (var), NULL));
+}
+
+
+static void _g_list_free__panel_keybinding_unref0_ (GList* self) {
+       g_list_foreach (self, (GFunc) _panel_keybinding_unref0_, NULL);
+       g_list_free (self);
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+static void _panel_status_icon_popup_menu_cb_gtk_status_icon_popup_menu (GtkStatusIcon* _sender, guint button, guint activate_time, gpointer self) {
+       panel_status_icon_popup_menu_cb (self, _sender, button, activate_time);
+}
+
+
+static void _panel_status_icon_activate_cb_gtk_status_icon_activate (GtkStatusIcon* _sender, gpointer self) {
+       panel_status_icon_activate_cb (self, _sender);
+}
+
+
+static void __lambda34_ (Panel* self, CandidatePanel* w) {
+       g_return_if_fail (w != NULL);
+       ibus_panel_service_page_up ((IBusPanelService*) self);
+}
+
+
+static void ___lambda34__candidate_panel_page_up (CandidatePanel* _sender, gpointer self) {
+       __lambda34_ (self, _sender);
+}
+
+
+static void __lambda35_ (Panel* self, CandidatePanel* w) {
+       g_return_if_fail (w != NULL);
+       ibus_panel_service_page_down ((IBusPanelService*) self);
+}
+
+
+static void ___lambda35__candidate_panel_page_down (CandidatePanel* _sender, gpointer self) {
+       __lambda35_ (self, _sender);
+}
+
+
+static void __lambda36_ (Panel* self, CandidatePanel* w, guint i, guint b, guint s) {
+       guint _tmp0_;
+       guint _tmp1_;
+       guint _tmp2_;
+       g_return_if_fail (w != NULL);
+       _tmp0_ = i;
+       _tmp1_ = b;
+       _tmp2_ = s;
+       ibus_panel_service_candidate_clicked ((IBusPanelService*) self, _tmp0_, _tmp1_, _tmp2_);
+}
+
+
+static void ___lambda36__candidate_panel_candidate_clicked (CandidatePanel* _sender, guint index, guint button, guint state, gpointer self) {
+       __lambda36_ (self, _sender, index, button, state);
+}
+
+
+static void __lambda37_ (Panel* self, const gchar* k, gint s) {
+       const gchar* _tmp0_;
+       gint _tmp1_;
+       g_return_if_fail (k != NULL);
+       _tmp0_ = k;
+       _tmp1_ = s;
+       ibus_panel_service_property_activate ((IBusPanelService*) self, _tmp0_, (guint) _tmp1_);
+}
+
+
+static void ___lambda37__property_manager_property_activate (PropertyManager* _sender, const gchar* key, gint state, gpointer self) {
+       __lambda37_ (self, key, state);
+}
+
+
+Panel* panel_construct (GType object_type, IBusBus* bus) {
+       Panel * self = NULL;
+       IBusBus* _tmp0_;
+       gboolean _tmp1_ = FALSE;
+       IBusBus* _tmp2_;
+       GDBusConnection* _tmp3_ = NULL;
+       IBusBus* _tmp4_;
+       IBusBus* _tmp5_;
+       GtkStatusIcon* _tmp6_;
+       GtkStatusIcon* _tmp7_;
+       GtkStatusIcon* _tmp8_;
+       GtkStatusIcon* _tmp9_;
+       GtkStatusIcon* _tmp10_;
+       GtkStatusIcon* _tmp11_;
+       CandidatePanel* _tmp12_;
+       CandidatePanel* _tmp13_;
+       CandidatePanel* _tmp14_;
+       CandidatePanel* _tmp15_;
+       Switcher* _tmp16_;
+       gint _tmp17_;
+       PropertyManager* _tmp20_;
+       PropertyManager* _tmp21_;
+       g_return_val_if_fail (bus != NULL, NULL);
+       _tmp0_ = bus;
+       _tmp1_ = ibus_bus_is_connected (_tmp0_);
+       _vala_assert (_tmp1_, "bus.is_connected()");
+       _tmp2_ = bus;
+       _tmp3_ = ibus_bus_get_connection (_tmp2_);
+       self = (Panel*) g_object_new (object_type, "connection", _tmp3_, "object-path", "/org/freedesktop/IBus/Panel", NULL);
+       _tmp4_ = bus;
+       _tmp5_ = _g_object_ref0 (_tmp4_);
+       _g_object_unref0 (self->priv->m_bus);
+       self->priv->m_bus = _tmp5_;
+       panel_init_settings (self);
+       _tmp6_ = gtk_status_icon_new ();
+       _g_object_unref0 (self->priv->m_status_icon);
+       self->priv->m_status_icon = _tmp6_;
+       _tmp7_ = self->priv->m_status_icon;
+       gtk_status_icon_set_name (_tmp7_, "ibus-ui-gtk");
+       _tmp8_ = self->priv->m_status_icon;
+       gtk_status_icon_set_title (_tmp8_, "IBus Panel");
+       _tmp9_ = self->priv->m_status_icon;
+       g_signal_connect_object (_tmp9_, "popup-menu", (GCallback) _panel_status_icon_popup_menu_cb_gtk_status_icon_popup_menu, self, 0);
+       _tmp10_ = self->priv->m_status_icon;
+       g_signal_connect_object (_tmp10_, "activate", (GCallback) _panel_status_icon_activate_cb_gtk_status_icon_activate, self, 0);
+       _tmp11_ = self->priv->m_status_icon;
+       gtk_status_icon_set_from_icon_name (_tmp11_, "ibus-keyboard");
+       _tmp12_ = candidate_panel_new ();
+       g_object_ref_sink (_tmp12_);
+       _g_object_unref0 (self->priv->m_candidate_panel);
+       self->priv->m_candidate_panel = _tmp12_;
+       _tmp13_ = self->priv->m_candidate_panel;
+       g_signal_connect_object (_tmp13_, "page-up", (GCallback) ___lambda34__candidate_panel_page_up, self, 0);
+       _tmp14_ = self->priv->m_candidate_panel;
+       g_signal_connect_object (_tmp14_, "page-down", (GCallback) ___lambda35__candidate_panel_page_down, self, 0);
+       _tmp15_ = self->priv->m_candidate_panel;
+       g_signal_connect_object (_tmp15_, "candidate-clicked", (GCallback) ___lambda36__candidate_panel_candidate_clicked, self, 0);
+       _tmp16_ = switcher_new ();
+       g_object_ref_sink (_tmp16_);
+       _g_object_unref0 (self->priv->m_switcher);
+       self->priv->m_switcher = _tmp16_;
+       panel_bind_switch_shortcut (self);
+       _tmp17_ = self->priv->m_switcher_delay_time;
+       if (_tmp17_ >= 0) {
+               Switcher* _tmp18_;
+               gint _tmp19_;
+               _tmp18_ = self->priv->m_switcher;
+               _tmp19_ = self->priv->m_switcher_delay_time;
+               switcher_set_popup_delay_time (_tmp18_, (guint) _tmp19_);
+       }
+       _tmp20_ = property_manager_new ();
+       _property_manager_unref0 (self->priv->m_property_manager);
+       self->priv->m_property_manager = _tmp20_;
+       _tmp21_ = self->priv->m_property_manager;
+       g_signal_connect_object (_tmp21_, "property-activate", (GCallback) ___lambda37__property_manager_property_activate, self, 0);
+       g_signal_emit_by_name ((IBusPanelService*) self, "state-changed");
+       return self;
+}
+
+
+Panel* panel_new (IBusBus* bus) {
+       return panel_construct (TYPE_PANEL, bus);
+}
+
+
+static void __lambda17_ (Panel* self, const gchar* key) {
+       GSettings* _tmp0_;
+       const gchar* _tmp1_;
+       gchar** _tmp2_;
+       gchar** _tmp3_ = NULL;
+       gchar** _tmp4_;
+       gint _tmp4__length1;
+       g_return_if_fail (key != NULL);
+       _tmp0_ = self->priv->m_settings_general;
+       _tmp1_ = key;
+       _tmp3_ = _tmp2_ = g_settings_get_strv (_tmp0_, _tmp1_);
+       _tmp4_ = _tmp3_;
+       _tmp4__length1 = _vala_array_length (_tmp2_);
+       panel_update_engines (self, _tmp4_, _vala_array_length (_tmp2_), NULL, 0);
+       _tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
+}
+
+
+static void ___lambda17__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+       __lambda17_ (self, key);
+}
+
+
+static void __lambda18_ (Panel* self, const gchar* key) {
+       g_return_if_fail (key != NULL);
+       panel_set_switcher_delay_time (self);
+}
+
+
+static void ___lambda18__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+       __lambda18_ (self, key);
+}
+
+
+static void __lambda19_ (Panel* self, const gchar* key) {
+       g_return_if_fail (key != NULL);
+       panel_set_use_system_keyboard_layout (self);
+}
+
+
+static void ___lambda19__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+       __lambda19_ (self, key);
+}
+
+
+static void __lambda20_ (Panel* self, const gchar* key) {
+       g_return_if_fail (key != NULL);
+       panel_set_embed_preedit_text (self);
+}
+
+
+static void ___lambda20__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+       __lambda20_ (self, key);
+}
+
+
+static void __lambda21_ (Panel* self, const gchar* key) {
+       g_return_if_fail (key != NULL);
+       panel_set_use_global_engine (self);
+}
+
+
+static void ___lambda21__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+       __lambda21_ (self, key);
+}
+
+
+static void __lambda22_ (Panel* self, const gchar* key) {
+       g_return_if_fail (key != NULL);
+       panel_unbind_switch_shortcut (self);
+       panel_bind_switch_shortcut (self);
+}
+
+
+static void ___lambda22__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+       __lambda22_ (self, key);
+}
+
+
+static void __lambda25_ (Panel* self, const gchar* key) {
+       g_return_if_fail (key != NULL);
+       panel_set_custom_font (self);
+}
+
+
+static void ___lambda25__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+       __lambda25_ (self, key);
+}
+
+
+static void __lambda26_ (Panel* self, const gchar* key) {
+       g_return_if_fail (key != NULL);
+       panel_set_custom_font (self);
+}
+
+
+static void ___lambda26__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+       __lambda26_ (self, key);
+}
+
+
+static void __lambda27_ (Panel* self, const gchar* key) {
+       g_return_if_fail (key != NULL);
+       panel_set_show_icon_on_systray (self);
+}
+
+
+static void ___lambda27__g_settings_changed (GSettings* _sender, const gchar* key, gpointer self) {
+       __lambda27_ (self, key);
+}
+
+
+static void panel_init_settings (Panel* self) {
+       GSettings* _tmp0_;
+       GSettings* _tmp1_;
+       GSettings* _tmp2_;
+       GSettings* _tmp3_;
+       GSettings* _tmp4_;
+       GSettings* _tmp5_;
+       GSettings* _tmp6_;
+       GSettings* _tmp7_;
+       GSettings* _tmp8_;
+       GSettings* _tmp9_;
+       GSettings* _tmp10_;
+       GSettings* _tmp11_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = g_settings_new ("org.freedesktop.ibus.general");
+       _g_object_unref0 (self->priv->m_settings_general);
+       self->priv->m_settings_general = _tmp0_;
+       _tmp1_ = g_settings_new ("org.freedesktop.ibus.general.hotkey");
+       _g_object_unref0 (self->priv->m_settings_hotkey);
+       self->priv->m_settings_hotkey = _tmp1_;
+       _tmp2_ = g_settings_new ("org.freedesktop.ibus.panel");
+       _g_object_unref0 (self->priv->m_settings_panel);
+       self->priv->m_settings_panel = _tmp2_;
+       _tmp3_ = self->priv->m_settings_general;
+       g_signal_connect_object (_tmp3_, "changed::preload-engines", (GCallback) ___lambda17__g_settings_changed, self, 0);
+       _tmp4_ = self->priv->m_settings_general;
+       g_signal_connect_object (_tmp4_, "changed::switcher-delay-time", (GCallback) ___lambda18__g_settings_changed, self, 0);
+       _tmp5_ = self->priv->m_settings_general;
+       g_signal_connect_object (_tmp5_, "changed::use-system-keyboard-layout", (GCallback) ___lambda19__g_settings_changed, self, 0);
+       _tmp6_ = self->priv->m_settings_general;
+       g_signal_connect_object (_tmp6_, "changed::embed-preedit-text", (GCallback) ___lambda20__g_settings_changed, self, 0);
+       _tmp7_ = self->priv->m_settings_general;
+       g_signal_connect_object (_tmp7_, "changed::use-global-engine", (GCallback) ___lambda21__g_settings_changed, self, 0);
+       _tmp8_ = self->priv->m_settings_hotkey;
+       g_signal_connect_object (_tmp8_, "changed::triggers", (GCallback) ___lambda22__g_settings_changed, self, 0);
+       _tmp9_ = self->priv->m_settings_panel;
+       g_signal_connect_object (_tmp9_, "changed::custom-font", (GCallback) ___lambda25__g_settings_changed, self, 0);
+       _tmp10_ = self->priv->m_settings_panel;
+       g_signal_connect_object (_tmp10_, "changed::use-custom-font", (GCallback) ___lambda26__g_settings_changed, self, 0);
+       _tmp11_ = self->priv->m_settings_panel;
+       g_signal_connect_object (_tmp11_, "changed::show-icon-on-systray", (GCallback) ___lambda27__g_settings_changed, self, 0);
+}
+
+
+static gpointer _panel_keybinding_ref0 (gpointer self) {
+       return self ? panel_keybinding_ref (self) : NULL;
+}
+
+
+static void __lambda23_ (Panel* self, GdkEvent* e) {
+       GdkEvent* _tmp0_;
+       g_return_if_fail (e != NULL);
+       _tmp0_ = e;
+       panel_handle_engine_switch (self, _tmp0_, FALSE);
+}
+
+
+static void ___lambda23__keybinding_manager_keybinding_handler_func (GdkEvent* event, gpointer self) {
+       __lambda23_ (self, event);
+}
+
+
+static void __lambda24_ (Panel* self, GdkEvent* e) {
+       GdkEvent* _tmp0_;
+       g_return_if_fail (e != NULL);
+       _tmp0_ = e;
+       panel_handle_engine_switch (self, _tmp0_, TRUE);
+}
+
+
+static void ___lambda24__keybinding_manager_keybinding_handler_func (GdkEvent* event, gpointer self) {
+       __lambda24_ (self, event);
+}
+
+
+static void panel_keybinding_manager_bind (Panel* self, KeybindingManager* keybinding_manager, const gchar* accelerator) {
+       guint switch_keysym;
+       GdkModifierType switch_modifiers;
+       GdkModifierType reverse_modifier;
+       PanelKeybinding* keybinding = NULL;
+       const gchar* _tmp0_;
+       guint _tmp1_ = 0U;
+       GdkModifierType _tmp2_ = 0;
+       static const GdkModifierType VIRTUAL_MODIFIERS = (GDK_SUPER_MASK | GDK_HYPER_MASK) | GDK_META_MASK;
+       GdkModifierType _tmp3_;
+       gboolean _tmp6_ = FALSE;
+       guint _tmp7_;
+       gboolean _tmp9_;
+       guint _tmp11_;
+       GdkModifierType _tmp12_;
+       PanelKeybinding* _tmp13_;
+       PanelKeybinding* _tmp14_;
+       PanelKeybinding* _tmp15_;
+       KeybindingManager* _tmp16_;
+       guint _tmp17_;
+       GdkModifierType _tmp18_;
+       GdkModifierType _tmp19_;
+       GdkModifierType _tmp20_;
+       GdkModifierType _tmp21_;
+       GdkModifierType _tmp22_;
+       guint _tmp23_;
+       GdkModifierType _tmp24_;
+       PanelKeybinding* _tmp25_;
+       PanelKeybinding* _tmp26_;
+       PanelKeybinding* _tmp27_;
+       KeybindingManager* _tmp28_;
+       guint _tmp29_;
+       GdkModifierType _tmp30_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (keybinding_manager != NULL);
+       switch_keysym = (guint) 0;
+       switch_modifiers = 0;
+       reverse_modifier = GDK_SHIFT_MASK;
+       _tmp0_ = accelerator;
+       gtk_accelerator_parse (_tmp0_, &_tmp1_, &_tmp2_);
+       switch_keysym = _tmp1_;
+       switch_modifiers = _tmp2_;
+       _tmp3_ = switch_modifiers;
+       if ((_tmp3_ & VIRTUAL_MODIFIERS) != 0) {
+               GdkKeymap* _tmp4_ = NULL;
+               GdkModifierType _tmp5_;
+               _tmp4_ = gdk_keymap_get_default ();
+               gdk_keymap_map_virtual_modifiers (_tmp4_, &switch_modifiers);
+               _tmp5_ = switch_modifiers;
+               switch_modifiers = _tmp5_ & (~VIRTUAL_MODIFIERS);
+       }
+       _tmp7_ = switch_keysym;
+       if (_tmp7_ == ((guint) 0)) {
+               GdkModifierType _tmp8_;
+               _tmp8_ = switch_modifiers;
+               _tmp6_ = _tmp8_ == 0;
+       } else {
+               _tmp6_ = FALSE;
+       }
+       _tmp9_ = _tmp6_;
+       if (_tmp9_) {
+               const gchar* _tmp10_;
+               _tmp10_ = accelerator;
+               g_warning ("panel.vala:184: Parse accelerator '%s' failed!", _tmp10_);
+               _panel_keybinding_unref0 (keybinding);
+               return;
+       }
+       _tmp11_ = switch_keysym;
+       _tmp12_ = switch_modifiers;
+       _tmp13_ = panel_keybinding_new (_tmp11_, _tmp12_, FALSE);
+       _panel_keybinding_unref0 (keybinding);
+       keybinding = _tmp13_;
+       _tmp14_ = keybinding;
+       _tmp15_ = _panel_keybinding_ref0 (_tmp14_);
+       self->priv->m_keybindings = g_list_append (self->priv->m_keybindings, _tmp15_);
+       _tmp16_ = keybinding_manager;
+       _tmp17_ = switch_keysym;
+       _tmp18_ = switch_modifiers;
+       keybinding_manager_bind (_tmp16_, _tmp17_, _tmp18_, ___lambda23__keybinding_manager_keybinding_handler_func, self);
+       _tmp19_ = switch_modifiers;
+       _tmp20_ = reverse_modifier;
+       if ((_tmp19_ & _tmp20_) != 0) {
+               _panel_keybinding_unref0 (keybinding);
+               return;
+       }
+       _tmp21_ = switch_modifiers;
+       _tmp22_ = reverse_modifier;
+       switch_modifiers = _tmp21_ | _tmp22_;
+       _tmp23_ = switch_keysym;
+       _tmp24_ = switch_modifiers;
+       _tmp25_ = panel_keybinding_new (_tmp23_, _tmp24_, TRUE);
+       _panel_keybinding_unref0 (keybinding);
+       keybinding = _tmp25_;
+       _tmp26_ = keybinding;
+       _tmp27_ = _panel_keybinding_ref0 (_tmp26_);
+       self->priv->m_keybindings = g_list_append (self->priv->m_keybindings, _tmp27_);
+       _tmp28_ = keybinding_manager;
+       _tmp29_ = switch_keysym;
+       _tmp30_ = switch_modifiers;
+       keybinding_manager_bind (_tmp28_, _tmp29_, _tmp30_, ___lambda24__keybinding_manager_keybinding_handler_func, self);
+       _panel_keybinding_unref0 (keybinding);
+}
+
+
+static void panel_bind_switch_shortcut (Panel* self) {
+       GSettings* _tmp0_;
+       gchar** _tmp1_;
+       gchar** _tmp2_ = NULL;
+       gchar** accelerators;
+       gint accelerators_length1;
+       gint _accelerators_size_;
+       KeybindingManager* _tmp3_ = NULL;
+       KeybindingManager* keybinding_manager;
+       gchar** _tmp4_;
+       gint _tmp4__length1;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_settings_hotkey;
+       _tmp2_ = _tmp1_ = g_settings_get_strv (_tmp0_, "triggers");
+       accelerators = _tmp2_;
+       accelerators_length1 = _vala_array_length (_tmp1_);
+       _accelerators_size_ = accelerators_length1;
+       _tmp3_ = keybinding_manager_get_instance ();
+       keybinding_manager = _tmp3_;
+       _tmp4_ = accelerators;
+       _tmp4__length1 = accelerators_length1;
+       {
+               gchar** accelerator_collection = NULL;
+               gint accelerator_collection_length1 = 0;
+               gint _accelerator_collection_size_ = 0;
+               gint accelerator_it = 0;
+               accelerator_collection = _tmp4_;
+               accelerator_collection_length1 = _tmp4__length1;
+               for (accelerator_it = 0; accelerator_it < _tmp4__length1; accelerator_it = accelerator_it + 1) {
+                       gchar* _tmp5_;
+                       gchar* accelerator = NULL;
+                       _tmp5_ = g_strdup (accelerator_collection[accelerator_it]);
+                       accelerator = _tmp5_;
+                       {
+                               KeybindingManager* _tmp6_;
+                               const gchar* _tmp7_;
+                               _tmp6_ = keybinding_manager;
+                               _tmp7_ = accelerator;
+                               panel_keybinding_manager_bind (self, _tmp6_, _tmp7_);
+                               _g_free0 (accelerator);
+                       }
+               }
+       }
+       _g_object_unref0 (keybinding_manager);
+       accelerators = (_vala_array_free (accelerators, accelerators_length1, (GDestroyNotify) g_free), NULL);
+}
+
+
+static void panel_unbind_switch_shortcut (Panel* self) {
+       KeybindingManager* _tmp0_ = NULL;
+       KeybindingManager* keybinding_manager;
+       GList* _tmp1_;
+       GList* keybindings;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = keybinding_manager_get_instance ();
+       keybinding_manager = _tmp0_;
+       _tmp1_ = self->priv->m_keybindings;
+       keybindings = _tmp1_;
+       while (TRUE) {
+               GList* _tmp2_;
+               GList* _tmp3_;
+               gconstpointer _tmp4_;
+               PanelKeybinding* _tmp5_;
+               PanelKeybinding* keybinding;
+               KeybindingManager* _tmp6_;
+               PanelKeybinding* _tmp7_;
+               guint _tmp8_;
+               guint _tmp9_;
+               PanelKeybinding* _tmp10_;
+               GdkModifierType _tmp11_;
+               GdkModifierType _tmp12_;
+               GList* _tmp13_;
+               GList* _tmp14_;
+               _tmp2_ = keybindings;
+               if (!(_tmp2_ != NULL)) {
+                       break;
+               }
+               _tmp3_ = keybindings;
+               _tmp4_ = _tmp3_->data;
+               _tmp5_ = _panel_keybinding_ref0 ((PanelKeybinding*) _tmp4_);
+               keybinding = _tmp5_;
+               _tmp6_ = keybinding_manager;
+               _tmp7_ = keybinding;
+               _tmp8_ = panel_keybinding_get_keysym (_tmp7_);
+               _tmp9_ = _tmp8_;
+               _tmp10_ = keybinding;
+               _tmp11_ = panel_keybinding_get_modifiers (_tmp10_);
+               _tmp12_ = _tmp11_;
+               keybinding_manager_unbind (_tmp6_, _tmp9_, _tmp12_);
+               _tmp13_ = keybindings;
+               _tmp14_ = _tmp13_->next;
+               keybindings = _tmp14_;
+               _panel_keybinding_unref0 (keybinding);
+       }
+       __g_list_free__panel_keybinding_unref0_0 (self->priv->m_keybindings);
+       self->priv->m_keybindings = NULL;
+       _g_object_unref0 (keybinding_manager);
+}
+
+
+static void panel_set_custom_font (Panel* self) {
+       GdkDisplay* _tmp0_ = NULL;
+       GdkDisplay* _tmp1_;
+       GdkDisplay* display;
+       GdkScreen* _tmp2_ = NULL;
+       GdkDisplay* _tmp3_;
+       GdkScreen* _tmp6_;
+       GdkScreen* _tmp7_;
+       GdkScreen* screen;
+       GdkScreen* _tmp8_;
+       GSettings* _tmp9_;
+       gboolean _tmp10_ = FALSE;
+       gboolean use_custom_font;
+       GtkCssProvider* _tmp11_;
+       gboolean _tmp14_;
+       GSettings* _tmp15_;
+       gchar* _tmp16_ = NULL;
+       gchar* font_name;
+       const gchar* _tmp17_;
+       gchar* _tmp18_;
+       gchar* data_format;
+       const gchar* _tmp19_;
+       const gchar* _tmp20_;
+       gchar* _tmp21_ = NULL;
+       gchar* data;
+       GtkCssProvider* _tmp22_;
+       GdkScreen* _tmp28_;
+       GtkCssProvider* _tmp29_;
+       GError * _inner_error_ = NULL;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = gdk_display_get_default ();
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+       display = _tmp1_;
+       _tmp3_ = display;
+       if (_tmp3_ != NULL) {
+               GdkDisplay* _tmp4_;
+               GdkScreen* _tmp5_ = NULL;
+               _tmp4_ = display;
+               _tmp5_ = gdk_display_get_default_screen (_tmp4_);
+               _tmp2_ = _tmp5_;
+       } else {
+               _tmp2_ = NULL;
+       }
+       _tmp6_ = _tmp2_;
+       _tmp7_ = _g_object_ref0 (_tmp6_);
+       screen = _tmp7_;
+       _tmp8_ = screen;
+       if (_tmp8_ == NULL) {
+               g_warning ("panel.vala:244: Could not open display.");
+               _g_object_unref0 (screen);
+               _g_object_unref0 (display);
+               return;
+       }
+       _tmp9_ = self->priv->m_settings_panel;
+       _tmp10_ = g_settings_get_boolean (_tmp9_, "use-custom-font");
+       use_custom_font = _tmp10_;
+       _tmp11_ = self->priv->m_css_provider;
+       if (_tmp11_ != NULL) {
+               GdkScreen* _tmp12_;
+               GtkCssProvider* _tmp13_;
+               _tmp12_ = screen;
+               _tmp13_ = self->priv->m_css_provider;
+               gtk_style_context_remove_provider_for_screen (_tmp12_, (GtkStyleProvider*) _tmp13_);
+               _g_object_unref0 (self->priv->m_css_provider);
+               self->priv->m_css_provider = NULL;
+       }
+       _tmp14_ = use_custom_font;
+       if (_tmp14_ == FALSE) {
+               _g_object_unref0 (screen);
+               _g_object_unref0 (display);
+               return;
+       }
+       _tmp15_ = self->priv->m_settings_panel;
+       _tmp16_ = g_settings_get_string (_tmp15_, "custom-font");
+       font_name = _tmp16_;
+       _tmp17_ = font_name;
+       if (_tmp17_ == NULL) {
+               g_warning ("panel.vala:263: No config panel:custom-font.");
+               _g_free0 (font_name);
+               _g_object_unref0 (screen);
+               _g_object_unref0 (display);
+               return;
+       }
+       _tmp18_ = g_strdup ("GtkLabel { font: %s; }");
+       data_format = _tmp18_;
+       _tmp19_ = data_format;
+       _tmp20_ = font_name;
+       _tmp21_ = g_strdup_printf (_tmp19_, _tmp20_);
+       data = _tmp21_;
+       _tmp22_ = gtk_css_provider_new ();
+       _g_object_unref0 (self->priv->m_css_provider);
+       self->priv->m_css_provider = _tmp22_;
+       {
+               GtkCssProvider* _tmp23_;
+               const gchar* _tmp24_;
+               _tmp23_ = self->priv->m_css_provider;
+               _tmp24_ = data;
+               gtk_css_provider_load_from_data (_tmp23_, _tmp24_, (gssize) (-1), &_inner_error_);
+               if (_inner_error_ != NULL) {
+                       goto __catch2_g_error;
+               }
+       }
+       goto __finally2;
+       __catch2_g_error:
+       {
+               GError* e = NULL;
+               const gchar* _tmp25_;
+               GError* _tmp26_;
+               const gchar* _tmp27_;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               _tmp25_ = font_name;
+               _tmp26_ = e;
+               _tmp27_ = _tmp26_->message;
+               g_warning ("panel.vala:274: Failed css_provider_from_data: %s: %s", _tmp25_, _tmp27_);
+               _g_error_free0 (e);
+               _g_free0 (data);
+               _g_free0 (data_format);
+               _g_free0 (font_name);
+               _g_object_unref0 (screen);
+               _g_object_unref0 (display);
+               return;
+       }
+       __finally2:
+       if (_inner_error_ != NULL) {
+               _g_free0 (data);
+               _g_free0 (data_format);
+               _g_free0 (font_name);
+               _g_object_unref0 (screen);
+               _g_object_unref0 (display);
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return;
+       }
+       _tmp28_ = screen;
+       _tmp29_ = self->priv->m_css_provider;
+       gtk_style_context_add_provider_for_screen (_tmp28_, (GtkStyleProvider*) _tmp29_, (guint) GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+       _g_free0 (data);
+       _g_free0 (data_format);
+       _g_free0 (font_name);
+       _g_object_unref0 (screen);
+       _g_object_unref0 (display);
+}
+
+
+static void panel_set_switcher_delay_time (Panel* self) {
+       GSettings* _tmp0_;
+       gint _tmp1_ = 0;
+       gint _tmp2_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_settings_general;
+       _tmp1_ = g_settings_get_int (_tmp0_, "switcher-delay-time");
+       self->priv->m_switcher_delay_time = _tmp1_;
+       _tmp2_ = self->priv->m_switcher_delay_time;
+       if (_tmp2_ >= 0) {
+               Switcher* _tmp3_;
+               gint _tmp4_;
+               _tmp3_ = self->priv->m_switcher;
+               _tmp4_ = self->priv->m_switcher_delay_time;
+               switcher_set_popup_delay_time (_tmp3_, (guint) _tmp4_);
+       }
+}
+
+
+static void panel_set_use_system_keyboard_layout (Panel* self) {
+       GSettings* _tmp0_;
+       gboolean _tmp1_ = FALSE;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_settings_general;
+       _tmp1_ = g_settings_get_boolean (_tmp0_, "use-system-keyboard-layout");
+       self->priv->m_use_system_keyboard_layout = _tmp1_;
+}
+
+
+static void panel_set_embed_preedit_text (Panel* self) {
+       GSettings* _tmp0_;
+       GVariant* _tmp1_ = NULL;
+       GVariant* variant;
+       GVariant* _tmp2_;
+       IBusBus* _tmp3_;
+       GVariant* _tmp4_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_settings_general;
+       _tmp1_ = g_settings_get_value (_tmp0_, "embed-preedit-text");
+       variant = _tmp1_;
+       _tmp2_ = variant;
+       if (_tmp2_ == NULL) {
+               _g_variant_unref0 (variant);
+               return;
+       }
+       _tmp3_ = self->priv->m_bus;
+       _tmp4_ = variant;
+       ibus_bus_set_ibus_property (_tmp3_, "EmbedPreeditText", _tmp4_);
+       _g_variant_unref0 (variant);
+}
+
+
+static void panel_set_use_global_engine (Panel* self) {
+       GSettings* _tmp0_;
+       gboolean _tmp1_ = FALSE;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_settings_general;
+       _tmp1_ = g_settings_get_boolean (_tmp0_, "use-global-engine");
+       self->priv->m_use_global_engine = _tmp1_;
+}
+
+
+static void panel_set_show_icon_on_systray (Panel* self) {
+       GtkStatusIcon* _tmp0_;
+       GSettings* _tmp1_;
+       gboolean _tmp2_ = FALSE;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_status_icon;
+       _tmp1_ = self->priv->m_settings_panel;
+       _tmp2_ = g_settings_get_boolean (_tmp1_, "show-icon-on-systray");
+       gtk_status_icon_set_visible (_tmp0_, _tmp2_);
+}
+
+
+static gint panel_compare_versions (Panel* self, const gchar* version1, const gchar* version2) {
+       gint result = 0;
+       const gchar* _tmp0_;
+       gchar** _tmp1_;
+       gchar** _tmp2_ = NULL;
+       gchar** version1_list;
+       gint version1_list_length1;
+       gint _version1_list_size_;
+       const gchar* _tmp3_;
+       gchar** _tmp4_;
+       gchar** _tmp5_ = NULL;
+       gchar** version2_list;
+       gint version2_list_length1;
+       gint _version2_list_size_;
+       gint major1 = 0;
+       gint minor1 = 0;
+       gint micro1 = 0;
+       gint major2 = 0;
+       gint minor2 = 0;
+       gint micro2 = 0;
+       const gchar* _tmp6_;
+       const gchar* _tmp7_;
+       const gchar* _tmp8_;
+       const gchar* _tmp9_;
+       gchar** _tmp10_;
+       gint _tmp10__length1;
+       gchar** _tmp11_;
+       gint _tmp11__length1;
+       gchar** _tmp12_;
+       gint _tmp12__length1;
+       const gchar* _tmp13_;
+       gint _tmp14_ = 0;
+       gchar** _tmp15_;
+       gint _tmp15__length1;
+       const gchar* _tmp16_;
+       gint _tmp17_ = 0;
+       gchar** _tmp18_;
+       gint _tmp18__length1;
+       const gchar* _tmp19_;
+       gint _tmp20_ = 0;
+       gchar** _tmp21_;
+       gint _tmp21__length1;
+       const gchar* _tmp22_;
+       gint _tmp23_ = 0;
+       gchar** _tmp24_;
+       gint _tmp24__length1;
+       const gchar* _tmp25_;
+       gint _tmp26_ = 0;
+       gchar** _tmp27_;
+       gint _tmp27__length1;
+       const gchar* _tmp28_;
+       gint _tmp29_ = 0;
+       gboolean _tmp30_ = FALSE;
+       gboolean _tmp31_ = FALSE;
+       gint _tmp32_;
+       gint _tmp33_;
+       gboolean _tmp36_;
+       gboolean _tmp39_;
+       gboolean _tmp40_ = FALSE;
+       gboolean _tmp41_ = FALSE;
+       gint _tmp42_;
+       gint _tmp43_;
+       gboolean _tmp50_;
+       gboolean _tmp61_;
+       g_return_val_if_fail (self != NULL, 0);
+       g_return_val_if_fail (version1 != NULL, 0);
+       g_return_val_if_fail (version2 != NULL, 0);
+       _tmp0_ = version1;
+       _tmp2_ = _tmp1_ = g_strsplit (_tmp0_, ".", 0);
+       version1_list = _tmp2_;
+       version1_list_length1 = _vala_array_length (_tmp1_);
+       _version1_list_size_ = version1_list_length1;
+       _tmp3_ = version2;
+       _tmp5_ = _tmp4_ = g_strsplit (_tmp3_, ".", 0);
+       version2_list = _tmp5_;
+       version2_list_length1 = _vala_array_length (_tmp4_);
+       _version2_list_size_ = version2_list_length1;
+       _tmp6_ = version1;
+       _tmp7_ = version2;
+       if (g_strcmp0 (_tmp6_, _tmp7_) == 0) {
+               result = 0;
+               version2_list = (_vala_array_free (version2_list, version2_list_length1, (GDestroyNotify) g_free), NULL);
+               version1_list = (_vala_array_free (version1_list, version1_list_length1, (GDestroyNotify) g_free), NULL);
+               return result;
+       }
+       _tmp8_ = version1;
+       if (g_strcmp0 (_tmp8_, "") == 0) {
+               result = -1;
+               version2_list = (_vala_array_free (version2_list, version2_list_length1, (GDestroyNotify) g_free), NULL);
+               version1_list = (_vala_array_free (version1_list, version1_list_length1, (GDestroyNotify) g_free), NULL);
+               return result;
+       }
+       _tmp9_ = version2;
+       if (g_strcmp0 (_tmp9_, "") == 0) {
+               result = 1;
+               version2_list = (_vala_array_free (version2_list, version2_list_length1, (GDestroyNotify) g_free), NULL);
+               version1_list = (_vala_array_free (version1_list, version1_list_length1, (GDestroyNotify) g_free), NULL);
+               return result;
+       }
+       _tmp10_ = version1_list;
+       _tmp10__length1 = version1_list_length1;
+       _vala_assert (_tmp10__length1 >= 3, "version1_list.length >= 3");
+       _tmp11_ = version2_list;
+       _tmp11__length1 = version2_list_length1;
+       _vala_assert (_tmp11__length1 >= 3, "version2_list.length >= 3");
+       _tmp12_ = version1_list;
+       _tmp12__length1 = version1_list_length1;
+       _tmp13_ = _tmp12_[0];
+       _tmp14_ = atoi (_tmp13_);
+       major1 = _tmp14_;
+       _tmp15_ = version1_list;
+       _tmp15__length1 = version1_list_length1;
+       _tmp16_ = _tmp15_[1];
+       _tmp17_ = atoi (_tmp16_);
+       minor1 = _tmp17_;
+       _tmp18_ = version1_list;
+       _tmp18__length1 = version1_list_length1;
+       _tmp19_ = _tmp18_[2];
+       _tmp20_ = atoi (_tmp19_);
+       micro1 = _tmp20_;
+       _tmp21_ = version2_list;
+       _tmp21__length1 = version2_list_length1;
+       _tmp22_ = _tmp21_[0];
+       _tmp23_ = atoi (_tmp22_);
+       major2 = _tmp23_;
+       _tmp24_ = version2_list;
+       _tmp24__length1 = version2_list_length1;
+       _tmp25_ = _tmp24_[1];
+       _tmp26_ = atoi (_tmp25_);
+       minor2 = _tmp26_;
+       _tmp27_ = version2_list;
+       _tmp27__length1 = version2_list_length1;
+       _tmp28_ = _tmp27_[2];
+       _tmp29_ = atoi (_tmp28_);
+       micro2 = _tmp29_;
+       _tmp32_ = major1;
+       _tmp33_ = minor1;
+       if (_tmp32_ == _tmp33_) {
+               gint _tmp34_;
+               gint _tmp35_;
+               _tmp34_ = minor1;
+               _tmp35_ = minor2;
+               _tmp31_ = _tmp34_ == _tmp35_;
+       } else {
+               _tmp31_ = FALSE;
+       }
+       _tmp36_ = _tmp31_;
+       if (_tmp36_) {
+               gint _tmp37_;
+               gint _tmp38_;
+               _tmp37_ = micro1;
+               _tmp38_ = micro2;
+               _tmp30_ = _tmp37_ == _tmp38_;
+       } else {
+               _tmp30_ = FALSE;
+       }
+       _tmp39_ = _tmp30_;
+       if (_tmp39_) {
+               result = 0;
+               version2_list = (_vala_array_free (version2_list, version2_list_length1, (GDestroyNotify) g_free), NULL);
+               version1_list = (_vala_array_free (version1_list, version1_list_length1, (GDestroyNotify) g_free), NULL);
+               return result;
+       }
+       _tmp42_ = major1;
+       _tmp43_ = major2;
+       if (_tmp42_ > _tmp43_) {
+               _tmp41_ = TRUE;
+       } else {
+               gboolean _tmp44_ = FALSE;
+               gint _tmp45_;
+               gint _tmp46_;
+               gboolean _tmp49_;
+               _tmp45_ = major1;
+               _tmp46_ = major2;
+               if (_tmp45_ == _tmp46_) {
+                       gint _tmp47_;
+                       gint _tmp48_;
+                       _tmp47_ = minor1;
+                       _tmp48_ = minor2;
+                       _tmp44_ = _tmp47_ > _tmp48_;
+               } else {
+                       _tmp44_ = FALSE;
+               }
+               _tmp49_ = _tmp44_;
+               _tmp41_ = _tmp49_;
+       }
+       _tmp50_ = _tmp41_;
+       if (_tmp50_) {
+               _tmp40_ = TRUE;
+       } else {
+               gboolean _tmp51_ = FALSE;
+               gboolean _tmp52_ = FALSE;
+               gint _tmp53_;
+               gint _tmp54_;
+               gboolean _tmp57_;
+               gboolean _tmp60_;
+               _tmp53_ = major1;
+               _tmp54_ = major2;
+               if (_tmp53_ == _tmp54_) {
+                       gint _tmp55_;
+                       gint _tmp56_;
+                       _tmp55_ = minor1;
+                       _tmp56_ = minor2;
+                       _tmp52_ = _tmp55_ == _tmp56_;
+               } else {
+                       _tmp52_ = FALSE;
+               }
+               _tmp57_ = _tmp52_;
+               if (_tmp57_) {
+                       gint _tmp58_;
+                       gint _tmp59_;
+                       _tmp58_ = micro1;
+                       _tmp59_ = micro2;
+                       _tmp51_ = _tmp58_ > _tmp59_;
+               } else {
+                       _tmp51_ = FALSE;
+               }
+               _tmp60_ = _tmp51_;
+               _tmp40_ = _tmp60_;
+       }
+       _tmp61_ = _tmp40_;
+       if (_tmp61_) {
+               result = 1;
+               version2_list = (_vala_array_free (version2_list, version2_list_length1, (GDestroyNotify) g_free), NULL);
+               version1_list = (_vala_array_free (version1_list, version1_list_length1, (GDestroyNotify) g_free), NULL);
+               return result;
+       }
+       result = -1;
+       version2_list = (_vala_array_free (version2_list, version2_list_length1, (GDestroyNotify) g_free), NULL);
+       version1_list = (_vala_array_free (version1_list, version1_list_length1, (GDestroyNotify) g_free), NULL);
+       return result;
+}
+
+
+static void panel_update_version_1_5_3 (Panel* self) {
+       gboolean _tmp0_ = FALSE;
+       const gchar* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       NotifyNotification* _tmp3_;
+       NotifyNotification* notification;
+       GError * _inner_error_ = NULL;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = notify_is_initted ();
+       if (!_tmp0_) {
+               notify_init ("ibus");
+       }
+       _tmp1_ = _ ("IBus Update");
+       _tmp2_ = _ ("Super+space is now the default hotkey.");
+       _tmp3_ = notify_notification_new (_tmp1_, _tmp2_, "ibus");
+       notification = _tmp3_;
+       notify_notification_set_timeout (notification, 30 * 1000);
+       notify_notification_set_category (notification, "hotkey");
+       {
+               notify_notification_show (notification, &_inner_error_);
+               if (_inner_error_ != NULL) {
+                       goto __catch3_g_error;
+               }
+       }
+       goto __finally3;
+       __catch3_g_error:
+       {
+               GError* e = NULL;
+               GError* _tmp4_;
+               const gchar* _tmp5_;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               _tmp4_ = e;
+               _tmp5_ = _tmp4_->message;
+               g_warning ("panel.vala:375: Notification is failed for IBus 1.5.3: %s", _tmp5_);
+               _g_error_free0 (e);
+       }
+       __finally3:
+       if (_inner_error_ != NULL) {
+               _g_object_unref0 (notification);
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return;
+       }
+       _g_object_unref0 (notification);
+}
+
+
+static void panel_set_version (Panel* self) {
+       GSettings* _tmp0_;
+       gchar* _tmp1_ = NULL;
+       gchar* prev_version;
+       gchar* current_version;
+       const gchar* _tmp2_;
+       gint _tmp3_ = 0;
+       gchar* _tmp4_ = NULL;
+       const gchar* _tmp5_;
+       const gchar* _tmp6_;
+       GSettings* _tmp7_;
+       const gchar* _tmp8_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_settings_general;
+       _tmp1_ = g_settings_get_string (_tmp0_, "version");
+       prev_version = _tmp1_;
+       current_version = NULL;
+       _tmp2_ = prev_version;
+       _tmp3_ = panel_compare_versions (self, _tmp2_, "1.5.3");
+       if (_tmp3_ < 0) {
+               panel_update_version_1_5_3 (self);
+       }
+       _tmp4_ = g_strdup_printf ("%d.%d.%d", IBUS_MAJOR_VERSION, IBUS_MINOR_VERSION, IBUS_MICRO_VERSION);
+       _g_free0 (current_version);
+       current_version = _tmp4_;
+       _tmp5_ = prev_version;
+       _tmp6_ = current_version;
+       if (g_strcmp0 (_tmp5_, _tmp6_) == 0) {
+               _g_free0 (current_version);
+               _g_free0 (prev_version);
+               return;
+       }
+       _tmp7_ = self->priv->m_settings_general;
+       _tmp8_ = current_version;
+       g_settings_set_string (_tmp7_, "version", _tmp8_);
+       _g_free0 (current_version);
+       _g_free0 (prev_version);
+}
+
+
+void panel_load_settings (Panel* self) {
+       GSettings* _tmp0_;
+       gchar** _tmp1_;
+       gchar** _tmp2_ = NULL;
+       gchar** _tmp3_;
+       gint _tmp3__length1;
+       GSettings* _tmp4_;
+       gchar** _tmp5_;
+       gchar** _tmp6_ = NULL;
+       gchar** _tmp7_;
+       gint _tmp7__length1;
+       g_return_if_fail (self != NULL);
+       panel_set_use_system_keyboard_layout (self);
+       panel_set_use_global_engine (self);
+       _tmp0_ = self->priv->m_settings_general;
+       _tmp2_ = _tmp1_ = g_settings_get_strv (_tmp0_, "preload-engines");
+       _tmp3_ = _tmp2_;
+       _tmp3__length1 = _vala_array_length (_tmp1_);
+       _tmp4_ = self->priv->m_settings_general;
+       _tmp6_ = _tmp5_ = g_settings_get_strv (_tmp4_, "engines-order");
+       _tmp7_ = _tmp6_;
+       _tmp7__length1 = _vala_array_length (_tmp5_);
+       panel_update_engines (self, _tmp3_, _vala_array_length (_tmp1_), _tmp7_, _vala_array_length (_tmp5_));
+       _tmp7_ = (_vala_array_free (_tmp7_, _tmp7__length1, (GDestroyNotify) g_free), NULL);
+       _tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
+       panel_unbind_switch_shortcut (self);
+       panel_bind_switch_shortcut (self);
+       panel_set_switcher_delay_time (self);
+       panel_set_embed_preedit_text (self);
+       panel_set_custom_font (self);
+       panel_set_show_icon_on_systray (self);
+       panel_set_version (self);
+}
+
+
+static void _vala_array_add14 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add15 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add16 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add17 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add18 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add19 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add20 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void panel_exec_setxkbmap (Panel* self, IBusEngineDesc* engine) {
+       IBusEngineDesc* _tmp0_;
+       const gchar* _tmp1_ = NULL;
+       gchar* _tmp2_;
+       gchar* layout;
+       IBusEngineDesc* _tmp3_;
+       const gchar* _tmp4_ = NULL;
+       gchar* _tmp5_;
+       gchar* variant;
+       IBusEngineDesc* _tmp6_;
+       const gchar* _tmp7_ = NULL;
+       gchar* _tmp8_;
+       gchar* option;
+       gchar* standard_error;
+       gint exit_status;
+       gchar* _tmp9_;
+       gchar** _tmp10_ = NULL;
+       gchar** args;
+       gint args_length1;
+       gint _args_size_;
+       gboolean _tmp11_ = FALSE;
+       gboolean _tmp12_ = FALSE;
+       const gchar* _tmp13_;
+       gboolean _tmp15_;
+       gboolean _tmp17_;
+       gboolean _tmp23_ = FALSE;
+       gboolean _tmp24_ = FALSE;
+       const gchar* _tmp25_;
+       gboolean _tmp27_;
+       gboolean _tmp29_;
+       gboolean _tmp35_ = FALSE;
+       gboolean _tmp36_ = FALSE;
+       const gchar* _tmp37_;
+       gboolean _tmp39_;
+       gboolean _tmp41_;
+       gchar** _tmp49_;
+       gint _tmp49__length1;
+       gint _tmp59_;
+       GError * _inner_error_ = NULL;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (engine != NULL);
+       _tmp0_ = engine;
+       _tmp1_ = ibus_engine_desc_get_layout (_tmp0_);
+       _tmp2_ = g_strdup (_tmp1_);
+       layout = _tmp2_;
+       _tmp3_ = engine;
+       _tmp4_ = ibus_engine_desc_get_layout_variant (_tmp3_);
+       _tmp5_ = g_strdup (_tmp4_);
+       variant = _tmp5_;
+       _tmp6_ = engine;
+       _tmp7_ = ibus_engine_desc_get_layout_option (_tmp6_);
+       _tmp8_ = g_strdup (_tmp7_);
+       option = _tmp8_;
+       standard_error = NULL;
+       exit_status = 0;
+       _tmp9_ = g_strdup ("setxkbmap");
+       _tmp10_ = g_new0 (gchar*, 1 + 1);
+       _tmp10_[0] = _tmp9_;
+       args = _tmp10_;
+       args_length1 = 1;
+       _args_size_ = args_length1;
+       _tmp13_ = layout;
+       if (_tmp13_ != NULL) {
+               const gchar* _tmp14_;
+               _tmp14_ = layout;
+               _tmp12_ = g_strcmp0 (_tmp14_, "") != 0;
+       } else {
+               _tmp12_ = FALSE;
+       }
+       _tmp15_ = _tmp12_;
+       if (_tmp15_) {
+               const gchar* _tmp16_;
+               _tmp16_ = layout;
+               _tmp11_ = g_strcmp0 (_tmp16_, "default") != 0;
+       } else {
+               _tmp11_ = FALSE;
+       }
+       _tmp17_ = _tmp11_;
+       if (_tmp17_) {
+               gchar** _tmp18_;
+               gint _tmp18__length1;
+               gchar* _tmp19_;
+               gchar** _tmp20_;
+               gint _tmp20__length1;
+               const gchar* _tmp21_;
+               gchar* _tmp22_;
+               _tmp18_ = args;
+               _tmp18__length1 = args_length1;
+               _tmp19_ = g_strdup ("-layout");
+               _vala_array_add14 (&args, &args_length1, &_args_size_, _tmp19_);
+               _tmp20_ = args;
+               _tmp20__length1 = args_length1;
+               _tmp21_ = layout;
+               _tmp22_ = g_strdup (_tmp21_);
+               _vala_array_add15 (&args, &args_length1, &_args_size_, _tmp22_);
+       }
+       _tmp25_ = variant;
+       if (_tmp25_ != NULL) {
+               const gchar* _tmp26_;
+               _tmp26_ = variant;
+               _tmp24_ = g_strcmp0 (_tmp26_, "") != 0;
+       } else {
+               _tmp24_ = FALSE;
+       }
+       _tmp27_ = _tmp24_;
+       if (_tmp27_) {
+               const gchar* _tmp28_;
+               _tmp28_ = variant;
+               _tmp23_ = g_strcmp0 (_tmp28_, "default") != 0;
+       } else {
+               _tmp23_ = FALSE;
+       }
+       _tmp29_ = _tmp23_;
+       if (_tmp29_) {
+               gchar** _tmp30_;
+               gint _tmp30__length1;
+               gchar* _tmp31_;
+               gchar** _tmp32_;
+               gint _tmp32__length1;
+               const gchar* _tmp33_;
+               gchar* _tmp34_;
+               _tmp30_ = args;
+               _tmp30__length1 = args_length1;
+               _tmp31_ = g_strdup ("-variant");
+               _vala_array_add16 (&args, &args_length1, &_args_size_, _tmp31_);
+               _tmp32_ = args;
+               _tmp32__length1 = args_length1;
+               _tmp33_ = variant;
+               _tmp34_ = g_strdup (_tmp33_);
+               _vala_array_add17 (&args, &args_length1, &_args_size_, _tmp34_);
+       }
+       _tmp37_ = option;
+       if (_tmp37_ != NULL) {
+               const gchar* _tmp38_;
+               _tmp38_ = option;
+               _tmp36_ = g_strcmp0 (_tmp38_, "") != 0;
+       } else {
+               _tmp36_ = FALSE;
+       }
+       _tmp39_ = _tmp36_;
+       if (_tmp39_) {
+               const gchar* _tmp40_;
+               _tmp40_ = option;
+               _tmp35_ = g_strcmp0 (_tmp40_, "default") != 0;
+       } else {
+               _tmp35_ = FALSE;
+       }
+       _tmp41_ = _tmp35_;
+       if (_tmp41_) {
+               gchar** _tmp42_;
+               gint _tmp42__length1;
+               gchar* _tmp43_;
+               gchar** _tmp44_;
+               gint _tmp44__length1;
+               gchar* _tmp45_;
+               gchar** _tmp46_;
+               gint _tmp46__length1;
+               const gchar* _tmp47_;
+               gchar* _tmp48_;
+               _tmp42_ = args;
+               _tmp42__length1 = args_length1;
+               _tmp43_ = g_strdup ("-option");
+               _vala_array_add18 (&args, &args_length1, &_args_size_, _tmp43_);
+               _tmp44_ = args;
+               _tmp44__length1 = args_length1;
+               _tmp45_ = g_strdup ("-option");
+               _vala_array_add19 (&args, &args_length1, &_args_size_, _tmp45_);
+               _tmp46_ = args;
+               _tmp46__length1 = args_length1;
+               _tmp47_ = option;
+               _tmp48_ = g_strdup (_tmp47_);
+               _vala_array_add20 (&args, &args_length1, &_args_size_, _tmp48_);
+       }
+       _tmp49_ = args;
+       _tmp49__length1 = args_length1;
+       if (_tmp49__length1 == 1) {
+               args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+               _g_free0 (standard_error);
+               _g_free0 (option);
+               _g_free0 (variant);
+               _g_free0 (layout);
+               return;
+       }
+       {
+               gchar** _tmp50_;
+               gint _tmp50__length1;
+               gchar* _tmp51_ = NULL;
+               gint _tmp52_ = 0;
+               gboolean _tmp53_ = FALSE;
+               gboolean _tmp54_;
+               _tmp50_ = args;
+               _tmp50__length1 = args_length1;
+               _tmp53_ = g_spawn_sync (NULL, _tmp50_, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &_tmp51_, &_tmp52_, &_inner_error_);
+               _g_free0 (standard_error);
+               standard_error = _tmp51_;
+               exit_status = _tmp52_;
+               _tmp54_ = _tmp53_;
+               if (_inner_error_ != NULL) {
+                       if (_inner_error_->domain == G_SPAWN_ERROR) {
+                               goto __catch4_g_spawn_error;
+                       }
+                       args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+                       _g_free0 (standard_error);
+                       _g_free0 (option);
+                       _g_free0 (variant);
+                       _g_free0 (layout);
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return;
+               }
+               if (!_tmp54_) {
+                       IBusEngineDesc* _tmp55_;
+                       const gchar* _tmp56_ = NULL;
+                       _tmp55_ = engine;
+                       _tmp56_ = ibus_engine_desc_get_layout (_tmp55_);
+                       g_warning ("panel.vala:451: Switch xkb layout to %s failed.", _tmp56_);
+               }
+       }
+       goto __finally4;
+       __catch4_g_spawn_error:
+       {
+               GError* e = NULL;
+               GError* _tmp57_;
+               const gchar* _tmp58_;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               _tmp57_ = e;
+               _tmp58_ = _tmp57_->message;
+               g_warning ("panel.vala:455: Execute setxkbmap failed: %s", _tmp58_);
+               _g_error_free0 (e);
+       }
+       __finally4:
+       if (_inner_error_ != NULL) {
+               args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+               _g_free0 (standard_error);
+               _g_free0 (option);
+               _g_free0 (variant);
+               _g_free0 (layout);
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return;
+       }
+       _tmp59_ = exit_status;
+       if (_tmp59_ != 0) {
+               const gchar* _tmp60_;
+               gchar* _tmp61_;
+               gchar* _tmp62_;
+               const gchar* _tmp63_;
+               const gchar* _tmp65_;
+               _tmp60_ = standard_error;
+               _tmp61_ = g_strdup (_tmp60_);
+               _tmp62_ = _tmp61_;
+               _tmp63_ = _tmp62_;
+               if (_tmp63_ == NULL) {
+                       gchar* _tmp64_;
+                       _tmp64_ = g_strdup ("(null)");
+                       _g_free0 (_tmp62_);
+                       _tmp62_ = _tmp64_;
+               }
+               _tmp65_ = _tmp62_;
+               g_warning ("panel.vala:459: Execute setxkbmap failed: %s", _tmp65_);
+               _g_free0 (_tmp62_);
+       }
+       args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
+       _g_free0 (standard_error);
+       _g_free0 (option);
+       _g_free0 (variant);
+       _g_free0 (layout);
+}
+
+
+static void panel_engine_contexts_insert (Panel* self, IBusEngineDesc* engine) {
+       gboolean _tmp0_;
+       GHashTable* _tmp1_;
+       guint _tmp2_ = 0U;
+       GHashTable* _tmp4_;
+       const gchar* _tmp5_;
+       gchar* _tmp6_;
+       IBusEngineDesc* _tmp7_;
+       IBusEngineDesc* _tmp8_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (engine != NULL);
+       _tmp0_ = self->priv->m_use_global_engine;
+       if (_tmp0_) {
+               return;
+       }
+       _tmp1_ = self->priv->m_engine_contexts;
+       _tmp2_ = g_hash_table_size (_tmp1_);
+       if (_tmp2_ >= ((guint) 200)) {
+               GHashTable* _tmp3_;
+               g_warning ("panel.vala:468: Contexts by windows are too much counted!");
+               _tmp3_ = self->priv->m_engine_contexts;
+               g_hash_table_remove_all (_tmp3_);
+       }
+       _tmp4_ = self->priv->m_engine_contexts;
+       _tmp5_ = self->priv->m_current_context_path;
+       _tmp6_ = g_strdup (_tmp5_);
+       _tmp7_ = engine;
+       _tmp8_ = _g_object_ref0 (_tmp7_);
+       g_hash_table_replace (_tmp4_, _tmp6_, _tmp8_);
+}
+
+
+static void panel_set_engine (Panel* self, IBusEngineDesc* engine) {
+       IBusBus* _tmp0_;
+       IBusEngineDesc* _tmp1_;
+       const gchar* _tmp2_ = NULL;
+       gboolean _tmp3_ = FALSE;
+       gboolean _tmp6_;
+       IBusEngineDesc* _tmp8_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (engine != NULL);
+       _tmp0_ = self->priv->m_bus;
+       _tmp1_ = engine;
+       _tmp2_ = ibus_engine_desc_get_name (_tmp1_);
+       _tmp3_ = ibus_bus_set_global_engine (_tmp0_, _tmp2_);
+       if (!_tmp3_) {
+               IBusEngineDesc* _tmp4_;
+               const gchar* _tmp5_ = NULL;
+               _tmp4_ = engine;
+               _tmp5_ = ibus_engine_desc_get_name (_tmp4_);
+               g_warning ("panel.vala:477: Switch engine to %s failed.", _tmp5_);
+               return;
+       }
+       _tmp6_ = self->priv->m_use_system_keyboard_layout;
+       if (!_tmp6_) {
+               IBusEngineDesc* _tmp7_;
+               _tmp7_ = engine;
+               panel_exec_setxkbmap (self, _tmp7_);
+       }
+       _tmp8_ = engine;
+       panel_engine_contexts_insert (self, _tmp8_);
+}
+
+
+static void panel_switch_engine (Panel* self, gint i, gboolean force) {
+       gboolean _tmp0_ = FALSE;
+       gint _tmp1_;
+       gboolean _tmp4_;
+       gboolean _tmp5_ = FALSE;
+       gint _tmp6_;
+       gboolean _tmp8_;
+       IBusEngineDesc** _tmp9_;
+       gint _tmp9__length1;
+       gint _tmp10_;
+       IBusEngineDesc* _tmp11_;
+       IBusEngineDesc* _tmp12_;
+       IBusEngineDesc* engine;
+       IBusEngineDesc* _tmp13_;
+       g_return_if_fail (self != NULL);
+       _tmp1_ = i;
+       if (_tmp1_ >= 0) {
+               gint _tmp2_;
+               IBusEngineDesc** _tmp3_;
+               gint _tmp3__length1;
+               _tmp2_ = i;
+               _tmp3_ = self->priv->m_engines;
+               _tmp3__length1 = self->priv->m_engines_length1;
+               _tmp0_ = _tmp2_ < _tmp3__length1;
+       } else {
+               _tmp0_ = FALSE;
+       }
+       _tmp4_ = _tmp0_;
+       _vala_assert (_tmp4_, "i >= 0 && i < m_engines.length");
+       _tmp6_ = i;
+       if (_tmp6_ == 0) {
+               gboolean _tmp7_;
+               _tmp7_ = force;
+               _tmp5_ = !_tmp7_;
+       } else {
+               _tmp5_ = FALSE;
+       }
+       _tmp8_ = _tmp5_;
+       if (_tmp8_) {
+               return;
+       }
+       _tmp9_ = self->priv->m_engines;
+       _tmp9__length1 = self->priv->m_engines_length1;
+       _tmp10_ = i;
+       _tmp11_ = _tmp9_[_tmp10_];
+       _tmp12_ = _g_object_ref0 (_tmp11_);
+       engine = _tmp12_;
+       _tmp13_ = engine;
+       panel_set_engine (self, _tmp13_);
+       _g_object_unref0 (engine);
+}
+
+
+static void panel_handle_engine_switch (Panel* self, GdkEvent* event, gboolean revert) {
+       IBusEngineDesc** _tmp0_;
+       gint _tmp0__length1;
+       GdkEvent* _tmp1_;
+       GdkEventKey _tmp2_;
+       guint _tmp3_;
+       guint keyval;
+       GdkEvent* _tmp4_;
+       GdkEventKey _tmp5_;
+       GdkModifierType _tmp6_;
+       guint modifiers;
+       GdkEvent* _tmp7_;
+       GdkEventKey _tmp8_;
+       GdkModifierType _tmp9_;
+       GdkModifierType _tmp10_ = 0;
+       guint primary_modifiers;
+       GdkEvent* _tmp11_;
+       guint _tmp12_;
+       gboolean _tmp13_ = FALSE;
+       gboolean pressed;
+       gboolean _tmp14_;
+       gboolean _tmp16_ = FALSE;
+       gboolean _tmp17_;
+       gboolean _tmp19_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (event != NULL);
+       _tmp0_ = self->priv->m_engines;
+       _tmp0__length1 = self->priv->m_engines_length1;
+       if (_tmp0__length1 <= 1) {
+               return;
+       }
+       _tmp1_ = event;
+       _tmp2_ = _tmp1_->key;
+       _tmp3_ = _tmp2_.keyval;
+       keyval = _tmp3_;
+       _tmp4_ = event;
+       _tmp5_ = _tmp4_->key;
+       _tmp6_ = _tmp5_.state;
+       modifiers = KEYBINDING_MANAGER_MODIFIER_FILTER & _tmp6_;
+       _tmp7_ = event;
+       _tmp8_ = _tmp7_->key;
+       _tmp9_ = _tmp8_.state;
+       _tmp10_ = keybinding_manager_get_primary_modifier ((guint) _tmp9_);
+       primary_modifiers = (guint) _tmp10_;
+       _tmp11_ = event;
+       _tmp12_ = primary_modifiers;
+       _tmp13_ = keybinding_manager_primary_modifier_still_pressed (_tmp11_, _tmp12_);
+       pressed = _tmp13_;
+       _tmp14_ = revert;
+       if (_tmp14_) {
+               guint _tmp15_;
+               _tmp15_ = modifiers;
+               modifiers = _tmp15_ & (~GDK_SHIFT_MASK);
+       }
+       _tmp17_ = pressed;
+       if (_tmp17_) {
+               gint _tmp18_;
+               _tmp18_ = self->priv->m_switcher_delay_time;
+               _tmp16_ = _tmp18_ >= 0;
+       } else {
+               _tmp16_ = FALSE;
+       }
+       _tmp19_ = _tmp16_;
+       if (_tmp19_) {
+               gint _tmp20_ = 0;
+               gboolean _tmp21_;
+               gint _tmp23_;
+               gint i;
+               Switcher* _tmp24_;
+               guint _tmp25_;
+               guint _tmp26_;
+               GdkEvent* _tmp27_;
+               IBusEngineDesc** _tmp28_;
+               gint _tmp28__length1;
+               gint _tmp29_;
+               gint _tmp30_ = 0;
+               gint _tmp31_;
+               _tmp21_ = revert;
+               if (_tmp21_) {
+                       IBusEngineDesc** _tmp22_;
+                       gint _tmp22__length1;
+                       _tmp22_ = self->priv->m_engines;
+                       _tmp22__length1 = self->priv->m_engines_length1;
+                       _tmp20_ = _tmp22__length1 - 1;
+               } else {
+                       _tmp20_ = 1;
+               }
+               _tmp23_ = _tmp20_;
+               i = _tmp23_;
+               self->priv->m_switcher_is_running = TRUE;
+               _tmp24_ = self->priv->m_switcher;
+               _tmp25_ = keyval;
+               _tmp26_ = modifiers;
+               _tmp27_ = event;
+               _tmp28_ = self->priv->m_engines;
+               _tmp28__length1 = self->priv->m_engines_length1;
+               _tmp29_ = i;
+               _tmp30_ = switcher_run (_tmp24_, _tmp25_, _tmp26_, _tmp27_, _tmp28_, _tmp28__length1, _tmp29_);
+               i = _tmp30_;
+               self->priv->m_switcher_is_running = FALSE;
+               _tmp31_ = i;
+               if (_tmp31_ < 0) {
+                       g_debug ("panel.vala:535: switch cancelled");
+               } else {
+                       gint _tmp32_;
+                       IBusEngineDesc** _tmp33_;
+                       gint _tmp33__length1;
+                       gint _tmp34_;
+                       _tmp32_ = i;
+                       _tmp33_ = self->priv->m_engines;
+                       _tmp33__length1 = self->priv->m_engines_length1;
+                       _vala_assert (_tmp32_ < _tmp33__length1, "i < m_engines.length");
+                       _tmp34_ = i;
+                       panel_switch_engine (self, _tmp34_, FALSE);
+               }
+       } else {
+               gint _tmp35_ = 0;
+               gboolean _tmp36_;
+               gint _tmp38_;
+               gint i;
+               gint _tmp39_;
+               _tmp36_ = revert;
+               if (_tmp36_) {
+                       IBusEngineDesc** _tmp37_;
+                       gint _tmp37__length1;
+                       _tmp37_ = self->priv->m_engines;
+                       _tmp37__length1 = self->priv->m_engines_length1;
+                       _tmp35_ = _tmp37__length1 - 1;
+               } else {
+                       _tmp35_ = 1;
+               }
+               _tmp38_ = _tmp35_;
+               i = _tmp38_;
+               _tmp39_ = i;
+               panel_switch_engine (self, _tmp39_, FALSE);
+       }
+}
+
+
+static void _vala_array_add21 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void panel_run_preload_engines (Panel* self, IBusEngineDesc** engines, int engines_length1, gint index) {
+       gchar** _tmp0_ = NULL;
+       gchar** names;
+       gint names_length1;
+       gint _names_size_;
+       IBusEngineDesc** _tmp1_;
+       gint _tmp1__length1;
+       gint _tmp2_;
+       gchar** _tmp3_;
+       gint _tmp3__length1;
+       IBusEngineDesc** _tmp4_;
+       gint _tmp4__length1;
+       gint _tmp5_;
+       IBusEngineDesc* _tmp6_;
+       const gchar* _tmp7_ = NULL;
+       gchar* _tmp8_;
+       IBusBus* _tmp9_;
+       gchar** _tmp10_;
+       gint _tmp10__length1;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = g_new0 (gchar*, 0 + 1);
+       names = _tmp0_;
+       names_length1 = 0;
+       _names_size_ = names_length1;
+       _tmp1_ = engines;
+       _tmp1__length1 = engines_length1;
+       _tmp2_ = index;
+       if (_tmp1__length1 <= _tmp2_) {
+               names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+               return;
+       }
+       _tmp3_ = names;
+       _tmp3__length1 = names_length1;
+       _tmp4_ = engines;
+       _tmp4__length1 = engines_length1;
+       _tmp5_ = index;
+       _tmp6_ = _tmp4_[_tmp5_];
+       _tmp7_ = ibus_engine_desc_get_name (_tmp6_);
+       _tmp8_ = g_strdup (_tmp7_);
+       _vala_array_add21 (&names, &names_length1, &_names_size_, _tmp8_);
+       _tmp9_ = self->priv->m_bus;
+       _tmp10_ = names;
+       _tmp10__length1 = names_length1;
+       ibus_bus_preload_engines_async (_tmp9_, _tmp10_, -1, NULL, NULL, NULL);
+       names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+}
+
+
+static gchar** _vala_array_dup2 (gchar** self, int length) {
+       gchar** result;
+       int i;
+       result = g_new0 (gchar*, length + 1);
+       for (i = 0; i < length; i++) {
+               gchar* _tmp0_;
+               _tmp0_ = g_strdup (self[i]);
+               result[i] = _tmp0_;
+       }
+       return result;
+}
+
+
+static gboolean _vala_string_array_contains (gchar** stack, int stack_length, gchar* needle) {
+       int i;
+       for (i = 0; i < stack_length; i++) {
+               if (g_strcmp0 (stack[i], needle) == 0) {
+                       return TRUE;
+               }
+       }
+       return FALSE;
+}
+
+
+static void _vala_array_add22 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void _vala_array_add23 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static IBusEngineDesc** _vala_array_dup3 (IBusEngineDesc** self, int length) {
+       IBusEngineDesc** result;
+       int i;
+       result = g_new0 (IBusEngineDesc*, length + 1);
+       for (i = 0; i < length; i++) {
+               IBusEngineDesc* _tmp0_;
+               _tmp0_ = _g_object_ref0 (self[i]);
+               result[i] = _tmp0_;
+       }
+       return result;
+}
+
+
+static IBusEngineDesc** _vala_array_dup4 (IBusEngineDesc** self, int length) {
+       IBusEngineDesc** result;
+       int i;
+       result = g_new0 (IBusEngineDesc*, length + 1);
+       for (i = 0; i < length; i++) {
+               IBusEngineDesc* _tmp0_;
+               _tmp0_ = _g_object_ref0 (self[i]);
+               result[i] = _tmp0_;
+       }
+       return result;
+}
+
+
+static void panel_update_engines (Panel* self, gchar** unowned_engine_names, int unowned_engine_names_length1, gchar** order_names, int order_names_length1) {
+       gchar** _tmp0_;
+       gint _tmp0__length1;
+       gchar** _tmp1_;
+       gint _tmp1__length1;
+       gchar** engine_names;
+       gint engine_names_length1;
+       gint _engine_names_size_;
+       gboolean _tmp2_ = FALSE;
+       gchar** _tmp3_;
+       gint _tmp3__length1;
+       gboolean _tmp5_;
+       gchar** _tmp8_ = NULL;
+       gchar** names;
+       gint names_length1;
+       gint _names_size_;
+       gchar** _tmp9_;
+       gint _tmp9__length1;
+       gchar** _tmp16_;
+       gint _tmp16__length1;
+       IBusBus* _tmp23_;
+       gchar** _tmp24_;
+       gint _tmp24__length1;
+       IBusEngineDesc** _tmp25_;
+       IBusEngineDesc** _tmp26_ = NULL;
+       IBusEngineDesc** engines;
+       gint engines_length1;
+       gint _engines_size_;
+       IBusEngineDesc** _tmp27_;
+       gint _tmp27__length1;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = unowned_engine_names;
+       _tmp0__length1 = unowned_engine_names_length1;
+       _tmp1_ = (_tmp0_ != NULL) ? _vala_array_dup2 (_tmp0_, _tmp0__length1) : ((gpointer) _tmp0_);
+       _tmp1__length1 = _tmp0__length1;
+       engine_names = _tmp1_;
+       engine_names_length1 = _tmp1__length1;
+       _engine_names_size_ = engine_names_length1;
+       _tmp3_ = engine_names;
+       _tmp3__length1 = engine_names_length1;
+       if (_tmp3_ == NULL) {
+               _tmp2_ = TRUE;
+       } else {
+               gchar** _tmp4_;
+               gint _tmp4__length1;
+               _tmp4_ = engine_names;
+               _tmp4__length1 = engine_names_length1;
+               _tmp2_ = _tmp4__length1 == 0;
+       }
+       _tmp5_ = _tmp2_;
+       if (_tmp5_) {
+               gchar* _tmp6_;
+               gchar** _tmp7_ = NULL;
+               _tmp6_ = g_strdup ("xkb:us::eng");
+               _tmp7_ = g_new0 (gchar*, 1 + 1);
+               _tmp7_[0] = _tmp6_;
+               engine_names = (_vala_array_free (engine_names, engine_names_length1, (GDestroyNotify) g_free), NULL);
+               engine_names = _tmp7_;
+               engine_names_length1 = 1;
+               _engine_names_size_ = engine_names_length1;
+       }
+       _tmp8_ = g_new0 (gchar*, 0 + 1);
+       names = _tmp8_;
+       names_length1 = 0;
+       _names_size_ = names_length1;
+       _tmp9_ = order_names;
+       _tmp9__length1 = order_names_length1;
+       {
+               gchar** name_collection = NULL;
+               gint name_collection_length1 = 0;
+               gint _name_collection_size_ = 0;
+               gint name_it = 0;
+               name_collection = _tmp9_;
+               name_collection_length1 = _tmp9__length1;
+               for (name_it = 0; name_it < _tmp9__length1; name_it = name_it + 1) {
+                       gchar* _tmp10_;
+                       gchar* name = NULL;
+                       _tmp10_ = g_strdup (name_collection[name_it]);
+                       name = _tmp10_;
+                       {
+                               const gchar* _tmp11_;
+                               gchar** _tmp12_;
+                               gint _tmp12__length1;
+                               _tmp11_ = name;
+                               _tmp12_ = engine_names;
+                               _tmp12__length1 = engine_names_length1;
+                               if (_vala_string_array_contains (_tmp12_, _tmp12__length1, _tmp11_)) {
+                                       gchar** _tmp13_;
+                                       gint _tmp13__length1;
+                                       const gchar* _tmp14_;
+                                       gchar* _tmp15_;
+                                       _tmp13_ = names;
+                                       _tmp13__length1 = names_length1;
+                                       _tmp14_ = name;
+                                       _tmp15_ = g_strdup (_tmp14_);
+                                       _vala_array_add22 (&names, &names_length1, &_names_size_, _tmp15_);
+                               }
+                               _g_free0 (name);
+                       }
+               }
+       }
+       _tmp16_ = engine_names;
+       _tmp16__length1 = engine_names_length1;
+       {
+               gchar** name_collection = NULL;
+               gint name_collection_length1 = 0;
+               gint _name_collection_size_ = 0;
+               gint name_it = 0;
+               name_collection = _tmp16_;
+               name_collection_length1 = _tmp16__length1;
+               for (name_it = 0; name_it < _tmp16__length1; name_it = name_it + 1) {
+                       gchar* _tmp17_;
+                       gchar* name = NULL;
+                       _tmp17_ = g_strdup (name_collection[name_it]);
+                       name = _tmp17_;
+                       {
+                               const gchar* _tmp18_;
+                               gchar** _tmp19_;
+                               gint _tmp19__length1;
+                               gchar** _tmp20_;
+                               gint _tmp20__length1;
+                               const gchar* _tmp21_;
+                               gchar* _tmp22_;
+                               _tmp18_ = name;
+                               _tmp19_ = names;
+                               _tmp19__length1 = names_length1;
+                               if (_vala_string_array_contains (_tmp19_, _tmp19__length1, _tmp18_)) {
+                                       _g_free0 (name);
+                                       continue;
+                               }
+                               _tmp20_ = names;
+                               _tmp20__length1 = names_length1;
+                               _tmp21_ = name;
+                               _tmp22_ = g_strdup (_tmp21_);
+                               _vala_array_add23 (&names, &names_length1, &_names_size_, _tmp22_);
+                               _g_free0 (name);
+                       }
+               }
+       }
+       _tmp23_ = self->priv->m_bus;
+       _tmp24_ = names;
+       _tmp24__length1 = names_length1;
+       _tmp26_ = _tmp25_ = ibus_bus_get_engines_by_names (_tmp23_, _tmp24_);
+       engines = _tmp26_;
+       engines_length1 = _vala_array_length (_tmp25_);
+       _engines_size_ = engines_length1;
+       _tmp27_ = self->priv->m_engines;
+       _tmp27__length1 = self->priv->m_engines_length1;
+       if (_tmp27__length1 == 0) {
+               IBusEngineDesc** _tmp28_;
+               gint _tmp28__length1;
+               IBusEngineDesc** _tmp29_;
+               gint _tmp29__length1;
+               IBusEngineDesc** _tmp30_;
+               gint _tmp30__length1;
+               _tmp28_ = engines;
+               _tmp28__length1 = engines_length1;
+               _tmp29_ = (_tmp28_ != NULL) ? _vala_array_dup3 (_tmp28_, _tmp28__length1) : ((gpointer) _tmp28_);
+               _tmp29__length1 = _tmp28__length1;
+               self->priv->m_engines = (_vala_array_free (self->priv->m_engines, self->priv->m_engines_length1, (GDestroyNotify) g_object_unref), NULL);
+               self->priv->m_engines = _tmp29_;
+               self->priv->m_engines_length1 = _tmp29__length1;
+               self->priv->_m_engines_size_ = self->priv->m_engines_length1;
+               panel_switch_engine (self, 0, TRUE);
+               _tmp30_ = engines;
+               _tmp30__length1 = engines_length1;
+               panel_run_preload_engines (self, _tmp30_, _tmp30__length1, 1);
+       } else {
+               IBusEngineDesc** _tmp31_;
+               gint _tmp31__length1;
+               IBusEngineDesc* _tmp32_;
+               IBusEngineDesc* _tmp33_;
+               IBusEngineDesc* current_engine;
+               IBusEngineDesc** _tmp34_;
+               gint _tmp34__length1;
+               IBusEngineDesc** _tmp35_;
+               gint _tmp35__length1;
+               gint i = 0;
+               IBusEngineDesc** _tmp51_;
+               gint _tmp51__length1;
+               _tmp31_ = self->priv->m_engines;
+               _tmp31__length1 = self->priv->m_engines_length1;
+               _tmp32_ = _tmp31_[0];
+               _tmp33_ = _g_object_ref0 (_tmp32_);
+               current_engine = _tmp33_;
+               _tmp34_ = engines;
+               _tmp34__length1 = engines_length1;
+               _tmp35_ = (_tmp34_ != NULL) ? _vala_array_dup4 (_tmp34_, _tmp34__length1) : ((gpointer) _tmp34_);
+               _tmp35__length1 = _tmp34__length1;
+               self->priv->m_engines = (_vala_array_free (self->priv->m_engines, self->priv->m_engines_length1, (GDestroyNotify) g_object_unref), NULL);
+               self->priv->m_engines = _tmp35_;
+               self->priv->m_engines_length1 = _tmp35__length1;
+               self->priv->_m_engines_size_ = self->priv->m_engines_length1;
+               {
+                       gboolean _tmp36_;
+                       i = 0;
+                       _tmp36_ = TRUE;
+                       while (TRUE) {
+                               gboolean _tmp37_;
+                               gint _tmp39_;
+                               IBusEngineDesc** _tmp40_;
+                               gint _tmp40__length1;
+                               IBusEngineDesc* _tmp41_;
+                               const gchar* _tmp42_ = NULL;
+                               IBusEngineDesc** _tmp43_;
+                               gint _tmp43__length1;
+                               gint _tmp44_;
+                               IBusEngineDesc* _tmp45_;
+                               const gchar* _tmp46_ = NULL;
+                               _tmp37_ = _tmp36_;
+                               if (!_tmp37_) {
+                                       gint _tmp38_;
+                                       _tmp38_ = i;
+                                       i = _tmp38_ + 1;
+                               }
+                               _tmp36_ = FALSE;
+                               _tmp39_ = i;
+                               _tmp40_ = self->priv->m_engines;
+                               _tmp40__length1 = self->priv->m_engines_length1;
+                               if (!(_tmp39_ < _tmp40__length1)) {
+                                       break;
+                               }
+                               _tmp41_ = current_engine;
+                               _tmp42_ = ibus_engine_desc_get_name (_tmp41_);
+                               _tmp43_ = engines;
+                               _tmp43__length1 = engines_length1;
+                               _tmp44_ = i;
+                               _tmp45_ = _tmp43_[_tmp44_];
+                               _tmp46_ = ibus_engine_desc_get_name (_tmp45_);
+                               if (g_strcmp0 (_tmp42_, _tmp46_) == 0) {
+                                       gint _tmp47_;
+                                       gint _tmp48_;
+                                       _tmp47_ = i;
+                                       panel_switch_engine (self, _tmp47_, FALSE);
+                                       _tmp48_ = i;
+                                       if (_tmp48_ != 0) {
+                                               IBusEngineDesc** _tmp49_;
+                                               gint _tmp49__length1;
+                                               _tmp49_ = engines;
+                                               _tmp49__length1 = engines_length1;
+                                               panel_run_preload_engines (self, _tmp49_, _tmp49__length1, 0);
+                                       } else {
+                                               IBusEngineDesc** _tmp50_;
+                                               gint _tmp50__length1;
+                                               _tmp50_ = engines;
+                                               _tmp50__length1 = engines_length1;
+                                               panel_run_preload_engines (self, _tmp50_, _tmp50__length1, 1);
+                                       }
+                                       _g_object_unref0 (current_engine);
+                                       engines = (_vala_array_free (engines, engines_length1, (GDestroyNotify) g_object_unref), NULL);
+                                       names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+                                       engine_names = (_vala_array_free (engine_names, engine_names_length1, (GDestroyNotify) g_free), NULL);
+                                       return;
+                               }
+                       }
+               }
+               panel_switch_engine (self, 0, TRUE);
+               _tmp51_ = engines;
+               _tmp51__length1 = engines_length1;
+               panel_run_preload_engines (self, _tmp51_, _tmp51__length1, 1);
+               _g_object_unref0 (current_engine);
+       }
+       engines = (_vala_array_free (engines, engines_length1, (GDestroyNotify) g_object_unref), NULL);
+       names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+       engine_names = (_vala_array_free (engine_names, engine_names_length1, (GDestroyNotify) g_free), NULL);
+}
+
+
+static void __lambda29_ (Panel* self, GPid pid, gint state) {
+       GPid _tmp0_;
+       GPid _tmp1_;
+       GPid _tmp2_;
+       _tmp0_ = pid;
+       _tmp1_ = self->priv->m_setup_pid;
+       if (_tmp0_ != _tmp1_) {
+               return;
+       }
+       self->priv->m_setup_pid = (GPid) 0;
+       _tmp2_ = pid;
+       g_spawn_close_pid (_tmp2_);
+}
+
+
+static void ___lambda29__gchild_watch_func (GPid pid, gint status, gpointer self) {
+       __lambda29_ (self, pid, status);
+}
+
+
+static void panel_show_setup_dialog (Panel* self) {
+       GPid _tmp0_;
+       gchar* _tmp3_ = NULL;
+       gchar* binary;
+       GPid _tmp13_;
+       GError * _inner_error_ = NULL;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_setup_pid;
+       if (_tmp0_ != ((GPid) 0)) {
+               GPid _tmp1_;
+               gint _tmp2_ = 0;
+               _tmp1_ = self->priv->m_setup_pid;
+               _tmp2_ = kill ((pid_t) _tmp1_, SIGUSR1);
+               if (_tmp2_ == 0) {
+                       return;
+               }
+               self->priv->m_setup_pid = (GPid) 0;
+       }
+       _tmp3_ = g_build_filename (BINDIR, "ibus-setup", NULL);
+       binary = _tmp3_;
+       {
+               const gchar* _tmp4_;
+               gchar* _tmp5_;
+               gchar* _tmp6_;
+               gchar** _tmp7_ = NULL;
+               gchar** _tmp8_;
+               gint _tmp8__length1;
+               GPid _tmp9_ = 0;
+               _tmp4_ = binary;
+               _tmp5_ = g_strdup (_tmp4_);
+               _tmp6_ = g_strdup ("ibus-setup");
+               _tmp7_ = g_new0 (gchar*, 2 + 1);
+               _tmp7_[0] = _tmp5_;
+               _tmp7_[1] = _tmp6_;
+               _tmp8_ = _tmp7_;
+               _tmp8__length1 = 2;
+               g_spawn_async (NULL, _tmp8_, NULL, G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, &_tmp9_, &_inner_error_);
+               self->priv->m_setup_pid = _tmp9_;
+               _tmp8_ = (_vala_array_free (_tmp8_, _tmp8__length1, (GDestroyNotify) g_free), NULL);
+               if (_inner_error_ != NULL) {
+                       if (_inner_error_->domain == G_SPAWN_ERROR) {
+                               goto __catch5_g_spawn_error;
+                       }
+                       _g_free0 (binary);
+                       g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+                       g_clear_error (&_inner_error_);
+                       return;
+               }
+       }
+       goto __finally5;
+       __catch5_g_spawn_error:
+       {
+               GError* e = NULL;
+               const gchar* _tmp10_;
+               GError* _tmp11_;
+               const gchar* _tmp12_;
+               e = _inner_error_;
+               _inner_error_ = NULL;
+               _tmp10_ = binary;
+               _tmp11_ = e;
+               _tmp12_ = _tmp11_->message;
+               g_warning ("panel.vala:620: Execute %s failed! %s", _tmp10_, _tmp12_);
+               self->priv->m_setup_pid = (GPid) 0;
+               _g_error_free0 (e);
+       }
+       __finally5:
+       if (_inner_error_ != NULL) {
+               _g_free0 (binary);
+               g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+               g_clear_error (&_inner_error_);
+               return;
+       }
+       _tmp13_ = self->priv->m_setup_pid;
+       g_child_watch_add_full (G_PRIORITY_DEFAULT_IDLE, _tmp13_, ___lambda29__gchild_watch_func, g_object_ref (self), g_object_unref);
+       _g_free0 (binary);
+}
+
+
+static void panel_show_about_dialog (Panel* self) {
+       GtkAboutDialog* _tmp0_;
+       GtkAboutDialog* _tmp24_;
+       gboolean _tmp25_ = FALSE;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_about_dialog;
+       if (_tmp0_ == NULL) {
+               GtkAboutDialog* _tmp1_;
+               GtkAboutDialog* _tmp2_;
+               GtkAboutDialog* _tmp3_;
+               const gchar* _tmp4_ = NULL;
+               gchar* _tmp5_;
+               gchar* copyright;
+               GtkAboutDialog* _tmp6_;
+               const gchar* _tmp7_;
+               GtkAboutDialog* _tmp8_;
+               GtkAboutDialog* _tmp9_;
+               const gchar* _tmp10_ = NULL;
+               GtkAboutDialog* _tmp11_;
+               GtkAboutDialog* _tmp12_;
+               gchar* _tmp13_;
+               gchar** _tmp14_ = NULL;
+               gchar** _tmp15_;
+               gint _tmp15__length1;
+               GtkAboutDialog* _tmp16_;
+               gchar* _tmp17_;
+               gchar** _tmp18_ = NULL;
+               gchar** _tmp19_;
+               gint _tmp19__length1;
+               GtkAboutDialog* _tmp20_;
+               const gchar* _tmp21_ = NULL;
+               GtkAboutDialog* _tmp22_;
+               GtkAboutDialog* _tmp23_;
+               _tmp1_ = (GtkAboutDialog*) gtk_about_dialog_new ();
+               g_object_ref_sink (_tmp1_);
+               _g_object_unref0 (self->priv->m_about_dialog);
+               self->priv->m_about_dialog = _tmp1_;
+               _tmp2_ = self->priv->m_about_dialog;
+               gtk_about_dialog_set_program_name (_tmp2_, "IBus");
+               _tmp3_ = self->priv->m_about_dialog;
+               gtk_about_dialog_set_version (_tmp3_, PACKAGE_VERSION);
+               _tmp4_ = _ ("Copyright (c) 2007-2012 Peng Huang\n" "Copyright (c) 2007-2010 Red Hat, Inc.\n");
+               _tmp5_ = g_strdup (_tmp4_);
+               copyright = _tmp5_;
+               _tmp6_ = self->priv->m_about_dialog;
+               _tmp7_ = copyright;
+               gtk_about_dialog_set_copyright (_tmp6_, _tmp7_);
+               _tmp8_ = self->priv->m_about_dialog;
+               gtk_about_dialog_set_license (_tmp8_, "LGPL");
+               _tmp9_ = self->priv->m_about_dialog;
+               _tmp10_ = _ ("IBus is an intelligent input bus for Linux/Unix.");
+               gtk_about_dialog_set_comments (_tmp9_, _tmp10_);
+               _tmp11_ = self->priv->m_about_dialog;
+               gtk_about_dialog_set_website (_tmp11_, "http://code.google.com/p/ibus");
+               _tmp12_ = self->priv->m_about_dialog;
+               _tmp13_ = g_strdup ("Peng Huang <shawn.p.huang@gmail.com>");
+               _tmp14_ = g_new0 (gchar*, 1 + 1);
+               _tmp14_[0] = _tmp13_;
+               _tmp15_ = _tmp14_;
+               _tmp15__length1 = 1;
+               gtk_about_dialog_set_authors (_tmp12_, _tmp15_);
+               _tmp15_ = (_vala_array_free (_tmp15_, _tmp15__length1, (GDestroyNotify) g_free), NULL);
+               _tmp16_ = self->priv->m_about_dialog;
+               _tmp17_ = g_strdup ("Peng Huang <shawn.p.huang@gmail.com>");
+               _tmp18_ = g_new0 (gchar*, 1 + 1);
+               _tmp18_[0] = _tmp17_;
+               _tmp19_ = _tmp18_;
+               _tmp19__length1 = 1;
+               gtk_about_dialog_set_documenters (_tmp16_, _tmp19_);
+               _tmp19_ = (_vala_array_free (_tmp19_, _tmp19__length1, (GDestroyNotify) g_free), NULL);
+               _tmp20_ = self->priv->m_about_dialog;
+               _tmp21_ = _ ("translator-credits");
+               gtk_about_dialog_set_translator_credits (_tmp20_, _tmp21_);
+               _tmp22_ = self->priv->m_about_dialog;
+               gtk_about_dialog_set_logo_icon_name (_tmp22_, "ibus");
+               _tmp23_ = self->priv->m_about_dialog;
+               gtk_window_set_icon_name ((GtkWindow*) _tmp23_, "ibus");
+               _g_free0 (copyright);
+       }
+       _tmp24_ = self->priv->m_about_dialog;
+       _tmp25_ = gtk_widget_get_visible ((GtkWidget*) _tmp24_);
+       if (!_tmp25_) {
+               GtkAboutDialog* _tmp26_;
+               GtkAboutDialog* _tmp27_;
+               _tmp26_ = self->priv->m_about_dialog;
+               gtk_dialog_run ((GtkDialog*) _tmp26_);
+               _tmp27_ = self->priv->m_about_dialog;
+               gtk_widget_hide ((GtkWidget*) _tmp27_);
+       } else {
+               GtkAboutDialog* _tmp28_;
+               _tmp28_ = self->priv->m_about_dialog;
+               gtk_window_present ((GtkWindow*) _tmp28_);
+       }
+}
+
+
+static void ___lambda28_ (Panel* self, GtkMenuItem* i) {
+       g_return_if_fail (i != NULL);
+       panel_show_setup_dialog (self);
+}
+
+
+static void ____lambda28__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+       ___lambda28_ (self, _sender);
+}
+
+
+static void ___lambda30_ (Panel* self, GtkMenuItem* i) {
+       g_return_if_fail (i != NULL);
+       panel_show_about_dialog (self);
+}
+
+
+static void ____lambda30__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+       ___lambda30_ (self, _sender);
+}
+
+
+static void ___lambda31_ (Panel* self, GtkMenuItem* i) {
+       IBusBus* _tmp0_;
+       g_return_if_fail (i != NULL);
+       _tmp0_ = self->priv->m_bus;
+       ibus_bus_exit (_tmp0_, TRUE);
+}
+
+
+static void ____lambda31__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+       ___lambda31_ (self, _sender);
+}
+
+
+static void ___lambda32_ (Panel* self, GtkMenuItem* i) {
+       IBusBus* _tmp0_;
+       g_return_if_fail (i != NULL);
+       _tmp0_ = self->priv->m_bus;
+       ibus_bus_exit (_tmp0_, FALSE);
+}
+
+
+static void ____lambda32__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+       ___lambda32_ (self, _sender);
+}
+
+
+static void _gtk_status_icon_position_menu_gtk_menu_position_func (GtkMenu* menu, gint* x, gint* y, gboolean* push_in, gpointer self) {
+       gtk_status_icon_position_menu (menu, x, y, push_in, self);
+}
+
+
+static void panel_status_icon_popup_menu_cb (Panel* self, GtkStatusIcon* status_icon, guint button, guint activate_time) {
+       GtkMenu* _tmp0_;
+       GtkMenu* _tmp24_;
+       GtkStatusIcon* _tmp25_;
+       guint32 _tmp26_ = 0U;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (status_icon != NULL);
+       _tmp0_ = self->priv->m_sys_menu;
+       if (_tmp0_ == NULL) {
+               GtkImageMenuItem* item = NULL;
+               GtkMenu* _tmp1_;
+               GtkImageMenuItem* _tmp2_;
+               GtkImageMenuItem* _tmp3_;
+               GtkMenu* _tmp4_;
+               GtkImageMenuItem* _tmp5_;
+               GtkImageMenuItem* _tmp6_;
+               GtkImageMenuItem* _tmp7_;
+               GtkMenu* _tmp8_;
+               GtkImageMenuItem* _tmp9_;
+               GtkMenu* _tmp10_;
+               GtkSeparatorMenuItem* _tmp11_;
+               GtkSeparatorMenuItem* _tmp12_;
+               GtkImageMenuItem* _tmp13_;
+               GtkImageMenuItem* _tmp14_;
+               const gchar* _tmp15_ = NULL;
+               GtkImageMenuItem* _tmp16_;
+               GtkMenu* _tmp17_;
+               GtkImageMenuItem* _tmp18_;
+               GtkImageMenuItem* _tmp19_;
+               GtkImageMenuItem* _tmp20_;
+               GtkMenu* _tmp21_;
+               GtkImageMenuItem* _tmp22_;
+               GtkMenu* _tmp23_;
+               _tmp1_ = (GtkMenu*) gtk_menu_new ();
+               g_object_ref_sink (_tmp1_);
+               _g_object_unref0 (self->priv->m_sys_menu);
+               self->priv->m_sys_menu = _tmp1_;
+               _tmp2_ = (GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_PREFERENCES, NULL);
+               g_object_ref_sink (_tmp2_);
+               _g_object_unref0 (item);
+               item = _tmp2_;
+               _tmp3_ = item;
+               g_signal_connect_object ((GtkMenuItem*) _tmp3_, "activate", (GCallback) ____lambda28__gtk_menu_item_activate, self, 0);
+               _tmp4_ = self->priv->m_sys_menu;
+               _tmp5_ = item;
+               gtk_menu_shell_append ((GtkMenuShell*) _tmp4_, (GtkWidget*) ((GtkMenuItem*) _tmp5_));
+               _tmp6_ = (GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_ABOUT, NULL);
+               g_object_ref_sink (_tmp6_);
+               _g_object_unref0 (item);
+               item = _tmp6_;
+               _tmp7_ = item;
+               g_signal_connect_object ((GtkMenuItem*) _tmp7_, "activate", (GCallback) ____lambda30__gtk_menu_item_activate, self, 0);
+               _tmp8_ = self->priv->m_sys_menu;
+               _tmp9_ = item;
+               gtk_menu_shell_append ((GtkMenuShell*) _tmp8_, (GtkWidget*) ((GtkMenuItem*) _tmp9_));
+               _tmp10_ = self->priv->m_sys_menu;
+               _tmp11_ = (GtkSeparatorMenuItem*) gtk_separator_menu_item_new ();
+               g_object_ref_sink (_tmp11_);
+               _tmp12_ = _tmp11_;
+               gtk_menu_shell_append ((GtkMenuShell*) _tmp10_, (GtkWidget*) ((GtkMenuItem*) _tmp12_));
+               _g_object_unref0 (_tmp12_);
+               _tmp13_ = (GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_REFRESH, NULL);
+               g_object_ref_sink (_tmp13_);
+               _g_object_unref0 (item);
+               item = _tmp13_;
+               _tmp14_ = item;
+               _tmp15_ = _ ("Restart");
+               gtk_menu_item_set_label ((GtkMenuItem*) _tmp14_, _tmp15_);
+               _tmp16_ = item;
+               g_signal_connect_object ((GtkMenuItem*) _tmp16_, "activate", (GCallback) ____lambda31__gtk_menu_item_activate, self, 0);
+               _tmp17_ = self->priv->m_sys_menu;
+               _tmp18_ = item;
+               gtk_menu_shell_append ((GtkMenuShell*) _tmp17_, (GtkWidget*) ((GtkMenuItem*) _tmp18_));
+               _tmp19_ = (GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_QUIT, NULL);
+               g_object_ref_sink (_tmp19_);
+               _g_object_unref0 (item);
+               item = _tmp19_;
+               _tmp20_ = item;
+               g_signal_connect_object ((GtkMenuItem*) _tmp20_, "activate", (GCallback) ____lambda32__gtk_menu_item_activate, self, 0);
+               _tmp21_ = self->priv->m_sys_menu;
+               _tmp22_ = item;
+               gtk_menu_shell_append ((GtkMenuShell*) _tmp21_, (GtkWidget*) ((GtkMenuItem*) _tmp22_));
+               _tmp23_ = self->priv->m_sys_menu;
+               gtk_widget_show_all ((GtkWidget*) _tmp23_);
+               _g_object_unref0 (item);
+       }
+       _tmp24_ = self->priv->m_sys_menu;
+       _tmp25_ = self->priv->m_status_icon;
+       _tmp26_ = gtk_get_current_event_time ();
+       gtk_menu_popup (_tmp24_, NULL, NULL, _gtk_status_icon_position_menu_gtk_menu_position_func, _tmp25_, (guint) 0, _tmp26_);
+}
+
+
+static Block4Data* block4_data_ref (Block4Data* _data4_) {
+       g_atomic_int_inc (&_data4_->_ref_count_);
+       return _data4_;
+}
+
+
+static void block4_data_unref (void * _userdata_) {
+       Block4Data* _data4_;
+       _data4_ = (Block4Data*) _userdata_;
+       if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
+               Panel * self;
+               self = _data4_->self;
+               _g_object_unref0 (_data4_->e);
+               _g_object_unref0 (self);
+               g_slice_free (Block4Data, _data4_);
+       }
+}
+
+
+static void ____lambda33_ (Block4Data* _data4_, GtkMenuItem* item) {
+       Panel * self;
+       self = _data4_->self;
+       g_return_if_fail (item != NULL);
+       {
+               gint i;
+               i = 0;
+               {
+                       gboolean _tmp0_;
+                       _tmp0_ = TRUE;
+                       while (TRUE) {
+                               gboolean _tmp1_;
+                               gint _tmp3_;
+                               IBusEngineDesc** _tmp4_;
+                               gint _tmp4__length1;
+                               IBusEngineDesc* _tmp5_;
+                               IBusEngineDesc** _tmp6_;
+                               gint _tmp6__length1;
+                               gint _tmp7_;
+                               IBusEngineDesc* _tmp8_;
+                               _tmp1_ = _tmp0_;
+                               if (!_tmp1_) {
+                                       gint _tmp2_;
+                                       _tmp2_ = i;
+                                       i = _tmp2_ + 1;
+                               }
+                               _tmp0_ = FALSE;
+                               _tmp3_ = i;
+                               _tmp4_ = self->priv->m_engines;
+                               _tmp4__length1 = self->priv->m_engines_length1;
+                               if (!(_tmp3_ < _tmp4__length1)) {
+                                       break;
+                               }
+                               _tmp5_ = _data4_->e;
+                               _tmp6_ = self->priv->m_engines;
+                               _tmp6__length1 = self->priv->m_engines_length1;
+                               _tmp7_ = i;
+                               _tmp8_ = _tmp6_[_tmp7_];
+                               if (_tmp5_ == _tmp8_) {
+                                       gint _tmp9_;
+                                       _tmp9_ = i;
+                                       panel_switch_engine (self, _tmp9_, FALSE);
+                                       break;
+                               }
+                       }
+               }
+       }
+}
+
+
+static void _____lambda33__gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self) {
+       ____lambda33_ (self, _sender);
+}
+
+
+static void panel_status_icon_activate_cb (Panel* self, GtkStatusIcon* status_icon) {
+       GtkMenu* _tmp0_;
+       PropertyManager* _tmp1_;
+       GtkMenu* _tmp2_;
+       GtkMenu* _tmp3_;
+       GtkSeparatorMenuItem* _tmp4_;
+       GtkSeparatorMenuItem* _tmp5_;
+       IBusEngineDesc** _tmp6_;
+       gint _tmp6__length1;
+       GtkMenu* _tmp33_;
+       GtkMenu* _tmp34_;
+       GtkMenu* _tmp35_;
+       GtkStatusIcon* _tmp36_;
+       guint32 _tmp37_ = 0U;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (status_icon != NULL);
+       _tmp0_ = (GtkMenu*) gtk_menu_new ();
+       g_object_ref_sink (_tmp0_);
+       _g_object_unref0 (self->priv->m_ime_menu);
+       self->priv->m_ime_menu = _tmp0_;
+       _tmp1_ = self->priv->m_property_manager;
+       _tmp2_ = self->priv->m_ime_menu;
+       property_manager_create_menu_items (_tmp1_, _tmp2_);
+       _tmp3_ = self->priv->m_ime_menu;
+       _tmp4_ = (GtkSeparatorMenuItem*) gtk_separator_menu_item_new ();
+       g_object_ref_sink (_tmp4_);
+       _tmp5_ = _tmp4_;
+       gtk_menu_shell_append ((GtkMenuShell*) _tmp3_, (GtkWidget*) ((GtkMenuItem*) _tmp5_));
+       _g_object_unref0 (_tmp5_);
+       _tmp6_ = self->priv->m_engines;
+       _tmp6__length1 = self->priv->m_engines_length1;
+       {
+               IBusEngineDesc** engine_collection = NULL;
+               gint engine_collection_length1 = 0;
+               gint _engine_collection_size_ = 0;
+               gint engine_it = 0;
+               engine_collection = _tmp6_;
+               engine_collection_length1 = _tmp6__length1;
+               for (engine_it = 0; engine_it < _tmp6__length1; engine_it = engine_it + 1) {
+                       IBusEngineDesc* _tmp7_;
+                       IBusEngineDesc* engine = NULL;
+                       _tmp7_ = _g_object_ref0 (engine_collection[engine_it]);
+                       engine = _tmp7_;
+                       {
+                               Block4Data* _data4_;
+                               IBusEngineDesc* _tmp8_;
+                               const gchar* _tmp9_ = NULL;
+                               gchar* _tmp10_;
+                               gchar* language;
+                               IBusEngineDesc* _tmp11_;
+                               const gchar* _tmp12_ = NULL;
+                               gchar* _tmp13_;
+                               gchar* longname;
+                               const gchar* _tmp14_;
+                               const gchar* _tmp15_ = NULL;
+                               const gchar* _tmp16_;
+                               gchar* _tmp17_ = NULL;
+                               gchar* _tmp18_;
+                               GtkImageMenuItem* _tmp19_;
+                               GtkImageMenuItem* _tmp20_;
+                               GtkImageMenuItem* item;
+                               IBusEngineDesc* _tmp21_;
+                               const gchar* _tmp22_ = NULL;
+                               IBusEngineDesc* _tmp28_;
+                               IBusEngineDesc* _tmp29_;
+                               GtkImageMenuItem* _tmp30_;
+                               GtkMenu* _tmp31_;
+                               GtkImageMenuItem* _tmp32_;
+                               _data4_ = g_slice_new0 (Block4Data);
+                               _data4_->_ref_count_ = 1;
+                               _data4_->self = g_object_ref (self);
+                               _tmp8_ = engine;
+                               _tmp9_ = ibus_engine_desc_get_language (_tmp8_);
+                               _tmp10_ = g_strdup (_tmp9_);
+                               language = _tmp10_;
+                               _tmp11_ = engine;
+                               _tmp12_ = ibus_engine_desc_get_longname (_tmp11_);
+                               _tmp13_ = g_strdup (_tmp12_);
+                               longname = _tmp13_;
+                               _tmp14_ = language;
+                               _tmp15_ = ibus_get_language_name (_tmp14_);
+                               _tmp16_ = longname;
+                               _tmp17_ = g_strdup_printf ("%s - %s", _tmp15_, _tmp16_);
+                               _tmp18_ = _tmp17_;
+                               _tmp19_ = (GtkImageMenuItem*) gtk_image_menu_item_new_with_label (_tmp18_);
+                               g_object_ref_sink (_tmp19_);
+                               _tmp20_ = _tmp19_;
+                               _g_free0 (_tmp18_);
+                               item = _tmp20_;
+                               _tmp21_ = engine;
+                               _tmp22_ = ibus_engine_desc_get_icon (_tmp21_);
+                               if (g_strcmp0 (_tmp22_, "") != 0) {
+                                       IBusEngineDesc* _tmp23_;
+                                       const gchar* _tmp24_ = NULL;
+                                       IconWidget* _tmp25_;
+                                       IconWidget* icon;
+                                       GtkImageMenuItem* _tmp26_;
+                                       IconWidget* _tmp27_;
+                                       _tmp23_ = engine;
+                                       _tmp24_ = ibus_engine_desc_get_icon (_tmp23_);
+                                       _tmp25_ = icon_widget_new (_tmp24_, GTK_ICON_SIZE_MENU);
+                                       g_object_ref_sink (_tmp25_);
+                                       icon = _tmp25_;
+                                       _tmp26_ = item;
+                                       _tmp27_ = icon;
+                                       gtk_image_menu_item_set_image (_tmp26_, (GtkWidget*) _tmp27_);
+                                       _g_object_unref0 (icon);
+                               }
+                               _tmp28_ = engine;
+                               _tmp29_ = _g_object_ref0 (_tmp28_);
+                               _data4_->e = _tmp29_;
+                               _tmp30_ = item;
+                               g_signal_connect_data ((GtkMenuItem*) _tmp30_, "activate", (GCallback) _____lambda33__gtk_menu_item_activate, block4_data_ref (_data4_), (GClosureNotify) block4_data_unref, 0);
+                               _tmp31_ = self->priv->m_ime_menu;
+                               _tmp32_ = item;
+                               gtk_container_add ((GtkContainer*) _tmp31_, (GtkWidget*) _tmp32_);
+                               _g_object_unref0 (item);
+                               _g_free0 (longname);
+                               _g_free0 (language);
+                               _g_object_unref0 (engine);
+                               block4_data_unref (_data4_);
+                               _data4_ = NULL;
+                       }
+               }
+       }
+       _tmp33_ = self->priv->m_ime_menu;
+       gtk_widget_show_all ((GtkWidget*) _tmp33_);
+       _tmp34_ = self->priv->m_ime_menu;
+       gtk_menu_shell_set_take_focus ((GtkMenuShell*) _tmp34_, FALSE);
+       _tmp35_ = self->priv->m_ime_menu;
+       _tmp36_ = self->priv->m_status_icon;
+       _tmp37_ = gtk_get_current_event_time ();
+       gtk_menu_popup (_tmp35_, NULL, NULL, _gtk_status_icon_position_menu_gtk_menu_position_func, _tmp36_, (guint) 0, _tmp37_);
+}
+
+
+static void panel_real_set_cursor_location (IBusPanelService* base, gint x, gint y, gint width, gint height) {
+       Panel * self;
+       CandidatePanel* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       gint _tmp3_;
+       gint _tmp4_;
+       self = (Panel*) base;
+       _tmp0_ = self->priv->m_candidate_panel;
+       _tmp1_ = x;
+       _tmp2_ = y;
+       _tmp3_ = width;
+       _tmp4_ = height;
+       candidate_panel_set_cursor_location (_tmp0_, _tmp1_, _tmp2_, _tmp3_, _tmp4_);
+}
+
+
+static void panel_real_focus_in (IBusPanelService* base, const gchar* input_context_path) {
+       Panel * self;
+       gboolean _tmp0_;
+       gboolean _tmp1_;
+       const gchar* _tmp2_;
+       gchar* _tmp3_;
+       GHashTable* _tmp4_;
+       const gchar* _tmp5_;
+       gconstpointer _tmp6_ = NULL;
+       IBusEngineDesc* _tmp7_;
+       IBusEngineDesc* engine;
+       IBusEngineDesc* _tmp8_;
+       IBusEngineDesc* _tmp23_;
+       self = (Panel*) base;
+       g_return_if_fail (input_context_path != NULL);
+       _tmp0_ = self->priv->m_use_global_engine;
+       if (_tmp0_) {
+               return;
+       }
+       _tmp1_ = self->priv->m_switcher_is_running;
+       if (_tmp1_) {
+               return;
+       }
+       _tmp2_ = input_context_path;
+       _tmp3_ = g_strdup (_tmp2_);
+       _g_free0 (self->priv->m_current_context_path);
+       self->priv->m_current_context_path = _tmp3_;
+       _tmp4_ = self->priv->m_engine_contexts;
+       _tmp5_ = self->priv->m_current_context_path;
+       _tmp6_ = g_hash_table_lookup (_tmp4_, _tmp5_);
+       _tmp7_ = _g_object_ref0 ((IBusEngineDesc*) _tmp6_);
+       engine = _tmp7_;
+       _tmp8_ = engine;
+       if (_tmp8_ == NULL) {
+               IBusEngineDesc* _tmp9_ = NULL;
+               IBusEngineDesc** _tmp10_;
+               gint _tmp10__length1;
+               IBusEngineDesc* _tmp13_;
+               IBusEngineDesc* _tmp14_;
+               IBusEngineDesc* _tmp15_;
+               _tmp10_ = self->priv->m_engines;
+               _tmp10__length1 = self->priv->m_engines_length1;
+               if (_tmp10__length1 > 0) {
+                       IBusEngineDesc** _tmp11_;
+                       gint _tmp11__length1;
+                       IBusEngineDesc* _tmp12_;
+                       _tmp11_ = self->priv->m_engines;
+                       _tmp11__length1 = self->priv->m_engines_length1;
+                       _tmp12_ = _tmp11_[0];
+                       _tmp9_ = _tmp12_;
+               } else {
+                       _tmp9_ = NULL;
+               }
+               _tmp13_ = _tmp9_;
+               _tmp14_ = _g_object_ref0 (_tmp13_);
+               _g_object_unref0 (engine);
+               engine = _tmp14_;
+               _tmp15_ = engine;
+               if (_tmp15_ == NULL) {
+                       _g_object_unref0 (engine);
+                       return;
+               }
+       } else {
+               gboolean in_engines;
+               IBusEngineDesc** _tmp16_;
+               gint _tmp16__length1;
+               gboolean _tmp22_;
+               in_engines = FALSE;
+               _tmp16_ = self->priv->m_engines;
+               _tmp16__length1 = self->priv->m_engines_length1;
+               {
+                       IBusEngineDesc** e_collection = NULL;
+                       gint e_collection_length1 = 0;
+                       gint _e_collection_size_ = 0;
+                       gint e_it = 0;
+                       e_collection = _tmp16_;
+                       e_collection_length1 = _tmp16__length1;
+                       for (e_it = 0; e_it < _tmp16__length1; e_it = e_it + 1) {
+                               IBusEngineDesc* _tmp17_;
+                               IBusEngineDesc* e = NULL;
+                               _tmp17_ = _g_object_ref0 (e_collection[e_it]);
+                               e = _tmp17_;
+                               {
+                                       IBusEngineDesc* _tmp18_;
+                                       const gchar* _tmp19_ = NULL;
+                                       IBusEngineDesc* _tmp20_;
+                                       const gchar* _tmp21_ = NULL;
+                                       _tmp18_ = engine;
+                                       _tmp19_ = ibus_engine_desc_get_name (_tmp18_);
+                                       _tmp20_ = e;
+                                       _tmp21_ = ibus_engine_desc_get_name (_tmp20_);
+                                       if (g_strcmp0 (_tmp19_, _tmp21_) == 0) {
+                                               in_engines = TRUE;
+                                               _g_object_unref0 (e);
+                                               break;
+                                       }
+                                       _g_object_unref0 (e);
+                               }
+                       }
+               }
+               _tmp22_ = in_engines;
+               if (!_tmp22_) {
+                       _g_object_unref0 (engine);
+                       return;
+               }
+       }
+       _tmp23_ = engine;
+       panel_set_engine (self, _tmp23_);
+       _g_object_unref0 (engine);
+}
+
+
+static void panel_real_focus_out (IBusPanelService* base, const gchar* input_context_path) {
+       Panel * self;
+       gboolean _tmp0_;
+       gboolean _tmp1_;
+       gchar* _tmp2_;
+       self = (Panel*) base;
+       g_return_if_fail (input_context_path != NULL);
+       _tmp0_ = self->priv->m_use_global_engine;
+       if (_tmp0_) {
+               return;
+       }
+       _tmp1_ = self->priv->m_switcher_is_running;
+       if (_tmp1_) {
+               return;
+       }
+       _tmp2_ = g_strdup ("");
+       _g_free0 (self->priv->m_current_context_path);
+       self->priv->m_current_context_path = _tmp2_;
+}
+
+
+static void panel_real_destroy_context (IBusPanelService* base, const gchar* input_context_path) {
+       Panel * self;
+       gboolean _tmp0_;
+       GHashTable* _tmp1_;
+       const gchar* _tmp2_;
+       self = (Panel*) base;
+       g_return_if_fail (input_context_path != NULL);
+       _tmp0_ = self->priv->m_use_global_engine;
+       if (_tmp0_) {
+               return;
+       }
+       _tmp1_ = self->priv->m_engine_contexts;
+       _tmp2_ = input_context_path;
+       g_hash_table_remove (_tmp1_, _tmp2_);
+}
+
+
+static void panel_real_register_properties (IBusPanelService* base, IBusPropList* props) {
+       Panel * self;
+       PropertyManager* _tmp0_;
+       IBusPropList* _tmp1_;
+       self = (Panel*) base;
+       g_return_if_fail (props != NULL);
+       _tmp0_ = self->priv->m_property_manager;
+       _tmp1_ = props;
+       property_manager_set_properties (_tmp0_, _tmp1_);
+}
+
+
+static void panel_real_update_property (IBusPanelService* base, IBusProperty* prop) {
+       Panel * self;
+       PropertyManager* _tmp0_;
+       IBusProperty* _tmp1_;
+       self = (Panel*) base;
+       g_return_if_fail (prop != NULL);
+       _tmp0_ = self->priv->m_property_manager;
+       _tmp1_ = prop;
+       property_manager_update_property (_tmp0_, _tmp1_);
+}
+
+
+static void panel_real_update_preedit_text (IBusPanelService* base, IBusText* text, guint cursor_pos, gboolean visible) {
+       Panel * self;
+       gboolean _tmp0_;
+       self = (Panel*) base;
+       g_return_if_fail (text != NULL);
+       _tmp0_ = visible;
+       if (_tmp0_) {
+               CandidatePanel* _tmp1_;
+               IBusText* _tmp2_;
+               guint _tmp3_;
+               _tmp1_ = self->priv->m_candidate_panel;
+               _tmp2_ = text;
+               _tmp3_ = cursor_pos;
+               candidate_panel_set_preedit_text (_tmp1_, _tmp2_, _tmp3_);
+       } else {
+               CandidatePanel* _tmp4_;
+               _tmp4_ = self->priv->m_candidate_panel;
+               candidate_panel_set_preedit_text (_tmp4_, NULL, (guint) 0);
+       }
+}
+
+
+static void panel_real_hide_preedit_text (IBusPanelService* base) {
+       Panel * self;
+       CandidatePanel* _tmp0_;
+       self = (Panel*) base;
+       _tmp0_ = self->priv->m_candidate_panel;
+       candidate_panel_set_preedit_text (_tmp0_, NULL, (guint) 0);
+}
+
+
+static void panel_real_update_auxiliary_text (IBusPanelService* base, IBusText* text, gboolean visible) {
+       Panel * self;
+       IBusText* _tmp0_ = NULL;
+       gboolean _tmp1_;
+       CandidatePanel* _tmp3_;
+       IBusText* _tmp4_;
+       self = (Panel*) base;
+       g_return_if_fail (text != NULL);
+       _tmp1_ = visible;
+       if (_tmp1_) {
+               IBusText* _tmp2_;
+               _tmp2_ = text;
+               _tmp0_ = _tmp2_;
+       } else {
+               _tmp0_ = NULL;
+       }
+       _tmp3_ = self->priv->m_candidate_panel;
+       _tmp4_ = _tmp0_;
+       candidate_panel_set_auxiliary_text (_tmp3_, _tmp4_);
+}
+
+
+static void panel_real_hide_auxiliary_text (IBusPanelService* base) {
+       Panel * self;
+       CandidatePanel* _tmp0_;
+       self = (Panel*) base;
+       _tmp0_ = self->priv->m_candidate_panel;
+       candidate_panel_set_auxiliary_text (_tmp0_, NULL);
+}
+
+
+static void panel_real_update_lookup_table (IBusPanelService* base, IBusLookupTable* table, gboolean visible) {
+       Panel * self;
+       IBusLookupTable* _tmp0_ = NULL;
+       gboolean _tmp1_;
+       CandidatePanel* _tmp3_;
+       IBusLookupTable* _tmp4_;
+       self = (Panel*) base;
+       g_return_if_fail (table != NULL);
+       _tmp1_ = visible;
+       if (_tmp1_) {
+               IBusLookupTable* _tmp2_;
+               _tmp2_ = table;
+               _tmp0_ = _tmp2_;
+       } else {
+               _tmp0_ = NULL;
+       }
+       _tmp3_ = self->priv->m_candidate_panel;
+       _tmp4_ = _tmp0_;
+       candidate_panel_set_lookup_table (_tmp3_, _tmp4_);
+}
+
+
+static void panel_real_hide_lookup_table (IBusPanelService* base) {
+       Panel * self;
+       CandidatePanel* _tmp0_;
+       self = (Panel*) base;
+       _tmp0_ = self->priv->m_candidate_panel;
+       candidate_panel_set_lookup_table (_tmp0_, NULL);
+}
+
+
+static gchar string_get (const gchar* self, glong index) {
+       gchar result = '\0';
+       glong _tmp0_;
+       gchar _tmp1_;
+       g_return_val_if_fail (self != NULL, '\0');
+       _tmp0_ = index;
+       _tmp1_ = ((gchar*) self)[_tmp0_];
+       result = _tmp1_;
+       return result;
+}
+
+
+static void _vala_array_add24 (gchar*** array, int* length, int* size, gchar* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (gchar*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void panel_real_state_changed (IBusPanelService* base) {
+       Panel * self;
+       gboolean _tmp0_;
+       gchar* _tmp1_;
+       gchar* icon_name;
+       IBusBus* _tmp2_;
+       IBusEngineDesc* _tmp3_ = NULL;
+       IBusEngineDesc* _tmp4_;
+       IBusEngineDesc* engine;
+       IBusEngineDesc* _tmp5_;
+       const gchar* _tmp9_;
+       gchar _tmp10_ = '\0';
+       IBusEngineDesc* _tmp23_;
+       gint i = 0;
+       gint _tmp35_;
+       gint _tmp36_;
+       IBusEngineDesc** _tmp37_;
+       gint _tmp37__length1;
+       IBusEngineDesc** _tmp50_;
+       gint _tmp50__length1;
+       IBusEngineDesc* _tmp51_;
+       IBusEngineDesc* _tmp52_;
+       IBusEngineDesc* _tmp53_;
+       gchar** _tmp54_ = NULL;
+       gchar** names;
+       gint names_length1;
+       gint _names_size_;
+       IBusEngineDesc** _tmp55_;
+       gint _tmp55__length1;
+       GSettings* _tmp61_;
+       gchar** _tmp62_;
+       gint _tmp62__length1;
+       self = (Panel*) base;
+       _tmp0_ = self->priv->m_switcher_is_running;
+       if (_tmp0_) {
+               return;
+       }
+       _tmp1_ = g_strdup ("ibus-keyboard");
+       icon_name = _tmp1_;
+       _tmp2_ = self->priv->m_bus;
+       _tmp3_ = ibus_bus_get_global_engine (_tmp2_);
+       _tmp4_ = _g_object_ref0 (_tmp3_);
+       engine = _tmp4_;
+       _tmp5_ = engine;
+       if (_tmp5_ != NULL) {
+               IBusEngineDesc* _tmp6_;
+               const gchar* _tmp7_ = NULL;
+               gchar* _tmp8_;
+               _tmp6_ = engine;
+               _tmp7_ = ibus_engine_desc_get_icon (_tmp6_);
+               _tmp8_ = g_strdup (_tmp7_);
+               _g_free0 (icon_name);
+               icon_name = _tmp8_;
+       }
+       _tmp9_ = icon_name;
+       _tmp10_ = string_get (_tmp9_, (glong) 0);
+       if (_tmp10_ == '/') {
+               GtkStatusIcon* _tmp11_;
+               const gchar* _tmp12_;
+               _tmp11_ = self->priv->m_status_icon;
+               _tmp12_ = icon_name;
+               gtk_status_icon_set_from_file (_tmp11_, _tmp12_);
+       } else {
+               GtkIconTheme* _tmp13_ = NULL;
+               GtkIconTheme* _tmp14_;
+               GtkIconTheme* theme;
+               GtkIconTheme* _tmp15_;
+               const gchar* _tmp16_;
+               GtkIconInfo* _tmp17_ = NULL;
+               GtkIconInfo* _tmp18_;
+               gboolean _tmp19_;
+               _tmp13_ = gtk_icon_theme_get_default ();
+               _tmp14_ = _g_object_ref0 (_tmp13_);
+               theme = _tmp14_;
+               _tmp15_ = theme;
+               _tmp16_ = icon_name;
+               _tmp17_ = gtk_icon_theme_lookup_icon (_tmp15_, _tmp16_, 48, 0);
+               _tmp18_ = _tmp17_;
+               _tmp19_ = _tmp18_ != NULL;
+               _gtk_icon_info_free0 (_tmp18_);
+               if (_tmp19_) {
+                       GtkStatusIcon* _tmp20_;
+                       const gchar* _tmp21_;
+                       _tmp20_ = self->priv->m_status_icon;
+                       _tmp21_ = icon_name;
+                       gtk_status_icon_set_from_icon_name (_tmp20_, _tmp21_);
+               } else {
+                       GtkStatusIcon* _tmp22_;
+                       _tmp22_ = self->priv->m_status_icon;
+                       gtk_status_icon_set_from_icon_name (_tmp22_, "ibus-engine");
+               }
+               _g_object_unref0 (theme);
+       }
+       _tmp23_ = engine;
+       if (_tmp23_ == NULL) {
+               _g_object_unref0 (engine);
+               _g_free0 (icon_name);
+               return;
+       }
+       {
+               gboolean _tmp24_;
+               i = 0;
+               _tmp24_ = TRUE;
+               while (TRUE) {
+                       gboolean _tmp25_;
+                       gint _tmp27_;
+                       IBusEngineDesc** _tmp28_;
+                       gint _tmp28__length1;
+                       IBusEngineDesc** _tmp29_;
+                       gint _tmp29__length1;
+                       gint _tmp30_;
+                       IBusEngineDesc* _tmp31_;
+                       const gchar* _tmp32_ = NULL;
+                       IBusEngineDesc* _tmp33_;
+                       const gchar* _tmp34_ = NULL;
+                       _tmp25_ = _tmp24_;
+                       if (!_tmp25_) {
+                               gint _tmp26_;
+                               _tmp26_ = i;
+                               i = _tmp26_ + 1;
+                       }
+                       _tmp24_ = FALSE;
+                       _tmp27_ = i;
+                       _tmp28_ = self->priv->m_engines;
+                       _tmp28__length1 = self->priv->m_engines_length1;
+                       if (!(_tmp27_ < _tmp28__length1)) {
+                               break;
+                       }
+                       _tmp29_ = self->priv->m_engines;
+                       _tmp29__length1 = self->priv->m_engines_length1;
+                       _tmp30_ = i;
+                       _tmp31_ = _tmp29_[_tmp30_];
+                       _tmp32_ = ibus_engine_desc_get_name (_tmp31_);
+                       _tmp33_ = engine;
+                       _tmp34_ = ibus_engine_desc_get_name (_tmp33_);
+                       if (g_strcmp0 (_tmp32_, _tmp34_) == 0) {
+                               break;
+                       }
+               }
+       }
+       _tmp35_ = i;
+       if (_tmp35_ == 0) {
+               _g_object_unref0 (engine);
+               _g_free0 (icon_name);
+               return;
+       }
+       _tmp36_ = i;
+       _tmp37_ = self->priv->m_engines;
+       _tmp37__length1 = self->priv->m_engines_length1;
+       if (_tmp36_ >= _tmp37__length1) {
+               _g_object_unref0 (engine);
+               _g_free0 (icon_name);
+               return;
+       }
+       {
+               gint _tmp38_;
+               gint j;
+               _tmp38_ = i;
+               j = _tmp38_;
+               {
+                       gboolean _tmp39_;
+                       _tmp39_ = TRUE;
+                       while (TRUE) {
+                               gboolean _tmp40_;
+                               gint _tmp42_;
+                               IBusEngineDesc** _tmp43_;
+                               gint _tmp43__length1;
+                               gint _tmp44_;
+                               IBusEngineDesc** _tmp45_;
+                               gint _tmp45__length1;
+                               gint _tmp46_;
+                               IBusEngineDesc* _tmp47_;
+                               IBusEngineDesc* _tmp48_;
+                               IBusEngineDesc* _tmp49_;
+                               _tmp40_ = _tmp39_;
+                               if (!_tmp40_) {
+                                       gint _tmp41_;
+                                       _tmp41_ = j;
+                                       j = _tmp41_ - 1;
+                               }
+                               _tmp39_ = FALSE;
+                               _tmp42_ = j;
+                               if (!(_tmp42_ > 0)) {
+                                       break;
+                               }
+                               _tmp43_ = self->priv->m_engines;
+                               _tmp43__length1 = self->priv->m_engines_length1;
+                               _tmp44_ = j;
+                               _tmp45_ = self->priv->m_engines;
+                               _tmp45__length1 = self->priv->m_engines_length1;
+                               _tmp46_ = j;
+                               _tmp47_ = _tmp45_[_tmp46_ - 1];
+                               _tmp48_ = _g_object_ref0 (_tmp47_);
+                               _g_object_unref0 (_tmp43_[_tmp44_]);
+                               _tmp43_[_tmp44_] = _tmp48_;
+                               _tmp49_ = _tmp43_[_tmp44_];
+                       }
+               }
+       }
+       _tmp50_ = self->priv->m_engines;
+       _tmp50__length1 = self->priv->m_engines_length1;
+       _tmp51_ = engine;
+       _tmp52_ = _g_object_ref0 (_tmp51_);
+       _g_object_unref0 (_tmp50_[0]);
+       _tmp50_[0] = _tmp52_;
+       _tmp53_ = _tmp50_[0];
+       _tmp54_ = g_new0 (gchar*, 0 + 1);
+       names = _tmp54_;
+       names_length1 = 0;
+       _names_size_ = names_length1;
+       _tmp55_ = self->priv->m_engines;
+       _tmp55__length1 = self->priv->m_engines_length1;
+       {
+               IBusEngineDesc** desc_collection = NULL;
+               gint desc_collection_length1 = 0;
+               gint _desc_collection_size_ = 0;
+               gint desc_it = 0;
+               desc_collection = _tmp55_;
+               desc_collection_length1 = _tmp55__length1;
+               for (desc_it = 0; desc_it < _tmp55__length1; desc_it = desc_it + 1) {
+                       IBusEngineDesc* _tmp56_;
+                       IBusEngineDesc* desc = NULL;
+                       _tmp56_ = _g_object_ref0 (desc_collection[desc_it]);
+                       desc = _tmp56_;
+                       {
+                               gchar** _tmp57_;
+                               gint _tmp57__length1;
+                               IBusEngineDesc* _tmp58_;
+                               const gchar* _tmp59_ = NULL;
+                               gchar* _tmp60_;
+                               _tmp57_ = names;
+                               _tmp57__length1 = names_length1;
+                               _tmp58_ = desc;
+                               _tmp59_ = ibus_engine_desc_get_name (_tmp58_);
+                               _tmp60_ = g_strdup (_tmp59_);
+                               _vala_array_add24 (&names, &names_length1, &_names_size_, _tmp60_);
+                               _g_object_unref0 (desc);
+                       }
+               }
+       }
+       _tmp61_ = self->priv->m_settings_general;
+       _tmp62_ = names;
+       _tmp62__length1 = names_length1;
+       g_settings_set_strv (_tmp61_, "engines-order", _tmp62_);
+       names = (_vala_array_free (names, names_length1, (GDestroyNotify) g_free), NULL);
+       _g_object_unref0 (engine);
+       _g_free0 (icon_name);
+}
+
+
+static PanelKeybinding* panel_keybinding_construct (GType object_type, guint keysym, GdkModifierType modifiers, gboolean reverse) {
+       PanelKeybinding* self = NULL;
+       guint _tmp0_;
+       GdkModifierType _tmp1_;
+       gboolean _tmp2_;
+       self = (PanelKeybinding*) g_type_create_instance (object_type);
+       _tmp0_ = keysym;
+       panel_keybinding_set_keysym (self, _tmp0_);
+       _tmp1_ = modifiers;
+       panel_keybinding_set_modifiers (self, _tmp1_);
+       _tmp2_ = reverse;
+       panel_keybinding_set_reverse (self, _tmp2_);
+       return self;
+}
+
+
+static PanelKeybinding* panel_keybinding_new (guint keysym, GdkModifierType modifiers, gboolean reverse) {
+       return panel_keybinding_construct (PANEL_TYPE_KEYBINDING, keysym, modifiers, reverse);
+}
+
+
+static guint panel_keybinding_get_keysym (PanelKeybinding* self) {
+       guint result;
+       guint _tmp0_;
+       g_return_val_if_fail (self != NULL, 0U);
+       _tmp0_ = self->priv->_keysym;
+       result = _tmp0_;
+       return result;
+}
+
+
+static void panel_keybinding_set_keysym (PanelKeybinding* self, guint value) {
+       guint _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = value;
+       self->priv->_keysym = _tmp0_;
+}
+
+
+static GdkModifierType panel_keybinding_get_modifiers (PanelKeybinding* self) {
+       GdkModifierType result;
+       GdkModifierType _tmp0_;
+       g_return_val_if_fail (self != NULL, 0);
+       _tmp0_ = self->priv->_modifiers;
+       result = _tmp0_;
+       return result;
+}
+
+
+static void panel_keybinding_set_modifiers (PanelKeybinding* self, GdkModifierType value) {
+       GdkModifierType _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = value;
+       self->priv->_modifiers = _tmp0_;
+}
+
+
+static gboolean panel_keybinding_get_reverse (PanelKeybinding* self) {
+       gboolean result;
+       gboolean _tmp0_;
+       g_return_val_if_fail (self != NULL, FALSE);
+       _tmp0_ = self->priv->_reverse;
+       result = _tmp0_;
+       return result;
+}
+
+
+static void panel_keybinding_set_reverse (PanelKeybinding* self, gboolean value) {
+       gboolean _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = value;
+       self->priv->_reverse = _tmp0_;
+}
+
+
+static void panel_value_keybinding_init (GValue* value) {
+       value->data[0].v_pointer = NULL;
+}
+
+
+static void panel_value_keybinding_free_value (GValue* value) {
+       if (value->data[0].v_pointer) {
+               panel_keybinding_unref (value->data[0].v_pointer);
+       }
+}
+
+
+static void panel_value_keybinding_copy_value (const GValue* src_value, GValue* dest_value) {
+       if (src_value->data[0].v_pointer) {
+               dest_value->data[0].v_pointer = panel_keybinding_ref (src_value->data[0].v_pointer);
+       } else {
+               dest_value->data[0].v_pointer = NULL;
+       }
+}
+
+
+static gpointer panel_value_keybinding_peek_pointer (const GValue* value) {
+       return value->data[0].v_pointer;
+}
+
+
+static gchar* panel_value_keybinding_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       if (collect_values[0].v_pointer) {
+               PanelKeybinding* object;
+               object = collect_values[0].v_pointer;
+               if (object->parent_instance.g_class == NULL) {
+                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               }
+               value->data[0].v_pointer = panel_keybinding_ref (object);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       return NULL;
+}
+
+
+static gchar* panel_value_keybinding_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       PanelKeybinding** object_p;
+       object_p = collect_values[0].v_pointer;
+       if (!object_p) {
+               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+       }
+       if (!value->data[0].v_pointer) {
+               *object_p = NULL;
+       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+               *object_p = value->data[0].v_pointer;
+       } else {
+               *object_p = panel_keybinding_ref (value->data[0].v_pointer);
+       }
+       return NULL;
+}
+
+
+static GParamSpec* panel_param_spec_keybinding (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+       PanelParamSpecKeybinding* spec;
+       g_return_val_if_fail (g_type_is_a (object_type, PANEL_TYPE_KEYBINDING), NULL);
+       spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+       G_PARAM_SPEC (spec)->value_type = object_type;
+       return G_PARAM_SPEC (spec);
+}
+
+
+static gpointer panel_value_get_keybinding (const GValue* value) {
+       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PANEL_TYPE_KEYBINDING), NULL);
+       return value->data[0].v_pointer;
+}
+
+
+static void panel_value_set_keybinding (GValue* value, gpointer v_object) {
+       PanelKeybinding* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PANEL_TYPE_KEYBINDING));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PANEL_TYPE_KEYBINDING));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+               panel_keybinding_ref (value->data[0].v_pointer);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               panel_keybinding_unref (old);
+       }
+}
+
+
+static void panel_value_take_keybinding (GValue* value, gpointer v_object) {
+       PanelKeybinding* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, PANEL_TYPE_KEYBINDING));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, PANEL_TYPE_KEYBINDING));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               panel_keybinding_unref (old);
+       }
+}
+
+
+static void panel_keybinding_class_init (PanelKeybindingClass * klass) {
+       panel_keybinding_parent_class = g_type_class_peek_parent (klass);
+       PANEL_KEYBINDING_CLASS (klass)->finalize = panel_keybinding_finalize;
+       g_type_class_add_private (klass, sizeof (PanelKeybindingPrivate));
+}
+
+
+static void panel_keybinding_instance_init (PanelKeybinding * self) {
+       self->priv = PANEL_KEYBINDING_GET_PRIVATE (self);
+       self->ref_count = 1;
+}
+
+
+static void panel_keybinding_finalize (PanelKeybinding* obj) {
+       PanelKeybinding * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, PANEL_TYPE_KEYBINDING, PanelKeybinding);
+}
+
+
+static GType panel_keybinding_get_type (void) {
+       static volatile gsize panel_keybinding_type_id__volatile = 0;
+       if (g_once_init_enter (&panel_keybinding_type_id__volatile)) {
+               static const GTypeValueTable g_define_type_value_table = { panel_value_keybinding_init, panel_value_keybinding_free_value, panel_value_keybinding_copy_value, panel_value_keybinding_peek_pointer, "p", panel_value_keybinding_collect_value, "p", panel_value_keybinding_lcopy_value };
+               static const GTypeInfo g_define_type_info = { sizeof (PanelKeybindingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) panel_keybinding_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PanelKeybinding), 0, (GInstanceInitFunc) panel_keybinding_instance_init, &g_define_type_value_table };
+               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+               GType panel_keybinding_type_id;
+               panel_keybinding_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PanelKeybinding", &g_define_type_info, &g_define_type_fundamental_info, 0);
+               g_once_init_leave (&panel_keybinding_type_id__volatile, panel_keybinding_type_id);
+       }
+       return panel_keybinding_type_id__volatile;
+}
+
+
+static gpointer panel_keybinding_ref (gpointer instance) {
+       PanelKeybinding* self;
+       self = instance;
+       g_atomic_int_inc (&self->ref_count);
+       return instance;
+}
+
+
+static void panel_keybinding_unref (gpointer instance) {
+       PanelKeybinding* self;
+       self = instance;
+       if (g_atomic_int_dec_and_test (&self->ref_count)) {
+               PANEL_KEYBINDING_GET_CLASS (self)->finalize (self);
+               g_type_free_instance ((GTypeInstance *) self);
+       }
+}
+
+
+static void panel_class_init (PanelClass * klass) {
+       panel_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (PanelPrivate));
+       IBUS_PANEL_SERVICE_CLASS (klass)->set_cursor_location = panel_real_set_cursor_location;
+       IBUS_PANEL_SERVICE_CLASS (klass)->focus_in = panel_real_focus_in;
+       IBUS_PANEL_SERVICE_CLASS (klass)->focus_out = panel_real_focus_out;
+       IBUS_PANEL_SERVICE_CLASS (klass)->destroy_context = panel_real_destroy_context;
+       IBUS_PANEL_SERVICE_CLASS (klass)->register_properties = panel_real_register_properties;
+       IBUS_PANEL_SERVICE_CLASS (klass)->update_property = panel_real_update_property;
+       IBUS_PANEL_SERVICE_CLASS (klass)->update_preedit_text = panel_real_update_preedit_text;
+       IBUS_PANEL_SERVICE_CLASS (klass)->hide_preedit_text = panel_real_hide_preedit_text;
+       IBUS_PANEL_SERVICE_CLASS (klass)->update_auxiliary_text = panel_real_update_auxiliary_text;
+       IBUS_PANEL_SERVICE_CLASS (klass)->hide_auxiliary_text = panel_real_hide_auxiliary_text;
+       IBUS_PANEL_SERVICE_CLASS (klass)->update_lookup_table = panel_real_update_lookup_table;
+       IBUS_PANEL_SERVICE_CLASS (klass)->hide_lookup_table = panel_real_hide_lookup_table;
+       IBUS_PANEL_SERVICE_CLASS (klass)->state_changed = panel_real_state_changed;
+       G_OBJECT_CLASS (klass)->finalize = panel_finalize;
+}
+
+
+static void panel_instance_init (Panel * self) {
+       IBusEngineDesc** _tmp0_ = NULL;
+       GHashFunc _tmp1_;
+       GEqualFunc _tmp2_;
+       GHashTable* _tmp3_;
+       gchar* _tmp4_;
+       self->priv = PANEL_GET_PRIVATE (self);
+       self->priv->m_settings_general = NULL;
+       self->priv->m_settings_hotkey = NULL;
+       self->priv->m_settings_panel = NULL;
+       _tmp0_ = g_new0 (IBusEngineDesc*, 0 + 1);
+       self->priv->m_engines = _tmp0_;
+       self->priv->m_engines_length1 = 0;
+       self->priv->_m_engines_size_ = self->priv->m_engines_length1;
+       _tmp1_ = g_str_hash;
+       _tmp2_ = g_str_equal;
+       _tmp3_ = g_hash_table_new_full (_tmp1_, _tmp2_, _g_free0_, _g_object_unref0_);
+       self->priv->m_engine_contexts = _tmp3_;
+       _tmp4_ = g_strdup ("");
+       self->priv->m_current_context_path = _tmp4_;
+       self->priv->m_use_global_engine = TRUE;
+       self->priv->m_switcher_is_running = FALSE;
+       self->priv->m_setup_pid = (GPid) 0;
+       self->priv->m_switcher_delay_time = 400;
+       self->priv->m_use_system_keyboard_layout = FALSE;
+       self->priv->m_keybindings = NULL;
+}
+
+
+static void panel_finalize (GObject* obj) {
+       Panel * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PANEL, Panel);
+       panel_unbind_switch_shortcut (self);
+       _g_object_unref0 (self->priv->m_bus);
+       _g_object_unref0 (self->priv->m_settings_general);
+       _g_object_unref0 (self->priv->m_settings_hotkey);
+       _g_object_unref0 (self->priv->m_settings_panel);
+       _g_object_unref0 (self->priv->m_status_icon);
+       _g_object_unref0 (self->priv->m_ime_menu);
+       _g_object_unref0 (self->priv->m_sys_menu);
+       self->priv->m_engines = (_vala_array_free (self->priv->m_engines, self->priv->m_engines_length1, (GDestroyNotify) g_object_unref), NULL);
+       _g_hash_table_unref0 (self->priv->m_engine_contexts);
+       _g_free0 (self->priv->m_current_context_path);
+       _g_object_unref0 (self->priv->m_candidate_panel);
+       _g_object_unref0 (self->priv->m_switcher);
+       _property_manager_unref0 (self->priv->m_property_manager);
+       _g_object_unref0 (self->priv->m_about_dialog);
+       _g_object_unref0 (self->priv->m_css_provider);
+       __g_list_free__panel_keybinding_unref0_0 (self->priv->m_keybindings);
+       G_OBJECT_CLASS (panel_parent_class)->finalize (obj);
+}
+
+
+GType panel_get_type (void) {
+       static volatile gsize panel_type_id__volatile = 0;
+       if (g_once_init_enter (&panel_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (PanelClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) panel_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Panel), 0, (GInstanceInitFunc) panel_instance_init, NULL };
+               GType panel_type_id;
+               panel_type_id = g_type_register_static (ibus_panel_service_get_type (), "Panel", &g_define_type_info, 0);
+               g_once_init_leave (&panel_type_id__volatile, panel_type_id);
+       }
+       return panel_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       if ((array != NULL) && (destroy_func != NULL)) {
+               int i;
+               for (i = 0; i < array_length; i = i + 1) {
+                       if (((gpointer*) array)[i] != NULL) {
+                               destroy_func (((gpointer*) array)[i]);
+                       }
+               }
+       }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       _vala_array_destroy (array, array_length, destroy_func);
+       g_free (array);
+}
+
+
+static gint _vala_array_length (gpointer array) {
+       int length;
+       length = 0;
+       if (array) {
+               while (((gpointer*) array)[length]) {
+                       length++;
+               }
+       }
+       return length;
+}
+
+
+
diff --git a/ui/gtk3/pango.c b/ui/gtk3/pango.c
new file mode 100644 (file)
index 0000000..9de8f79
--- /dev/null
@@ -0,0 +1,361 @@
+/* pango.c generated by valac 0.20.1, the Vala compiler
+ * generated from pango.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <ibus.h>
+#include <pango/pango.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _pango_attribute_destroy0(var) ((var == NULL) ? NULL : (var = (pango_attribute_destroy (var), NULL)))
+#define __vala_PangoAttrList_free0(var) ((var == NULL) ? NULL : (var = (_vala_PangoAttrList_free (var), NULL)))
+
+
+
+PangoAttrList* get_pango_attr_list_from_ibus_text (IBusText* text);
+static void _vala_PangoAttrList_free (PangoAttrList* self);
+
+
+static gint string_index_of_nth_char (const gchar* self, glong c) {
+       gint result = 0;
+       glong _tmp0_;
+       gchar* _tmp1_ = NULL;
+       g_return_val_if_fail (self != NULL, 0);
+       _tmp0_ = c;
+       _tmp1_ = g_utf8_offset_to_pointer (self, _tmp0_);
+       result = (gint) (_tmp1_ - ((gchar*) self));
+       return result;
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+static void _vala_PangoAttrList_free (PangoAttrList* self) {
+       g_boxed_free (pango_attr_list_get_type (), self);
+}
+
+
+PangoAttrList* get_pango_attr_list_from_ibus_text (IBusText* text) {
+       PangoAttrList* result = NULL;
+       PangoAttrList* _tmp0_;
+       PangoAttrList* pango_attrs;
+       IBusText* _tmp1_;
+       IBusAttrList* _tmp2_ = NULL;
+       IBusAttrList* attrs;
+       IBusAttrList* _tmp3_;
+       IBusText* _tmp4_;
+       const gchar* _tmp5_ = NULL;
+       const gchar* str;
+       const gchar* _tmp6_;
+       gint _tmp7_ = 0;
+       glong nchars;
+       glong _tmp8_;
+       glong* _tmp9_ = NULL;
+       glong* offsets;
+       gint offsets_length1;
+       gint _offsets_size_;
+       IBusAttribute* attr = NULL;
+       gint i;
+       g_return_val_if_fail (text != NULL, NULL);
+       _tmp0_ = pango_attr_list_new ();
+       pango_attrs = _tmp0_;
+       _tmp1_ = text;
+       _tmp2_ = ibus_text_get_attributes (_tmp1_);
+       attrs = _tmp2_;
+       _tmp3_ = attrs;
+       if (_tmp3_ == NULL) {
+               result = pango_attrs;
+               return result;
+       }
+       _tmp4_ = text;
+       _tmp5_ = ibus_text_get_text (_tmp4_);
+       str = _tmp5_;
+       _tmp6_ = str;
+       _tmp7_ = g_utf8_strlen (_tmp6_, (gssize) (-1));
+       nchars = (glong) _tmp7_;
+       _tmp8_ = nchars;
+       _tmp9_ = g_new0 (glong, _tmp8_ + 1);
+       offsets = _tmp9_;
+       offsets_length1 = _tmp8_ + 1;
+       _offsets_size_ = offsets_length1;
+       {
+               gint i;
+               i = 0;
+               {
+                       gboolean _tmp10_;
+                       _tmp10_ = TRUE;
+                       while (TRUE) {
+                               gboolean _tmp11_;
+                               gint _tmp13_;
+                               glong _tmp14_;
+                               glong* _tmp15_;
+                               gint _tmp15__length1;
+                               gint _tmp16_;
+                               const gchar* _tmp17_;
+                               gint _tmp18_;
+                               gint _tmp19_ = 0;
+                               glong _tmp20_;
+                               _tmp11_ = _tmp10_;
+                               if (!_tmp11_) {
+                                       gint _tmp12_;
+                                       _tmp12_ = i;
+                                       i = _tmp12_ + 1;
+                               }
+                               _tmp10_ = FALSE;
+                               _tmp13_ = i;
+                               _tmp14_ = nchars;
+                               if (!(((glong) _tmp13_) <= _tmp14_)) {
+                                       break;
+                               }
+                               _tmp15_ = offsets;
+                               _tmp15__length1 = offsets_length1;
+                               _tmp16_ = i;
+                               _tmp17_ = str;
+                               _tmp18_ = i;
+                               _tmp19_ = string_index_of_nth_char (_tmp17_, (glong) _tmp18_);
+                               _tmp15_[_tmp16_] = (glong) _tmp19_;
+                               _tmp20_ = _tmp15_[_tmp16_];
+                       }
+               }
+       }
+       i = 0;
+       while (TRUE) {
+               IBusAttrList* _tmp21_;
+               gint _tmp22_;
+               IBusAttribute* _tmp23_ = NULL;
+               IBusAttribute* _tmp24_;
+               IBusAttribute* _tmp25_;
+               IBusAttribute* _tmp26_;
+               guint _tmp27_;
+               glong start_index;
+               glong _tmp28_;
+               glong _tmp29_ = 0L;
+               glong _tmp30_;
+               glong _tmp31_;
+               glong _tmp37_;
+               IBusAttribute* _tmp38_;
+               guint _tmp39_;
+               glong end_index;
+               glong _tmp40_;
+               glong _tmp41_ = 0L;
+               glong _tmp42_;
+               glong _tmp43_;
+               glong _tmp49_;
+               PangoAttribute* pango_attr;
+               IBusAttribute* _tmp50_;
+               guint _tmp51_;
+               PangoAttribute* _tmp75_;
+               glong _tmp76_;
+               PangoAttribute* _tmp77_;
+               glong _tmp78_;
+               PangoAttrList* _tmp79_;
+               PangoAttribute* _tmp80_;
+               _tmp21_ = attrs;
+               _tmp22_ = i;
+               i = _tmp22_ + 1;
+               _tmp23_ = ibus_attr_list_get (_tmp21_, (guint) _tmp22_);
+               _tmp24_ = _g_object_ref0 (_tmp23_);
+               _g_object_unref0 (attr);
+               attr = _tmp24_;
+               _tmp25_ = attr;
+               if (_tmp25_ == NULL) {
+                       break;
+               }
+               _tmp26_ = attr;
+               _tmp27_ = _tmp26_->start_index;
+               start_index = (glong) _tmp27_;
+               _tmp28_ = start_index;
+               if (_tmp28_ <= ((glong) 0)) {
+                       start_index = (glong) 0;
+               }
+               _tmp30_ = start_index;
+               _tmp31_ = nchars;
+               if (_tmp30_ <= _tmp31_) {
+                       glong* _tmp32_;
+                       gint _tmp32__length1;
+                       glong _tmp33_;
+                       glong _tmp34_;
+                       _tmp32_ = offsets;
+                       _tmp32__length1 = offsets_length1;
+                       _tmp33_ = start_index;
+                       _tmp34_ = _tmp32_[_tmp33_];
+                       _tmp29_ = _tmp34_;
+               } else {
+                       glong* _tmp35_;
+                       gint _tmp35__length1;
+                       glong _tmp36_;
+                       _tmp35_ = offsets;
+                       _tmp35__length1 = offsets_length1;
+                       _tmp36_ = _tmp35_[-1];
+                       _tmp29_ = _tmp36_;
+               }
+               _tmp37_ = _tmp29_;
+               start_index = _tmp37_;
+               _tmp38_ = attr;
+               _tmp39_ = _tmp38_->end_index;
+               end_index = (glong) _tmp39_;
+               _tmp40_ = end_index;
+               if (_tmp40_ <= ((glong) 0)) {
+                       end_index = (glong) 0;
+               }
+               _tmp42_ = end_index;
+               _tmp43_ = nchars;
+               if (_tmp42_ <= _tmp43_) {
+                       glong* _tmp44_;
+                       gint _tmp44__length1;
+                       glong _tmp45_;
+                       glong _tmp46_;
+                       _tmp44_ = offsets;
+                       _tmp44__length1 = offsets_length1;
+                       _tmp45_ = end_index;
+                       _tmp46_ = _tmp44_[_tmp45_];
+                       _tmp41_ = _tmp46_;
+               } else {
+                       glong* _tmp47_;
+                       gint _tmp47__length1;
+                       glong _tmp48_;
+                       _tmp47_ = offsets;
+                       _tmp47__length1 = offsets_length1;
+                       _tmp48_ = _tmp47_[-1];
+                       _tmp41_ = _tmp48_;
+               }
+               _tmp49_ = _tmp41_;
+               end_index = _tmp49_;
+               pango_attr = NULL;
+               _tmp50_ = attr;
+               _tmp51_ = _tmp50_->type;
+               switch (_tmp51_) {
+                       case IBUS_ATTR_TYPE_FOREGROUND:
+                       {
+                               {
+                                       IBusAttribute* _tmp52_;
+                                       guint _tmp53_;
+                                       guint16 r;
+                                       IBusAttribute* _tmp54_;
+                                       guint _tmp55_;
+                                       guint16 g;
+                                       IBusAttribute* _tmp56_;
+                                       guint _tmp57_;
+                                       guint16 b;
+                                       guint16 _tmp58_;
+                                       guint16 _tmp59_;
+                                       guint16 _tmp60_;
+                                       PangoAttribute* _tmp61_ = NULL;
+                                       _tmp52_ = attr;
+                                       _tmp53_ = _tmp52_->value;
+                                       r = (guint16) ((_tmp53_ & 0x00ff0000) >> 8);
+                                       _tmp54_ = attr;
+                                       _tmp55_ = _tmp54_->value;
+                                       g = (guint16) (_tmp55_ & 0x0000ff00);
+                                       _tmp56_ = attr;
+                                       _tmp57_ = _tmp56_->value;
+                                       b = (guint16) ((_tmp57_ & 0x000000ff) << 8);
+                                       _tmp58_ = r;
+                                       _tmp59_ = g;
+                                       _tmp60_ = b;
+                                       _tmp61_ = pango_attr_foreground_new (_tmp58_, _tmp59_, _tmp60_);
+                                       _pango_attribute_destroy0 (pango_attr);
+                                       pango_attr = _tmp61_;
+                                       break;
+                               }
+                       }
+                       case IBUS_ATTR_TYPE_BACKGROUND:
+                       {
+                               {
+                                       IBusAttribute* _tmp62_;
+                                       guint _tmp63_;
+                                       guint16 r;
+                                       IBusAttribute* _tmp64_;
+                                       guint _tmp65_;
+                                       guint16 g;
+                                       IBusAttribute* _tmp66_;
+                                       guint _tmp67_;
+                                       guint16 b;
+                                       guint16 _tmp68_;
+                                       guint16 _tmp69_;
+                                       guint16 _tmp70_;
+                                       PangoAttribute* _tmp71_ = NULL;
+                                       _tmp62_ = attr;
+                                       _tmp63_ = _tmp62_->value;
+                                       r = (guint16) ((_tmp63_ & 0x00ff0000) >> 8);
+                                       _tmp64_ = attr;
+                                       _tmp65_ = _tmp64_->value;
+                                       g = (guint16) (_tmp65_ & 0x0000ff00);
+                                       _tmp66_ = attr;
+                                       _tmp67_ = _tmp66_->value;
+                                       b = (guint16) ((_tmp67_ & 0x000000ff) << 8);
+                                       _tmp68_ = r;
+                                       _tmp69_ = g;
+                                       _tmp70_ = b;
+                                       _tmp71_ = pango_attr_background_new (_tmp68_, _tmp69_, _tmp70_);
+                                       _pango_attribute_destroy0 (pango_attr);
+                                       pango_attr = _tmp71_;
+                                       break;
+                               }
+                       }
+                       case IBUS_ATTR_TYPE_UNDERLINE:
+                       {
+                               {
+                                       IBusAttribute* _tmp72_;
+                                       guint _tmp73_;
+                                       PangoAttribute* _tmp74_ = NULL;
+                                       _tmp72_ = attr;
+                                       _tmp73_ = _tmp72_->value;
+                                       _tmp74_ = pango_attr_underline_new ((PangoUnderline) _tmp73_);
+                                       _pango_attribute_destroy0 (pango_attr);
+                                       pango_attr = _tmp74_;
+                                       break;
+                               }
+                       }
+                       default:
+                       {
+                               continue;
+                       }
+               }
+               _tmp75_ = pango_attr;
+               _tmp76_ = start_index;
+               _tmp75_->start_index = (guint) _tmp76_;
+               _tmp77_ = pango_attr;
+               _tmp78_ = end_index;
+               _tmp77_->end_index = (guint) _tmp78_;
+               _tmp79_ = pango_attrs;
+               _tmp80_ = pango_attr;
+               pango_attr = NULL;
+               pango_attr_list_insert (_tmp79_, _tmp80_);
+               _pango_attribute_destroy0 (pango_attr);
+       }
+       result = pango_attrs;
+       _g_object_unref0 (attr);
+       offsets = (g_free (offsets), NULL);
+       return result;
+}
+
+
+
diff --git a/ui/gtk3/property.c b/ui/gtk3/property.c
new file mode 100644 (file)
index 0000000..a8ac6fa
--- /dev/null
@@ -0,0 +1,1209 @@
+/* property.c generated by valac 0.20.1, the Vala compiler
+ * generated from property.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <ibus.h>
+#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gobject/gvaluecollector.h>
+
+
+#define TYPE_PROPERTY_MANAGER (property_manager_get_type ())
+#define PROPERTY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROPERTY_MANAGER, PropertyManager))
+#define PROPERTY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROPERTY_MANAGER, PropertyManagerClass))
+#define IS_PROPERTY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROPERTY_MANAGER))
+#define IS_PROPERTY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROPERTY_MANAGER))
+#define PROPERTY_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROPERTY_MANAGER, PropertyManagerClass))
+
+typedef struct _PropertyManager PropertyManager;
+typedef struct _PropertyManagerClass PropertyManagerClass;
+typedef struct _PropertyManagerPrivate PropertyManagerPrivate;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+#define TYPE_PROP_CHECK_MENU_ITEM (prop_check_menu_item_get_type ())
+#define PROP_CHECK_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItem))
+#define PROP_CHECK_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItemClass))
+#define IS_PROP_CHECK_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROP_CHECK_MENU_ITEM))
+#define IS_PROP_CHECK_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROP_CHECK_MENU_ITEM))
+#define PROP_CHECK_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItemClass))
+
+typedef struct _PropCheckMenuItem PropCheckMenuItem;
+typedef struct _PropCheckMenuItemClass PropCheckMenuItemClass;
+
+#define TYPE_PROP_RADIO_MENU_ITEM (prop_radio_menu_item_get_type ())
+#define PROP_RADIO_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROP_RADIO_MENU_ITEM, PropRadioMenuItem))
+#define PROP_RADIO_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROP_RADIO_MENU_ITEM, PropRadioMenuItemClass))
+#define IS_PROP_RADIO_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROP_RADIO_MENU_ITEM))
+#define IS_PROP_RADIO_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROP_RADIO_MENU_ITEM))
+#define PROP_RADIO_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROP_RADIO_MENU_ITEM, PropRadioMenuItemClass))
+
+typedef struct _PropRadioMenuItem PropRadioMenuItem;
+typedef struct _PropRadioMenuItemClass PropRadioMenuItemClass;
+
+#define TYPE_IPROP_ITEM (iprop_item_get_type ())
+#define IPROP_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IPROP_ITEM, IPropItem))
+#define IS_IPROP_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IPROP_ITEM))
+#define IPROP_ITEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_IPROP_ITEM, IPropItemIface))
+
+typedef struct _IPropItem IPropItem;
+typedef struct _IPropItemIface IPropItemIface;
+
+#define TYPE_PROP_IMAGE_MENU_ITEM (prop_image_menu_item_get_type ())
+#define PROP_IMAGE_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItem))
+#define PROP_IMAGE_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItemClass))
+#define IS_PROP_IMAGE_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROP_IMAGE_MENU_ITEM))
+#define IS_PROP_IMAGE_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROP_IMAGE_MENU_ITEM))
+#define PROP_IMAGE_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItemClass))
+
+typedef struct _PropImageMenuItem PropImageMenuItem;
+typedef struct _PropImageMenuItemClass PropImageMenuItemClass;
+
+#define TYPE_PROP_SEPARATOR_MENU_ITEM (prop_separator_menu_item_get_type ())
+#define PROP_SEPARATOR_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItem))
+#define PROP_SEPARATOR_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItemClass))
+#define IS_PROP_SEPARATOR_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PROP_SEPARATOR_MENU_ITEM))
+#define IS_PROP_SEPARATOR_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PROP_SEPARATOR_MENU_ITEM))
+#define PROP_SEPARATOR_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItemClass))
+
+typedef struct _PropSeparatorMenuItem PropSeparatorMenuItem;
+typedef struct _PropSeparatorMenuItemClass PropSeparatorMenuItemClass;
+typedef struct _ParamSpecPropertyManager ParamSpecPropertyManager;
+typedef struct _PropImageMenuItemPrivate PropImageMenuItemPrivate;
+
+#define TYPE_ICON_WIDGET (icon_widget_get_type ())
+#define ICON_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ICON_WIDGET, IconWidget))
+#define ICON_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ICON_WIDGET, IconWidgetClass))
+#define IS_ICON_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ICON_WIDGET))
+#define IS_ICON_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ICON_WIDGET))
+#define ICON_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ICON_WIDGET, IconWidgetClass))
+
+typedef struct _IconWidget IconWidget;
+typedef struct _IconWidgetClass IconWidgetClass;
+typedef struct _PropCheckMenuItemPrivate PropCheckMenuItemPrivate;
+typedef struct _PropRadioMenuItemPrivate PropRadioMenuItemPrivate;
+typedef struct _PropSeparatorMenuItemPrivate PropSeparatorMenuItemPrivate;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _PropertyManager {
+       GTypeInstance parent_instance;
+       volatile int ref_count;
+       PropertyManagerPrivate * priv;
+};
+
+struct _PropertyManagerClass {
+       GTypeClass parent_class;
+       void (*finalize) (PropertyManager *self);
+};
+
+struct _PropertyManagerPrivate {
+       IBusPropList* m_props;
+};
+
+struct _IPropItemIface {
+       GTypeInterface parent_iface;
+       void (*update_property) (IPropItem* self, IBusProperty* prop);
+};
+
+struct _ParamSpecPropertyManager {
+       GParamSpec parent_instance;
+};
+
+struct _PropImageMenuItem {
+       GtkImageMenuItem parent_instance;
+       PropImageMenuItemPrivate * priv;
+};
+
+struct _PropImageMenuItemClass {
+       GtkImageMenuItemClass parent_class;
+};
+
+struct _PropImageMenuItemPrivate {
+       IBusProperty* m_property;
+};
+
+struct _PropCheckMenuItem {
+       GtkRadioMenuItem parent_instance;
+       PropCheckMenuItemPrivate * priv;
+};
+
+struct _PropCheckMenuItemClass {
+       GtkRadioMenuItemClass parent_class;
+};
+
+struct _PropCheckMenuItemPrivate {
+       IBusProperty* m_property;
+};
+
+struct _PropRadioMenuItem {
+       PropCheckMenuItem parent_instance;
+       PropRadioMenuItemPrivate * priv;
+};
+
+struct _PropRadioMenuItemClass {
+       PropCheckMenuItemClass parent_class;
+};
+
+struct _PropSeparatorMenuItem {
+       GtkSeparatorMenuItem parent_instance;
+       PropSeparatorMenuItemPrivate * priv;
+};
+
+struct _PropSeparatorMenuItemClass {
+       GtkSeparatorMenuItemClass parent_class;
+};
+
+struct _PropSeparatorMenuItemPrivate {
+       IBusProperty* m_property;
+};
+
+
+static gpointer property_manager_parent_class = NULL;
+static gpointer prop_image_menu_item_parent_class = NULL;
+static IPropItemIface* prop_image_menu_item_iprop_item_parent_iface = NULL;
+static gpointer prop_check_menu_item_parent_class = NULL;
+static IPropItemIface* prop_check_menu_item_iprop_item_parent_iface = NULL;
+static gpointer prop_radio_menu_item_parent_class = NULL;
+static gpointer prop_separator_menu_item_parent_class = NULL;
+static IPropItemIface* prop_separator_menu_item_iprop_item_parent_iface = NULL;
+
+gpointer property_manager_ref (gpointer instance);
+void property_manager_unref (gpointer instance);
+GParamSpec* param_spec_property_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void value_set_property_manager (GValue* value, gpointer v_object);
+void value_take_property_manager (GValue* value, gpointer v_object);
+gpointer value_get_property_manager (const GValue* value);
+GType property_manager_get_type (void) G_GNUC_CONST;
+#define PROPERTY_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROPERTY_MANAGER, PropertyManagerPrivate))
+enum  {
+       PROPERTY_MANAGER_DUMMY_PROPERTY
+};
+void property_manager_ProperyManager (PropertyManager* self);
+void property_manager_set_properties (PropertyManager* self, IBusPropList* props);
+gint property_manager_create_menu_items (PropertyManager* self, GtkMenu* menu);
+static gint property_manager_create_menu_items_internal (PropertyManager* self, IBusPropList* props, GtkMenu* menu);
+GType prop_check_menu_item_get_type (void) G_GNUC_CONST;
+GType prop_radio_menu_item_get_type (void) G_GNUC_CONST;
+GType iprop_item_get_type (void) G_GNUC_CONST;
+PropImageMenuItem* prop_image_menu_item_new (IBusProperty* property);
+PropImageMenuItem* prop_image_menu_item_construct (GType object_type, IBusProperty* property);
+GType prop_image_menu_item_get_type (void) G_GNUC_CONST;
+PropCheckMenuItem* prop_check_menu_item_new (IBusProperty* property);
+PropCheckMenuItem* prop_check_menu_item_construct (GType object_type, IBusProperty* property);
+PropRadioMenuItem* prop_radio_menu_item_new (IBusProperty* property, PropRadioMenuItem* group_source);
+PropRadioMenuItem* prop_radio_menu_item_construct (GType object_type, IBusProperty* property, PropRadioMenuItem* group_source);
+PropSeparatorMenuItem* prop_separator_menu_item_new (IBusProperty* property);
+PropSeparatorMenuItem* prop_separator_menu_item_construct (GType object_type, IBusProperty* property);
+GType prop_separator_menu_item_get_type (void) G_GNUC_CONST;
+static void ____lambda16_ (PropertyManager* self, const gchar* k, gint s);
+static void _____lambda16__iprop_item_property_activate (IPropItem* _sender, const gchar* key, gint state, gpointer self);
+void property_manager_update_property (PropertyManager* self, IBusProperty* prop);
+PropertyManager* property_manager_new (void);
+PropertyManager* property_manager_construct (GType object_type);
+static void g_cclosure_user_marshal_VOID__STRING_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
+static void property_manager_finalize (PropertyManager* obj);
+void iprop_item_update_property (IPropItem* self, IBusProperty* prop);
+#define PROP_IMAGE_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItemPrivate))
+enum  {
+       PROP_IMAGE_MENU_ITEM_DUMMY_PROPERTY
+};
+static void prop_image_menu_item_sync (PropImageMenuItem* self);
+static void prop_image_menu_item_real_update_property (IPropItem* base, IBusProperty* property);
+static void prop_image_menu_item_set_icon (PropImageMenuItem* self, const gchar* icon);
+IconWidget* icon_widget_new (const gchar* icon_name_or_path, GtkIconSize size);
+IconWidget* icon_widget_construct (GType object_type, const gchar* icon_name_or_path, GtkIconSize size);
+GType icon_widget_get_type (void) G_GNUC_CONST;
+static void prop_image_menu_item_real_activate (GtkMenuItem* base);
+static void prop_image_menu_item_finalize (GObject* obj);
+#define PROP_CHECK_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItemPrivate))
+enum  {
+       PROP_CHECK_MENU_ITEM_DUMMY_PROPERTY
+};
+static void prop_check_menu_item_sync (PropCheckMenuItem* self);
+static void prop_check_menu_item_real_update_property (IPropItem* base, IBusProperty* property);
+static void prop_check_menu_item_real_toggled (GtkCheckMenuItem* base);
+static void prop_check_menu_item_finalize (GObject* obj);
+enum  {
+       PROP_RADIO_MENU_ITEM_DUMMY_PROPERTY
+};
+#define PROP_SEPARATOR_MENU_ITEM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItemPrivate))
+enum  {
+       PROP_SEPARATOR_MENU_ITEM_DUMMY_PROPERTY
+};
+static void prop_separator_menu_item_real_update_property (IPropItem* base, IBusProperty* property);
+static void prop_separator_menu_item_finalize (GObject* obj);
+
+
+void property_manager_ProperyManager (PropertyManager* self) {
+       g_return_if_fail (self != NULL);
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+void property_manager_set_properties (PropertyManager* self, IBusPropList* props) {
+       IBusPropList* _tmp0_;
+       IBusPropList* _tmp1_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (props != NULL);
+       _tmp0_ = props;
+       _tmp1_ = _g_object_ref0 (_tmp0_);
+       _g_object_unref0 (self->priv->m_props);
+       self->priv->m_props = _tmp1_;
+}
+
+
+gint property_manager_create_menu_items (PropertyManager* self, GtkMenu* menu) {
+       gint result = 0;
+       IBusPropList* _tmp0_;
+       GtkMenu* _tmp1_;
+       gint _tmp2_ = 0;
+       g_return_val_if_fail (self != NULL, 0);
+       g_return_val_if_fail (menu != NULL, 0);
+       _tmp0_ = self->priv->m_props;
+       _tmp1_ = menu;
+       _tmp2_ = property_manager_create_menu_items_internal (self, _tmp0_, _tmp1_);
+       result = _tmp2_;
+       return result;
+}
+
+
+static void ____lambda16_ (PropertyManager* self, const gchar* k, gint s) {
+       const gchar* _tmp0_;
+       gint _tmp1_;
+       g_return_if_fail (k != NULL);
+       _tmp0_ = k;
+       _tmp1_ = s;
+       g_signal_emit_by_name (self, "property-activate", _tmp0_, _tmp1_);
+}
+
+
+static void _____lambda16__iprop_item_property_activate (IPropItem* _sender, const gchar* key, gint state, gpointer self) {
+       ____lambda16_ (self, key, state);
+}
+
+
+static gint property_manager_create_menu_items_internal (PropertyManager* self, IBusPropList* props, GtkMenu* menu) {
+       gint result = 0;
+       gint i;
+       PropRadioMenuItem* last_radio;
+       g_return_val_if_fail (self != NULL, 0);
+       g_return_val_if_fail (props != NULL, 0);
+       g_return_val_if_fail (menu != NULL, 0);
+       i = 0;
+       last_radio = NULL;
+       while (TRUE) {
+               IBusPropList* _tmp0_;
+               gint _tmp1_;
+               IBusProperty* _tmp2_ = NULL;
+               IBusProperty* _tmp3_;
+               IBusProperty* prop;
+               IBusProperty* _tmp4_;
+               IBusProperty* _tmp5_;
+               const gchar* _tmp6_ = NULL;
+               gint _tmp7_;
+               IPropItem* item;
+               IBusProperty* _tmp8_;
+               IBusPropType _tmp9_ = 0;
+               IBusProperty* _tmp36_;
+               IBusPropType _tmp37_ = 0;
+               IPropItem* _tmp38_;
+               _tmp0_ = props;
+               _tmp1_ = i;
+               _tmp2_ = ibus_prop_list_get (_tmp0_, (guint) _tmp1_);
+               _tmp3_ = _g_object_ref0 (_tmp2_);
+               prop = _tmp3_;
+               _tmp4_ = prop;
+               if (_tmp4_ == NULL) {
+                       _g_object_unref0 (prop);
+                       break;
+               }
+               _tmp5_ = prop;
+               _tmp6_ = ibus_property_get_key (_tmp5_);
+               g_debug ("property.vala:44: ins prop = %s", _tmp6_);
+               _tmp7_ = i;
+               i = _tmp7_ + 1;
+               item = NULL;
+               _tmp8_ = prop;
+               _tmp9_ = ibus_property_get_prop_type (_tmp8_);
+               switch (_tmp9_) {
+                       case PROP_TYPE_NORMAL:
+                       {
+                               IBusProperty* _tmp10_;
+                               PropImageMenuItem* _tmp11_;
+                               _tmp10_ = prop;
+                               _tmp11_ = prop_image_menu_item_new (_tmp10_);
+                               g_object_ref_sink (_tmp11_);
+                               _g_object_unref0 (item);
+                               item = (IPropItem*) _tmp11_;
+                               break;
+                       }
+                       case PROP_TYPE_TOGGLE:
+                       {
+                               IBusProperty* _tmp12_;
+                               PropCheckMenuItem* _tmp13_;
+                               _tmp12_ = prop;
+                               _tmp13_ = prop_check_menu_item_new (_tmp12_);
+                               g_object_ref_sink (_tmp13_);
+                               _g_object_unref0 (item);
+                               item = (IPropItem*) _tmp13_;
+                               break;
+                       }
+                       case PROP_TYPE_RADIO:
+                       {
+                               {
+                                       IBusProperty* _tmp14_;
+                                       PropRadioMenuItem* _tmp15_;
+                                       PropRadioMenuItem* _tmp16_;
+                                       PropRadioMenuItem* radio;
+                                       PropRadioMenuItem* _tmp17_;
+                                       IPropItem* _tmp18_;
+                                       PropRadioMenuItem* _tmp19_;
+                                       PropRadioMenuItem* _tmp20_;
+                                       _tmp14_ = prop;
+                                       _tmp15_ = last_radio;
+                                       _tmp16_ = prop_radio_menu_item_new (_tmp14_, _tmp15_);
+                                       g_object_ref_sink (_tmp16_);
+                                       radio = _tmp16_;
+                                       _tmp17_ = radio;
+                                       _tmp18_ = _g_object_ref0 ((IPropItem*) _tmp17_);
+                                       _g_object_unref0 (item);
+                                       item = _tmp18_;
+                                       _tmp19_ = radio;
+                                       _tmp20_ = _g_object_ref0 (_tmp19_);
+                                       _g_object_unref0 (last_radio);
+                                       last_radio = _tmp20_;
+                                       _g_object_unref0 (radio);
+                               }
+                               break;
+                       }
+                       case PROP_TYPE_MENU:
+                       {
+                               {
+                                       IBusProperty* _tmp21_;
+                                       PropImageMenuItem* _tmp22_;
+                                       PropImageMenuItem* menuitem;
+                                       PropImageMenuItem* _tmp23_;
+                                       IPropItem* _tmp24_;
+                                       GtkMenu* _tmp25_;
+                                       GtkMenu* submenu;
+                                       IBusProperty* _tmp26_;
+                                       IBusPropList* _tmp27_ = NULL;
+                                       GtkMenu* _tmp28_;
+                                       gint _tmp29_ = 0;
+                                       _tmp21_ = prop;
+                                       _tmp22_ = prop_image_menu_item_new (_tmp21_);
+                                       g_object_ref_sink (_tmp22_);
+                                       menuitem = _tmp22_;
+                                       _tmp23_ = menuitem;
+                                       _tmp24_ = _g_object_ref0 ((IPropItem*) _tmp23_);
+                                       _g_object_unref0 (item);
+                                       item = _tmp24_;
+                                       _tmp25_ = (GtkMenu*) gtk_menu_new ();
+                                       g_object_ref_sink (_tmp25_);
+                                       submenu = _tmp25_;
+                                       _tmp26_ = prop;
+                                       _tmp27_ = ibus_property_get_sub_props (_tmp26_);
+                                       _tmp28_ = submenu;
+                                       _tmp29_ = property_manager_create_menu_items_internal (self, _tmp27_, _tmp28_);
+                                       if (_tmp29_ > 0) {
+                                               PropImageMenuItem* _tmp30_;
+                                               GtkMenu* _tmp31_;
+                                               _tmp30_ = menuitem;
+                                               _tmp31_ = submenu;
+                                               gtk_menu_item_set_submenu ((GtkMenuItem*) _tmp30_, (GtkWidget*) _tmp31_);
+                                       }
+                                       _g_object_unref0 (submenu);
+                                       _g_object_unref0 (menuitem);
+                               }
+                               break;
+                       }
+                       case PROP_TYPE_SEPARATOR:
+                       {
+                               IBusProperty* _tmp32_;
+                               PropSeparatorMenuItem* _tmp33_;
+                               _tmp32_ = prop;
+                               _tmp33_ = prop_separator_menu_item_new (_tmp32_);
+                               g_object_ref_sink (_tmp33_);
+                               _g_object_unref0 (item);
+                               item = (IPropItem*) _tmp33_;
+                               break;
+                       }
+                       default:
+                       {
+                               IBusProperty* _tmp34_;
+                               IBusPropType _tmp35_ = 0;
+                               _tmp34_ = prop;
+                               _tmp35_ = ibus_property_get_prop_type (_tmp34_);
+                               g_warning ("property.vala:76: unknown property type %d", (gint) _tmp35_);
+                               break;
+                       }
+               }
+               _tmp36_ = prop;
+               _tmp37_ = ibus_property_get_prop_type (_tmp36_);
+               if (_tmp37_ != PROP_TYPE_RADIO) {
+                       _g_object_unref0 (last_radio);
+                       last_radio = NULL;
+               }
+               _tmp38_ = item;
+               if (_tmp38_ != NULL) {
+                       GtkMenu* _tmp39_;
+                       IPropItem* _tmp40_;
+                       IPropItem* _tmp41_;
+                       _tmp39_ = menu;
+                       _tmp40_ = item;
+                       gtk_menu_shell_append ((GtkMenuShell*) _tmp39_, (GtkWidget*) (G_TYPE_CHECK_INSTANCE_TYPE (_tmp40_, GTK_TYPE_MENU_ITEM) ? ((GtkMenuItem*) _tmp40_) : NULL));
+                       _tmp41_ = item;
+                       g_signal_connect (_tmp41_, "property-activate", (GCallback) _____lambda16__iprop_item_property_activate, self);
+               }
+               _g_object_unref0 (item);
+               _g_object_unref0 (prop);
+       }
+       result = i;
+       _g_object_unref0 (last_radio);
+       return result;
+}
+
+
+void property_manager_update_property (PropertyManager* self, IBusProperty* prop) {
+       IBusProperty* _tmp0_;
+       IBusPropList* _tmp1_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (prop != NULL);
+       _tmp0_ = prop;
+       _vala_assert (_tmp0_ != NULL, "prop != null");
+       _tmp1_ = self->priv->m_props;
+       if (_tmp1_ != NULL) {
+               IBusPropList* _tmp2_;
+               IBusProperty* _tmp3_;
+               _tmp2_ = self->priv->m_props;
+               _tmp3_ = prop;
+               ibus_prop_list_update_property (_tmp2_, _tmp3_);
+       }
+}
+
+
+PropertyManager* property_manager_construct (GType object_type) {
+       PropertyManager* self = NULL;
+       self = (PropertyManager*) g_type_create_instance (object_type);
+       return self;
+}
+
+
+PropertyManager* property_manager_new (void) {
+       return property_manager_construct (TYPE_PROPERTY_MANAGER);
+}
+
+
+static void g_cclosure_user_marshal_VOID__STRING_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
+       typedef void (*GMarshalFunc_VOID__STRING_INT) (gpointer data1, const char* arg_1, gint arg_2, gpointer data2);
+       register GMarshalFunc_VOID__STRING_INT callback;
+       register GCClosure * cc;
+       register gpointer data1;
+       register gpointer data2;
+       cc = (GCClosure *) closure;
+       g_return_if_fail (n_param_values == 3);
+       if (G_CCLOSURE_SWAP_DATA (closure)) {
+               data1 = closure->data;
+               data2 = param_values->data[0].v_pointer;
+       } else {
+               data1 = param_values->data[0].v_pointer;
+               data2 = closure->data;
+       }
+       callback = (GMarshalFunc_VOID__STRING_INT) (marshal_data ? marshal_data : cc->callback);
+       callback (data1, g_value_get_string (param_values + 1), g_value_get_int (param_values + 2), data2);
+}
+
+
+static void value_property_manager_init (GValue* value) {
+       value->data[0].v_pointer = NULL;
+}
+
+
+static void value_property_manager_free_value (GValue* value) {
+       if (value->data[0].v_pointer) {
+               property_manager_unref (value->data[0].v_pointer);
+       }
+}
+
+
+static void value_property_manager_copy_value (const GValue* src_value, GValue* dest_value) {
+       if (src_value->data[0].v_pointer) {
+               dest_value->data[0].v_pointer = property_manager_ref (src_value->data[0].v_pointer);
+       } else {
+               dest_value->data[0].v_pointer = NULL;
+       }
+}
+
+
+static gpointer value_property_manager_peek_pointer (const GValue* value) {
+       return value->data[0].v_pointer;
+}
+
+
+static gchar* value_property_manager_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       if (collect_values[0].v_pointer) {
+               PropertyManager* object;
+               object = collect_values[0].v_pointer;
+               if (object->parent_instance.g_class == NULL) {
+                       return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
+                       return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
+               }
+               value->data[0].v_pointer = property_manager_ref (object);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       return NULL;
+}
+
+
+static gchar* value_property_manager_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
+       PropertyManager** object_p;
+       object_p = collect_values[0].v_pointer;
+       if (!object_p) {
+               return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
+       }
+       if (!value->data[0].v_pointer) {
+               *object_p = NULL;
+       } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
+               *object_p = value->data[0].v_pointer;
+       } else {
+               *object_p = property_manager_ref (value->data[0].v_pointer);
+       }
+       return NULL;
+}
+
+
+GParamSpec* param_spec_property_manager (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
+       ParamSpecPropertyManager* spec;
+       g_return_val_if_fail (g_type_is_a (object_type, TYPE_PROPERTY_MANAGER), NULL);
+       spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
+       G_PARAM_SPEC (spec)->value_type = object_type;
+       return G_PARAM_SPEC (spec);
+}
+
+
+gpointer value_get_property_manager (const GValue* value) {
+       g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PROPERTY_MANAGER), NULL);
+       return value->data[0].v_pointer;
+}
+
+
+void value_set_property_manager (GValue* value, gpointer v_object) {
+       PropertyManager* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PROPERTY_MANAGER));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PROPERTY_MANAGER));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+               property_manager_ref (value->data[0].v_pointer);
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               property_manager_unref (old);
+       }
+}
+
+
+void value_take_property_manager (GValue* value, gpointer v_object) {
+       PropertyManager* old;
+       g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, TYPE_PROPERTY_MANAGER));
+       old = value->data[0].v_pointer;
+       if (v_object) {
+               g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, TYPE_PROPERTY_MANAGER));
+               g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
+               value->data[0].v_pointer = v_object;
+       } else {
+               value->data[0].v_pointer = NULL;
+       }
+       if (old) {
+               property_manager_unref (old);
+       }
+}
+
+
+static void property_manager_class_init (PropertyManagerClass * klass) {
+       property_manager_parent_class = g_type_class_peek_parent (klass);
+       PROPERTY_MANAGER_CLASS (klass)->finalize = property_manager_finalize;
+       g_type_class_add_private (klass, sizeof (PropertyManagerPrivate));
+       g_signal_new ("property_activate", TYPE_PROPERTY_MANAGER, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT);
+}
+
+
+static void property_manager_instance_init (PropertyManager * self) {
+       self->priv = PROPERTY_MANAGER_GET_PRIVATE (self);
+       self->ref_count = 1;
+}
+
+
+static void property_manager_finalize (PropertyManager* obj) {
+       PropertyManager * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROPERTY_MANAGER, PropertyManager);
+       _g_object_unref0 (self->priv->m_props);
+}
+
+
+GType property_manager_get_type (void) {
+       static volatile gsize property_manager_type_id__volatile = 0;
+       if (g_once_init_enter (&property_manager_type_id__volatile)) {
+               static const GTypeValueTable g_define_type_value_table = { value_property_manager_init, value_property_manager_free_value, value_property_manager_copy_value, value_property_manager_peek_pointer, "p", value_property_manager_collect_value, "p", value_property_manager_lcopy_value };
+               static const GTypeInfo g_define_type_info = { sizeof (PropertyManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) property_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropertyManager), 0, (GInstanceInitFunc) property_manager_instance_init, &g_define_type_value_table };
+               static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
+               GType property_manager_type_id;
+               property_manager_type_id = g_type_register_fundamental (g_type_fundamental_next (), "PropertyManager", &g_define_type_info, &g_define_type_fundamental_info, 0);
+               g_once_init_leave (&property_manager_type_id__volatile, property_manager_type_id);
+       }
+       return property_manager_type_id__volatile;
+}
+
+
+gpointer property_manager_ref (gpointer instance) {
+       PropertyManager* self;
+       self = instance;
+       g_atomic_int_inc (&self->ref_count);
+       return instance;
+}
+
+
+void property_manager_unref (gpointer instance) {
+       PropertyManager* self;
+       self = instance;
+       if (g_atomic_int_dec_and_test (&self->ref_count)) {
+               PROPERTY_MANAGER_GET_CLASS (self)->finalize (self);
+               g_type_free_instance ((GTypeInstance *) self);
+       }
+}
+
+
+void iprop_item_update_property (IPropItem* self, IBusProperty* prop) {
+       g_return_if_fail (self != NULL);
+       IPROP_ITEM_GET_INTERFACE (self)->update_property (self, prop);
+}
+
+
+static void iprop_item_base_init (IPropItemIface * iface) {
+       static gboolean initialized = FALSE;
+       if (!initialized) {
+               initialized = TRUE;
+               g_signal_new ("property_activate", TYPE_IPROP_ITEM, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT);
+       }
+}
+
+
+GType iprop_item_get_type (void) {
+       static volatile gsize iprop_item_type_id__volatile = 0;
+       if (g_once_init_enter (&iprop_item_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (IPropItemIface), (GBaseInitFunc) iprop_item_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+               GType iprop_item_type_id;
+               iprop_item_type_id = g_type_register_static (G_TYPE_INTERFACE, "IPropItem", &g_define_type_info, 0);
+               g_type_interface_add_prerequisite (iprop_item_type_id, G_TYPE_OBJECT);
+               g_once_init_leave (&iprop_item_type_id__volatile, iprop_item_type_id);
+       }
+       return iprop_item_type_id__volatile;
+}
+
+
+PropImageMenuItem* prop_image_menu_item_construct (GType object_type, IBusProperty* property) {
+       PropImageMenuItem * self = NULL;
+       IBusProperty* _tmp0_;
+       IBusProperty* _tmp1_;
+       IBusProperty* _tmp2_;
+       g_return_val_if_fail (property != NULL, NULL);
+       self = (PropImageMenuItem*) g_object_new (object_type, NULL);
+       _tmp0_ = property;
+       _vala_assert (_tmp0_ != NULL, "property != null");
+       _tmp1_ = property;
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+       _g_object_unref0 (self->priv->m_property);
+       self->priv->m_property = _tmp2_;
+       gtk_widget_set_no_show_all ((GtkWidget*) self, TRUE);
+       prop_image_menu_item_sync (self);
+       return self;
+}
+
+
+PropImageMenuItem* prop_image_menu_item_new (IBusProperty* property) {
+       return prop_image_menu_item_construct (TYPE_PROP_IMAGE_MENU_ITEM, property);
+}
+
+
+static void prop_image_menu_item_real_update_property (IPropItem* base, IBusProperty* property) {
+       PropImageMenuItem * self;
+       IBusProperty* _tmp0_;
+       IBusProperty* _tmp1_;
+       IBusText* _tmp2_ = NULL;
+       IBusProperty* _tmp3_;
+       IBusProperty* _tmp4_;
+       const gchar* _tmp5_ = NULL;
+       IBusProperty* _tmp6_;
+       IBusProperty* _tmp7_;
+       gboolean _tmp8_ = FALSE;
+       IBusProperty* _tmp9_;
+       IBusProperty* _tmp10_;
+       gboolean _tmp11_ = FALSE;
+       IBusProperty* _tmp12_;
+       IBusProperty* _tmp13_;
+       IBusText* _tmp14_ = NULL;
+       IBusProperty* _tmp15_;
+       IBusProperty* _tmp16_;
+       IBusPropState _tmp17_ = 0;
+       self = (PropImageMenuItem*) base;
+       g_return_if_fail (property != NULL);
+       _tmp0_ = self->priv->m_property;
+       _tmp1_ = property;
+       _tmp2_ = ibus_property_get_label (_tmp1_);
+       ibus_property_set_label (_tmp0_, _tmp2_);
+       _tmp3_ = self->priv->m_property;
+       _tmp4_ = property;
+       _tmp5_ = ibus_property_get_icon (_tmp4_);
+       ibus_property_set_icon (_tmp3_, _tmp5_);
+       _tmp6_ = self->priv->m_property;
+       _tmp7_ = property;
+       _tmp8_ = ibus_property_get_visible (_tmp7_);
+       ibus_property_set_visible (_tmp6_, _tmp8_);
+       _tmp9_ = self->priv->m_property;
+       _tmp10_ = property;
+       _tmp11_ = ibus_property_get_sensitive (_tmp10_);
+       ibus_property_set_sensitive (_tmp9_, _tmp11_);
+       _tmp12_ = self->priv->m_property;
+       _tmp13_ = property;
+       _tmp14_ = ibus_property_get_tooltip (_tmp13_);
+       ibus_property_set_tooltip (_tmp12_, _tmp14_);
+       _tmp15_ = self->priv->m_property;
+       _tmp16_ = property;
+       _tmp17_ = ibus_property_get_state (_tmp16_);
+       ibus_property_set_state (_tmp15_, _tmp17_);
+       prop_image_menu_item_sync (self);
+}
+
+
+static void prop_image_menu_item_sync (PropImageMenuItem* self) {
+       IBusProperty* _tmp0_;
+       IBusText* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       IBusProperty* _tmp3_;
+       const gchar* _tmp4_ = NULL;
+       IBusProperty* _tmp7_;
+       gboolean _tmp8_ = FALSE;
+       IBusProperty* _tmp9_;
+       gboolean _tmp10_ = FALSE;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_property;
+       _tmp1_ = ibus_property_get_label (_tmp0_);
+       _tmp2_ = ibus_text_get_text (_tmp1_);
+       gtk_menu_item_set_label ((GtkMenuItem*) self, _tmp2_);
+       _tmp3_ = self->priv->m_property;
+       _tmp4_ = ibus_property_get_icon (_tmp3_);
+       if (g_strcmp0 (_tmp4_, "") != 0) {
+               IBusProperty* _tmp5_;
+               const gchar* _tmp6_ = NULL;
+               _tmp5_ = self->priv->m_property;
+               _tmp6_ = ibus_property_get_icon (_tmp5_);
+               prop_image_menu_item_set_icon (self, _tmp6_);
+       }
+       _tmp7_ = self->priv->m_property;
+       _tmp8_ = ibus_property_get_visible (_tmp7_);
+       gtk_widget_set_visible ((GtkWidget*) self, _tmp8_);
+       _tmp9_ = self->priv->m_property;
+       _tmp10_ = ibus_property_get_sensitive (_tmp9_);
+       gtk_widget_set_sensitive ((GtkWidget*) self, _tmp10_);
+}
+
+
+static void prop_image_menu_item_set_icon (PropImageMenuItem* self, const gchar* icon) {
+       const gchar* _tmp0_;
+       IconWidget* _tmp1_;
+       IconWidget* _tmp2_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (icon != NULL);
+       _tmp0_ = icon;
+       _tmp1_ = icon_widget_new (_tmp0_, GTK_ICON_SIZE_MENU);
+       g_object_ref_sink (_tmp1_);
+       _tmp2_ = _tmp1_;
+       gtk_image_menu_item_set_image ((GtkImageMenuItem*) self, (GtkWidget*) _tmp2_);
+       _g_object_unref0 (_tmp2_);
+}
+
+
+static void prop_image_menu_item_real_activate (GtkMenuItem* base) {
+       PropImageMenuItem * self;
+       IBusProperty* _tmp0_;
+       const gchar* _tmp1_ = NULL;
+       IBusProperty* _tmp2_;
+       IBusPropState _tmp3_ = 0;
+       self = (PropImageMenuItem*) base;
+       _tmp0_ = self->priv->m_property;
+       _tmp1_ = ibus_property_get_key (_tmp0_);
+       _tmp2_ = self->priv->m_property;
+       _tmp3_ = ibus_property_get_state (_tmp2_);
+       g_signal_emit_by_name ((IPropItem*) self, "property-activate", _tmp1_, (gint) _tmp3_);
+}
+
+
+static void prop_image_menu_item_class_init (PropImageMenuItemClass * klass) {
+       prop_image_menu_item_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (PropImageMenuItemPrivate));
+       GTK_MENU_ITEM_CLASS (klass)->activate = prop_image_menu_item_real_activate;
+       G_OBJECT_CLASS (klass)->finalize = prop_image_menu_item_finalize;
+}
+
+
+static void prop_image_menu_item_iprop_item_interface_init (IPropItemIface * iface) {
+       prop_image_menu_item_iprop_item_parent_iface = g_type_interface_peek_parent (iface);
+       iface->update_property = (void (*)(IPropItem*, IBusProperty*)) prop_image_menu_item_real_update_property;
+}
+
+
+static void prop_image_menu_item_instance_init (PropImageMenuItem * self) {
+       self->priv = PROP_IMAGE_MENU_ITEM_GET_PRIVATE (self);
+}
+
+
+static void prop_image_menu_item_finalize (GObject* obj) {
+       PropImageMenuItem * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROP_IMAGE_MENU_ITEM, PropImageMenuItem);
+       _g_object_unref0 (self->priv->m_property);
+       G_OBJECT_CLASS (prop_image_menu_item_parent_class)->finalize (obj);
+}
+
+
+GType prop_image_menu_item_get_type (void) {
+       static volatile gsize prop_image_menu_item_type_id__volatile = 0;
+       if (g_once_init_enter (&prop_image_menu_item_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (PropImageMenuItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prop_image_menu_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropImageMenuItem), 0, (GInstanceInitFunc) prop_image_menu_item_instance_init, NULL };
+               static const GInterfaceInfo iprop_item_info = { (GInterfaceInitFunc) prop_image_menu_item_iprop_item_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+               GType prop_image_menu_item_type_id;
+               prop_image_menu_item_type_id = g_type_register_static (GTK_TYPE_IMAGE_MENU_ITEM, "PropImageMenuItem", &g_define_type_info, 0);
+               g_type_add_interface_static (prop_image_menu_item_type_id, TYPE_IPROP_ITEM, &iprop_item_info);
+               g_once_init_leave (&prop_image_menu_item_type_id__volatile, prop_image_menu_item_type_id);
+       }
+       return prop_image_menu_item_type_id__volatile;
+}
+
+
+PropCheckMenuItem* prop_check_menu_item_construct (GType object_type, IBusProperty* property) {
+       PropCheckMenuItem * self = NULL;
+       IBusProperty* _tmp0_;
+       IBusProperty* _tmp1_;
+       IBusProperty* _tmp2_;
+       g_return_val_if_fail (property != NULL, NULL);
+       self = (PropCheckMenuItem*) g_object_new (object_type, NULL);
+       _tmp0_ = property;
+       _vala_assert (_tmp0_ != NULL, "property != null");
+       _tmp1_ = property;
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+       _g_object_unref0 (self->priv->m_property);
+       self->priv->m_property = _tmp2_;
+       gtk_widget_set_no_show_all ((GtkWidget*) self, TRUE);
+       prop_check_menu_item_sync (self);
+       return self;
+}
+
+
+PropCheckMenuItem* prop_check_menu_item_new (IBusProperty* property) {
+       return prop_check_menu_item_construct (TYPE_PROP_CHECK_MENU_ITEM, property);
+}
+
+
+static void prop_check_menu_item_real_update_property (IPropItem* base, IBusProperty* property) {
+       PropCheckMenuItem * self;
+       IBusProperty* _tmp0_;
+       IBusProperty* _tmp1_;
+       IBusText* _tmp2_ = NULL;
+       IBusProperty* _tmp3_;
+       IBusProperty* _tmp4_;
+       const gchar* _tmp5_ = NULL;
+       IBusProperty* _tmp6_;
+       IBusProperty* _tmp7_;
+       gboolean _tmp8_ = FALSE;
+       IBusProperty* _tmp9_;
+       IBusProperty* _tmp10_;
+       gboolean _tmp11_ = FALSE;
+       IBusProperty* _tmp12_;
+       IBusProperty* _tmp13_;
+       IBusText* _tmp14_ = NULL;
+       IBusProperty* _tmp15_;
+       IBusProperty* _tmp16_;
+       IBusPropState _tmp17_ = 0;
+       self = (PropCheckMenuItem*) base;
+       g_return_if_fail (property != NULL);
+       _tmp0_ = self->priv->m_property;
+       _tmp1_ = property;
+       _tmp2_ = ibus_property_get_label (_tmp1_);
+       ibus_property_set_label (_tmp0_, _tmp2_);
+       _tmp3_ = self->priv->m_property;
+       _tmp4_ = property;
+       _tmp5_ = ibus_property_get_icon (_tmp4_);
+       ibus_property_set_icon (_tmp3_, _tmp5_);
+       _tmp6_ = self->priv->m_property;
+       _tmp7_ = property;
+       _tmp8_ = ibus_property_get_visible (_tmp7_);
+       ibus_property_set_visible (_tmp6_, _tmp8_);
+       _tmp9_ = self->priv->m_property;
+       _tmp10_ = property;
+       _tmp11_ = ibus_property_get_sensitive (_tmp10_);
+       ibus_property_set_sensitive (_tmp9_, _tmp11_);
+       _tmp12_ = self->priv->m_property;
+       _tmp13_ = property;
+       _tmp14_ = ibus_property_get_tooltip (_tmp13_);
+       ibus_property_set_tooltip (_tmp12_, _tmp14_);
+       _tmp15_ = self->priv->m_property;
+       _tmp16_ = property;
+       _tmp17_ = ibus_property_get_state (_tmp16_);
+       ibus_property_set_state (_tmp15_, _tmp17_);
+       prop_check_menu_item_sync (self);
+}
+
+
+static void prop_check_menu_item_sync (PropCheckMenuItem* self) {
+       IBusProperty* _tmp0_;
+       IBusText* _tmp1_ = NULL;
+       const gchar* _tmp2_ = NULL;
+       IBusProperty* _tmp3_;
+       gboolean _tmp4_ = FALSE;
+       IBusProperty* _tmp5_;
+       gboolean _tmp6_ = FALSE;
+       IBusProperty* _tmp7_;
+       IBusPropState _tmp8_ = 0;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_property;
+       _tmp1_ = ibus_property_get_label (_tmp0_);
+       _tmp2_ = ibus_text_get_text (_tmp1_);
+       gtk_menu_item_set_label ((GtkMenuItem*) self, _tmp2_);
+       _tmp3_ = self->priv->m_property;
+       _tmp4_ = ibus_property_get_visible (_tmp3_);
+       gtk_widget_set_visible ((GtkWidget*) self, _tmp4_);
+       _tmp5_ = self->priv->m_property;
+       _tmp6_ = ibus_property_get_sensitive (_tmp5_);
+       gtk_widget_set_sensitive ((GtkWidget*) self, _tmp6_);
+       _tmp7_ = self->priv->m_property;
+       _tmp8_ = ibus_property_get_state (_tmp7_);
+       gtk_check_menu_item_set_active ((GtkCheckMenuItem*) self, _tmp8_ == PROP_STATE_CHECKED);
+}
+
+
+static void prop_check_menu_item_real_toggled (GtkCheckMenuItem* base) {
+       PropCheckMenuItem * self;
+       IBusPropState _tmp0_ = 0;
+       gboolean _tmp1_ = FALSE;
+       IBusPropState _tmp2_;
+       IBusPropState new_state;
+       IBusProperty* _tmp3_;
+       IBusPropState _tmp4_ = 0;
+       IBusPropState _tmp5_;
+       self = (PropCheckMenuItem*) base;
+       _tmp1_ = gtk_check_menu_item_get_active ((GtkCheckMenuItem*) self);
+       if (_tmp1_) {
+               _tmp0_ = PROP_STATE_CHECKED;
+       } else {
+               _tmp0_ = PROP_STATE_UNCHECKED;
+       }
+       _tmp2_ = _tmp0_;
+       new_state = _tmp2_;
+       _tmp3_ = self->priv->m_property;
+       _tmp4_ = ibus_property_get_state (_tmp3_);
+       _tmp5_ = new_state;
+       if (_tmp4_ != _tmp5_) {
+               IBusProperty* _tmp6_;
+               IBusPropState _tmp7_;
+               IBusProperty* _tmp8_;
+               const gchar* _tmp9_ = NULL;
+               IBusProperty* _tmp10_;
+               IBusPropState _tmp11_ = 0;
+               _tmp6_ = self->priv->m_property;
+               _tmp7_ = new_state;
+               ibus_property_set_state (_tmp6_, _tmp7_);
+               _tmp8_ = self->priv->m_property;
+               _tmp9_ = ibus_property_get_key (_tmp8_);
+               _tmp10_ = self->priv->m_property;
+               _tmp11_ = ibus_property_get_state (_tmp10_);
+               g_signal_emit_by_name ((IPropItem*) self, "property-activate", _tmp9_, (gint) _tmp11_);
+       }
+}
+
+
+static void prop_check_menu_item_class_init (PropCheckMenuItemClass * klass) {
+       prop_check_menu_item_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (PropCheckMenuItemPrivate));
+       GTK_CHECK_MENU_ITEM_CLASS (klass)->toggled = prop_check_menu_item_real_toggled;
+       G_OBJECT_CLASS (klass)->finalize = prop_check_menu_item_finalize;
+}
+
+
+static void prop_check_menu_item_iprop_item_interface_init (IPropItemIface * iface) {
+       prop_check_menu_item_iprop_item_parent_iface = g_type_interface_peek_parent (iface);
+       iface->update_property = (void (*)(IPropItem*, IBusProperty*)) prop_check_menu_item_real_update_property;
+}
+
+
+static void prop_check_menu_item_instance_init (PropCheckMenuItem * self) {
+       self->priv = PROP_CHECK_MENU_ITEM_GET_PRIVATE (self);
+}
+
+
+static void prop_check_menu_item_finalize (GObject* obj) {
+       PropCheckMenuItem * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROP_CHECK_MENU_ITEM, PropCheckMenuItem);
+       _g_object_unref0 (self->priv->m_property);
+       G_OBJECT_CLASS (prop_check_menu_item_parent_class)->finalize (obj);
+}
+
+
+GType prop_check_menu_item_get_type (void) {
+       static volatile gsize prop_check_menu_item_type_id__volatile = 0;
+       if (g_once_init_enter (&prop_check_menu_item_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (PropCheckMenuItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prop_check_menu_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropCheckMenuItem), 0, (GInstanceInitFunc) prop_check_menu_item_instance_init, NULL };
+               static const GInterfaceInfo iprop_item_info = { (GInterfaceInitFunc) prop_check_menu_item_iprop_item_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+               GType prop_check_menu_item_type_id;
+               prop_check_menu_item_type_id = g_type_register_static (GTK_TYPE_RADIO_MENU_ITEM, "PropCheckMenuItem", &g_define_type_info, 0);
+               g_type_add_interface_static (prop_check_menu_item_type_id, TYPE_IPROP_ITEM, &iprop_item_info);
+               g_once_init_leave (&prop_check_menu_item_type_id__volatile, prop_check_menu_item_type_id);
+       }
+       return prop_check_menu_item_type_id__volatile;
+}
+
+
+PropRadioMenuItem* prop_radio_menu_item_construct (GType object_type, IBusProperty* property, PropRadioMenuItem* group_source) {
+       PropRadioMenuItem * self = NULL;
+       IBusProperty* _tmp0_;
+       PropRadioMenuItem* _tmp1_;
+       g_return_val_if_fail (property != NULL, NULL);
+       _tmp0_ = property;
+       self = (PropRadioMenuItem*) prop_check_menu_item_construct (object_type, _tmp0_);
+       _tmp1_ = group_source;
+       if (_tmp1_ != NULL) {
+               PropRadioMenuItem* _tmp2_;
+               GSList* _tmp3_ = NULL;
+               _tmp2_ = group_source;
+               _tmp3_ = gtk_radio_menu_item_get_group ((GtkRadioMenuItem*) _tmp2_);
+               gtk_radio_menu_item_set_group ((GtkRadioMenuItem*) self, _tmp3_);
+       }
+       return self;
+}
+
+
+PropRadioMenuItem* prop_radio_menu_item_new (IBusProperty* property, PropRadioMenuItem* group_source) {
+       return prop_radio_menu_item_construct (TYPE_PROP_RADIO_MENU_ITEM, property, group_source);
+}
+
+
+static void prop_radio_menu_item_class_init (PropRadioMenuItemClass * klass) {
+       prop_radio_menu_item_parent_class = g_type_class_peek_parent (klass);
+}
+
+
+static void prop_radio_menu_item_instance_init (PropRadioMenuItem * self) {
+}
+
+
+GType prop_radio_menu_item_get_type (void) {
+       static volatile gsize prop_radio_menu_item_type_id__volatile = 0;
+       if (g_once_init_enter (&prop_radio_menu_item_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (PropRadioMenuItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prop_radio_menu_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropRadioMenuItem), 0, (GInstanceInitFunc) prop_radio_menu_item_instance_init, NULL };
+               GType prop_radio_menu_item_type_id;
+               prop_radio_menu_item_type_id = g_type_register_static (TYPE_PROP_CHECK_MENU_ITEM, "PropRadioMenuItem", &g_define_type_info, 0);
+               g_once_init_leave (&prop_radio_menu_item_type_id__volatile, prop_radio_menu_item_type_id);
+       }
+       return prop_radio_menu_item_type_id__volatile;
+}
+
+
+PropSeparatorMenuItem* prop_separator_menu_item_construct (GType object_type, IBusProperty* property) {
+       PropSeparatorMenuItem * self = NULL;
+       IBusProperty* _tmp0_;
+       IBusProperty* _tmp1_;
+       IBusProperty* _tmp2_;
+       g_return_val_if_fail (property != NULL, NULL);
+       self = (PropSeparatorMenuItem*) g_object_new (object_type, NULL);
+       _tmp0_ = property;
+       _vala_assert (_tmp0_ != NULL, "property != null");
+       _tmp1_ = property;
+       _tmp2_ = _g_object_ref0 (_tmp1_);
+       _g_object_unref0 (self->priv->m_property);
+       self->priv->m_property = _tmp2_;
+       return self;
+}
+
+
+PropSeparatorMenuItem* prop_separator_menu_item_new (IBusProperty* property) {
+       return prop_separator_menu_item_construct (TYPE_PROP_SEPARATOR_MENU_ITEM, property);
+}
+
+
+static void prop_separator_menu_item_real_update_property (IPropItem* base, IBusProperty* property) {
+       PropSeparatorMenuItem * self;
+       self = (PropSeparatorMenuItem*) base;
+       g_return_if_fail (property != NULL);
+}
+
+
+static void prop_separator_menu_item_class_init (PropSeparatorMenuItemClass * klass) {
+       prop_separator_menu_item_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (PropSeparatorMenuItemPrivate));
+       G_OBJECT_CLASS (klass)->finalize = prop_separator_menu_item_finalize;
+}
+
+
+static void prop_separator_menu_item_iprop_item_interface_init (IPropItemIface * iface) {
+       prop_separator_menu_item_iprop_item_parent_iface = g_type_interface_peek_parent (iface);
+       iface->update_property = (void (*)(IPropItem*, IBusProperty*)) prop_separator_menu_item_real_update_property;
+}
+
+
+static void prop_separator_menu_item_instance_init (PropSeparatorMenuItem * self) {
+       self->priv = PROP_SEPARATOR_MENU_ITEM_GET_PRIVATE (self);
+}
+
+
+static void prop_separator_menu_item_finalize (GObject* obj) {
+       PropSeparatorMenuItem * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PROP_SEPARATOR_MENU_ITEM, PropSeparatorMenuItem);
+       _g_object_unref0 (self->priv->m_property);
+       G_OBJECT_CLASS (prop_separator_menu_item_parent_class)->finalize (obj);
+}
+
+
+GType prop_separator_menu_item_get_type (void) {
+       static volatile gsize prop_separator_menu_item_type_id__volatile = 0;
+       if (g_once_init_enter (&prop_separator_menu_item_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (PropSeparatorMenuItemClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) prop_separator_menu_item_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PropSeparatorMenuItem), 0, (GInstanceInitFunc) prop_separator_menu_item_instance_init, NULL };
+               static const GInterfaceInfo iprop_item_info = { (GInterfaceInitFunc) prop_separator_menu_item_iprop_item_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
+               GType prop_separator_menu_item_type_id;
+               prop_separator_menu_item_type_id = g_type_register_static (GTK_TYPE_SEPARATOR_MENU_ITEM, "PropSeparatorMenuItem", &g_define_type_info, 0);
+               g_type_add_interface_static (prop_separator_menu_item_type_id, TYPE_IPROP_ITEM, &iprop_item_info);
+               g_once_init_leave (&prop_separator_menu_item_type_id__volatile, prop_separator_menu_item_type_id);
+       }
+       return prop_separator_menu_item_type_id__volatile;
+}
+
+
+
diff --git a/ui/gtk3/separator.c b/ui/gtk3/separator.c
new file mode 100644 (file)
index 0000000..00173e7
--- /dev/null
@@ -0,0 +1,155 @@
+/* separator.c generated by valac 0.20.1, the Vala compiler
+ * generated from separator.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <gtk/gtk.h>
+
+
+#define TYPE_HSEPARATOR (hseparator_get_type ())
+#define HSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HSEPARATOR, HSeparator))
+#define HSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HSEPARATOR, HSeparatorClass))
+#define IS_HSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HSEPARATOR))
+#define IS_HSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HSEPARATOR))
+#define HSEPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HSEPARATOR, HSeparatorClass))
+
+typedef struct _HSeparator HSeparator;
+typedef struct _HSeparatorClass HSeparatorClass;
+typedef struct _HSeparatorPrivate HSeparatorPrivate;
+
+#define TYPE_VSEPARATOR (vseparator_get_type ())
+#define VSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VSEPARATOR, VSeparator))
+#define VSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VSEPARATOR, VSeparatorClass))
+#define IS_VSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VSEPARATOR))
+#define IS_VSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VSEPARATOR))
+#define VSEPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VSEPARATOR, VSeparatorClass))
+
+typedef struct _VSeparator VSeparator;
+typedef struct _VSeparatorClass VSeparatorClass;
+typedef struct _VSeparatorPrivate VSeparatorPrivate;
+
+struct _HSeparator {
+       GtkHSeparator parent_instance;
+       HSeparatorPrivate * priv;
+};
+
+struct _HSeparatorClass {
+       GtkHSeparatorClass parent_class;
+};
+
+struct _VSeparator {
+       GtkVSeparator parent_instance;
+       VSeparatorPrivate * priv;
+};
+
+struct _VSeparatorClass {
+       GtkVSeparatorClass parent_class;
+};
+
+
+static gpointer hseparator_parent_class = NULL;
+static gpointer vseparator_parent_class = NULL;
+
+GType hseparator_get_type (void) G_GNUC_CONST;
+enum  {
+       HSEPARATOR_DUMMY_PROPERTY
+};
+HSeparator* hseparator_new (void);
+HSeparator* hseparator_construct (GType object_type);
+GType vseparator_get_type (void) G_GNUC_CONST;
+enum  {
+       VSEPARATOR_DUMMY_PROPERTY
+};
+VSeparator* vseparator_new (void);
+VSeparator* vseparator_construct (GType object_type);
+
+
+HSeparator* hseparator_construct (GType object_type) {
+       HSeparator * self = NULL;
+       self = (HSeparator*) g_object_new (object_type, "margin", 2, NULL);
+       return self;
+}
+
+
+HSeparator* hseparator_new (void) {
+       return hseparator_construct (TYPE_HSEPARATOR);
+}
+
+
+static void hseparator_class_init (HSeparatorClass * klass) {
+       hseparator_parent_class = g_type_class_peek_parent (klass);
+}
+
+
+static void hseparator_instance_init (HSeparator * self) {
+}
+
+
+GType hseparator_get_type (void) {
+       static volatile gsize hseparator_type_id__volatile = 0;
+       if (g_once_init_enter (&hseparator_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (HSeparatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hseparator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HSeparator), 0, (GInstanceInitFunc) hseparator_instance_init, NULL };
+               GType hseparator_type_id;
+               hseparator_type_id = g_type_register_static (GTK_TYPE_HSEPARATOR, "HSeparator", &g_define_type_info, 0);
+               g_once_init_leave (&hseparator_type_id__volatile, hseparator_type_id);
+       }
+       return hseparator_type_id__volatile;
+}
+
+
+VSeparator* vseparator_construct (GType object_type) {
+       VSeparator * self = NULL;
+       self = (VSeparator*) g_object_new (object_type, "margin", 2, NULL);
+       return self;
+}
+
+
+VSeparator* vseparator_new (void) {
+       return vseparator_construct (TYPE_VSEPARATOR);
+}
+
+
+static void vseparator_class_init (VSeparatorClass * klass) {
+       vseparator_parent_class = g_type_class_peek_parent (klass);
+}
+
+
+static void vseparator_instance_init (VSeparator * self) {
+}
+
+
+GType vseparator_get_type (void) {
+       static volatile gsize vseparator_type_id__volatile = 0;
+       if (g_once_init_enter (&vseparator_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (VSeparatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vseparator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (VSeparator), 0, (GInstanceInitFunc) vseparator_instance_init, NULL };
+               GType vseparator_type_id;
+               vseparator_type_id = g_type_register_static (GTK_TYPE_VSEPARATOR, "VSeparator", &g_define_type_info, 0);
+               g_once_init_leave (&vseparator_type_id__volatile, vseparator_type_id);
+       }
+       return vseparator_type_id__volatile;
+}
+
+
+
diff --git a/ui/gtk3/switcher.c b/ui/gtk3/switcher.c
new file mode 100644 (file)
index 0000000..2e56849
--- /dev/null
@@ -0,0 +1,1519 @@
+/* switcher.c generated by valac 0.20.1, the Vala compiler
+ * generated from switcher.vala, do not modify */
+
+/* vim:set et sts=4 sw=4:
+ *
+ * ibus - The Input Bus
+ *
+ * Copyright(c) 2011 Peng Huang <shawn.p.huang@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-object.h>
+#include <gtk/gtk.h>
+#include <ibus.h>
+#include <gdk/gdk.h>
+#include <atk/atk.h>
+#include <stdlib.h>
+#include <string.h>
+#include <pango/pango.h>
+#include <cairo.h>
+#include <float.h>
+#include <math.h>
+
+
+#define TYPE_SWITCHER (switcher_get_type ())
+#define SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SWITCHER, Switcher))
+#define SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SWITCHER, SwitcherClass))
+#define IS_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SWITCHER))
+#define IS_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SWITCHER))
+#define SWITCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SWITCHER, SwitcherClass))
+
+typedef struct _Switcher Switcher;
+typedef struct _SwitcherClass SwitcherClass;
+typedef struct _SwitcherPrivate SwitcherPrivate;
+
+#define SWITCHER_TYPE_IBUS_ENGINE_BUTTON (switcher_ibus_engine_button_get_type ())
+#define SWITCHER_IBUS_ENGINE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWITCHER_TYPE_IBUS_ENGINE_BUTTON, SwitcherIBusEngineButton))
+#define SWITCHER_IBUS_ENGINE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWITCHER_TYPE_IBUS_ENGINE_BUTTON, SwitcherIBusEngineButtonClass))
+#define SWITCHER_IS_IBUS_ENGINE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWITCHER_TYPE_IBUS_ENGINE_BUTTON))
+#define SWITCHER_IS_IBUS_ENGINE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWITCHER_TYPE_IBUS_ENGINE_BUTTON))
+#define SWITCHER_IBUS_ENGINE_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWITCHER_TYPE_IBUS_ENGINE_BUTTON, SwitcherIBusEngineButtonClass))
+
+typedef struct _SwitcherIBusEngineButton SwitcherIBusEngineButton;
+typedef struct _SwitcherIBusEngineButtonClass SwitcherIBusEngineButtonClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _g_main_loop_unref0(var) ((var == NULL) ? NULL : (var = (g_main_loop_unref (var), NULL)))
+#define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
+typedef struct _Block5Data Block5Data;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _SwitcherIBusEngineButtonPrivate SwitcherIBusEngineButtonPrivate;
+
+#define TYPE_ICON_WIDGET (icon_widget_get_type ())
+#define ICON_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ICON_WIDGET, IconWidget))
+#define ICON_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ICON_WIDGET, IconWidgetClass))
+#define IS_ICON_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ICON_WIDGET))
+#define IS_ICON_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ICON_WIDGET))
+#define ICON_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ICON_WIDGET, IconWidgetClass))
+
+typedef struct _IconWidget IconWidget;
+typedef struct _IconWidgetClass IconWidgetClass;
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+struct _Switcher {
+       GtkWindow parent_instance;
+       SwitcherPrivate * priv;
+};
+
+struct _SwitcherClass {
+       GtkWindowClass parent_class;
+};
+
+struct _SwitcherPrivate {
+       GtkBox* m_box;
+       GtkLabel* m_label;
+       SwitcherIBusEngineButton** m_buttons;
+       gint m_buttons_length1;
+       gint _m_buttons_size_;
+       IBusEngineDesc** m_engines;
+       gint m_engines_length1;
+       gint _m_engines_size_;
+       guint m_selected_engine;
+       guint m_keyval;
+       guint m_modifiers;
+       GdkModifierType m_primary_modifier;
+       GMainLoop* m_loop;
+       gint m_result;
+       guint m_popup_delay_time;
+       guint m_popup_delay_time_id;
+       gint m_root_x;
+       gint m_root_y;
+};
+
+struct _Block5Data {
+       int _ref_count_;
+       Switcher * self;
+       gint index;
+       SwitcherIBusEngineButton* button;
+};
+
+struct _SwitcherIBusEngineButton {
+       GtkButton parent_instance;
+       SwitcherIBusEngineButtonPrivate * priv;
+};
+
+struct _SwitcherIBusEngineButtonClass {
+       GtkButtonClass parent_class;
+};
+
+struct _SwitcherIBusEngineButtonPrivate {
+       gchar* _longname;
+};
+
+
+static gpointer switcher_parent_class = NULL;
+static gpointer switcher_ibus_engine_button_parent_class = NULL;
+
+GType switcher_get_type (void) G_GNUC_CONST;
+static GType switcher_ibus_engine_button_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
+#define SWITCHER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_SWITCHER, SwitcherPrivate))
+enum  {
+       SWITCHER_DUMMY_PROPERTY
+};
+#define SWITCHER_DEFAULT_FONT_SIZE 16
+#define SWITCHER_DESC_LABEL_MAX_LEN 20
+Switcher* switcher_new (void);
+Switcher* switcher_construct (GType object_type);
+gint switcher_run (Switcher* self, guint keyval, guint state, GdkEvent* event, IBusEngineDesc** engines, int engines_length1, gint index);
+GdkModifierType keybinding_manager_get_primary_modifier (guint binding_mask);
+#define KEYBINDING_MANAGER_MODIFIER_FILTER ((guint) (GDK_MODIFIER_MASK & (~(((((((((GDK_LOCK_MASK | GDK_MOD2_MASK) | GDK_BUTTON1_MASK) | GDK_BUTTON2_MASK) | GDK_BUTTON3_MASK) | GDK_BUTTON4_MASK) | GDK_BUTTON5_MASK) | GDK_SUPER_MASK) | GDK_HYPER_MASK) | GDK_META_MASK))))
+static void switcher_update_engines (Switcher* self, IBusEngineDesc** engines, int engines_length1);
+static const gchar* switcher_ibus_engine_button_get_longname (SwitcherIBusEngineButton* self);
+static gboolean ___lambda15_ (Switcher* self);
+static void switcher_restore_window_position (Switcher* self, const gchar* debug_str);
+static gboolean ____lambda15__gsource_func (gpointer self);
+static IBusEngineDesc** _vala_array_dup5 (IBusEngineDesc** self, int length);
+static Block5Data* block5_data_ref (Block5Data* _data5_);
+static void block5_data_unref (void * _userdata_);
+static SwitcherIBusEngineButton* switcher_ibus_engine_button_new (IBusEngineDesc* engine);
+static SwitcherIBusEngineButton* switcher_ibus_engine_button_construct (GType object_type, IBusEngineDesc* engine);
+static gboolean _____lambda13_ (Block5Data* _data5_, GdkEventCrossing* e);
+static gboolean ______lambda13__gtk_widget_enter_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self);
+static gboolean _____lambda14_ (Block5Data* _data5_, GdkEventButton* e);
+static gboolean ______lambda14__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
+static void switcher_ibus_engine_button_set_longname (SwitcherIBusEngineButton* self, const gchar* value);
+static void _vala_array_add25 (SwitcherIBusEngineButton*** array, int* length, int* size, SwitcherIBusEngineButton* value);
+static void switcher_next_engine (Switcher* self);
+static void switcher_previous_engine (Switcher* self);
+static void switcher_real_show (GtkWidget* base);
+static gboolean switcher_real_key_press_event (GtkWidget* base, GdkEventKey* e);
+static gboolean switcher_real_key_release_event (GtkWidget* base, GdkEventKey* e);
+gboolean keybinding_manager_primary_modifier_still_pressed (GdkEvent* event, guint primary_modifier);
+void switcher_set_popup_delay_time (Switcher* self, guint popup_delay_time);
+#define SWITCHER_IBUS_ENGINE_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SWITCHER_TYPE_IBUS_ENGINE_BUTTON, SwitcherIBusEngineButtonPrivate))
+enum  {
+       SWITCHER_IBUS_ENGINE_BUTTON_DUMMY_PROPERTY,
+       SWITCHER_IBUS_ENGINE_BUTTON_LONGNAME
+};
+IconWidget* icon_widget_new (const gchar* icon_name_or_path, GtkIconSize size);
+IconWidget* icon_widget_construct (GType object_type, const gchar* icon_name_or_path, GtkIconSize size);
+GType icon_widget_get_type (void) G_GNUC_CONST;
+static gboolean switcher_ibus_engine_button_real_draw (GtkWidget* base, cairo_t* cr);
+static void switcher_ibus_engine_button_finalize (GObject* obj);
+static void _vala_switcher_ibus_engine_button_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void _vala_switcher_ibus_engine_button_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+static void switcher_finalize (GObject* obj);
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+Switcher* switcher_construct (GType object_type) {
+       Switcher * self = NULL;
+       GtkBox* _tmp0_;
+       GtkBox* vbox;
+       GtkAlignment* _tmp1_;
+       GtkAlignment* align;
+       GtkBox* _tmp2_;
+       GtkBox* _tmp3_;
+       GtkLabel* _tmp4_;
+       GtkLabel* _tmp5_;
+       AtkObject* _tmp6_ = NULL;
+       AtkObject* _tmp7_;
+       AtkObject* obj;
+       GtkLabel* _tmp8_;
+       GtkLabel* _tmp9_;
+       self = (Switcher*) g_object_new (object_type, "type", GTK_WINDOW_POPUP, "events", GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK, "window-position", GTK_WIN_POS_CENTER, "accept-focus", TRUE, "decorated", FALSE, "modal", TRUE, "focus-visible", TRUE, NULL);
+       _tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+       g_object_ref_sink (_tmp0_);
+       vbox = _tmp0_;
+       gtk_container_add ((GtkContainer*) self, (GtkWidget*) vbox);
+       _tmp1_ = (GtkAlignment*) gtk_alignment_new (0.5f, 0.5f, 0.0f, 0.0f);
+       g_object_ref_sink (_tmp1_);
+       align = _tmp1_;
+       gtk_box_pack_start (vbox, (GtkWidget*) align, TRUE, TRUE, (guint) 0);
+       _tmp2_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+       g_object_ref_sink (_tmp2_);
+       _g_object_unref0 (self->priv->m_box);
+       self->priv->m_box = _tmp2_;
+       _tmp3_ = self->priv->m_box;
+       gtk_container_add ((GtkContainer*) align, (GtkWidget*) _tmp3_);
+       _tmp4_ = (GtkLabel*) gtk_label_new ("");
+       g_object_ref_sink (_tmp4_);
+       _g_object_unref0 (self->priv->m_label);
+       self->priv->m_label = _tmp4_;
+       _tmp5_ = self->priv->m_label;
+       _tmp6_ = gtk_widget_get_accessible ((GtkWidget*) _tmp5_);
+       _tmp7_ = _g_object_ref0 (_tmp6_);
+       obj = _tmp7_;
+       atk_object_set_role (obj, ATK_ROLE_STATUSBAR);
+       _tmp8_ = self->priv->m_label;
+       gtk_misc_set_padding ((GtkMisc*) _tmp8_, 3, 3);
+       _tmp9_ = self->priv->m_label;
+       gtk_box_pack_end (vbox, (GtkWidget*) _tmp9_, FALSE, FALSE, (guint) 0);
+       gtk_widget_grab_focus ((GtkWidget*) self);
+       _g_object_unref0 (obj);
+       _g_object_unref0 (align);
+       _g_object_unref0 (vbox);
+       return self;
+}
+
+
+Switcher* switcher_new (void) {
+       return switcher_construct (TYPE_SWITCHER);
+}
+
+
+static gboolean ___lambda15_ (Switcher* self) {
+       gboolean result = FALSE;
+       switcher_restore_window_position (self, "timeout");
+       result = FALSE;
+       return result;
+}
+
+
+static gboolean ____lambda15__gsource_func (gpointer self) {
+       gboolean result;
+       result = ___lambda15_ (self);
+       return result;
+}
+
+
+gint switcher_run (Switcher* self, guint keyval, guint state, GdkEvent* event, IBusEngineDesc** engines, int engines_length1, gint index) {
+       gint result = 0;
+       GMainLoop* _tmp0_;
+       gint _tmp1_;
+       IBusEngineDesc** _tmp2_;
+       gint _tmp2__length1;
+       guint _tmp3_;
+       guint _tmp4_;
+       guint _tmp5_;
+       GdkModifierType _tmp6_ = 0;
+       IBusEngineDesc** _tmp7_;
+       gint _tmp7__length1;
+       gint _tmp8_;
+       GtkLabel* _tmp9_;
+       SwitcherIBusEngineButton** _tmp10_;
+       gint _tmp10__length1;
+       gint _tmp11_;
+       SwitcherIBusEngineButton* _tmp12_;
+       const gchar* _tmp13_;
+       const gchar* _tmp14_;
+       SwitcherIBusEngineButton** _tmp15_;
+       gint _tmp15__length1;
+       gint _tmp16_;
+       SwitcherIBusEngineButton* _tmp17_;
+       GdkEvent* _tmp18_;
+       GdkDevice* _tmp19_ = NULL;
+       GdkDevice* _tmp20_;
+       GdkDevice* device;
+       GdkDevice* _tmp21_;
+       GdkDevice* keyboard = NULL;
+       GdkDevice* pointer = NULL;
+       GdkDevice* _tmp32_;
+       GdkInputSource _tmp33_ = 0;
+       guint _tmp44_;
+       guint _tmp47_;
+       GdkGrabStatus status = 0;
+       GdkDevice* _tmp50_;
+       GdkWindow* _tmp51_ = NULL;
+       GdkGrabStatus _tmp52_ = 0;
+       GdkGrabStatus _tmp53_;
+       GdkDevice* _tmp55_;
+       GdkWindow* _tmp56_ = NULL;
+       GdkGrabStatus _tmp57_ = 0;
+       GdkGrabStatus _tmp58_;
+       GMainLoop* _tmp60_;
+       GMainLoop* _tmp61_;
+       GdkDevice* _tmp62_;
+       GdkDevice* _tmp63_;
+       gint _tmp65_;
+       g_return_val_if_fail (self != NULL, 0);
+       g_return_val_if_fail (event != NULL, 0);
+       _tmp0_ = self->priv->m_loop;
+       _vala_assert (_tmp0_ == NULL, "m_loop == null");
+       _tmp1_ = index;
+       _tmp2_ = engines;
+       _tmp2__length1 = engines_length1;
+       _vala_assert (_tmp1_ < _tmp2__length1, "index < engines.length");
+       _tmp3_ = keyval;
+       self->priv->m_keyval = _tmp3_;
+       _tmp4_ = state;
+       self->priv->m_modifiers = _tmp4_;
+       _tmp5_ = state;
+       _tmp6_ = keybinding_manager_get_primary_modifier (_tmp5_ & KEYBINDING_MANAGER_MODIFIER_FILTER);
+       self->priv->m_primary_modifier = _tmp6_;
+       _tmp7_ = engines;
+       _tmp7__length1 = engines_length1;
+       switcher_update_engines (self, _tmp7_, _tmp7__length1);
+       gtk_window_resize ((GtkWindow*) self, 1, 1);
+       _tmp8_ = index;
+       self->priv->m_selected_engine = (guint) _tmp8_;
+       _tmp9_ = self->priv->m_label;
+       _tmp10_ = self->priv->m_buttons;
+       _tmp10__length1 = self->priv->m_buttons_length1;
+       _tmp11_ = index;
+       _tmp12_ = _tmp10_[_tmp11_];
+       _tmp13_ = switcher_ibus_engine_button_get_longname (_tmp12_);
+       _tmp14_ = _tmp13_;
+       gtk_label_set_text (_tmp9_, _tmp14_);
+       _tmp15_ = self->priv->m_buttons;
+       _tmp15__length1 = self->priv->m_buttons_length1;
+       _tmp16_ = index;
+       _tmp17_ = _tmp15_[_tmp16_];
+       gtk_widget_grab_focus ((GtkWidget*) _tmp17_);
+       _tmp18_ = event;
+       _tmp19_ = gdk_event_get_device (_tmp18_);
+       _tmp20_ = _g_object_ref0 (_tmp19_);
+       device = _tmp20_;
+       _tmp21_ = device;
+       if (_tmp21_ == NULL) {
+               GdkDisplay* _tmp22_ = NULL;
+               GdkDisplay* _tmp23_;
+               GdkDisplay* display;
+               GdkDisplay* _tmp24_;
+               GdkDeviceManager* _tmp25_ = NULL;
+               GdkDeviceManager* _tmp26_;
+               GdkDeviceManager* device_manager;
+               GdkDeviceManager* _tmp27_;
+               GList* _tmp28_ = NULL;
+               GList* _tmp29_;
+               gconstpointer _tmp30_;
+               GdkDevice* _tmp31_;
+               _tmp22_ = gtk_widget_get_display ((GtkWidget*) self);
+               _tmp23_ = _g_object_ref0 (_tmp22_);
+               display = _tmp23_;
+               _tmp24_ = display;
+               _tmp25_ = gdk_display_get_device_manager (_tmp24_);
+               _tmp26_ = _g_object_ref0 (_tmp25_);
+               device_manager = _tmp26_;
+               _tmp27_ = device_manager;
+               _tmp28_ = gdk_device_manager_list_devices (_tmp27_, GDK_DEVICE_TYPE_MASTER);
+               _tmp29_ = _tmp28_;
+               _tmp30_ = _tmp29_->data;
+               _tmp31_ = _g_object_ref0 ((GdkDevice*) _tmp30_);
+               _g_object_unref0 (device);
+               device = _tmp31_;
+               _g_list_free0 (_tmp29_);
+               _g_object_unref0 (device_manager);
+               _g_object_unref0 (display);
+       }
+       _tmp32_ = device;
+       _tmp33_ = gdk_device_get_source (_tmp32_);
+       if (_tmp33_ == GDK_SOURCE_KEYBOARD) {
+               GdkDevice* _tmp34_;
+               GdkDevice* _tmp35_;
+               GdkDevice* _tmp36_;
+               GdkDevice* _tmp37_ = NULL;
+               GdkDevice* _tmp38_;
+               _tmp34_ = device;
+               _tmp35_ = _g_object_ref0 (_tmp34_);
+               _g_object_unref0 (keyboard);
+               keyboard = _tmp35_;
+               _tmp36_ = device;
+               _tmp37_ = gdk_device_get_associated_device (_tmp36_);
+               _tmp38_ = _g_object_ref0 (_tmp37_);
+               _g_object_unref0 (pointer);
+               pointer = _tmp38_;
+       } else {
+               GdkDevice* _tmp39_;
+               GdkDevice* _tmp40_;
+               GdkDevice* _tmp41_;
+               GdkDevice* _tmp42_ = NULL;
+               GdkDevice* _tmp43_;
+               _tmp39_ = device;
+               _tmp40_ = _g_object_ref0 (_tmp39_);
+               _g_object_unref0 (pointer);
+               pointer = _tmp40_;
+               _tmp41_ = device;
+               _tmp42_ = gdk_device_get_associated_device (_tmp41_);
+               _tmp43_ = _g_object_ref0 (_tmp42_);
+               _g_object_unref0 (keyboard);
+               keyboard = _tmp43_;
+       }
+       _tmp44_ = self->priv->m_popup_delay_time;
+       if (_tmp44_ > ((guint) 0)) {
+               gint _tmp45_ = 0;
+               gint _tmp46_ = 0;
+               gtk_window_get_position ((GtkWindow*) self, &_tmp45_, &_tmp46_);
+               self->priv->m_root_x = _tmp45_;
+               self->priv->m_root_y = _tmp46_;
+               gtk_window_move ((GtkWindow*) self, -1000, -1000);
+       }
+       gtk_widget_show_all ((GtkWidget*) self);
+       _tmp47_ = self->priv->m_popup_delay_time;
+       if (_tmp47_ > ((guint) 0)) {
+               guint _tmp48_;
+               guint _tmp49_ = 0U;
+               _tmp48_ = self->priv->m_popup_delay_time;
+               _tmp49_ = g_timeout_add_full (G_PRIORITY_DEFAULT, _tmp48_, ____lambda15__gsource_func, g_object_ref (self), g_object_unref);
+               self->priv->m_popup_delay_time_id = _tmp49_;
+       }
+       _tmp50_ = keyboard;
+       _tmp51_ = gtk_widget_get_window ((GtkWidget*) self);
+       _tmp52_ = gdk_device_grab (_tmp50_, _tmp51_, GDK_OWNERSHIP_NONE, TRUE, GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK, NULL, (guint32) GDK_CURRENT_TIME);
+       status = _tmp52_;
+       _tmp53_ = status;
+       if (_tmp53_ != GDK_GRAB_SUCCESS) {
+               GdkGrabStatus _tmp54_;
+               _tmp54_ = status;
+               g_warning ("switcher.vala:203: Grab keyboard failed! status = %d", (gint) _tmp54_);
+       }
+       _tmp55_ = pointer;
+       _tmp56_ = gtk_widget_get_window ((GtkWidget*) self);
+       _tmp57_ = gdk_device_grab (_tmp55_, _tmp56_, GDK_OWNERSHIP_NONE, TRUE, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK, NULL, (guint32) GDK_CURRENT_TIME);
+       status = _tmp57_;
+       _tmp58_ = status;
+       if (_tmp58_ != GDK_GRAB_SUCCESS) {
+               GdkGrabStatus _tmp59_;
+               _tmp59_ = status;
+               g_warning ("switcher.vala:213: Grab pointer failed! status = %d", (gint) _tmp59_);
+       }
+       _tmp60_ = g_main_loop_new (NULL, FALSE);
+       _g_main_loop_unref0 (self->priv->m_loop);
+       self->priv->m_loop = _tmp60_;
+       _tmp61_ = self->priv->m_loop;
+       g_main_loop_run (_tmp61_);
+       _g_main_loop_unref0 (self->priv->m_loop);
+       self->priv->m_loop = NULL;
+       _tmp62_ = keyboard;
+       gdk_device_ungrab (_tmp62_, (guint32) GDK_CURRENT_TIME);
+       _tmp63_ = pointer;
+       gdk_device_ungrab (_tmp63_, (guint32) GDK_CURRENT_TIME);
+       gtk_widget_hide ((GtkWidget*) self);
+       while (TRUE) {
+               gboolean _tmp64_ = FALSE;
+               _tmp64_ = gtk_events_pending ();
+               if (!_tmp64_) {
+                       break;
+               }
+               gtk_main_iteration ();
+       }
+       _tmp65_ = self->priv->m_result;
+       result = _tmp65_;
+       _g_object_unref0 (pointer);
+       _g_object_unref0 (keyboard);
+       _g_object_unref0 (device);
+       return result;
+}
+
+
+static IBusEngineDesc** _vala_array_dup5 (IBusEngineDesc** self, int length) {
+       IBusEngineDesc** result;
+       int i;
+       result = g_new0 (IBusEngineDesc*, length + 1);
+       for (i = 0; i < length; i++) {
+               IBusEngineDesc* _tmp0_;
+               _tmp0_ = _g_object_ref0 (self[i]);
+               result[i] = _tmp0_;
+       }
+       return result;
+}
+
+
+static Block5Data* block5_data_ref (Block5Data* _data5_) {
+       g_atomic_int_inc (&_data5_->_ref_count_);
+       return _data5_;
+}
+
+
+static void block5_data_unref (void * _userdata_) {
+       Block5Data* _data5_;
+       _data5_ = (Block5Data*) _userdata_;
+       if (g_atomic_int_dec_and_test (&_data5_->_ref_count_)) {
+               Switcher * self;
+               self = _data5_->self;
+               _g_object_unref0 (_data5_->button);
+               _g_object_unref0 (self);
+               g_slice_free (Block5Data, _data5_);
+       }
+}
+
+
+static gboolean _____lambda13_ (Block5Data* _data5_, GdkEventCrossing* e) {
+       Switcher * self;
+       gboolean result = FALSE;
+       SwitcherIBusEngineButton* _tmp0_;
+       gint _tmp1_;
+       self = _data5_->self;
+       g_return_val_if_fail (e != NULL, FALSE);
+       _tmp0_ = _data5_->button;
+       gtk_widget_grab_focus ((GtkWidget*) _tmp0_);
+       _tmp1_ = _data5_->index;
+       self->priv->m_selected_engine = (guint) _tmp1_;
+       result = TRUE;
+       return result;
+}
+
+
+static gboolean ______lambda13__gtk_widget_enter_notify_event (GtkWidget* _sender, GdkEventCrossing* event, gpointer self) {
+       gboolean result;
+       result = _____lambda13_ (self, event);
+       return result;
+}
+
+
+static gboolean _____lambda14_ (Block5Data* _data5_, GdkEventButton* e) {
+       Switcher * self;
+       gboolean result = FALSE;
+       gint _tmp0_;
+       guint _tmp1_;
+       GMainLoop* _tmp2_;
+       self = _data5_->self;
+       g_return_val_if_fail (e != NULL, FALSE);
+       _tmp0_ = _data5_->index;
+       self->priv->m_selected_engine = (guint) _tmp0_;
+       _tmp1_ = self->priv->m_selected_engine;
+       self->priv->m_result = (gint) _tmp1_;
+       _tmp2_ = self->priv->m_loop;
+       g_main_loop_quit (_tmp2_);
+       result = TRUE;
+       return result;
+}
+
+
+static gboolean ______lambda14__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
+       gboolean result;
+       result = _____lambda14_ (self, event);
+       return result;
+}
+
+
+static gchar* string_slice (const gchar* self, glong start, glong end) {
+       gchar* result = NULL;
+       gint _tmp0_;
+       gint _tmp1_;
+       glong string_length;
+       glong _tmp2_;
+       glong _tmp5_;
+       gboolean _tmp8_ = FALSE;
+       glong _tmp9_;
+       gboolean _tmp12_;
+       gboolean _tmp13_ = FALSE;
+       glong _tmp14_;
+       gboolean _tmp17_;
+       glong _tmp18_;
+       glong _tmp19_;
+       glong _tmp20_;
+       glong _tmp21_;
+       glong _tmp22_;
+       gchar* _tmp23_ = NULL;
+       g_return_val_if_fail (self != NULL, NULL);
+       _tmp0_ = strlen (self);
+       _tmp1_ = _tmp0_;
+       string_length = (glong) _tmp1_;
+       _tmp2_ = start;
+       if (_tmp2_ < ((glong) 0)) {
+               glong _tmp3_;
+               glong _tmp4_;
+               _tmp3_ = string_length;
+               _tmp4_ = start;
+               start = _tmp3_ + _tmp4_;
+       }
+       _tmp5_ = end;
+       if (_tmp5_ < ((glong) 0)) {
+               glong _tmp6_;
+               glong _tmp7_;
+               _tmp6_ = string_length;
+               _tmp7_ = end;
+               end = _tmp6_ + _tmp7_;
+       }
+       _tmp9_ = start;
+       if (_tmp9_ >= ((glong) 0)) {
+               glong _tmp10_;
+               glong _tmp11_;
+               _tmp10_ = start;
+               _tmp11_ = string_length;
+               _tmp8_ = _tmp10_ <= _tmp11_;
+       } else {
+               _tmp8_ = FALSE;
+       }
+       _tmp12_ = _tmp8_;
+       g_return_val_if_fail (_tmp12_, NULL);
+       _tmp14_ = end;
+       if (_tmp14_ >= ((glong) 0)) {
+               glong _tmp15_;
+               glong _tmp16_;
+               _tmp15_ = end;
+               _tmp16_ = string_length;
+               _tmp13_ = _tmp15_ <= _tmp16_;
+       } else {
+               _tmp13_ = FALSE;
+       }
+       _tmp17_ = _tmp13_;
+       g_return_val_if_fail (_tmp17_, NULL);
+       _tmp18_ = start;
+       _tmp19_ = end;
+       g_return_val_if_fail (_tmp18_ <= _tmp19_, NULL);
+       _tmp20_ = start;
+       _tmp21_ = end;
+       _tmp22_ = start;
+       _tmp23_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) (_tmp21_ - _tmp22_));
+       result = _tmp23_;
+       return result;
+}
+
+
+static void _vala_array_add25 (SwitcherIBusEngineButton*** array, int* length, int* size, SwitcherIBusEngineButton* value) {
+       if ((*length) == (*size)) {
+               *size = (*size) ? (2 * (*size)) : 4;
+               *array = g_renew (SwitcherIBusEngineButton*, *array, (*size) + 1);
+       }
+       (*array)[(*length)++] = value;
+       (*array)[*length] = NULL;
+}
+
+
+static void switcher_update_engines (Switcher* self, IBusEngineDesc** engines, int engines_length1) {
+       SwitcherIBusEngineButton** _tmp0_;
+       gint _tmp0__length1;
+       SwitcherIBusEngineButton** _tmp3_ = NULL;
+       IBusEngineDesc** _tmp4_;
+       gint _tmp4__length1;
+       IBusEngineDesc** _tmp6_;
+       gint _tmp6__length1;
+       IBusEngineDesc** _tmp7_;
+       gint _tmp7__length1;
+       gint max_label_width;
+       GtkLabel* _tmp46_;
+       SwitcherIBusEngineButton** _tmp47_;
+       gint _tmp47__length1;
+       SwitcherIBusEngineButton* _tmp48_;
+       const gchar* _tmp49_;
+       const gchar* _tmp50_;
+       GtkLabel* _tmp51_;
+       GdkDisplay* _tmp52_ = NULL;
+       GdkDisplay* _tmp53_;
+       GdkDisplay* display;
+       GdkScreen* _tmp54_ = NULL;
+       GdkDisplay* _tmp55_;
+       GdkScreen* _tmp58_;
+       GdkScreen* _tmp59_;
+       GdkScreen* screen;
+       gint screen_width;
+       GdkScreen* _tmp60_;
+       gboolean _tmp63_ = FALSE;
+       gint _tmp64_;
+       gboolean _tmp67_;
+       gint _tmp69_;
+       gint _tmp70_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_buttons;
+       _tmp0__length1 = self->priv->m_buttons_length1;
+       {
+               SwitcherIBusEngineButton** button_collection = NULL;
+               gint button_collection_length1 = 0;
+               gint _button_collection_size_ = 0;
+               gint button_it = 0;
+               button_collection = _tmp0_;
+               button_collection_length1 = _tmp0__length1;
+               for (button_it = 0; button_it < _tmp0__length1; button_it = button_it + 1) {
+                       SwitcherIBusEngineButton* _tmp1_;
+                       SwitcherIBusEngineButton* button = NULL;
+                       _tmp1_ = _g_object_ref0 (button_collection[button_it]);
+                       button = _tmp1_;
+                       {
+                               SwitcherIBusEngineButton* _tmp2_;
+                               _tmp2_ = button;
+                               gtk_widget_destroy ((GtkWidget*) _tmp2_);
+                               _g_object_unref0 (button);
+                       }
+               }
+       }
+       _tmp3_ = g_new0 (SwitcherIBusEngineButton*, 0 + 1);
+       self->priv->m_buttons = (_vala_array_free (self->priv->m_buttons, self->priv->m_buttons_length1, (GDestroyNotify) g_object_unref), NULL);
+       self->priv->m_buttons = _tmp3_;
+       self->priv->m_buttons_length1 = 0;
+       self->priv->_m_buttons_size_ = self->priv->m_buttons_length1;
+       _tmp4_ = engines;
+       _tmp4__length1 = engines_length1;
+       if (_tmp4_ == NULL) {
+               IBusEngineDesc** _tmp5_ = NULL;
+               _tmp5_ = g_new0 (IBusEngineDesc*, 0 + 1);
+               self->priv->m_engines = (_vala_array_free (self->priv->m_engines, self->priv->m_engines_length1, (GDestroyNotify) g_object_unref), NULL);
+               self->priv->m_engines = _tmp5_;
+               self->priv->m_engines_length1 = 0;
+               self->priv->_m_engines_size_ = self->priv->m_engines_length1;
+               return;
+       }
+       _tmp6_ = engines;
+       _tmp6__length1 = engines_length1;
+       _tmp7_ = (_tmp6_ != NULL) ? _vala_array_dup5 (_tmp6_, _tmp6__length1) : ((gpointer) _tmp6_);
+       _tmp7__length1 = _tmp6__length1;
+       self->priv->m_engines = (_vala_array_free (self->priv->m_engines, self->priv->m_engines_length1, (GDestroyNotify) g_object_unref), NULL);
+       self->priv->m_engines = _tmp7_;
+       self->priv->m_engines_length1 = _tmp7__length1;
+       self->priv->_m_engines_size_ = self->priv->m_engines_length1;
+       max_label_width = 0;
+       {
+               gint i;
+               i = 0;
+               {
+                       gboolean _tmp8_;
+                       _tmp8_ = TRUE;
+                       while (TRUE) {
+                               Block5Data* _data5_;
+                               gboolean _tmp9_;
+                               gint _tmp11_;
+                               IBusEngineDesc** _tmp12_;
+                               gint _tmp12__length1;
+                               gint _tmp13_;
+                               IBusEngineDesc** _tmp14_;
+                               gint _tmp14__length1;
+                               gint _tmp15_;
+                               IBusEngineDesc* _tmp16_;
+                               IBusEngineDesc* _tmp17_;
+                               IBusEngineDesc* engine;
+                               IBusEngineDesc* _tmp18_;
+                               SwitcherIBusEngineButton* _tmp19_;
+                               IBusEngineDesc* _tmp20_;
+                               const gchar* _tmp21_ = NULL;
+                               gchar* _tmp22_;
+                               gchar* longname;
+                               SwitcherIBusEngineButton* _tmp23_;
+                               SwitcherIBusEngineButton* _tmp24_;
+                               SwitcherIBusEngineButton* _tmp25_;
+                               SwitcherIBusEngineButton* _tmp26_;
+                               const gchar* _tmp27_;
+                               gint _tmp28_;
+                               gint _tmp29_;
+                               SwitcherIBusEngineButton* _tmp32_;
+                               const gchar* _tmp33_;
+                               GtkLabel* _tmp34_;
+                               const gchar* _tmp35_;
+                               gint width = 0;
+                               GtkLabel* _tmp36_;
+                               gint _tmp37_ = 0;
+                               gint _tmp38_;
+                               gint _tmp39_;
+                               gint _tmp40_ = 0;
+                               GtkBox* _tmp41_;
+                               SwitcherIBusEngineButton* _tmp42_;
+                               SwitcherIBusEngineButton** _tmp43_;
+                               gint _tmp43__length1;
+                               SwitcherIBusEngineButton* _tmp44_;
+                               SwitcherIBusEngineButton* _tmp45_;
+                               _data5_ = g_slice_new0 (Block5Data);
+                               _data5_->_ref_count_ = 1;
+                               _data5_->self = g_object_ref (self);
+                               _tmp9_ = _tmp8_;
+                               if (!_tmp9_) {
+                                       gint _tmp10_;
+                                       _tmp10_ = i;
+                                       i = _tmp10_ + 1;
+                               }
+                               _tmp8_ = FALSE;
+                               _tmp11_ = i;
+                               _tmp12_ = self->priv->m_engines;
+                               _tmp12__length1 = self->priv->m_engines_length1;
+                               if (!(_tmp11_ < _tmp12__length1)) {
+                                       block5_data_unref (_data5_);
+                                       _data5_ = NULL;
+                                       break;
+                               }
+                               _tmp13_ = i;
+                               _data5_->index = _tmp13_;
+                               _tmp14_ = self->priv->m_engines;
+                               _tmp14__length1 = self->priv->m_engines_length1;
+                               _tmp15_ = i;
+                               _tmp16_ = _tmp14_[_tmp15_];
+                               _tmp17_ = _g_object_ref0 (_tmp16_);
+                               engine = _tmp17_;
+                               _tmp18_ = engine;
+                               _tmp19_ = switcher_ibus_engine_button_new (_tmp18_);
+                               g_object_ref_sink (_tmp19_);
+                               _data5_->button = _tmp19_;
+                               _tmp20_ = engine;
+                               _tmp21_ = ibus_engine_desc_get_longname (_tmp20_);
+                               _tmp22_ = g_strdup (_tmp21_);
+                               longname = _tmp22_;
+                               _tmp23_ = _data5_->button;
+                               gtk_button_set_relief ((GtkButton*) _tmp23_, GTK_RELIEF_NONE);
+                               _tmp24_ = _data5_->button;
+                               gtk_widget_show ((GtkWidget*) _tmp24_);
+                               _tmp25_ = _data5_->button;
+                               g_signal_connect_data ((GtkWidget*) _tmp25_, "enter-notify-event", (GCallback) ______lambda13__gtk_widget_enter_notify_event, block5_data_ref (_data5_), (GClosureNotify) block5_data_unref, 0);
+                               _tmp26_ = _data5_->button;
+                               g_signal_connect_data ((GtkWidget*) _tmp26_, "button-press-event", (GCallback) ______lambda14__gtk_widget_button_press_event, block5_data_ref (_data5_), (GClosureNotify) block5_data_unref, 0);
+                               _tmp27_ = longname;
+                               _tmp28_ = strlen (_tmp27_);
+                               _tmp29_ = _tmp28_;
+                               if (_tmp29_ > SWITCHER_DESC_LABEL_MAX_LEN) {
+                                       const gchar* _tmp30_;
+                                       gchar* _tmp31_ = NULL;
+                                       _tmp30_ = longname;
+                                       _tmp31_ = string_slice (_tmp30_, (glong) 0, (glong) SWITCHER_DESC_LABEL_MAX_LEN);
+                                       _g_free0 (longname);
+                                       longname = _tmp31_;
+                               }
+                               _tmp32_ = _data5_->button;
+                               _tmp33_ = longname;
+                               switcher_ibus_engine_button_set_longname (_tmp32_, _tmp33_);
+                               _tmp34_ = self->priv->m_label;
+                               _tmp35_ = longname;
+                               gtk_label_set_label (_tmp34_, _tmp35_);
+                               _tmp36_ = self->priv->m_label;
+                               gtk_widget_get_preferred_width ((GtkWidget*) _tmp36_, NULL, &_tmp37_);
+                               width = _tmp37_;
+                               _tmp38_ = max_label_width;
+                               _tmp39_ = width;
+                               _tmp40_ = MAX (_tmp38_, _tmp39_);
+                               max_label_width = _tmp40_;
+                               _tmp41_ = self->priv->m_box;
+                               _tmp42_ = _data5_->button;
+                               gtk_box_pack_start (_tmp41_, (GtkWidget*) _tmp42_, TRUE, TRUE, (guint) 0);
+                               _tmp43_ = self->priv->m_buttons;
+                               _tmp43__length1 = self->priv->m_buttons_length1;
+                               _tmp44_ = _data5_->button;
+                               _tmp45_ = _g_object_ref0 (_tmp44_);
+                               _vala_array_add25 (&self->priv->m_buttons, &self->priv->m_buttons_length1, &self->priv->_m_buttons_size_, _tmp45_);
+                               _g_free0 (longname);
+                               _g_object_unref0 (engine);
+                               block5_data_unref (_data5_);
+                               _data5_ = NULL;
+                       }
+               }
+       }
+       _tmp46_ = self->priv->m_label;
+       _tmp47_ = self->priv->m_buttons;
+       _tmp47__length1 = self->priv->m_buttons_length1;
+       _tmp48_ = _tmp47_[0];
+       _tmp49_ = switcher_ibus_engine_button_get_longname (_tmp48_);
+       _tmp50_ = _tmp49_;
+       gtk_label_set_text (_tmp46_, _tmp50_);
+       _tmp51_ = self->priv->m_label;
+       gtk_label_set_ellipsize (_tmp51_, PANGO_ELLIPSIZE_END);
+       _tmp52_ = gdk_display_get_default ();
+       _tmp53_ = _g_object_ref0 (_tmp52_);
+       display = _tmp53_;
+       _tmp55_ = display;
+       if (_tmp55_ != NULL) {
+               GdkDisplay* _tmp56_;
+               GdkScreen* _tmp57_ = NULL;
+               _tmp56_ = display;
+               _tmp57_ = gdk_display_get_default_screen (_tmp56_);
+               _tmp54_ = _tmp57_;
+       } else {
+               _tmp54_ = NULL;
+       }
+       _tmp58_ = _tmp54_;
+       _tmp59_ = _g_object_ref0 (_tmp58_);
+       screen = _tmp59_;
+       screen_width = 0;
+       _tmp60_ = screen;
+       if (_tmp60_ != NULL) {
+               GdkScreen* _tmp61_;
+               gint _tmp62_ = 0;
+               _tmp61_ = screen;
+               _tmp62_ = gdk_screen_get_width (_tmp61_);
+               screen_width = _tmp62_;
+       }
+       _tmp64_ = screen_width;
+       if (_tmp64_ > 0) {
+               gint _tmp65_;
+               gint _tmp66_;
+               _tmp65_ = max_label_width;
+               _tmp66_ = screen_width;
+               _tmp63_ = _tmp65_ > (_tmp66_ / 4);
+       } else {
+               _tmp63_ = FALSE;
+       }
+       _tmp67_ = _tmp63_;
+       if (_tmp67_) {
+               gint _tmp68_;
+               _tmp68_ = screen_width;
+               max_label_width = _tmp68_ / 4;
+       }
+       _tmp69_ = max_label_width;
+       max_label_width = _tmp69_ + 20;
+       _tmp70_ = max_label_width;
+       gtk_window_set_default_size ((GtkWindow*) self, _tmp70_, -1);
+       _g_object_unref0 (screen);
+       _g_object_unref0 (display);
+}
+
+
+static void switcher_next_engine (Switcher* self) {
+       guint _tmp0_;
+       IBusEngineDesc** _tmp1_;
+       gint _tmp1__length1;
+       GtkLabel* _tmp3_;
+       SwitcherIBusEngineButton** _tmp4_;
+       gint _tmp4__length1;
+       guint _tmp5_;
+       SwitcherIBusEngineButton* _tmp6_;
+       const gchar* _tmp7_;
+       const gchar* _tmp8_;
+       SwitcherIBusEngineButton** _tmp9_;
+       gint _tmp9__length1;
+       guint _tmp10_;
+       SwitcherIBusEngineButton* _tmp11_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_selected_engine;
+       _tmp1_ = self->priv->m_engines;
+       _tmp1__length1 = self->priv->m_engines_length1;
+       if (_tmp0_ == ((guint) (_tmp1__length1 - 1))) {
+               self->priv->m_selected_engine = (guint) 0;
+       } else {
+               guint _tmp2_;
+               _tmp2_ = self->priv->m_selected_engine;
+               self->priv->m_selected_engine = _tmp2_ + 1;
+       }
+       _tmp3_ = self->priv->m_label;
+       _tmp4_ = self->priv->m_buttons;
+       _tmp4__length1 = self->priv->m_buttons_length1;
+       _tmp5_ = self->priv->m_selected_engine;
+       _tmp6_ = _tmp4_[_tmp5_];
+       _tmp7_ = switcher_ibus_engine_button_get_longname (_tmp6_);
+       _tmp8_ = _tmp7_;
+       gtk_label_set_text (_tmp3_, _tmp8_);
+       _tmp9_ = self->priv->m_buttons;
+       _tmp9__length1 = self->priv->m_buttons_length1;
+       _tmp10_ = self->priv->m_selected_engine;
+       _tmp11_ = _tmp9_[_tmp10_];
+       gtk_window_set_focus ((GtkWindow*) self, (GtkWidget*) _tmp11_);
+}
+
+
+static void switcher_previous_engine (Switcher* self) {
+       guint _tmp0_;
+       GtkLabel* _tmp3_;
+       SwitcherIBusEngineButton** _tmp4_;
+       gint _tmp4__length1;
+       guint _tmp5_;
+       SwitcherIBusEngineButton* _tmp6_;
+       const gchar* _tmp7_;
+       const gchar* _tmp8_;
+       SwitcherIBusEngineButton** _tmp9_;
+       gint _tmp9__length1;
+       guint _tmp10_;
+       SwitcherIBusEngineButton* _tmp11_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = self->priv->m_selected_engine;
+       if (_tmp0_ == ((guint) 0)) {
+               IBusEngineDesc** _tmp1_;
+               gint _tmp1__length1;
+               _tmp1_ = self->priv->m_engines;
+               _tmp1__length1 = self->priv->m_engines_length1;
+               self->priv->m_selected_engine = (guint) (_tmp1__length1 - 1);
+       } else {
+               guint _tmp2_;
+               _tmp2_ = self->priv->m_selected_engine;
+               self->priv->m_selected_engine = _tmp2_ - 1;
+       }
+       _tmp3_ = self->priv->m_label;
+       _tmp4_ = self->priv->m_buttons;
+       _tmp4__length1 = self->priv->m_buttons_length1;
+       _tmp5_ = self->priv->m_selected_engine;
+       _tmp6_ = _tmp4_[_tmp5_];
+       _tmp7_ = switcher_ibus_engine_button_get_longname (_tmp6_);
+       _tmp8_ = _tmp7_;
+       gtk_label_set_text (_tmp3_, _tmp8_);
+       _tmp9_ = self->priv->m_buttons;
+       _tmp9__length1 = self->priv->m_buttons_length1;
+       _tmp10_ = self->priv->m_selected_engine;
+       _tmp11_ = _tmp9_[_tmp10_];
+       gtk_window_set_focus ((GtkWindow*) self, (GtkWidget*) _tmp11_);
+}
+
+
+static void switcher_restore_window_position (Switcher* self, const gchar* debug_str) {
+       const gchar* _tmp0_;
+       gint _tmp1_;
+       gint _tmp2_;
+       guint _tmp3_;
+       guint _tmp4_;
+       gint _tmp5_;
+       gint _tmp6_;
+       g_return_if_fail (self != NULL);
+       g_return_if_fail (debug_str != NULL);
+       _tmp0_ = debug_str;
+       _tmp1_ = self->priv->m_root_x;
+       _tmp2_ = self->priv->m_root_y;
+       g_debug ("switcher.vala:322: restore_window_position %s: (%ld, %ld)\n", _tmp0_, (glong) _tmp1_, (glong) _tmp2_);
+       _tmp3_ = self->priv->m_popup_delay_time_id;
+       if (_tmp3_ == ((guint) 0)) {
+               return;
+       }
+       _tmp4_ = self->priv->m_popup_delay_time_id;
+       g_source_remove (_tmp4_);
+       self->priv->m_popup_delay_time_id = (guint) 0;
+       _tmp5_ = self->priv->m_root_x;
+       _tmp6_ = self->priv->m_root_y;
+       gtk_window_move ((GtkWindow*) self, _tmp5_, _tmp6_);
+}
+
+
+static void switcher_real_show (GtkWidget* base) {
+       Switcher * self;
+       self = (Switcher*) base;
+       GTK_WIDGET_CLASS (switcher_parent_class)->show ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, GTK_TYPE_WINDOW, GtkWindow));
+       gtk_window_set_focus_visible ((GtkWindow*) self, TRUE);
+}
+
+
+static gboolean switcher_real_key_press_event (GtkWidget* base, GdkEventKey* e) {
+       Switcher * self;
+       gboolean result = FALSE;
+       gboolean retval;
+       GdkEventKey* pe;
+       guint _tmp0_;
+       self = (Switcher*) base;
+       g_return_val_if_fail (e != NULL, FALSE);
+       retval = TRUE;
+       pe = e;
+       _tmp0_ = self->priv->m_popup_delay_time;
+       if (_tmp0_ > ((guint) 0)) {
+               switcher_restore_window_position (self, "pressed");
+       }
+       {
+               gboolean _tmp1_;
+               _tmp1_ = TRUE;
+               while (TRUE) {
+                       gboolean _tmp2_;
+                       GdkEventKey* _tmp3_;
+                       GdkModifierType _tmp4_;
+                       guint modifiers;
+                       gboolean _tmp5_ = FALSE;
+                       guint _tmp6_;
+                       guint _tmp7_;
+                       gboolean _tmp10_;
+                       GdkEventKey* _tmp11_;
+                       guint _tmp12_;
+                       guint _tmp13_;
+                       GdkEventKey* _tmp16_;
+                       guint _tmp17_;
+                       _tmp2_ = _tmp1_;
+                       if (!_tmp2_) {
+                               if (!FALSE) {
+                                       break;
+                               }
+                       }
+                       _tmp1_ = FALSE;
+                       _tmp3_ = pe;
+                       _tmp4_ = (*_tmp3_).state;
+                       modifiers = KEYBINDING_MANAGER_MODIFIER_FILTER & _tmp4_;
+                       _tmp6_ = modifiers;
+                       _tmp7_ = self->priv->m_modifiers;
+                       if (_tmp6_ != _tmp7_) {
+                               guint _tmp8_;
+                               guint _tmp9_;
+                               _tmp8_ = modifiers;
+                               _tmp9_ = self->priv->m_modifiers;
+                               _tmp5_ = _tmp8_ != (_tmp9_ | GDK_SHIFT_MASK);
+                       } else {
+                               _tmp5_ = FALSE;
+                       }
+                       _tmp10_ = _tmp5_;
+                       if (_tmp10_) {
+                               break;
+                       }
+                       _tmp11_ = pe;
+                       _tmp12_ = (*_tmp11_).keyval;
+                       _tmp13_ = self->priv->m_keyval;
+                       if (_tmp12_ == _tmp13_) {
+                               guint _tmp14_;
+                               guint _tmp15_;
+                               _tmp14_ = modifiers;
+                               _tmp15_ = self->priv->m_modifiers;
+                               if (_tmp14_ == _tmp15_) {
+                                       switcher_next_engine (self);
+                               } else {
+                                       switcher_previous_engine (self);
+                               }
+                               break;
+                       }
+                       _tmp16_ = pe;
+                       _tmp17_ = (*_tmp16_).keyval;
+                       switch (_tmp17_) {
+                               case 0x08fb:
+                               case 0xff51:
+                               {
+                                       switcher_previous_engine (self);
+                                       break;
+                               }
+                               case 0x08fc:
+                               case 0xff52:
+                               {
+                                       break;
+                               }
+                               case 0x08fd:
+                               case 0xff53:
+                               {
+                                       switcher_next_engine (self);
+                                       break;
+                               }
+                               case 0x08fe:
+                               case 0xff54:
+                               {
+                                       break;
+                               }
+                               default:
+                               {
+                                       GdkEventKey* _tmp18_;
+                                       guint _tmp19_;
+                                       _tmp18_ = pe;
+                                       _tmp19_ = (*_tmp18_).keyval;
+                                       g_debug ("switcher.vala:380: 0x%04x", _tmp19_);
+                                       break;
+                               }
+                       }
+               }
+       }
+       result = retval;
+       return result;
+}
+
+
+static gboolean switcher_real_key_release_event (GtkWidget* base, GdkEventKey* e) {
+       Switcher * self;
+       gboolean result = FALSE;
+       GdkEventKey* pe;
+       GdkEventKey* _tmp0_;
+       GdkModifierType _tmp1_;
+       gboolean _tmp2_ = FALSE;
+       GMainLoop* _tmp3_;
+       guint _tmp4_;
+       GMainLoop* _tmp7_;
+       guint _tmp8_;
+       self = (Switcher*) base;
+       g_return_val_if_fail (e != NULL, FALSE);
+       pe = e;
+       _tmp0_ = pe;
+       _tmp1_ = self->priv->m_primary_modifier;
+       _tmp2_ = keybinding_manager_primary_modifier_still_pressed ((GdkEvent*) _tmp0_, (guint) _tmp1_);
+       if (_tmp2_) {
+               result = TRUE;
+               return result;
+       }
+       _tmp3_ = self->priv->m_loop;
+       if (_tmp3_ == NULL) {
+               result = FALSE;
+               return result;
+       }
+       _tmp4_ = self->priv->m_popup_delay_time;
+       if (_tmp4_ > ((guint) 0)) {
+               guint _tmp5_;
+               _tmp5_ = self->priv->m_popup_delay_time_id;
+               if (_tmp5_ != ((guint) 0)) {
+                       guint _tmp6_;
+                       _tmp6_ = self->priv->m_popup_delay_time_id;
+                       g_source_remove (_tmp6_);
+                       self->priv->m_popup_delay_time_id = (guint) 0;
+               }
+       }
+       _tmp7_ = self->priv->m_loop;
+       g_main_loop_quit (_tmp7_);
+       _tmp8_ = self->priv->m_selected_engine;
+       self->priv->m_result = (gint) _tmp8_;
+       result = TRUE;
+       return result;
+}
+
+
+void switcher_set_popup_delay_time (Switcher* self, guint popup_delay_time) {
+       guint _tmp0_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = popup_delay_time;
+       self->priv->m_popup_delay_time = _tmp0_;
+}
+
+
+static SwitcherIBusEngineButton* switcher_ibus_engine_button_construct (GType object_type, IBusEngineDesc* engine) {
+       SwitcherIBusEngineButton * self = NULL;
+       IBusEngineDesc* _tmp0_;
+       const gchar* _tmp1_ = NULL;
+       GtkAlignment* _tmp2_;
+       GtkAlignment* align;
+       GtkAlignment* _tmp3_;
+       g_return_val_if_fail (engine != NULL, NULL);
+       self = (SwitcherIBusEngineButton*) g_object_new (object_type, NULL);
+       _tmp0_ = engine;
+       _tmp1_ = ibus_engine_desc_get_longname (_tmp0_);
+       switcher_ibus_engine_button_set_longname (self, _tmp1_);
+       _tmp2_ = (GtkAlignment*) gtk_alignment_new (0.5f, 0.5f, 0.0f, 0.0f);
+       g_object_ref_sink (_tmp2_);
+       align = _tmp2_;
+       _tmp3_ = align;
+       gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp3_);
+       if (!SWITCHER_USE_SYMBOL_ICON) {
+               IBusEngineDesc* _tmp4_;
+               const gchar* _tmp5_ = NULL;
+               IconWidget* _tmp6_;
+               IconWidget* icon;
+               GtkAlignment* _tmp7_;
+               IconWidget* _tmp8_;
+               _tmp4_ = engine;
+               _tmp5_ = ibus_engine_desc_get_icon (_tmp4_);
+               _tmp6_ = icon_widget_new (_tmp5_, GTK_ICON_SIZE_DIALOG);
+               g_object_ref_sink (_tmp6_);
+               icon = _tmp6_;
+               _tmp7_ = align;
+               _tmp8_ = icon;
+               gtk_container_add ((GtkContainer*) _tmp7_, (GtkWidget*) _tmp8_);
+               _g_object_unref0 (icon);
+       } else {
+               IBusEngineDesc* _tmp9_;
+               const gchar* _tmp10_ = NULL;
+               gchar* _tmp11_;
+               gchar* language;
+               IBusEngineDesc* _tmp12_;
+               const gchar* _tmp13_ = NULL;
+               gchar* _tmp14_;
+               gchar* symbol;
+               const gchar* _tmp15_;
+               gchar* _tmp16_;
+               gchar* id;
+               const gchar* _tmp17_;
+               gint _tmp18_;
+               gint _tmp19_;
+               const gchar* _tmp22_;
+               gint _tmp23_;
+               gint _tmp24_;
+               const gchar* _tmp27_;
+               GtkLabel* _tmp28_;
+               GtkLabel* label;
+               gchar* _tmp29_ = NULL;
+               gchar* id_font;
+               const gchar* _tmp30_;
+               const gchar* _tmp31_;
+               gchar* _tmp32_ = NULL;
+               gchar* markup;
+               GtkLabel* _tmp33_;
+               const gchar* _tmp34_;
+               GtkAlignment* _tmp35_;
+               GtkLabel* _tmp36_;
+               _tmp9_ = engine;
+               _tmp10_ = ibus_engine_desc_get_language (_tmp9_);
+               _tmp11_ = g_strdup (_tmp10_);
+               language = _tmp11_;
+               _tmp12_ = engine;
+               _tmp13_ = ibus_engine_desc_get_symbol (_tmp12_);
+               _tmp14_ = g_strdup (_tmp13_);
+               symbol = _tmp14_;
+               _tmp15_ = language;
+               _tmp16_ = g_strdup (_tmp15_);
+               id = _tmp16_;
+               _tmp17_ = id;
+               _tmp18_ = strlen (_tmp17_);
+               _tmp19_ = _tmp18_;
+               if (_tmp19_ > 2) {
+                       const gchar* _tmp20_;
+                       gchar* _tmp21_ = NULL;
+                       _tmp20_ = id;
+                       _tmp21_ = string_slice (_tmp20_, (glong) 0, (glong) 2);
+                       _g_free0 (id);
+                       id = _tmp21_;
+               }
+               _tmp22_ = symbol;
+               _tmp23_ = strlen (_tmp22_);
+               _tmp24_ = _tmp23_;
+               if (_tmp24_ != 0) {
+                       const gchar* _tmp25_;
+                       gchar* _tmp26_;
+                       _tmp25_ = symbol;
+                       _tmp26_ = g_strdup (_tmp25_);
+                       _g_free0 (id);
+                       id = _tmp26_;
+               }
+               _tmp27_ = id;
+               _tmp28_ = (GtkLabel*) gtk_label_new (_tmp27_);
+               g_object_ref_sink (_tmp28_);
+               label = _tmp28_;
+               _tmp29_ = g_strdup_printf ("%d", SWITCHER_DEFAULT_FONT_SIZE);
+               id_font = _tmp29_;
+               _tmp30_ = id_font;
+               _tmp31_ = id;
+               _tmp32_ = g_strdup_printf ("<span font=\"%s\">%s</span>", _tmp30_, _tmp31_);
+               markup = _tmp32_;
+               _tmp33_ = label;
+               _tmp34_ = markup;
+               gtk_label_set_markup (_tmp33_, _tmp34_);
+               _tmp35_ = align;
+               _tmp36_ = label;
+               gtk_container_add ((GtkContainer*) _tmp35_, (GtkWidget*) _tmp36_);
+               _g_free0 (markup);
+               _g_free0 (id_font);
+               _g_object_unref0 (label);
+               _g_free0 (id);
+               _g_free0 (symbol);
+               _g_free0 (language);
+       }
+       _g_object_unref0 (align);
+       return self;
+}
+
+
+static SwitcherIBusEngineButton* switcher_ibus_engine_button_new (IBusEngineDesc* engine) {
+       return switcher_ibus_engine_button_construct (SWITCHER_TYPE_IBUS_ENGINE_BUTTON, engine);
+}
+
+
+static gboolean switcher_ibus_engine_button_real_draw (GtkWidget* base, cairo_t* cr) {
+       SwitcherIBusEngineButton * self;
+       gboolean result = FALSE;
+       cairo_t* _tmp0_;
+       gboolean _tmp1_ = FALSE;
+       gboolean _tmp2_;
+       self = (SwitcherIBusEngineButton*) base;
+       g_return_val_if_fail (cr != NULL, FALSE);
+       _tmp0_ = cr;
+       GTK_WIDGET_CLASS (switcher_ibus_engine_button_parent_class)->draw ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, GTK_TYPE_BUTTON, GtkButton), _tmp0_);
+       g_object_get ((GtkWidget*) self, "is-focus", &_tmp1_, NULL);
+       _tmp2_ = _tmp1_;
+       if (_tmp2_) {
+               cairo_t* _tmp3_;
+               cairo_t* _tmp4_;
+               gint _tmp5_ = 0;
+               gint _tmp6_ = 0;
+               cairo_t* _tmp7_;
+               cairo_t* _tmp8_;
+               cairo_t* _tmp9_;
+               _tmp3_ = cr;
+               cairo_save (_tmp3_);
+               _tmp4_ = cr;
+               _tmp5_ = gtk_widget_get_allocated_width ((GtkWidget*) self);
+               _tmp6_ = gtk_widget_get_allocated_height ((GtkWidget*) self);
+               cairo_rectangle (_tmp4_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp5_, (gdouble) _tmp6_);
+               _tmp7_ = cr;
+               cairo_set_source_rgba (_tmp7_, 0.0, 0.0, 1.0, 0.1);
+               _tmp8_ = cr;
+               cairo_fill (_tmp8_);
+               _tmp9_ = cr;
+               cairo_restore (_tmp9_);
+       }
+       result = TRUE;
+       return result;
+}
+
+
+static const gchar* switcher_ibus_engine_button_get_longname (SwitcherIBusEngineButton* self) {
+       const gchar* result;
+       const gchar* _tmp0_;
+       g_return_val_if_fail (self != NULL, NULL);
+       _tmp0_ = self->priv->_longname;
+       result = _tmp0_;
+       return result;
+}
+
+
+static void switcher_ibus_engine_button_set_longname (SwitcherIBusEngineButton* self, const gchar* value) {
+       const gchar* _tmp0_;
+       gchar* _tmp1_;
+       g_return_if_fail (self != NULL);
+       _tmp0_ = value;
+       _tmp1_ = g_strdup (_tmp0_);
+       _g_free0 (self->priv->_longname);
+       self->priv->_longname = _tmp1_;
+       g_object_notify ((GObject *) self, "longname");
+}
+
+
+static void switcher_ibus_engine_button_class_init (SwitcherIBusEngineButtonClass * klass) {
+       switcher_ibus_engine_button_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (SwitcherIBusEngineButtonPrivate));
+       GTK_WIDGET_CLASS (klass)->draw = switcher_ibus_engine_button_real_draw;
+       G_OBJECT_CLASS (klass)->get_property = _vala_switcher_ibus_engine_button_get_property;
+       G_OBJECT_CLASS (klass)->set_property = _vala_switcher_ibus_engine_button_set_property;
+       G_OBJECT_CLASS (klass)->finalize = switcher_ibus_engine_button_finalize;
+       g_object_class_install_property (G_OBJECT_CLASS (klass), SWITCHER_IBUS_ENGINE_BUTTON_LONGNAME, g_param_spec_string ("longname", "longname", "longname", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
+}
+
+
+static void switcher_ibus_engine_button_instance_init (SwitcherIBusEngineButton * self) {
+       self->priv = SWITCHER_IBUS_ENGINE_BUTTON_GET_PRIVATE (self);
+}
+
+
+static void switcher_ibus_engine_button_finalize (GObject* obj) {
+       SwitcherIBusEngineButton * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, SWITCHER_TYPE_IBUS_ENGINE_BUTTON, SwitcherIBusEngineButton);
+       _g_free0 (self->priv->_longname);
+       G_OBJECT_CLASS (switcher_ibus_engine_button_parent_class)->finalize (obj);
+}
+
+
+static GType switcher_ibus_engine_button_get_type (void) {
+       static volatile gsize switcher_ibus_engine_button_type_id__volatile = 0;
+       if (g_once_init_enter (&switcher_ibus_engine_button_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (SwitcherIBusEngineButtonClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) switcher_ibus_engine_button_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SwitcherIBusEngineButton), 0, (GInstanceInitFunc) switcher_ibus_engine_button_instance_init, NULL };
+               GType switcher_ibus_engine_button_type_id;
+               switcher_ibus_engine_button_type_id = g_type_register_static (GTK_TYPE_BUTTON, "SwitcherIBusEngineButton", &g_define_type_info, 0);
+               g_once_init_leave (&switcher_ibus_engine_button_type_id__volatile, switcher_ibus_engine_button_type_id);
+       }
+       return switcher_ibus_engine_button_type_id__volatile;
+}
+
+
+static void _vala_switcher_ibus_engine_button_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+       SwitcherIBusEngineButton * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (object, SWITCHER_TYPE_IBUS_ENGINE_BUTTON, SwitcherIBusEngineButton);
+       switch (property_id) {
+               case SWITCHER_IBUS_ENGINE_BUTTON_LONGNAME:
+               g_value_set_string (value, switcher_ibus_engine_button_get_longname (self));
+               break;
+               default:
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+               break;
+       }
+}
+
+
+static void _vala_switcher_ibus_engine_button_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+       SwitcherIBusEngineButton * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (object, SWITCHER_TYPE_IBUS_ENGINE_BUTTON, SwitcherIBusEngineButton);
+       switch (property_id) {
+               case SWITCHER_IBUS_ENGINE_BUTTON_LONGNAME:
+               switcher_ibus_engine_button_set_longname (self, g_value_get_string (value));
+               break;
+               default:
+               G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+               break;
+       }
+}
+
+
+static void switcher_class_init (SwitcherClass * klass) {
+       switcher_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (SwitcherPrivate));
+       GTK_WIDGET_CLASS (klass)->show = switcher_real_show;
+       GTK_WIDGET_CLASS (klass)->key_press_event = switcher_real_key_press_event;
+       GTK_WIDGET_CLASS (klass)->key_release_event = switcher_real_key_release_event;
+       G_OBJECT_CLASS (klass)->finalize = switcher_finalize;
+}
+
+
+static void switcher_instance_init (Switcher * self) {
+       SwitcherIBusEngineButton** _tmp0_ = NULL;
+       self->priv = SWITCHER_GET_PRIVATE (self);
+       _tmp0_ = g_new0 (SwitcherIBusEngineButton*, 0 + 1);
+       self->priv->m_buttons = _tmp0_;
+       self->priv->m_buttons_length1 = 0;
+       self->priv->_m_buttons_size_ = self->priv->m_buttons_length1;
+       self->priv->m_popup_delay_time = (guint) 0;
+       self->priv->m_popup_delay_time_id = (guint) 0;
+}
+
+
+static void switcher_finalize (GObject* obj) {
+       Switcher * self;
+       self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_SWITCHER, Switcher);
+       _g_object_unref0 (self->priv->m_box);
+       _g_object_unref0 (self->priv->m_label);
+       self->priv->m_buttons = (_vala_array_free (self->priv->m_buttons, self->priv->m_buttons_length1, (GDestroyNotify) g_object_unref), NULL);
+       self->priv->m_engines = (_vala_array_free (self->priv->m_engines, self->priv->m_engines_length1, (GDestroyNotify) g_object_unref), NULL);
+       _g_main_loop_unref0 (self->priv->m_loop);
+       G_OBJECT_CLASS (switcher_parent_class)->finalize (obj);
+}
+
+
+GType switcher_get_type (void) {
+       static volatile gsize switcher_type_id__volatile = 0;
+       if (g_once_init_enter (&switcher_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (SwitcherClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) switcher_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Switcher), 0, (GInstanceInitFunc) switcher_instance_init, NULL };
+               GType switcher_type_id;
+               switcher_type_id = g_type_register_static (GTK_TYPE_WINDOW, "Switcher", &g_define_type_info, 0);
+               g_once_init_leave (&switcher_type_id__volatile, switcher_type_id);
+       }
+       return switcher_type_id__volatile;
+}
+
+
+static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       if ((array != NULL) && (destroy_func != NULL)) {
+               int i;
+               for (i = 0; i < array_length; i = i + 1) {
+                       if (((gpointer*) array)[i] != NULL) {
+                               destroy_func (((gpointer*) array)[i]);
+                       }
+               }
+       }
+}
+
+
+static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
+       _vala_array_destroy (array, array_length, destroy_func);
+       g_free (array);
+}
+
+
+
diff --git a/util/IMdkit/Makefile.in b/util/IMdkit/Makefile.in
new file mode 100644 (file)
index 0000000..a75b41f
--- /dev/null
@@ -0,0 +1,860 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = util/IMdkit
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/depcomp $(noinst_HEADERS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libIMdkit_la_LIBADD =
+am_libIMdkit_la_OBJECTS = libIMdkit_la-FrameMgr.lo \
+       libIMdkit_la-i18nAttr.lo libIMdkit_la-i18nClbk.lo \
+       libIMdkit_la-i18nIc.lo libIMdkit_la-i18nIMProto.lo \
+       libIMdkit_la-i18nMethod.lo libIMdkit_la-i18nPtHdr.lo \
+       libIMdkit_la-i18nUtil.lo libIMdkit_la-i18nX.lo \
+       libIMdkit_la-IMConn.lo libIMdkit_la-IMMethod.lo \
+       libIMdkit_la-IMValues.lo
+libIMdkit_la_OBJECTS = $(am_libIMdkit_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libIMdkit_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libIMdkit_la_CFLAGS) \
+       $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libIMdkit_la_SOURCES)
+DIST_SOURCES = $(libIMdkit_la_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+noinst_LTLIBRARIES = libIMdkit.la
+libIMdkit_la_SOURCES = \
+       FrameMgr.c \
+       i18nAttr.c \
+       i18nClbk.c \
+       i18nIc.c \
+       i18nIMProto.c \
+       i18nMethod.c \
+       i18nPtHdr.c \
+       i18nUtil.c \
+       i18nX.c \
+       IMConn.c \
+       IMMethod.c \
+       IMValues.c \
+       $(NULL)
+
+noinst_HEADERS = \
+       FrameMgr.h \
+       IMdkit.h \
+       Xi18n.h \
+       Xi18nX.h \
+       XimFunc.h \
+       XimProto.h \
+       Xtrans.h \
+       $(NULL)
+
+libIMdkit_la_CFLAGS = \
+       @X11_CFLAGS@ \
+       $(NULL)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/IMdkit/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu util/IMdkit/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+       -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+       @list='$(noinst_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
+
+libIMdkit.la: $(libIMdkit_la_OBJECTS) $(libIMdkit_la_DEPENDENCIES) $(EXTRA_libIMdkit_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libIMdkit_la_LINK)  $(libIMdkit_la_OBJECTS) $(libIMdkit_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+distclean-compile:
+       -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-FrameMgr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-IMConn.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-IMMethod.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-IMValues.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-i18nAttr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-i18nClbk.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-i18nIMProto.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-i18nIc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-i18nMethod.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-i18nPtHdr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-i18nUtil.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libIMdkit_la-i18nX.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+libIMdkit_la-FrameMgr.lo: FrameMgr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-FrameMgr.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-FrameMgr.Tpo -c -o libIMdkit_la-FrameMgr.lo `test -f 'FrameMgr.c' || echo '$(srcdir)/'`FrameMgr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-FrameMgr.Tpo $(DEPDIR)/libIMdkit_la-FrameMgr.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='FrameMgr.c' object='libIMdkit_la-FrameMgr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-FrameMgr.lo `test -f 'FrameMgr.c' || echo '$(srcdir)/'`FrameMgr.c
+
+libIMdkit_la-i18nAttr.lo: i18nAttr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-i18nAttr.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-i18nAttr.Tpo -c -o libIMdkit_la-i18nAttr.lo `test -f 'i18nAttr.c' || echo '$(srcdir)/'`i18nAttr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-i18nAttr.Tpo $(DEPDIR)/libIMdkit_la-i18nAttr.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='i18nAttr.c' object='libIMdkit_la-i18nAttr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-i18nAttr.lo `test -f 'i18nAttr.c' || echo '$(srcdir)/'`i18nAttr.c
+
+libIMdkit_la-i18nClbk.lo: i18nClbk.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-i18nClbk.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-i18nClbk.Tpo -c -o libIMdkit_la-i18nClbk.lo `test -f 'i18nClbk.c' || echo '$(srcdir)/'`i18nClbk.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-i18nClbk.Tpo $(DEPDIR)/libIMdkit_la-i18nClbk.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='i18nClbk.c' object='libIMdkit_la-i18nClbk.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-i18nClbk.lo `test -f 'i18nClbk.c' || echo '$(srcdir)/'`i18nClbk.c
+
+libIMdkit_la-i18nIc.lo: i18nIc.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-i18nIc.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-i18nIc.Tpo -c -o libIMdkit_la-i18nIc.lo `test -f 'i18nIc.c' || echo '$(srcdir)/'`i18nIc.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-i18nIc.Tpo $(DEPDIR)/libIMdkit_la-i18nIc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='i18nIc.c' object='libIMdkit_la-i18nIc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-i18nIc.lo `test -f 'i18nIc.c' || echo '$(srcdir)/'`i18nIc.c
+
+libIMdkit_la-i18nIMProto.lo: i18nIMProto.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-i18nIMProto.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-i18nIMProto.Tpo -c -o libIMdkit_la-i18nIMProto.lo `test -f 'i18nIMProto.c' || echo '$(srcdir)/'`i18nIMProto.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-i18nIMProto.Tpo $(DEPDIR)/libIMdkit_la-i18nIMProto.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='i18nIMProto.c' object='libIMdkit_la-i18nIMProto.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-i18nIMProto.lo `test -f 'i18nIMProto.c' || echo '$(srcdir)/'`i18nIMProto.c
+
+libIMdkit_la-i18nMethod.lo: i18nMethod.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-i18nMethod.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-i18nMethod.Tpo -c -o libIMdkit_la-i18nMethod.lo `test -f 'i18nMethod.c' || echo '$(srcdir)/'`i18nMethod.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-i18nMethod.Tpo $(DEPDIR)/libIMdkit_la-i18nMethod.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='i18nMethod.c' object='libIMdkit_la-i18nMethod.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-i18nMethod.lo `test -f 'i18nMethod.c' || echo '$(srcdir)/'`i18nMethod.c
+
+libIMdkit_la-i18nPtHdr.lo: i18nPtHdr.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-i18nPtHdr.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-i18nPtHdr.Tpo -c -o libIMdkit_la-i18nPtHdr.lo `test -f 'i18nPtHdr.c' || echo '$(srcdir)/'`i18nPtHdr.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-i18nPtHdr.Tpo $(DEPDIR)/libIMdkit_la-i18nPtHdr.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='i18nPtHdr.c' object='libIMdkit_la-i18nPtHdr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-i18nPtHdr.lo `test -f 'i18nPtHdr.c' || echo '$(srcdir)/'`i18nPtHdr.c
+
+libIMdkit_la-i18nUtil.lo: i18nUtil.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-i18nUtil.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-i18nUtil.Tpo -c -o libIMdkit_la-i18nUtil.lo `test -f 'i18nUtil.c' || echo '$(srcdir)/'`i18nUtil.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-i18nUtil.Tpo $(DEPDIR)/libIMdkit_la-i18nUtil.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='i18nUtil.c' object='libIMdkit_la-i18nUtil.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-i18nUtil.lo `test -f 'i18nUtil.c' || echo '$(srcdir)/'`i18nUtil.c
+
+libIMdkit_la-i18nX.lo: i18nX.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-i18nX.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-i18nX.Tpo -c -o libIMdkit_la-i18nX.lo `test -f 'i18nX.c' || echo '$(srcdir)/'`i18nX.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-i18nX.Tpo $(DEPDIR)/libIMdkit_la-i18nX.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='i18nX.c' object='libIMdkit_la-i18nX.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-i18nX.lo `test -f 'i18nX.c' || echo '$(srcdir)/'`i18nX.c
+
+libIMdkit_la-IMConn.lo: IMConn.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-IMConn.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-IMConn.Tpo -c -o libIMdkit_la-IMConn.lo `test -f 'IMConn.c' || echo '$(srcdir)/'`IMConn.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-IMConn.Tpo $(DEPDIR)/libIMdkit_la-IMConn.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='IMConn.c' object='libIMdkit_la-IMConn.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-IMConn.lo `test -f 'IMConn.c' || echo '$(srcdir)/'`IMConn.c
+
+libIMdkit_la-IMMethod.lo: IMMethod.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-IMMethod.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-IMMethod.Tpo -c -o libIMdkit_la-IMMethod.lo `test -f 'IMMethod.c' || echo '$(srcdir)/'`IMMethod.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-IMMethod.Tpo $(DEPDIR)/libIMdkit_la-IMMethod.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='IMMethod.c' object='libIMdkit_la-IMMethod.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-IMMethod.lo `test -f 'IMMethod.c' || echo '$(srcdir)/'`IMMethod.c
+
+libIMdkit_la-IMValues.lo: IMValues.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -MT libIMdkit_la-IMValues.lo -MD -MP -MF $(DEPDIR)/libIMdkit_la-IMValues.Tpo -c -o libIMdkit_la-IMValues.lo `test -f 'IMValues.c' || echo '$(srcdir)/'`IMValues.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/libIMdkit_la-IMValues.Tpo $(DEPDIR)/libIMdkit_la-IMValues.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='IMValues.c' object='libIMdkit_la-IMValues.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libIMdkit_la_CFLAGS) $(CFLAGS) -c -o libIMdkit_la-IMValues.lo `test -f 'IMValues.c' || echo '$(srcdir)/'`IMValues.c
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/util/Makefile.in b/util/Makefile.in
new file mode 100644 (file)
index 0000000..d53643f
--- /dev/null
@@ -0,0 +1,761 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2007-2010 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = util
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gconf-2.m4 \
+       $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/intltool.m4 \
+       $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+       $(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = IMdkit
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DATE_DISPLAY = @DATE_DISPLAY@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_PYTHON_CFLAGS = @DBUS_PYTHON_CFLAGS@
+DBUS_PYTHON_LIBS = @DBUS_PYTHON_LIBS@
+DCONF_CFLAGS = @DCONF_CFLAGS@
+DCONF_LIBS = @DCONF_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENV_IBUS_TEST = @ENV_IBUS_TEST@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCONFTOOL = @GCONFTOOL@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GDK2_CFLAGS = @GDK2_CFLAGS@
+GDK2_LIBS = @GDK2_LIBS@
+GDK3_CFLAGS = @GDK3_CFLAGS@
+GDK3_LIBS = @GDK3_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO2_CFLAGS = @GIO2_CFLAGS@
+GIO2_LIBS = @GIO2_LIBS@
+GLIB2_CFLAGS = @GLIB2_CFLAGS@
+GLIB2_LIBS = @GLIB2_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@
+GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_LOCALE_DIR = @GLIB_LOCALE_DIR@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GOBJECT2_CFLAGS = @GOBJECT2_CFLAGS@
+GOBJECT2_LIBS = @GOBJECT2_LIBS@
+GOBJECT_QUERY = @GOBJECT_QUERY@
+GREP = @GREP@
+GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@
+GSETTINGS_SCHEMA_CONVERT = @GSETTINGS_SCHEMA_CONVERT@
+GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@
+GTHREAD2_LIBS = @GTHREAD2_LIBS@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@
+GTK2_LIBS = @GTK2_LIBS@
+GTK3_CFLAGS = @GTK3_CFLAGS@
+GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@
+GTK3_LIBS = @GTK3_LIBS@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+IBUS_ABI_AGE = @IBUS_ABI_AGE@
+IBUS_ABI_CURRENT = @IBUS_ABI_CURRENT@
+IBUS_ABI_REVISION = @IBUS_ABI_REVISION@
+IBUS_API_VERSION = @IBUS_API_VERSION@
+IBUS_BINARY_VERSION = @IBUS_BINARY_VERSION@
+IBUS_GIR_SCANNERFLAGS = @IBUS_GIR_SCANNERFLAGS@
+IBUS_ICON_KEYBOARD = @IBUS_ICON_KEYBOARD@
+IBUS_MAJOR_VERSION = @IBUS_MAJOR_VERSION@
+IBUS_MICRO_VERSION = @IBUS_MICRO_VERSION@
+IBUS_MINOR_VERSION = @IBUS_MINOR_VERSION@
+IBUS_VERSION = @IBUS_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ISOCODES_CFLAGS = @ISOCODES_CFLAGS@
+ISOCODES_LIBS = @ISOCODES_LIBS@
+ISOCODES_PREFIX = @ISOCODES_PREFIX@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_CURRENT_MINUS_AGE = @LT_CURRENT_MINUS_AGE@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VALAC = @VALAC@
+VALA_TARGET_GLIB_VERSION = @VALA_TARGET_GLIB_VERSION@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+WAYLAND_CFLAGS = @WAYLAND_CFLAGS@
+WAYLAND_LIBS = @WAYLAND_LIBS@
+X11_CFLAGS = @X11_CFLAGS@
+X11_LIBS = @X11_LIBS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+gsettingsschemadir = @gsettingsschemadir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pyoverridesdir = @pyoverridesdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@ENABLE_XIM_TRUE@SUBDIRS = \
+@ENABLE_XIM_TRUE@      IMdkit \
+@ENABLE_XIM_TRUE@      $(NULL)
+
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+               && { if test -f $@; then exit 0; else break; fi; }; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/Makefile'; \
+       $(am__cd) $(top_srcdir) && \
+         $(AUTOMAKE) --gnu util/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       set x; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       $(am__define_uniq_tagged_files); \
+       shift; \
+       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         if test $$# -gt 0; then \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             "$$@" $$unique; \
+         else \
+           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+             $$unique; \
+         fi; \
+       fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
+       test -z "$(CTAGS_ARGS)$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && $(am__cd) $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d "$(distdir)/$$file"; then \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+             find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+           fi; \
+           cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+         else \
+           test -f "$(distdir)/$$file" \
+           || cp -p $$d/$$file "$(distdir)/$$file" \
+           || exit 1; \
+         fi; \
+       done
+       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
+           dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+           $(am__relativize); \
+           new_distdir=$$reldir; \
+           dir1=$$subdir; dir2="$(top_distdir)"; \
+           $(am__relativize); \
+           new_top_distdir=$$reldir; \
+           echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+           echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+           ($(am__cd) $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$new_top_distdir" \
+               distdir="$$new_distdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               am__skip_mode_fix=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       installdirs-am maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags tags-am uninstall uninstall-am
+
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT: